summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitattributes46
-rw-r--r--.gitignore2
-rw-r--r--boot/loader.conf_wrap3
-rw-r--r--conf.default/config.xml26
-rwxr-xr-xetc/ecl.php11
-rw-r--r--etc/inc/IPv6.inc56
-rw-r--r--etc/inc/auth.inc27
-rw-r--r--etc/inc/authgui.inc61
-rw-r--r--etc/inc/captiveportal.inc1126
-rw-r--r--etc/inc/certs.inc29
-rw-r--r--etc/inc/cmd_chain.inc132
-rw-r--r--etc/inc/config.console.inc2
-rw-r--r--etc/inc/config.lib.inc68
-rw-r--r--etc/inc/crypt.inc4
-rw-r--r--etc/inc/dyndns.class319
-rw-r--r--etc/inc/easyrule.inc9
-rw-r--r--etc/inc/filter.inc669
-rw-r--r--etc/inc/filter_log.inc42
-rw-r--r--etc/inc/globals.inc23
-rw-r--r--etc/inc/gwlb.inc340
-rw-r--r--etc/inc/interfaces.inc2161
-rw-r--r--etc/inc/ipsec.inc160
-rw-r--r--etc/inc/openvpn.inc354
-rw-r--r--etc/inc/pfsense-utils.inc574
-rw-r--r--etc/inc/pkg-utils.inc88
-rw-r--r--etc/inc/priv.defs.inc18
-rw-r--r--etc/inc/priv/user.priv.inc6
-rw-r--r--etc/inc/radius.inc197
-rw-r--r--etc/inc/rrd.inc182
-rw-r--r--etc/inc/service-utils.inc225
-rw-r--r--etc/inc/services.inc572
-rw-r--r--etc/inc/shaper.inc624
-rw-r--r--etc/inc/system.inc361
-rw-r--r--etc/inc/unbound.inc521
-rw-r--r--etc/inc/upgrade_config.inc215
-rw-r--r--etc/inc/util.inc169
-rw-r--r--etc/inc/voucher.inc56
-rw-r--r--etc/inc/vpn.inc128
-rw-r--r--etc/inc/vslb.inc2
-rw-r--r--etc/inc/wizardapp.inc239
-rw-r--r--etc/inc/xmlrpc_client.inc6
-rw-r--r--etc/master.passwd1
-rw-r--r--etc/passwd1
-rw-r--r--etc/pfSense.obsoletedfiles5
-rw-r--r--etc/phpshellsessions/disablecarp17
-rw-r--r--etc/phpshellsessions/enablecarp22
-rw-r--r--etc/phpshellsessions/gitsync39
-rw-r--r--etc/phpshellsessions/installpkg39
-rw-r--r--etc/phpshellsessions/listpkg15
-rw-r--r--etc/phpshellsessions/removeshaper24
-rw-r--r--etc/phpshellsessions/svc83
-rw-r--r--etc/phpshellsessions/uninstallpkg35
-rwxr-xr-xetc/rc93
-rwxr-xr-xetc/rc.bootup27
-rwxr-xr-xetc/rc.disable_hdd_apm3
-rwxr-xr-xetc/rc.embedded32
-rwxr-xr-xetc/rc.filter_synchronize366
-rwxr-xr-xetc/rc.initial7
-rwxr-xr-xetc/rc.initial.password3
-rwxr-xr-xetc/rc.initial.setlanip84
-rwxr-xr-xetc/rc.kill_states72
-rwxr-xr-xetc/rc.linkup65
-rwxr-xr-xetc/rc.newwanip101
-rwxr-xr-xetc/rc.newwanipv6112
-rwxr-xr-xetc/rc.php_ini_setup19
-rwxr-xr-xetc/rc.prunecaptiveportal9
-rwxr-xr-xetc/rc.reboot8
-rwxr-xr-xetc/rc.shutdown8
-rwxr-xr-xetc/rc.start_packages5
-rwxr-xr-xetc/rc.update_bogons.sh156
-rw-r--r--etc/skel/dot.tcshrc16
-rw-r--r--etc/version2
-rw-r--r--root/.tcshrc16
-rwxr-xr-xsbin/dhclient-script7
-rwxr-xr-xsbin/dhclient6-script244
-rwxr-xr-xtmp/post_upgrade_command6
-rw-r--r--usr/local/bin/captiveportal_gather_stats.php31
-rwxr-xr-xusr/local/captiveportal/index.php292
-rw-r--r--usr/local/captiveportal/radius_accounting.inc3
-rw-r--r--usr/local/captiveportal/radius_authentication.inc4
l---------usr/local/openssl/openssl.cnf1
-rw-r--r--usr/local/pkg/miniupnpd.inc3
-rw-r--r--usr/local/pkg/routed.inc119
-rw-r--r--usr/local/pkg/routed.xml126
-rwxr-xr-xusr/local/sbin/ntpdate_sync_once.sh2
-rwxr-xr-xusr/local/sbin/ovpn-linkdown2
-rwxr-xr-xusr/local/sbin/pbi_create1196
-rwxr-xr-xusr/local/sbin/pfSsh.php1
-rwxr-xr-xusr/local/sbin/ppp-linkdown44
-rwxr-xr-xusr/local/sbin/ppp-linkup3
-rw-r--r--usr/local/sbin/prefixes.php1
-rwxr-xr-xusr/local/sbin/vpn-linkdown7
-rw-r--r--usr/local/share/locale/en_US.ISO8859-1/LC_MESSAGES/pfSense.pot15379
-rw-r--r--usr/local/share/locale/pt_BR.ISO8859-1/LC_MESSAGES/pfSense.po10683
-rwxr-xr-xusr/local/www/bandwidth_by_ip.php76
-rw-r--r--usr/local/www/classes/maintable.inc27
-rwxr-xr-xusr/local/www/crash_reporter.php4
-rw-r--r--usr/local/www/css/table.css4
-rwxr-xr-xusr/local/www/diag_arp.php8
-rwxr-xr-xusr/local/www/diag_authentication.php2
-rwxr-xr-xusr/local/www/diag_backup.php113
-rwxr-xr-xusr/local/www/diag_confbak.php2
-rwxr-xr-xusr/local/www/diag_defaults.php57
-rw-r--r--usr/local/www/diag_dns.php21
-rwxr-xr-xusr/local/www/diag_dump_states.php106
-rw-r--r--usr/local/www/diag_ipsec.php35
-rwxr-xr-xusr/local/www/diag_logs_filter.php216
-rwxr-xr-xusr/local/www/diag_logs_filter_dynamic.php84
-rw-r--r--usr/local/www/diag_logs_filter_summary.php2
-rwxr-xr-xusr/local/www/diag_logs_ipsec.php1
-rwxr-xr-xusr/local/www/diag_logs_ppp.php20
-rwxr-xr-xusr/local/www/diag_nanobsd.php44
-rwxr-xr-xusr/local/www/diag_ndp.php2
-rw-r--r--usr/local/www/diag_packet_capture.php42
-rwxr-xr-xusr/local/www/diag_patterns.php10
-rwxr-xr-xusr/local/www/diag_ping.php173
-rw-r--r--usr/local/www/diag_smart.php43
-rw-r--r--usr/local/www/diag_sockets.php276
-rw-r--r--usr/local/www/diag_system_pftop.php180
-rw-r--r--usr/local/www/diag_tables.php21
-rw-r--r--usr/local/www/diag_testport.php268
-rwxr-xr-xusr/local/www/diag_traceroute.php184
-rwxr-xr-xusr/local/www/exec.php2
-rwxr-xr-xusr/local/www/fbegin.inc38
-rwxr-xr-xusr/local/www/fend.inc2
-rwxr-xr-xusr/local/www/firewall_aliases.php227
-rwxr-xr-xusr/local/www/firewall_aliases_edit.php337
-rwxr-xr-xusr/local/www/firewall_aliases_import.php9
-rwxr-xr-xusr/local/www/firewall_nat.php2
-rwxr-xr-xusr/local/www/firewall_nat_edit.php63
-rwxr-xr-xusr/local/www/firewall_nat_out.php194
-rwxr-xr-xusr/local/www/firewall_nat_out_edit.php51
-rwxr-xr-xusr/local/www/firewall_rules.php835
-rwxr-xr-xusr/local/www/firewall_rules_edit.php404
-rw-r--r--usr/local/www/firewall_schedule.php28
-rw-r--r--usr/local/www/firewall_schedule_edit.php106
-rwxr-xr-xusr/local/www/firewall_shaper.php60
-rwxr-xr-xusr/local/www/firewall_shaper_layer7.php144
-rwxr-xr-xusr/local/www/firewall_shaper_queues.php30
-rw-r--r--usr/local/www/firewall_shaper_vinterface.php59
-rwxr-xr-xusr/local/www/firewall_shaper_wizards.php22
-rwxr-xr-xusr/local/www/firewall_virtual_ip.php65
-rwxr-xr-xusr/local/www/firewall_virtual_ip_edit.php138
-rwxr-xr-xusr/local/www/guiconfig.inc645
-rwxr-xr-xusr/local/www/head.inc40
-rw-r--r--usr/local/www/headjs.php13
-rw-r--r--usr/local/www/includes/functions.inc.php14
-rwxr-xr-xusr/local/www/index.php87
-rwxr-xr-xusr/local/www/interfaces.php284
-rwxr-xr-xusr/local/www/interfaces_assign.php138
-rw-r--r--usr/local/www/interfaces_bridge.php10
-rw-r--r--usr/local/www/interfaces_bridge_edit.php109
-rw-r--r--usr/local/www/interfaces_gif.php6
-rw-r--r--usr/local/www/interfaces_gif_edit.php23
-rw-r--r--usr/local/www/interfaces_gre.php6
-rw-r--r--usr/local/www/interfaces_lagg.php6
-rw-r--r--usr/local/www/interfaces_lagg_edit.php49
-rw-r--r--usr/local/www/interfaces_ppps_edit.php6
-rwxr-xr-xusr/local/www/interfaces_qinq.php13
-rwxr-xr-xusr/local/www/interfaces_qinq_edit.php35
-rwxr-xr-xusr/local/www/interfaces_vlan.php8
-rwxr-xr-xusr/local/www/interfaces_vlan_edit.php3
-rw-r--r--usr/local/www/interfaces_wireless.php2
-rw-r--r--usr/local/www/interfaces_wireless_edit.php8
-rw-r--r--usr/local/www/javascript/diag_backup/diag_backup.js11
-rw-r--r--usr/local/www/javascript/filter_log.js76
-rwxr-xr-xusr/local/www/license.php12
-rwxr-xr-xusr/local/www/pkg.php2
-rwxr-xr-xusr/local/www/pkg_edit.php52
-rwxr-xr-xusr/local/www/pkg_mgr.php25
-rwxr-xr-xusr/local/www/pkg_mgr_install.php136
-rwxr-xr-xusr/local/www/pkg_mgr_installed.php44
-rw-r--r--usr/local/www/pkg_mgr_settings.php31
-rwxr-xr-xusr/local/www/progress.php102
-rwxr-xr-xusr/local/www/services_captiveportal.php242
-rwxr-xr-xusr/local/www/services_captiveportal_hostname.php24
-rwxr-xr-xusr/local/www/services_captiveportal_hostname_edit.php8
-rwxr-xr-xusr/local/www/services_captiveportal_ip.php26
-rwxr-xr-xusr/local/www/services_captiveportal_ip_edit.php62
-rwxr-xr-xusr/local/www/services_captiveportal_mac.php22
-rwxr-xr-xusr/local/www/services_captiveportal_mac_edit.php23
-rw-r--r--usr/local/www/services_captiveportal_vouchers.php45
-rw-r--r--usr/local/www/services_captiveportal_vouchers_edit.php2
-rw-r--r--usr/local/www/services_captiveportal_zones_edit.php77
-rwxr-xr-xusr/local/www/services_dhcp.php129
-rwxr-xr-xusr/local/www/services_dhcp_edit.php326
-rw-r--r--usr/local/www/services_dhcpv6.php49
-rw-r--r--usr/local/www/services_dhcpv6_edit.php7
-rwxr-xr-xusr/local/www/services_dnsmasq.php38
-rwxr-xr-xusr/local/www/services_dnsmasq_domainoverride_edit.php10
-rwxr-xr-xusr/local/www/services_dyndns.php208
-rw-r--r--usr/local/www/services_dyndns_edit.php20
-rw-r--r--usr/local/www/services_ntpd.php2
-rw-r--r--usr/local/www/services_rfc2136.php118
-rw-r--r--usr/local/www/services_router_advertisements.php51
-rw-r--r--usr/local/www/services_unbound.php399
-rw-r--r--usr/local/www/services_unbound_acls.php377
-rw-r--r--usr/local/www/services_unbound_advanced.php354
-rw-r--r--usr/local/www/shortcuts.inc6
-rw-r--r--usr/local/www/shortcuts/pkg_routed.inc9
-rwxr-xr-xusr/local/www/status.php107
-rwxr-xr-xusr/local/www/status_captiveportal.php29
-rw-r--r--usr/local/www/status_captiveportal_expire.php117
-rw-r--r--usr/local/www/status_captiveportal_test.php1
-rw-r--r--usr/local/www/status_captiveportal_voucher_rolls.php180
-rw-r--r--usr/local/www/status_captiveportal_vouchers.php79
-rwxr-xr-xusr/local/www/status_dhcp_leases.php2
-rw-r--r--usr/local/www/status_dhcpv6_leases.php5
-rw-r--r--usr/local/www/status_filter_reload.php4
-rwxr-xr-xusr/local/www/status_gateway_groups.php12
-rwxr-xr-xusr/local/www/status_gateways.php14
-rwxr-xr-xusr/local/www/status_graph.php121
-rwxr-xr-xusr/local/www/status_interfaces.php56
-rwxr-xr-xusr/local/www/status_lb_pool.php12
-rwxr-xr-xusr/local/www/status_lb_vs.php16
-rw-r--r--usr/local/www/status_ntpd.php14
-rw-r--r--usr/local/www/status_openvpn.php99
-rwxr-xr-xusr/local/www/status_queues.php275
-rwxr-xr-xusr/local/www/status_rrd_graph.php52
-rw-r--r--usr/local/www/status_rrd_graph_img.php11
-rwxr-xr-xusr/local/www/status_rrd_graph_settings.php2
-rwxr-xr-xusr/local/www/status_services.php184
-rw-r--r--usr/local/www/status_upnp.php2
-rwxr-xr-xusr/local/www/system.php42
-rw-r--r--usr/local/www/system_advanced_admin.php74
-rw-r--r--usr/local/www/system_advanced_firewall.php139
-rw-r--r--usr/local/www/system_advanced_misc.php318
-rw-r--r--usr/local/www/system_advanced_network.php51
-rw-r--r--usr/local/www/system_advanced_notifications.php31
-rw-r--r--usr/local/www/system_advanced_sysctl.php26
-rw-r--r--usr/local/www/system_authservers.php111
-rw-r--r--usr/local/www/system_camanager.php105
-rw-r--r--usr/local/www/system_certmanager.php167
-rw-r--r--usr/local/www/system_crlmanager.php76
-rwxr-xr-xusr/local/www/system_firmware.php187
-rwxr-xr-xusr/local/www/system_firmware_auto.php117
-rwxr-xr-xusr/local/www/system_firmware_check.php101
-rwxr-xr-xusr/local/www/system_firmware_restorefullbackup.php48
-rwxr-xr-xusr/local/www/system_firmware_settings.php55
-rwxr-xr-xusr/local/www/system_gateway_groups.php57
-rwxr-xr-xusr/local/www/system_gateway_groups_edit.php47
-rwxr-xr-xusr/local/www/system_gateways.php32
-rwxr-xr-xusr/local/www/system_gateways_edit.php399
-rw-r--r--usr/local/www/system_groupmanager.php100
-rw-r--r--usr/local/www/system_groupmanager_addprivs.php12
-rwxr-xr-xusr/local/www/system_hasync.php9
-rwxr-xr-xusr/local/www/system_routes.php46
-rwxr-xr-xusr/local/www/system_routes_edit.php112
-rw-r--r--usr/local/www/system_usermanager.php144
-rw-r--r--usr/local/www/system_usermanager_addprivs.php10
-rw-r--r--usr/local/www/system_usermanager_passwordmg.php7
-rwxr-xr-xusr/local/www/system_usermanager_settings.php17
-rw-r--r--usr/local/www/themes/_corporate/all.css8
-rw-r--r--usr/local/www/themes/_corporate/bottom-loader.js4
-rw-r--r--usr/local/www/themes/_corporate/loader.js4
-rwxr-xr-xusr/local/www/themes/code-red/all.css8
-rwxr-xr-xusr/local/www/themes/code-red/bottom-loader.js4
-rwxr-xr-xusr/local/www/themes/code-red/loader.js8
-rwxr-xr-xusr/local/www/themes/code-red/wizard.css2
-rw-r--r--usr/local/www/themes/metallic/all.css8
-rw-r--r--usr/local/www/themes/metallic/bottom-loader.js4
-rw-r--r--usr/local/www/themes/metallic/loader.js4
-rw-r--r--usr/local/www/themes/nervecenter/all.css8
-rw-r--r--usr/local/www/themes/nervecenter/bottom-loader.js4
-rw-r--r--usr/local/www/themes/nervecenter/loader.js4
-rw-r--r--usr/local/www/themes/nervecenter/wizard.css2
-rw-r--r--usr/local/www/themes/pfsense-dropdown/all.css8
-rw-r--r--usr/local/www/themes/pfsense-dropdown/bottom-loader.js4
-rw-r--r--usr/local/www/themes/pfsense-dropdown/loader.js4
-rw-r--r--usr/local/www/themes/pfsense/all.css8
-rw-r--r--usr/local/www/themes/pfsense/bottom-loader.js4
-rw-r--r--usr/local/www/themes/pfsense/loader.js6
-rw-r--r--usr/local/www/themes/pfsense_ng/all.css10
-rw-r--r--usr/local/www/themes/pfsense_ng/bottom-loader.js4
-rw-r--r--usr/local/www/themes/pfsense_ng/loader.js8
-rw-r--r--usr/local/www/themes/pfsense_ng/wizard.css2
-rw-r--r--usr/local/www/themes/the_wall/all.css8
-rw-r--r--usr/local/www/themes/the_wall/bottom-loader.js4
-rw-r--r--usr/local/www/themes/the_wall/loader.js8
-rw-r--r--usr/local/www/themes/the_wall/wizard.css2
-rw-r--r--usr/local/www/upload_progress.php168
-rwxr-xr-xusr/local/www/vpn_ipsec.php12
-rw-r--r--usr/local/www/vpn_ipsec_phase1.php83
-rw-r--r--usr/local/www/vpn_ipsec_phase2.php35
-rw-r--r--usr/local/www/vpn_l2tp.php5
-rw-r--r--usr/local/www/vpn_openvpn_client.php55
-rw-r--r--usr/local/www/vpn_openvpn_server.php110
-rwxr-xr-xusr/local/www/vpn_pppoe.php5
-rwxr-xr-xusr/local/www/vpn_pppoe_edit.php11
-rwxr-xr-xusr/local/www/vpn_pptp.php3
-rw-r--r--usr/local/www/widgets/include/dyn_dns_status.inc7
-rw-r--r--usr/local/www/widgets/include/gateways.inc5
-rw-r--r--usr/local/www/widgets/include/smart_status.inc5
-rw-r--r--usr/local/www/widgets/include/thermal_sensors.inc27
-rw-r--r--usr/local/www/widgets/javascript/thermal_sensors.js312
-rw-r--r--usr/local/www/widgets/widgets/captive_portal_status.widget.php48
-rw-r--r--usr/local/www/widgets/widgets/carp_status.widget.php14
-rw-r--r--usr/local/www/widgets/widgets/dyn_dns_status.widget.php164
-rw-r--r--usr/local/www/widgets/widgets/gateways.widget.php173
-rw-r--r--usr/local/www/widgets/widgets/gmirror_status.widget.php8
-rw-r--r--usr/local/www/widgets/widgets/installed_packages.widget.php14
-rw-r--r--usr/local/www/widgets/widgets/interface_statistics.widget.php23
-rw-r--r--usr/local/www/widgets/widgets/interfaces.widget.php50
-rw-r--r--usr/local/www/widgets/widgets/ipsec.widget.php24
-rw-r--r--usr/local/www/widgets/widgets/load_balancer_status.widget.php20
-rw-r--r--usr/local/www/widgets/widgets/log.widget.php143
-rw-r--r--usr/local/www/widgets/widgets/picture.widget.php15
-rw-r--r--usr/local/www/widgets/widgets/rss.widget.php21
-rw-r--r--usr/local/www/widgets/widgets/services_status.widget.php35
-rw-r--r--usr/local/www/widgets/widgets/smart_status.widget.php12
-rw-r--r--usr/local/www/widgets/widgets/system_information.widget.php15
-rw-r--r--usr/local/www/widgets/widgets/thermal_sensors.widget.php314
-rw-r--r--usr/local/www/widgets/widgets/traffic_graphs.widget.php4
-rw-r--r--usr/local/www/widgets/widgets/wake_on_lan.widget.php26
-rwxr-xr-xusr/local/www/wizard.php96
-rw-r--r--usr/local/www/wizards/openvpn_wizard.inc12
-rw-r--r--usr/local/www/wizards/setup_wizard.xml2
-rw-r--r--usr/local/www/wizards/traffic_shaper_wizard.inc35
-rw-r--r--usr/local/www/wizards/traffic_shaper_wizard.xml142
-rwxr-xr-xusr/local/www/wizards/traffic_shaper_wizard_dedicated.inc31
-rwxr-xr-xusr/local/www/wizards/traffic_shaper_wizard_dedicated.xml142
-rwxr-xr-xusr/local/www/wizards/traffic_shaper_wizard_multi_all.inc32
-rwxr-xr-xusr/local/www/wizards/traffic_shaper_wizard_multi_all.xml142
-rw-r--r--usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc28
-rw-r--r--usr/local/www/wizards/traffic_shaper_wizard_multi_lan.xml142
-rwxr-xr-xusr/local/www/xmlrpc.php47
-rw-r--r--usr/share/zoneinfo.tgzbin148429 -> 876544 bytes
327 files changed, 38967 insertions, 16995 deletions
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..5a0d4bb
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,46 @@
+# Using default template from https://help.github.com/articles/dealing-with-line-endings with modifications.
+# Set default behaviour, in case users don't have core.autocrlf set.
+* text=auto
+
+# Explicitly declare text files we want to always be normalized and converted
+# to native line endings on checkout.
+*.c text
+*.h text
+*.php text
+*.inc text
+*.sh text
+*.h text
+*.md5 text
+*.sha256 text
+*.conf text
+*.xml text
+*.ovf text
+*.css text
+*.htm* text
+*.js text
+*.diff text
+*.patch text
+*.pl text
+*.rules text
+*.txt text
+rc.* text
+*.sql text
+*.mk text
+
+# Files that will always have CRLF line endings on checkout. (Not sure we have any of these)
+# *.dos text eol=crlf
+
+# Denote all files that are truly binary and should not be modified.
+*.png binary
+*.jpg binary
+*.gif binary
+*.so* binary
+*.gz binary
+*.tgz binary
+*.exe binary
+*.ico binary
+*.img binary
+*.zip binary
+*.uzip binary
+*.tar binary
+*.ttf binary \ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 2003901..2b2fe03 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
.DS_Store
_notes/
+# Ignore Vim swap files
+.*.swp
diff --git a/boot/loader.conf_wrap b/boot/loader.conf_wrap
index 77d70ca..6e7d9aa 100644
--- a/boot/loader.conf_wrap
+++ b/boot/loader.conf_wrap
@@ -7,4 +7,5 @@ hw.ata.wc="0"
kern.ipc.nmbclusters="0"
beastie_disable="YES"
vm.kmem_size="435544320"
-vm.kmem_size_max="535544320" \ No newline at end of file
+vm.kmem_size_max="535544320"
+hw.usb.no_pf="1"
diff --git a/conf.default/config.xml b/conf.default/config.xml
index 714e0f6..9e564ed 100644
--- a/conf.default/config.xml
+++ b/conf.default/config.xml
@@ -1,11 +1,16 @@
<?xml version="1.0"?>
<!-- pfSense default system configuration -->
<pfsense>
- <version>8.3</version>
+ <version>9.4</version>
<lastchange></lastchange>
<theme>pfsense_ng</theme>
<sysctl>
<item>
+ <descr><![CDATA[Enable mounting the FS read only with more checks.]]></descr>
+ <tunable>vfs.forcesync</tunable>
+ <value>default</value>
+ </item>
+ <item>
<descr><![CDATA[Disable the pf ftp proxy handler.]]></descr>
<tunable>debug.pfftpproxy</tunable>
<value>default</value>
@@ -51,6 +56,16 @@
<value>default</value>
</item>
<item>
+ <descr><![CDATA[Enable privacy settings for IPv6 (RFC 4941)]]></descr>
+ <tunable>net.inet6.ip6.use_tempaddr</tunable>
+ <value>default</value>
+ </item>
+ <item>
+ <descr><![CDATA[Prefer privacy addresses and use them over the normal addresses]]></descr>
+ <tunable>net.inet6.ip6.prefer_tempaddr</tunable>
+ <value>default</value>
+ </item>
+ <item>
<descr><![CDATA[Generate SYN cookies for outbound SYN-ACK packets]]></descr>
<tunable>net.inet.tcp.syncookies</tunable>
<value>default</value>
@@ -188,7 +203,11 @@
<disablesegmentationoffloading/>
<disablelargereceiveoffloading/>
<ipv6allow/>
- <powerd_mode>hadp</powerd_mode>
+ <powerd_ac_mode>hadp</powerd_ac_mode>
+ <powerd_battery_mode>hadp</powerd_battery_mode>
+ <bogons>
+ <interval>monthly</interval>
+ </bogons>
</system>
<interfaces>
<wan>
@@ -368,8 +387,6 @@
</page>
<httpslogin/>
<httpsname></httpsname>
- <certificate></certificate>
- <private-key></private-key>
<redirurl></redirurl>
<radiusip></radiusip>
<radiusport></radiusport>
@@ -531,7 +548,6 @@
-->
</shaper>
<ipsec>
- <preferoldsa/>
<!-- <enable/> -->
<!-- syntax:
<tunnel>
diff --git a/etc/ecl.php b/etc/ecl.php
index 28e8f3d..c8eae9c 100755
--- a/etc/ecl.php
+++ b/etc/ecl.php
@@ -42,6 +42,11 @@ function get_boot_disk() {
return $disk;
}
+function get_swap_disks() {
+ exec("/usr/sbin/swapinfo | /usr/bin/sed '/^\/dev/!d; s,^/dev/,,; s, .*\$,,'", $disks);
+ return $disks;
+}
+
function get_disk_slices($disk) {
global $g, $debug;
$slices_array = array();
@@ -108,6 +113,7 @@ function find_config_xml() {
if(!is_array($disks))
return;
$boot_disk = get_boot_disk();
+ $swap_disks = get_swap_disks();
exec("/bin/mkdir -p /tmp/mnt/cf");
foreach($disks as $disk) {
$slices = get_disk_slices($disk);
@@ -120,6 +126,11 @@ function find_config_xml() {
echo "\nSkipping boot device slice $slice";
continue;
}
+ if(in_array($slice, $swap_disks)) {
+ if($debug)
+ echo "\nSkipping swap device slice $slice";
+ continue;
+ }
echo " $slice";
// First try msdos fs
if($debug)
diff --git a/etc/inc/IPv6.inc b/etc/inc/IPv6.inc
index f7e85de..453051e 100644
--- a/etc/inc/IPv6.inc
+++ b/etc/inc/IPv6.inc
@@ -123,7 +123,7 @@ class Net_IPv6 {
// {{{ removeNetmaskBits()
/**
- * Removes a possible existing netmask specification at an IP addresse.
+ * Removes a possible existing netmask specification at an IP address.
*
* @param String $ip the (compressed) IP as Hex representation
*
@@ -152,7 +152,7 @@ class Net_IPv6 {
}
/**
- * Returns a possible existing netmask specification at an IP addresse.
+ * Returns a possible existing netmask specification at an IP address.
*
* @param String $ip the (compressed) IP as Hex representation
*
@@ -232,7 +232,7 @@ class Net_IPv6 {
/**
* Checks if an (compressed) IP is in a specific address space.
*
- * IF the IP does not contains the number of netmask bits (F8000::FFFF/16)
+ * IF the IP does not contain the number of netmask bits (F8000::FFFF/16)
* then you have to use the $bits parameter.
*
* @param String $ip the IP to check (eg. F800::FFFF)
@@ -302,14 +302,14 @@ class Net_IPv6 {
* Returns the type of an IPv6 address.
*
* RFC 1883, Section 2.3 describes several types of addresses in
- * the IPv6 addresse space.
- * Several addresse types are markers for reserved spaces and as
- * consequence a subject to change.
+ * the IPv6 address space.
+ * Several address types are markers for reserved spaces and as
+ * a consequence are subject to change.
*
* @param String $ip the IP address in Hex format,
* compressed IPs are allowed
*
- * @return int one of the addresse type constants
+ * @return int one of the address type constants
* @access public
* @since 1.1.0
* @static
@@ -393,10 +393,10 @@ class Net_IPv6 {
// {{{ Uncompress()
/**
- * Uncompresses an IPv6 adress
+ * Uncompresses an IPv6 address
*
- * RFC 2373 allows you to compress zeros in an adress to '::'. This
- * function expects an valid IPv6 adress and expands the '::' to
+ * RFC 2373 allows you to compress zeros in an address to '::'. This
+ * function expects a valid IPv6 address and expands the '::' to
* the required zeros.
*
* Example: FF01::101 -> FF01:0:0:0:0:0:0:101
@@ -405,8 +405,8 @@ class Net_IPv6 {
* @access public
* @see Compress()
* @static
- * @param string $ip a valid IPv6-adress (hex format)
- * @return string the uncompressed IPv6-adress (hex format)
+ * @param string $ip a valid IPv6-address (hex format)
+ * @return string the uncompressed IPv6-address (hex format)
*/
function uncompress($ip)
{
@@ -493,7 +493,7 @@ class Net_IPv6 {
} else { // xxx::xxx
- $fill = str_repeat(':0:', 6-$c2-$c1);
+ $fill = str_repeat(':0:', max(1, 6-$c2-$c1));
$uip = str_replace('::', $fill, $uip);
$uip = str_replace('::', ':', $uip);
@@ -512,10 +512,10 @@ class Net_IPv6 {
// {{{ Compress()
/**
- * Compresses an IPv6 adress
+ * Compresses an IPv6 address
*
- * RFC 2373 allows you to compress zeros in an adress to '::'. This
- * function expects an valid IPv6 adress and compresses successive zeros
+ * RFC 2373 allows you to compress zeros in an address to '::'. This
+ * function expects a valid IPv6 address and compresses successive zeros
* to '::'
*
* Example: FF01:0:0:0:0:0:0:101 -> FF01::101
@@ -524,8 +524,8 @@ class Net_IPv6 {
* @access public
* @see Uncompress()
* @static
- * @param string $ip a valid IPv6-adress (hex format)
- * @return string the compressed IPv6-adress (hex format)
+ * @param string $ip a valid IPv6-address (hex format)
+ * @return string the compressed IPv6-address (hex format)
* @author elfrink at introweb dot nl
*/
function compress($ip)
@@ -594,15 +594,15 @@ class Net_IPv6 {
// {{{ SplitV64()
/**
- * Splits an IPv6 adress into the IPv6 and a possible IPv4 part
+ * Splits an IPv6 address into the IPv6 and a possible IPv4 part
*
- * RFC 2373 allows you to note the last two parts of an IPv6 adress as
- * an IPv4 compatible adress
+ * RFC 2373 allows you to note the last two parts of an IPv6 address as
+ * an IPv4 compatible address
*
* Example: 0:0:0:0:0:0:13.1.68.3
* 0:0:0:0:0:FFFF:129.144.52.38
*
- * @param string $ip a valid IPv6-adress (hex format)
+ * @param string $ip a valid IPv6-address (hex format)
*
* @return array [0] contains the IPv6 part,
* [1] the IPv4 part (hex format)
@@ -638,14 +638,14 @@ class Net_IPv6 {
// {{{ checkIPv6()
/**
- * Checks an IPv6 adress
+ * Checks an IPv6 address
*
* Checks if the given IP is IPv6-compatible
*
* @access public
* @static
- * @param string $ip a valid IPv6-adress
- * @return boolean true if $ip is an IPv6 adress
+ * @param string $ip a valid IPv6-address
+ * @return boolean true if $ip is an IPv6 address
*/
function checkIPv6($ip)
{
@@ -778,10 +778,10 @@ class Net_IPv6 {
* for a given IP and netmask specification
*
* The netmask may be a part of the $ip or
- * the number of netwask bits is provided via $bits
+ * the number of netmask bits is provided via $bits
*
* The result is an indexed array. The key 'start'
- * contains the lowest possible IP adress. The key
+ * contains the lowest possible IP address. The key
* 'end' the highest address.
*
* @param String $ip the IPv6 address
@@ -919,4 +919,4 @@ class Net_IPv6 {
* End:
*/
-?> \ No newline at end of file
+?>
diff --git a/etc/inc/auth.inc b/etc/inc/auth.inc
index f469137..afddc5b 100644
--- a/etc/inc/auth.inc
+++ b/etc/inc/auth.inc
@@ -687,14 +687,14 @@ function ldap_setup_caenv($authcfg) {
}
if (!is_dir("{$g['varrun_path']}/certs"))
@mkdir("{$g['varrun_path']}/certs");
- if (file_exists("{$g['varrun_path']}/certs/{$authcfg['name']}.ca"))
- @unlink("{$g['varrun_path']}/certs/{$authcfg['name']}.ca");
- file_put_contents("{$g['varrun_path']}/certs/{$authcfg['name']}.ca", base64_decode($caref['crt']));
- @chmod("{$g['varrun_path']}/certs/{$authcfg['name']}.ca", 0600);
+ if (file_exists("{$g['varrun_path']}/certs/{$caref['refid']}.ca"))
+ @unlink("{$g['varrun_path']}/certs/{$caref['refid']}.ca");
+ file_put_contents("{$g['varrun_path']}/certs/{$caref['refid']}.ca", base64_decode($caref['crt']));
+ @chmod("{$g['varrun_path']}/certs/{$caref['refid']}.ca", 0600);
putenv('LDAPTLS_REQCERT=hard');
/* XXX: Probably even the hashed link should be created for this? */
putenv("LDAPTLS_CACERTDIR={$g['varrun_path']}/certs");
- putenv("LDAPTLS_CACERT={$g['varrun_path']}/certs/{$authcfg['name']}.ca");
+ putenv("LDAPTLS_CACERT={$g['varrun_path']}/certs/{$caref['refid']}.ca");
}
}
@@ -739,6 +739,7 @@ function ldap_test_bind($authcfg) {
}
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
+ ldap_set_option($ldap, LDAP_OPT_DEREF, LDAP_DEREF_SEARCHING);
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, (int)$ldapver);
if ($ldapanon == true) {
@@ -809,6 +810,7 @@ function ldap_get_user_ous($show_complete_ou=true, $authcfg) {
$ldapfilter = "(|(ou=*)(cn=Users))";
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
+ ldap_set_option($ldap, LDAP_OPT_DEREF, LDAP_DEREF_SEARCHING);
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, (int)$ldapver);
if ($ldapanon == true) {
@@ -919,6 +921,7 @@ function ldap_get_groups($username, $authcfg) {
}
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
+ ldap_set_option($ldap, LDAP_OPT_DEREF, LDAP_DEREF_SEARCHING);
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, (int)$ldapver);
/* bind as user that has rights to read group attributes */
@@ -1042,6 +1045,7 @@ function ldap_backed($username, $passwd, $authcfg) {
ldap_setup_caenv($authcfg);
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
+ ldap_set_option($ldap, LDAP_OPT_DEREF, LDAP_DEREF_SEARCHING);
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, (int)$ldapver);
/* Make sure we can connect to LDAP */
@@ -1120,7 +1124,7 @@ function ldap_backed($username, $passwd, $authcfg) {
/* Now lets bind as the user we found */
if (!($res = @ldap_bind($ldap, $userdn, $passwd))) {
- log_error(sprintf(gettext('ERROR! Could not login to server %1$s as user %2$s.'), $ldapname, $username));
+ log_error(sprintf(gettext('ERROR! Could not login to server %1$s as user %2$s: %3$s'), $ldapname, $username, ldap_error($ldap)));
@ldap_unbind($ldap);
return false;
}
@@ -1146,12 +1150,15 @@ function radius_backed($username, $passwd, $authcfg, &$attributes = array()) {
$radiusservers[0]['ipaddr'] = $authcfg['host'];
$radiusservers[0]['port'] = $authcfg['radius_auth_port'];
$radiusservers[0]['sharedsecret'] = $authcfg['radius_secret'];
+ $radiusservers[0]['timeout'] = $authcfg['radius_timeout'];
} else
return false;
/* Add a new servers to our instance */
- foreach ($radiusservers as $radsrv)
- $rauth->addServer($radsrv['ipaddr'], $radsrv['port'], $radsrv['sharedsecret']);
+ foreach ($radiusservers as $radsrv) {
+ $timeout = (is_numeric($radsrv['timeout'])) ? $radsrv['timeout'] : 5;
+ $rauth->addServer($radsrv['ipaddr'], $radsrv['port'], $radsrv['sharedsecret'], $timeout);
+ }
if (PEAR::isError($rauth->start())) {
$retvalue['auth_val'] = 1;
@@ -1222,7 +1229,7 @@ function auth_get_authserver($name) {
}
}
if ($name == "Local Database")
- return array("name" => gettext("Local Database"), "type" => gettext("Local Auth"), "host" => $config['system']['hostname']);
+ return array("name" => gettext("Local Database"), "type" => "Local Auth", "host" => $config['system']['hostname']);
}
function auth_get_authserver_list() {
@@ -1237,7 +1244,7 @@ function auth_get_authserver_list() {
}
}
- $list["Local Database"] = array( "name" => gettext("Local Database"), "type" => gettext("Local Auth"), "host" => $config['system']['hostname']);
+ $list["Local Database"] = array( "name" => gettext("Local Database"), "type" => "Local Auth", "host" => $config['system']['hostname']);
return $list;
}
diff --git a/etc/inc/authgui.inc b/etc/inc/authgui.inc
index f87494b..57d0138 100644
--- a/etc/inc/authgui.inc
+++ b/etc/inc/authgui.inc
@@ -87,6 +87,12 @@ if (!$_SESSION['Post_Login']) {
exit;
}
+/*
+ * Close session data to allow other scripts from same host to come in.
+ * A session can be reactivated from calling session_start again
+ */
+session_commit();
+
/*
* determine if the user is allowed access to the requested page
*/
@@ -101,8 +107,8 @@ function display_error_form($http_code, $desc) {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html>
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<script type="text/javascript" src="/javascript/jquery.js"></script>
<title><?=$http_code?></title>
@@ -114,7 +120,7 @@ function display_error_form($http_code, $desc) {
<link rel="stylesheet" type="text/css" href="/themes/<?= $g['theme'] ?>/all.css" media="all" />
<?php endif; ?>
<script type="text/javascript">
- <!--
+ //<![CDATA[
function page_load() {}
function clearError() {
if($('#inputerrors'))
@@ -124,7 +130,7 @@ function display_error_form($http_code, $desc) {
require("headjs.php");
echo getHeadJS();
?>
- //-->
+ //]]>
</script>
<script type="text/javascript" src="/themes/<?= $g['theme'] ?>/javascript/niftyjsCode.js"></script>
</head>
@@ -197,18 +203,35 @@ if($config['virtualip']) {
}
}
}
+if (is_array($config['openvpn']['openvpn-server'])) {
+ foreach ($config['openvpn']['openvpn-server'] as $ovpns) {
+ if (is_ipaddrv4($http_host) && !empty($ovpns['tunnel_network']) && ip_in_subnet($http_host, $ovpns['tunnel_network'])) {
+ $local_ip = true;
+ break;
+ }
+
+ if (is_ipaddrv6($http_host) && !empty($ovpns['tunnel_networkv6']) && ip_in_subnet($http_host, $ovpns['tunnel_networkv6'])) {
+ $local_ip = true;
+ break;
+ }
+ }
+}
setcookie("cookie_test", time() + 3600);
$have_cookies = isset($_COOKIE["cookie_test"]);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html>
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<script type="text/javascript" src="/javascript/jquery.js"></script>
- <script>$(document).ready(function() { jQuery('#usernamefld').focus(); });</script>
-
+ <script type="text/javascript">
+ //<![CDATA[
+ $(document).ready(function() { jQuery('#usernamefld').focus(); });
+ //]]>
+ </script>
+
<title><?=gettext("Login"); ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="shortcut icon" href="/themes/<?= $g['theme'] ?>/images/icons/favicon.ico" />
@@ -218,7 +241,7 @@ $have_cookies = isset($_COOKIE["cookie_test"]);
<link rel="stylesheet" type="text/css" href="/themes/<?= $g['theme'] ?>/all.css" media="all" />
<?php endif; ?>
<script type="text/javascript">
- <!--
+ //<![CDATA[
function page_load() {}
function clearError() {
if($('#inputerrors'))
@@ -228,7 +251,7 @@ $have_cookies = isset($_COOKIE["cookie_test"]);
require("headjs.php");
echo getHeadJS();
?>
- //-->
+ //]]>
</script>
<script type="text/javascript" src="/themes/<?= $g['theme'] ?>/javascript/niftyjsCode.js"></script>
</head>
@@ -241,40 +264,40 @@ $have_cookies = isset($_COOKIE["cookie_test"]);
}
$noautocomplete = isset($config['system']['webgui']['noautocomplete']) ? 'autocomplete="off"' : '';
?>
- <form id="iform" name="login_iform" method="post" <?= $noautocomplete ?> action="<?=$_SERVER['SCRIPT_NAME'];?>">
- <h1></h1>
+ <form id="iform" name="iform" method="post" <?= $noautocomplete ?> action="<?=$_SERVER['SCRIPT_NAME'];?>">
+ <h1>&nbsp;</h1>
<div id="inputerrors"><?=$_SESSION['Login_Error'];?></div>
<p>
<span style="text-align:left">
- <?=gettext("Username:"); ?><br>
+ <?=gettext("Username:"); ?><br />
<input onclick="clearError();" onchange="clearError();" id="usernamefld" type="text" name="usernamefld" class="formfld user" tabindex="1" />
</span>
</p>
- <br>
<p>
+ <br />
<span style="text-align:left">
- <?=gettext("Password:"); ?> <br>
+ <?=gettext("Password:"); ?> <br />
<input onclick="clearError();" onchange="clearError();" id="passwordfld" type="password" name="passwordfld" class="formfld pwd" tabindex="2" />
</span>
</p>
- <br>
<p>
+ <br />
<span style="text-align:center; font-weight: normal ; font-style: italic">
<?=gettext("Enter username and password to login."); ?>
</span>
- <? if (!$have_cookies && isset($_POST['login'])): ?>
+ <?php if (!$have_cookies && isset($_POST['login'])): ?>
<br/><br/>
<span style="text-align:center; font-weight: normal ; font-style: italic; color: #ff0000">
<?= gettext("Your browser must support cookies to login."); ?>
</span>
- <? endif; ?>
+ <?php endif; ?>
</p>
<p>
<span style="text-align:center">
<input type="submit" name="login" class="formbtn" value="<?=gettext("Login"); ?>" tabindex="3" />
</span>
- </P>
+ </p>
</form>
</div>
</body>
diff --git a/etc/inc/captiveportal.inc b/etc/inc/captiveportal.inc
index a397fa4..38202e9 100644
--- a/etc/inc/captiveportal.inc
+++ b/etc/inc/captiveportal.inc
@@ -94,30 +94,28 @@ function get_default_captive_portal_html() {
<br/>
<div id='loginbox'>
<table>
- <tr><td colspan="2"><center>Welcome to the {$g['product_name']} Captive Portal!</td></tr>
- <tr><td>&nbsp;</td></tr>
- <tr><td align="right">Username:</td><td><input name="auth_user" type="text" style="border: 1px dashed;"></td></tr>
- <tr><td align="right">Password:</td><td><input name="auth_pass" type="password" style="border: 1px dashed;"></td></tr>
- <tr><td>&nbsp;</td></tr>
+ <tr><td colspan="2"><center>Welcome to the {$g['product_name']} Captive Portal!</td></tr>
+ <tr><td>&nbsp;</td></tr>
+ <tr><td align="right">Username:</td><td><input name="auth_user" type="text" style="border: 1px dashed;"></td></tr>
+ <tr><td align="right">Password:</td><td><input name="auth_pass" type="password" style="border: 1px dashed;"></td></tr>
+ <tr><td>&nbsp;</td></tr>
EOD;
if(isset($config['voucher'][$cpzone]['enable'])) {
$htmltext .= <<<EOD
- <tr><td>
- Enter Voucher Code:
- <input name="auth_voucher" type="text" style="border:1px dashed;" size="22">
- </td></tr>
+ <tr>
+ <td align="right">Enter Voucher Code: </td>
+ <td><input name="auth_voucher" type="text" style="border:1px dashed;" size="22"></td>
+ </tr>
EOD;
}
$htmltext .= <<<EOD
- <tr>
- <td colspan="2">
- <center><input name="accept" type="submit" value="Continue"></center>
- </td>
- </tr>
+ <tr>
+ <td colspan="2"><center><input name="accept" type="submit" value="Continue"></center></td>
+ </tr>
</table>
</div>
</center>
@@ -147,17 +145,17 @@ EOD;
}
function captiveportal_load_modules() {
- global $config;
+ global $config;
mute_kernel_msgs();
- if (!is_module_loaded("ipfw.ko")) {
- mwexec("/sbin/kldload ipfw");
- /* make sure ipfw is not on pfil hooks */
- mwexec("/sbin/sysctl 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 */
- mwexec("/sbin/sysctl net.link.ether.ipfw=1");
+ if (!is_module_loaded("ipfw.ko")) {
+ mwexec("/sbin/kldload ipfw");
+ /* make sure ipfw is not on pfil hooks */
+ mwexec("/sbin/sysctl 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 */
+ mwexec("/sbin/sysctl net.link.ether.ipfw=1 net.inet.ip.fw.one_pass=1");
+ }
/* Always load dummynet now that even allowed ip and mac passthrough use it. */
if (!is_module_loaded("dummynet.ko")) {
@@ -166,12 +164,12 @@ function captiveportal_load_modules() {
}
unmute_kernel_msgs();
- /* XXX: This are not used in pfSense, if needed can be tuned
- if($config['system']['maximumstates'] <> "" && is_numeric($config['system']['maximumstates'])) {
- mwexec("sysctl net.inet.ip.fw.dyn_max={$config['system']['maximumstates']}");
- } else {
- mwexec("sysctl net.inet.ip.fw.dyn_max=10000");
- }
+ /* XXX: This are not used in pfSense, if needed can be tuned
+ if($config['system']['maximumstates'] <> "" && is_numeric($config['system']['maximumstates'])) {
+ mwexec("sysctl net.inet.ip.fw.dyn_max={$config['system']['maximumstates']}");
+ } else {
+ mwexec("sysctl net.inet.ip.fw.dyn_max=10000");
+ }
*/
}
@@ -187,10 +185,6 @@ function captiveportal_configure() {
mwexec("/sbin/sysctl net.link.ether.ipfw=0");
}
-function captiveportal_ipfw_set_context($cpzone) {
- mwexec("/usr/local/sbin/ipfw_context -s {$cpzone}", true);
-}
-
function captiveportal_configure_zone($cpcfg) {
global $config, $g, $cpzone;
@@ -198,30 +192,20 @@ function captiveportal_configure_zone($cpcfg) {
if (isset($cpcfg['enable'])) {
- if ($g['booting'])
+ if ($g['booting']) {
echo "Starting captive portal({$cpcfg['zone']})... ";
- else
- captiveportal_syslog("Restarting captive portal({$cpcfg['zone']}).");
-
- /* kill any running mini_httpd */
- killbypid("{$g['varrun_path']}/lighty-{$cpzone}-CaptivePortal.pid");
- killbypid("{$g['varrun_path']}/lighty-{$cpzone}-CaptivePortal-SSL.pid");
- /* remove old information */
- unlink_if_exists("{$g['vardb_path']}/captiveportal_{$cpzone}.db");
- unlink_if_exists("{$g['vardb_path']}/captiveportal_mac_{$cpzone}.db");
- unlink_if_exists("{$g['vardb_path']}/captiveportal_ip_{$cpzone}.db");
- unlink_if_exists("{$g['vardb_path']}/captiveportal_radius_{$cpzone}.db");
+ /* remove old information */
+ unlink_if_exists("{$g['vardb_path']}/captiveportal{$cpzone}.db");
+ } else
+ captiveportal_syslog("Reconfiguring captive portal({$cpcfg['zone']}).");
- /* setup new database in case someone tries to access the status -> captive portal page */
- touch("{$g['vardb_path']}/captiveportal_{$cpzone}.db");
+ /* init ipfw rules */
+ captiveportal_init_rules(true);
/* kill any running minicron */
killbypid("{$g['varrun_path']}/cp_prunedb_{$cpzone}.pid");
- /* init ipfw rules */
- captiveportal_init_rules(true);
-
/* initialize minicron interval value */
$croninterval = $cpcfg['croninterval'] ? $cpcfg['croninterval'] : 60;
@@ -335,6 +319,10 @@ EOD;
/* write elements */
captiveportal_write_elements();
+ /* kill any running mini_httpd */
+ killbypid("{$g['varrun_path']}/lighty-{$cpzone}-CaptivePortal.pid");
+ killbypid("{$g['varrun_path']}/lighty-{$cpzone}-CaptivePortal-SSL.pid");
+
/* start up the webserving daemon */
captiveportal_init_webgui_zone($cpcfg);
@@ -347,10 +335,14 @@ EOD;
"/etc/rc.prunecaptiveportal {$cpzone}");
/* generate radius server database */
+ unlink_if_exists("{$g['vardb_path']}/captiveportal_radius_{$cpzone}.db");
captiveportal_init_radius_servers();
- if ($g['booting'])
+ if ($g['booting']) {
+ /* send Accounting-On to server */
+ captiveportal_send_server_accounting();
echo "done\n";
+ }
} else {
killbypid("{$g['varrun_path']}/lighty-{$cpzone}-CaptivePortal.pid");
@@ -359,14 +351,18 @@ EOD;
@unlink("{$g['varetc_path']}/captiveportal_{$cpzone}.html");
@unlink("{$g['varetc_path']}/captiveportal-{$cpzone}-error.html");
@unlink("{$g['varetc_path']}/captiveportal-{$cpzone}-logout.html");
- /* remove old information */
- unlink_if_exists("{$g['vardb_path']}/captiveportal_{$cpzone}.db");
- unlink_if_exists("{$g['vardb_path']}/captiveportal_mac_{$cpzone}.db");
- unlink_if_exists("{$g['vardb_path']}/captiveportal_ip_{$cpzone}.db");
- unlink_if_exists("{$g['vardb_path']}/captiveportal_radius_{$cpzone}.db");
captiveportal_radius_stop_all();
+ /* send Accounting-Off to server */
+ if (!$g['booting']) {
+ captiveportal_send_server_accounting(true);
+ }
+
+ /* remove old information */
+ unlink_if_exists("{$g['vardb_path']}/captiveportal{$cpzone}.db");
+ unlink_if_exists("{$g['vardb_path']}/captiveportal_radius_{$cpzone}.db");
+
mwexec("/usr/local/sbin/ipfw_context -d {$cpzone}", true);
if (empty($config['captiveportal']))
@@ -374,34 +370,18 @@ EOD;
else {
/* Deactivate ipfw(4) if not needed */
$cpactive = false;
- foreach ($config['captiveportal'] as $cpkey => $cp) {
- if (isset($cp['enable'])) {
- $cpactive = true;
- break;
+ if (is_array($config['captiveportal'])) {
+ foreach ($config['captiveportal'] as $cpkey => $cp) {
+ if (isset($cp['enable'])) {
+ $cpactive = true;
+ break;
+ }
}
}
if ($cpactive === false)
mwexec("/sbin/sysctl net.link.ether.ipfw=0");
}
-
- /* unload ipfw */
- $listifs = get_configured_interface_list();
- $cpinterfaces = explode(",", $config['captiveportal'][$cpzone]['interface']);
- foreach ($cpinterfaces as $cpifgrp) {
- if (!isset($listifs[$cpifgrp]))
- continue;
- $listrealif = get_real_interface($cpifgrp);
- if (does_interface_exist($listrealif)) {
- pfSense_interface_flags($listrealif, -IFF_IPFW_FILTER);
- $carpif = link_ip_to_carp_interface(find_interface_ip($listrealif));
- if (!empty($carpif)) {
- $carpsif = explode(" ", $carpif);
- foreach ($carpsif as $cpcarp)
- pfSense_interface_flags($cpcarp, -IFF_IPFW_FILTER);
- }
- }
- }
}
unlock($captiveportallck);
@@ -435,33 +415,34 @@ function captiveportal_init_webgui_zone($cpcfg) {
if (!isset($cpcfg['enable']))
return;
- $use_fastcgi = true;
-
if (isset($cpcfg['httpslogin'])) {
$cert = lookup_cert($cpcfg['certref']);
$crt = base64_decode($cert['crt']);
$key = base64_decode($cert['prv']);
$ca = ca_chain($cert);
-
+
/* generate lighttpd configuration */
$listenporthttps = $cpcfg['listenporthttps'] ? $cpcfg['listenporthttps'] : ($cpcfg['zoneid'] + 1);
system_generate_lighty_config("{$g['varetc_path']}/lighty-{$cpzone}-CaptivePortal-SSL.conf",
$crt, $key, $ca, "lighty-{$cpzone}-CaptivePortal-SSL.pid", $listenporthttps, "/usr/local/captiveportal",
- "cert-portal.pem", "ca-portal.pem", "1", $use_fastcgi, $cpzone);
+ "cert-{$cpzone}-portal.pem", "ca-{$cpzone}-portal.pem", $cpzone);
}
/* generate lighttpd configuration */
$listenporthttp = $cpcfg['listenporthttp'] ? $cpcfg['listenporthttp'] : $cpcfg['zoneid'];
system_generate_lighty_config("{$g['varetc_path']}/lighty-{$cpzone}-CaptivePortal.conf",
"", "", "", "lighty-{$cpzone}-CaptivePortal.pid", $listenporthttp, "/usr/local/captiveportal",
- "cert-portal.pem", "ca-portal.pem", "1", $use_fastcgi, $cpzone);
+ "", "", $cpzone);
+ @unlink("{$g['varrun']}/lighty-{$cpzone}-CaptivePortal.pid");
/* attempt to start lighttpd */
$res = mwexec("/usr/local/sbin/lighttpd -f {$g['varetc_path']}/lighty-{$cpzone}-CaptivePortal.conf");
/* fire up https instance */
- if (isset($cpcfg['httpslogin']))
+ if (isset($cpcfg['httpslogin'])) {
+ @unlink("{$g['varrun']}/lighty-{$cpzone}-CaptivePortal-SSL.pid");
$res = mwexec("/usr/local/sbin/lighttpd -f {$g['varetc_path']}/lighty-{$cpzone}-CaptivePortal-SSL.conf");
+ }
}
/* reinit will disconnect all users, be careful! */
@@ -473,7 +454,6 @@ function captiveportal_init_rules($reinit = false) {
captiveportal_load_modules();
mwexec("/usr/local/sbin/ipfw_context -a {$cpzone}", true);
- captiveportal_ipfw_set_context($cpzone);
$cpips = array();
$ifaces = get_configured_interface_list();
@@ -491,7 +471,6 @@ function captiveportal_init_rules($reinit = false) {
$carpsif = explode(" ", $carpif);
foreach ($carpsif as $cpcarp) {
mwexec("/usr/local/sbin/ipfw_context -a {$cpzone} -n {$cpcarp}", true);
- pfSense_interface_flags($cpcarp, IFF_IPFW_FILTER);
$carpip = find_interface_ip($cpcarp);
if (is_ipaddr($carpip))
$cpips[] = $carpip;
@@ -500,7 +479,6 @@ function captiveportal_init_rules($reinit = false) {
$cpips[] = $cpipm;
}
mwexec("/usr/local/sbin/ipfw_context -a {$cpzone} -n {$tmpif}", true);
- pfSense_interface_flags($tmpif, IFF_IPFW_FILTER);
}
}
if (count($cpips) > 0) {
@@ -511,27 +489,19 @@ function captiveportal_init_rules($reinit = false) {
if ($reinit == false)
$captiveportallck = lock("captiveportal{$cpzone}");
- /* init dummynet/ipfw rules number database */
- captiveportal_init_ipfw_ruleno();
-
- $cprules = "add 65291 set 1 allow pfsync from any to any\n";
- $cprules .= "add 65292 set 1 allow carp from any to any\n";
+ $cprules = "add 65291 allow pfsync from any to any\n";
+ $cprules .= "add 65292 allow carp from any to any\n";
$cprules .= <<<EOD
-# add 65300 set 1 skipto 65534 all from any to any not layer2
# layer 2: pass ARP
-add 65301 set 1 pass layer2 mac-type arp
+add 65301 pass layer2 mac-type arp,rarp
# pfsense requires for WPA
-add 65302 set 1 pass layer2 mac-type 0x888e
-add 65303 set 1 pass layer2 mac-type 0x88c7
+add 65302 pass layer2 mac-type 0x888e,0x88c7
+# PPP Over Ethernet Session Stage/Discovery Stage
+add 65303 pass layer2 mac-type 0x8863,0x8864
-# PPP Over Ethernet Discovery Stage
-add 65304 set 1 pass layer2 mac-type 0x8863
-# PPP Over Ethernet Session Stage
-add 65305 set 1 pass layer2 mac-type 0x8864
-
-# layer 2: block anything else non-IP
-add 65307 set 1 deny layer2 not mac-type ip
+# layer 2: block anything else non-IP(v4/v6)
+add 65307 deny layer2 not mac-type ip,ipv6
EOD;
@@ -547,53 +517,48 @@ EOD;
$ipcount++;
}
$ips = "{ 255.255.255.255 or {$ips} }";
- $cprules .= "add {$rulenum} set 1 pass ip from any to {$ips} in\n";
+ $cprules .= "add {$rulenum} pass ip from any to {$ips} in\n";
$rulenum++;
- $cprules .= "add {$rulenum} set 1 pass ip from {$ips} to any out\n";
+ $cprules .= "add {$rulenum} pass ip from {$ips} to any out\n";
$rulenum++;
- $cprules .= "add {$rulenum} set 1 pass icmp from {$ips} to any out icmptype 0\n";
+ $cprules .= "add {$rulenum} pass icmp from {$ips} to any out icmptype 0\n";
$rulenum++;
- $cprules .= "add {$rulenum} set 1 pass icmp from any to {$ips} in icmptype 8 \n";
+ $cprules .= "add {$rulenum} pass icmp from any to {$ips} in icmptype 8 \n";
$rulenum++;
/* Allowed ips */
- $cprules .= "add {$rulenum} allow ip from table(3) to any in\n";
- $rulenum++;
- $cprules .= "add {$rulenum} allow ip from any to table(4) out\n";
+ $cprules .= "add {$rulenum} pipe tablearg ip from table(3) to any in\n";
$rulenum++;
- $cprules .= "add {$rulenum} pipe tablearg ip from table(5) to any in\n";
+ $cprules .= "add {$rulenum} pipe tablearg ip from any to table(4) in\n";
$rulenum++;
- $cprules .= "add {$rulenum} pipe tablearg ip from any to table(6) out\n";
+ $cprules .= "add {$rulenum} pipe tablearg ip from table(3) to any out\n";
$rulenum++;
- $cprules .= "add {$rulenum} allow ip from any to table(7) in\n";
- $rulenum++;
- $cprules .= "add {$rulenum} allow ip from table(8) to any out\n";
- $rulenum++;
- $cprules .= "add {$rulenum} pipe tablearg ip from any to table(9) in\n";
- $rulenum++;
- $cprules .= "add {$rulenum} pipe tablearg ip from table(10) to any out\n";
+ $cprules .= "add {$rulenum} pipe tablearg ip from any to table(4) out\n";
$rulenum++;
/* Authenticated users rules. */
- $cprules .= "add {$rulenum} set 1 pipe tablearg ip from table(1) to any in\n";
+ $cprules .= "add {$rulenum} pipe tablearg ip from table(1) to any in\n";
$rulenum++;
- $cprules .= "add {$rulenum} set 1 pipe tablearg ip from any to table(2) out\n";
+ $cprules .= "add {$rulenum} pipe tablearg ip from any to table(2) out\n";
$rulenum++;
-
+
$listenporthttp =
$config['captiveportal'][$cpzone]['listenporthttp'] ?
$config['captiveportal'][$cpzone]['listenporthttp'] :
$config['captiveportal'][$cpzone]['zoneid'];
+
+ if (isset($config['captiveportal'][$cpzone]['httpslogin'])) {
+ $listenporthttps = $listenporthttp + 1;
+ $cprules .= "add 65531 fwd 127.0.0.1,{$listenporthttps} tcp from any to any dst-port 443 in\n";
+ }
$cprules .= <<<EOD
# redirect non-authenticated clients to captive portal
-add 65531 set 1 fwd 127.0.0.1,{$listenporthttp} tcp from any to any in
+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 65532 set 1 pass tcp from any to any out
+add 65533 pass tcp from any to any out
# block everything else
-add 65533 set 1 deny all from any to any
-# pass everything else on layer2
-add 65534 set 1 pass all from any to any layer2
+add 65534 deny all from any to any
EOD;
@@ -608,40 +573,20 @@ EOD;
$cprules .= captiveportal_allowedhostname_configure();
/* load rules */
- if ($reinit == true)
- $cprules = "table all flush\nflush\n{$cprules}";
- else {
- $tmprules = "table 3 flush\n";
- $tmprules .= "table 4 flush\n";
- $tmprules .= "table 5 flush\n";
- $tmprules .= "table 6 flush\n";
- $tmprules .= "table 7 flush\n";
- $tmprules .= "table 8 flush\n";
- $tmprules .= "table 9 flush\n";
- $tmprules .= "table 10 flush\n";
- $tmprules .= "flush\n";
- $cprules = "{$tmprules}\n{$cprules}";
- }
-
+ $cprules = "flush\n{$cprules}";
file_put_contents("{$g['tmp_path']}/ipfw_{$cpzone}.cp.rules", $cprules);
- captiveportal_ipfw_set_context($cpzone);
- mwexec("/sbin/ipfw -q {$g['tmp_path']}/ipfw_{$cpzone}.cp.rules", true);
+ mwexec("/sbin/ipfw -x {$cpzone} -q {$g['tmp_path']}/ipfw_{$cpzone}.cp.rules", true);
//@unlink("{$g['tmp_path']}/ipfw_{$cpzone}.cp.rules");
unset($cprules, $tmprules);
if ($reinit == false)
unlock($captiveportallck);
-
- /* activate ipfw(4) so CP can work */
- mwexec("/sbin/sysctl net.link.ether.ipfw=1");
- /* Make sure not re-entrancy is allowed in ipfw(4) */
- mwexec("/sbin/sysctl net.inet.ip.fw.one_pass=1");
}
/*
* Remove clients that have been around for longer than the specified amount of time
* db file structure:
- * timestamp,ipfw_rule_no,clientip,clientmac,username,sessionid,password,session_timeout,idle_timeout,session_terminate_time
+ * timestamp,ipfw_rule_no,clientip,clientmac,username,sessionid,password,session_timeout,idle_timeout,session_terminate_time,interim_interval
* (password is in Base64 and only saved when reauthentication is enabled)
*/
function captiveportal_prune_old() {
@@ -663,13 +608,14 @@ function captiveportal_prune_old() {
$idletimeout = $cpcfg['idletimeout'] * 60;
/* Is there any job to do? */
- if (!$timeout && !$idletimeout && !isset($cpcfg['reauthenticate']) &&
+ if (!$timeout && !$idletimeout && !isset($cpcfg['reauthenticate']) &&
!isset($cpcfg['radiussession_timeout']) && !isset($vcpcfg['enable']))
return;
$radiussrvs = captiveportal_get_radius_servers();
- /* read database */
+ /* Read database */
+ /* NOTE: while this can be simplified in non radius case keep as is for now */
$cpdb = captiveportal_read_db();
/*
@@ -713,7 +659,7 @@ function captiveportal_prune_old() {
/* check if the radius idle_timeout attribute has been set and if its set change the idletimeout to this value */
$uidletimeout = (is_numeric($cpentry[8])) ? $cpentry[8] : $idletimeout;
/* if an idle timeout is specified, get last activity timestamp from ipfw */
- if (!$timedout && $uidletimeout) {
+ if (!$timedout && $uidletimeout > 0) {
$lastact = captiveportal_get_last_activity($cpentry[2]);
/* If the user has logged on but not sent any traffic they will never be logged out.
* We "fix" this by setting lastact to the login timestamp.
@@ -762,9 +708,8 @@ function captiveportal_prune_old() {
$cpentry[2], // clientip
$cpentry[3], // clientmac
10); // NAS Request
- captiveportal_ipfw_set_context($cpzone);
- exec("/sbin/ipfw table 1 entryzerostats {$cpentry[2]}");
- exec("/sbin/ipfw table 2 entryzerostats {$cpentry[2]}");
+ pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ZERO_ENTRY_STATS, 1, $cpentry[2]);
+ pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ZERO_ENTRY_STATS, 2, $cpentry[2]);
RADIUS_ACCOUNTING_START($cpentry[1], // ruleno
$cpentry[4], // username
$cpentry[5], // sessionid
@@ -772,15 +717,24 @@ function captiveportal_prune_old() {
$cpentry[2], // clientip
$cpentry[3]); // clientmac
} else if ($cpcfg['reauthenticateacct'] == "interimupdate") {
- RADIUS_ACCOUNTING_STOP($cpentry[1], // ruleno
- $cpentry[4], // username
- $cpentry[5], // sessionid
- $cpentry[0], // start time
- $radiusservers,
- $cpentry[2], // clientip
- $cpentry[3], // clientmac
- 10, // NAS Request
- true); // Interim Updates
+ $session_time = $pruning_time - $cpentry[0];
+ if (!empty($cpentry[10]) && $cpentry[10] > 60)
+ $interval = $cpentry[10];
+ else
+ $interval = 0;
+ $past_interval_min = ($session_time > $interval);
+ $within_interval = ($session_time % $interval >= 0 && $session_time % $interval <= 59);
+ if (($interval > 0 && $past_interval_min && $within_interval) || $interval === 0) {
+ RADIUS_ACCOUNTING_STOP($cpentry[1], // ruleno
+ $cpentry[4], // username
+ $cpentry[5], // sessionid
+ $cpentry[0], // start time
+ $radiusservers,
+ $cpentry[2], // clientip
+ $cpentry[3], // clientmac
+ 10, // NAS Request
+ true); // Interim Updates
+ }
}
}
@@ -801,6 +755,7 @@ function captiveportal_prune_old() {
}
}
}
+ unset($cpdb);
captiveportal_prune_old_automac();
@@ -810,7 +765,7 @@ function captiveportal_prune_old() {
/* write database */
if (!empty($unsetindexes))
- captiveportal_write_db($cpdb, false, $unsetindexes);
+ captiveportal_remove_entries($unsetindexes);
}
function captiveportal_prune_old_automac() {
@@ -825,12 +780,19 @@ function captiveportal_prune_old_automac() {
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, true);
+ 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']]]);
@@ -838,12 +800,19 @@ function captiveportal_prune_old_automac() {
$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, true);
+ 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($emac['username'], $emac['mac'], $emac['ip'], "EXPIRED {$emac['username']} LOGIN - TERMINATING SESSION");
unset($config['captiveportal'][$cpzone]['passthrumac'][$eid]);
@@ -853,7 +822,7 @@ function captiveportal_prune_old_automac() {
if (!empty($macrules)) {
@file_put_contents("{$g['tmp_path']}/macentry.prunerules.tmp", $macrules);
unset($macrules);
- mwexec("/sbin/ipfw -q {$g['tmp_path']}/macentry.prunerules.tmp");
+ mwexec("/sbin/ipfw -x {$cpzone} -q {$g['tmp_path']}/macentry.prunerules.tmp");
}
if ($writecfg === true)
write_config("Prune session for auto-added macs");
@@ -881,25 +850,25 @@ function captiveportal_disconnect($dbent, $radiusservers,$term_cause = 1,$stop_t
}
if (is_ipaddr($dbent[2])) {
- captiveportal_ipfw_set_context($cpzone);
- /* Delete client's ip entry from tables 3 and 4. */
- mwexec("/sbin/ipfw table 1 delete {$dbent[2]}");
- mwexec("/sbin/ipfw table 2 delete {$dbent[2]}");
+ /* Delete client's ip entry from tables 1 and 2. */
+ pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_DEL, 1, $dbent[2]);
+ pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_DEL, 2, $dbent[2]);
/* XXX: Redundant?! Ensure all pf(4) states are killed. */
- mwexec("pfctl -k {$dbent[2]}");
- mwexec("pfctl -K {$dbent[2]}");
+ pfSense_kill_states($dbent[2]);
+ pfSense_kill_srcstates($dbent[2]);
}
/*
* These are the pipe numbers we use to control traffic shaping for each logged in user via captive portal
* We could get an error if the pipe doesn't exist but everything should still be fine
*/
- captiveportal_ipfw_set_context($cpzone);
- mwexec("/sbin/ipfw pipe " . ($dbent[1]+20000) . " delete");
- mwexec("/sbin/ipfw pipe " . ($dbent[1]+20001) . " delete");
+ if (!empty($dbent[1])) {
+ pfSense_pipe_action("pipe delete {$dbent[1]}");
+ pfSense_pipe_action("pipe delete " . ($dbent[1]+1));
- /* Release the ruleno so it can be reallocated to new clients. */
- captiveportal_free_ipfw_ruleno($dbent[1]);
+ /* Release the ruleno so it can be reallocated to new clients. */
+ captiveportal_free_dn_ruleno($dbent[1]);
+ }
// XMLRPC Call over to the master Voucher node
if(!empty($config['voucher'][$cpzone]['vouchersyncdbip'])) {
@@ -914,25 +883,25 @@ function captiveportal_disconnect($dbent, $radiusservers,$term_cause = 1,$stop_t
/* remove a single client by sessionid */
function captiveportal_disconnect_client($sessionid, $term_cause = 1, $logoutReason = "LOGOUT") {
- global $g, $config, $cpzone;
+ global $g, $config;
$radiusservers = captiveportal_get_radius_servers();
- $unsetindex = array();
/* read database */
- $cpdb = captiveportal_read_db();
+ $result = captiveportal_read_db("WHERE sessionid = '{$sessionid}'");
/* find entry */
- if (isset($cpdb[$sessionid])) {
- $cpentry = $cpdb[$sessionid];
- /* write database */
- $unsetindex[] = $sessionid;
- captiveportal_write_db($cpdb, false, $unsetindex);
- if (empty($cpentry[10]))
- $cpentry[10] = 'first';
- captiveportal_disconnect($cpentry, $radiusservers[$cpentry[10]], $term_cause);
- captiveportal_logportalauth($cpentry[4], $cpentry[3], $cpentry[2], "DISCONNECT");
- }
+ if (!empty($result)) {
+ captiveportal_write_db("DELETE FROM captiveportal WHERE sessionid = '{$sessionid}'");
+
+ foreach ($result as $cpentry) {
+ if (empty($cpentry[10]))
+ $cpentry[10] = 'first';
+ captiveportal_disconnect($cpentry, $radiusservers[$cpentry[10]], $term_cause);
+ captiveportal_logportalauth($cpentry[4], $cpentry[3], $cpentry[2], "DISCONNECT");
+ }
+ unset($result);
+ }
}
/* send RADIUS acct stop for all current clients */
@@ -963,27 +932,21 @@ function captiveportal_radius_stop_all() {
}
function captiveportal_passthrumac_configure_entry($macent) {
- $rules = "";
- $enBwup = isset($macent['bw_up']);
- $enBwdown = isset($macent['bw_down']);
- $actionup = "allow";
- $actiondown = "allow";
+
+ $bwUp = empty($macent['bw_up']) ? 0 : $macent['bw_up'];
+ $bwDown = empty($macent['bw_down']) ? 0 : $macent['bw_down'];
$ruleno = captiveportal_get_next_ipfw_ruleno();
+ $pipeno = captiveportal_get_next_dn_ruleno();
- if ($enBwup) {
- $bw_up = $ruleno + 20000;
- $rules .= "pipe {$bw_up} config bw {$macent['bw_up']}Kbit/s queue 100\n";
- $actionup = "pipe {$bw_up}";
- }
- if ($enBwdown) {
- $bw_down = $ruleno + 20001;
- $rules .= "pipe {$bw_down} config bw {$macent['bw_down']}Kbit/s queue 100\n";
- $actiondown = "pipe {$bw_down}";
- }
- $rules .= "add {$ruleno} {$actiondown} ip from any to any MAC {$macent['mac']} any\n";
+ $rules = "";
+ $pipeup = $pipeno;
+ pfSense_pipe_action("pipe {$pipeup} config bw {$bwUp}Kbit/s queue 100 buckets 16");
+ $pipedown = $pipeno + 1;
+ pfSense_pipe_action("pipe {$pipedown} config bw {$bwDown}Kbit/s queue 100 buckets 16");
+ $rules .= "add {$ruleno} pipe {$pipeup} ip from any to any MAC {$macent['mac']} any\n";
$ruleno++;
- $rules .= "add {$ruleno} {$actionup} ip from any to any MAC any {$macent['mac']}\n";
+ $rules .= "add {$ruleno} pipe {$pipedown} ip from any to any MAC any {$macent['mac']}\n";
return $rules;
}
@@ -1019,118 +982,74 @@ function captiveportal_passthrumac_findbyname($username) {
/*
* table (3=IN)/(4=OUT) hold allowed ip's without bw limits
- * table (5=IN)/(6=OUT) hold allowed ip's with bw limit.
*/
-function captiveportal_allowedip_configure_entry($ipent) {
-
- /* This function can deal with hostname or ipaddress */
- if($ipent['ip'])
- $ipaddress = $ipent['ip'];
+function captiveportal_allowedip_configure_entry($ipent, $ishostname = false) {
+ global $g;
/* Instead of copying this entire function for something
* easy such as hostname vs ip address add this check
*/
- if($ipent['hostname']) {
- $ipaddress = gethostbyname($ipent['hostname']);
- if(!is_ipaddr($ipaddress))
- return;
- }
+ if ($ishostname === true) {
+ if (!$g['booting']) {
+ $ipaddress = gethostbyname($ipent['hostname']);
+ if (!is_ipaddr($ipaddress))
+ return;
+ } else
+ $ipaddress = "";
+ } else
+ $ipaddress = $ipent['ip'];
$rules = "";
- $enBwup = intval($ipent['bw_up']);
- $enBwdown = intval($ipent['bw_down']);
- $bw_up = "";
- $bw_down = "";
- $tablein = array();
- $tableout = array();
-
- $ruleno = captiveportal_get_next_ipfw_ruleno();
-
- if ($ipent['dir'] == "from") {
- if ($enBwup)
- $tablein[] = 5;
- else
- $tablein[] = 3;
- if ($enBwdown)
- $tableout[] = 6;
- else
- $tableout[] = 4;
- } else if ($ipent['dir'] == "to") {
- if ($enBwup)
- $tablein[] = 9;
- else
- $tablein[] = 7;
- if ($enBwdown)
- $tableout[] = 10;
- else
- $tableout[] = 8;
- } else if ($ipent['dir'] == "both") {
- if ($enBwup) {
- $tablein[] = 5;
- $tablein[] = 9;
- } else {
- $tablein[] = 3;
- $tablein[] = 7;
- }
- if ($enBwdown) {
- $tableout[] = 6;
- $tableout[] = 10;
- } else {
- $tableout[] = 4;
- $tableout[] = 8;
- }
- }
- if ($enBwup) {
- $bw_up = $ruleno + 20000;
- $rules .= "pipe {$bw_up} config bw {$ipent['bw_up']}Kbit/s queue 100\n";
+ $cp_filterdns_conf = "";
+ $enBwup = empty($ipent['bw_up']) ? 0 : intval($ipent['bw_up']);
+ $enBwdown = empty($ipent['bw_down']) ? 0 : intval($ipent['bw_down']);
+
+ $pipeno = captiveportal_get_next_dn_ruleno();
+ pfSense_pipe_action("pipe {$pipeno} config bw {$enBwup}Kbit/s queue 100 buckets 16");
+ $pipedown = $pipeno + 1;
+ pfSense_pipe_action("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";
+ if (!is_ipaddr($ipaddress))
+ return array("", $cp_filterdns_conf);
}
$subnet = "";
if (!empty($ipent['sn']))
$subnet = "/{$ipent['sn']}";
- foreach ($tablein as $table)
- $rules .= "table {$table} add {$ipaddress}{$subnet} {$bw_up}\n";
- if ($enBwdown) {
- $bw_down = $ruleno + 20001;
- $rules .= "pipe {$bw_down} config bw {$ipent['bw_down']}Kbit/s queue 100\n";
- }
- foreach ($tableout as $table)
- $rules .= "table {$table} add {$ipaddress}{$subnet} {$bw_down}\n";
-
- return $rules;
-}
+ $rules .= "table 3 add {$ipaddress}{$subnet} {$pipeno}\n";
+ $rules .= "table 4 add {$ipaddress}{$subnet} {$pipedown}\n";
-/*
- Adds a dnsfilter entry and watches for hostname changes.
- A change results in reloading the ruleset.
-*/
-function setup_dnsfilter_entries() {
- global $g, $config, $cpzone;
-
- $cp_filterdns_filename = "{$g['varetc_path']}/filterdns-{$cpzone}-captiveportal.conf";
- $cp_filterdns_conf = "";
- if (is_array($config['captiveportal'][$cpzone]['allowedhostname'])) {
- foreach ($config['captiveportal'][$cpzone]['allowedhostname'] as $hostnameent) {
- $cp_filterdns_conf .= "ipfw {$hostnameent['hostname']} 3\n";
- $cp_filterdns_conf .= "ipfw {$hostnameent['hostname']} 4\n";
- $cp_filterdns_conf .= "ipfw {$hostnameent['hostname']} 7\n";
- $cp_filterdns_conf .= "ipfw {$hostnameent['hostname']} 8\n";
- }
- }
- file_put_contents($cp_filterdns_filename, $cp_filterdns_conf);
- unset($cp_filterdns_conf);
- killbypid("{$g['tmp_path']}/filterdns-{$cpzone}-cpah.pid");
- mwexec("/usr/local/sbin/filterdns -p {$g['tmp_path']}/filterdns-{$cpzone}-cpah.pid -i 300 -c {$cp_filterdns_filename} -y {$cpzone} -d 1");
+ if ($ishostname === true)
+ return array($rules, $cp_filterdns_conf);
+ else
+ return $rules;
}
function captiveportal_allowedhostname_configure() {
global $config, $g, $cpzone;
- $rules = "\n# captiveportal_allowedhostname_configure()\n";
- setup_dnsfilter_entries();
+ $rules = "";
if (is_array($config['captiveportal'][$cpzone]['allowedhostname'])) {
- foreach ($config['captiveportal'][$cpzone]['allowedhostname'] as $hostnameent)
- $rules .= captiveportal_allowedip_configure_entry($hostnameent);
+ $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");
+ else
+ mwexec("/usr/local/sbin/filterdns -p {$g['varrun_path']}/filterdns-{$cpzone}-cpah.pid -i 300 -c {$cp_filterdns_filename} -y {$cpzone} -d 1");
+ } else {
+ killbypid("{$g['varrun_path']}/filterdns-{$cpzone}-cpah.pid");
+ @unlink("{$g['varrun_path']}/filterdns-{$cpzone}-cpah.pid");
}
+
return $rules;
}
@@ -1150,15 +1069,10 @@ function captiveportal_allowedip_configure() {
function captiveportal_get_last_activity($ip) {
global $cpzone;
- $ipfwoutput = "";
-
- captiveportal_ipfw_set_context($cpzone);
- exec("/sbin/ipfw table 1 entrystats {$ip} 2>/dev/null", $ipfwoutput);
+ $ipfwoutput = pfSense_ipfw_getTablestats($cpzone, 1, $ip);
/* Reading only from one of the tables is enough of approximation. */
- if ($ipfwoutput[0]) {
- $ri = explode(" ", $ipfwoutput[0]);
- if ($ri[4])
- return $ri[4];
+ if (is_array($ipfwoutput)) {
+ return $ipfwoutput['timestamp'];
}
return 0;
@@ -1197,9 +1111,9 @@ function captiveportal_init_radius_servers() {
$radiusport4 = 1812;
$radiuskey = $config['captiveportal'][$cpzone]['radiuskey'];
- $radiuskey2 = ($config['captiveportal'][$cpzone]['radiuskey2']) ? $config['captiveportal'][$cpzone]['radiuskey2'] : null;
- $radiuskey3 = ($config['captiveportal'][$cpzone]['radiuskey3']) ? $config['captiveportal'][$cpzone]['radiuskey3'] : null;
- $radiuskey4 = ($config['captiveportal'][$cpzone]['radiuskey4']) ? $config['captiveportal'][$cpzone]['radiuskey4'] : null;
+ $radiuskey2 = $config['captiveportal'][$cpzone]['radiuskey2'];
+ $radiuskey3 = $config['captiveportal'][$cpzone]['radiuskey3'];
+ $radiuskey4 = $config['captiveportal'][$cpzone]['radiuskey4'];
$cprdsrvlck = lock("captiveportalradius{$cpzone}", LOCK_EX);
$fd = @fopen("{$g['vardb_path']}/captiveportal_radius_{$cpzone}.db", "w");
@@ -1208,13 +1122,13 @@ function captiveportal_init_radius_servers() {
unlock($cprdsrvlck);
return 1;
}
- if (isset($radiusip, $radiuskey))
+ if (isset($radiusip))
fwrite($fd,$radiusip . "," . $radiusport . "," . $radiusacctport . "," . $radiuskey . ",first");
- if (isset($radiusip2, $radiuskey2))
+ if (isset($radiusip2))
fwrite($fd,"\n" . $radiusip2 . "," . $radiusport2 . "," . $radiusacctport . "," . $radiuskey2 . ",first");
- if (isset($radiusip3, $radiuskey3))
+ if (isset($radiusip3))
fwrite($fd,"\n" . $radiusip3 . "," . $radiusport3 . "," . $radiusacctport . "," . $radiuskey3 . ",second");
- if (isset($radiusip4, $radiuskey4))
+ if (isset($radiusip4))
fwrite($fd,"\n" . $radiusip4 . "," . $radiusport4 . "," . $radiusacctport . "," . $radiuskey4 . ",second");
@@ -1283,10 +1197,10 @@ function captiveportal_syslog($message) {
function radius($username,$password,$clientip,$clientmac,$type, $radiusctx = null) {
global $g, $config;
- $ruleno = captiveportal_get_next_ipfw_ruleno();
+ $pipeno = captiveportal_get_next_dn_ruleno();
/* If the pool is empty, return appropriate message and fail authentication */
- if (is_null($ruleno)) {
+ if (is_null($pipeno)) {
$auth_list = array();
$auth_list['auth_val'] = 1;
$auth_list['error'] = "System reached maximum login capacity";
@@ -1303,7 +1217,7 @@ function radius($username,$password,$clientip,$clientmac,$type, $radiusctx = nul
$radiusservers[$radiusctx],
$clientip,
$clientmac,
- $ruleno);
+ $pipeno);
if ($auth_list['auth_val'] == 2) {
captiveportal_logportalauth($username,$clientmac,$clientip,$type);
@@ -1312,69 +1226,92 @@ function radius($username,$password,$clientip,$clientmac,$type, $radiusctx = nul
$username,
$password,
$auth_list,
- $ruleno,
+ $pipeno,
$radiusctx);
}
return $auth_list;
}
-/* read captive portal DB into array */
-function captiveportal_read_db($locked = false, $index = 5 /* sessionid by default */) {
+function captiveportal_opendb() {
global $g, $cpzone;
- $cpdb = array();
-
- if ($locked == false)
- $cpdblck = lock("captiveportaldb{$cpzone}");
- $fd = @fopen("{$g['vardb_path']}/captiveportal_{$cpzone}.db", "r");
- if ($fd) {
- while (!feof($fd)) {
- $line = trim(fgets($fd));
- if ($line) {
- $cpe = explode(",", $line);
- /* Hash by session id */
- $cpdb[$cpe[$index]] = $cpe;
- }
- }
- fclose($fd);
+ if (file_exists("{$g['vardb_path']}/captiveportal{$cpzone}.db"))
+ $DB = @sqlite_open("{$g['vardb_path']}/captiveportal{$cpzone}.db");
+ else {
+ $errormsg = "";
+ $DB = @sqlite_open("{$g['vardb_path']}/captiveportal{$cpzone}.db");
+ if (@sqlite_exec($DB, "CREATE TABLE captiveportal (allow_time INTEGER, pipeno INTEGER, ip TEXT, mac TEXT, username TEXT, sessionid TEXT, bpassword TEXT, session_timeout INTEGER, idle_timeout INTEGER, session_terminate_time INTEGER, interim_interval INTEGER) ", $errormsg)) {
+ @sqlite_exec($DB, "CREATE UNIQUE INDEX idx_active ON captiveportal (sessionid, username)");
+ @sqlite_exec($DB, "CREATE INDEX user ON captiveportal (username)");
+ @sqlite_exec($DB, "CREATE INDEX ip ON captiveportal (ip)");
+ @sqlite_exec($DB, "CREATE INDEX starttime ON captiveportal (allow_time)");
+ @sqlite_exec($DB, "CREATE INDEX serviceid ON captiveportal (serviceid)");
+ } else
+ captiveportal_syslog("Error during table {$cpzone} creation. Error message: {$errormsg}");
}
- if ($locked == false)
- unlock($cpdblck);
- return $cpdb;
+
+ return $DB;
}
-/* write captive portal DB */
-function captiveportal_write_db($cpdb, $locked = false, $remove = false) {
- global $g, $cpzone;
+/* read captive portal DB into array */
+function captiveportal_read_db($query = "") {
- if ($locked == false)
- $cpdblck = lock("captiveportaldb{$cpzone}", LOCK_EX);
-
- if (is_array($remove)) {
- if (!empty($remove)) {
- $cpdb = captiveportal_read_db(true);
- foreach ($remove as $key) {
- if (is_array($key))
- log_error("Captive portal Array passed as unset index: " . print_r($key, true));
- else
- unset($cpdb[$key]);
- }
- } else {
- if ($locked == false)
- unlock($cpdblck);
- return; //This makes sure no record removal calls
+ $DB = captiveportal_opendb();
+ if ($DB) {
+ sqlite_exec($DB, "BEGIN");
+ if (!empty($query))
+ $cpdb = @sqlite_array_query($DB, "SELECT * FROM captiveportal {$query}", SQLITE_NUM);
+ else {
+ $response = @sqlite_unbuffered_query($DB, "SELECT * FROM captiveportal", SQLITE_NUM);
+ $cpdb = @sqlite_fetch_all($response, SQLITE_NUM);
}
+ sqlite_exec($DB, "END");
+ @sqlite_close($DB);
}
- $fd = @fopen("{$g['vardb_path']}/captiveportal_{$cpzone}.db", "w");
- if ($fd) {
- foreach ($cpdb as $cpent) {
- fwrite($fd, join(",", $cpent) . "\n");
- }
- fclose($fd);
+ if (!$cpdb)
+ $cpdb = array();
+
+ return $cpdb;
+}
+
+function captiveportal_remove_entries($remove) {
+
+ if (!is_array($remove) || empty($remove))
+ return;
+
+ $query = "DELETE FROM captiveportal WHERE sessionid in (";
+ foreach($remove as $idx => $unindex) {
+ $query .= "'{$unindex}'";
+ if ($idx < (count($remove) - 1))
+ $query .= ",";
}
- if ($locked == false)
- unlock($cpdblck);
+ $query .= ")";
+ captiveportal_write_db($query);
+}
+
+/* write captive portal DB */
+function captiveportal_write_db($queries) {
+ global $g;
+
+ if (is_array($queries))
+ $query = implode(";", $queries);
+ else
+ $query = $queries;
+
+ $DB = captiveportal_opendb();
+ if ($DB) {
+ $error_msg = "";
+ sqlite_exec($DB, "BEGIN TRANSACTION");
+ $result = @sqlite_exec($DB, $query, $error_msg);
+ if (!$result)
+ captiveportal_syslog("Trying to modify DB returned error: {$error_msg}");
+ else
+ sqlite_exec($DB, "END TRANSACTION");
+ @sqlite_close($DB);
+ return $result;
+ } else
+ return true;
}
function captiveportal_write_elements() {
@@ -1397,17 +1334,12 @@ function captiveportal_write_elements() {
if (is_array($cpcfg['element'])) {
conf_mount_rw();
foreach ($cpcfg['element'] as $data) {
- $fd = @fopen($g['captiveportal_element_path'] . '/' . $data['name'], "wb");
- if (!$fd) {
+ if (!@file_put_contents("{$g['captiveportal_element_path']}/{$data['name']}", base64_decode($data['content']))) {
printf(gettext("Error: cannot open '%s' in captiveportal_write_elements()%s"), $data['name'], "\n");
return 1;
}
- $decoded = base64_decode($data['content']);
- fwrite($fd,$decoded);
- fclose($fd);
unlink_if_exists("{$g['captiveportal_path']}/{$data['name']}");
- unlink_if_exists("{$g['captiveportal_path']}/{$data['name']}");
- mwexec("cd {$g['captiveportal_path']}/ && ln -s {$g['captiveportal_element_path']}/{$data['name']} {$data['name']}");
+ @symlink("{$g['captiveportal_element_path']}/{$data['name']}", "{$g['captiveportal_path']}/{$data['name']}");
}
conf_mount_ro();
}
@@ -1415,12 +1347,67 @@ function captiveportal_write_elements() {
return 0;
}
-function captiveportal_init_ipfw_ruleno($rulenos_start = 2000, $rulenos_range_max = 49899) {
- global $g, $cpzone;
+function captiveportal_get_next_dn_ruleno($rulenos_start = 2000, $rulenos_range_max = 64500) {
+ global $config, $g;
- @unlink("{$g['vardb_path']}/captiveportal_{$cpzone}.rules");
- $rules = array_pad(array(), $rulenos_range_max - $rulenos_start, false);
- file_put_contents("{$g['vardb_path']}/captiveportal_{$cpzone}.rules", serialize($rules));
+ $cpruleslck = lock("captiveportalrulesdn", LOCK_EX);
+ $ruleno = 0;
+ if (file_exists("{$g['vardb_path']}/captiveportaldn.rules")) {
+ $rules = unserialize(file_get_contents("{$g['vardb_path']}/captiveportaldn.rules"));
+ for ($ridx = $rulenos_start; $ridx < $rulenos_range_max; $ridx++) {
+ if ($rules[$ridx]) {
+ $ridx++;
+ continue;
+ }
+ $ruleno = $ridx;
+ $rules[$ridx] = "used";
+ $rules[++$ridx] = "used";
+ break;
+ }
+ } else {
+ $rules = array_pad(array(), $rulenos_range_max, false);
+ $rules[$rulenos_start] = "used";
+ $rules[++$rulenos_start] = "used";
+ $ruleno = $rulenos_start;
+ }
+ file_put_contents("{$g['vardb_path']}/captiveportaldn.rules", serialize($rules));
+ unlock($cpruleslck);
+
+ return $ruleno;
+}
+
+function captiveportal_free_dn_ruleno($ruleno) {
+ global $config, $g;
+
+ $cpruleslck = lock("captiveportalrulesdn", LOCK_EX);
+ if (file_exists("{$g['vardb_path']}/captiveportaldn.rules")) {
+ $rules = unserialize(file_get_contents("{$g['vardb_path']}/captiveportaldn.rules"));
+ $rules[$ruleno] = false;
+ $rules[++$ruleno] = false;
+ file_put_contents("{$g['vardb_path']}/captiveportaldn.rules", serialize($rules));
+ }
+ unlock($cpruleslck);
+}
+
+function captiveportal_get_dn_passthru_ruleno($value) {
+ global $config, $g, $cpzone;
+
+ $cpcfg = $config['captiveportal'][$cpzone];
+ if(!isset($cpcfg['enable']))
+ return NULL;
+
+ $cpruleslck = lock("captiveportalrulesdn", LOCK_EX);
+ if (file_exists("{$g['vardb_path']}/captiveportaldn.rules")) {
+ $rules = unserialize(file_get_contents("{$g['vardb_path']}/captiveportaldn.rules"));
+ $ruleno = intval(`/sbin/ipfw -x {$cpzone} show | /usr/bin/grep {$value} | /usr/bin/grep -v grep | /usr/bin/cut -d " " -f 5 | /usr/bin/head -n 1`);
+ if ($rules[$ruleno]) {
+ unlock($cpruleslck);
+ return $ruleno;
+ }
+ }
+
+ unlock($cpruleslck);
+ return NULL;
}
/*
@@ -1428,7 +1415,7 @@ function captiveportal_init_ipfw_ruleno($rulenos_start = 2000, $rulenos_range_ma
* within the range specified based on the actual logged on users
*
*/
-function captiveportal_get_next_ipfw_ruleno($rulenos_start = 2000, $rulenos_range_max = 49899) {
+function captiveportal_get_next_ipfw_ruleno($rulenos_start = 2, $rulenos_range_max = 64500) {
global $config, $g, $cpzone;
$cpcfg = $config['captiveportal'][$cpzone];
@@ -1454,8 +1441,9 @@ function captiveportal_get_next_ipfw_ruleno($rulenos_start = 2000, $rulenos_rang
break;
}
} else {
- $rules = array_pad(array(), $rulenos_range_max - $rulenos_start, false);
- $rules[2] = "used";
+ $rules = array_pad(array(), $rulenos_range_max, false);
+ $rules[$rulenos_start] = "used";
+ $rules[++$rulenos_start] = "used";
$ruleno = 2;
}
file_put_contents("{$g['vardb_path']}/captiveportal_{$cpzone}.rules", serialize($rules));
@@ -1463,7 +1451,7 @@ function captiveportal_get_next_ipfw_ruleno($rulenos_start = 2000, $rulenos_rang
return $ruleno;
}
-function captiveportal_free_ipfw_ruleno($ruleno, $usedbw = false) {
+function captiveportal_free_ipfw_ruleno($ruleno) {
global $config, $g, $cpzone;
$cpcfg = $config['captiveportal'][$cpzone];
@@ -1490,8 +1478,7 @@ function captiveportal_get_ipfw_passthru_ruleno($value) {
$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"));
- captiveportal_ipfw_set_context($cpzone);
- $ruleno = intval(`/sbin/ipfw show | /usr/bin/grep {$value} | /usr/bin/grep -v grep | /usr/bin/cut -d " " -f 1 | /usr/bin/head -n 1`);
+ $ruleno = intval(`/sbin/ipfw -x {$cpzone} show | /usr/bin/grep {$value} | /usr/bin/grep -v grep | /usr/bin/cut -d " " -f 1 | /usr/bin/head -n 1`);
if ($rules[$ruleno]) {
unlock($cpruleslck);
return $ruleno;
@@ -1514,51 +1501,41 @@ function captiveportal_get_ipfw_passthru_ruleno($value) {
*/
function getVolume($ip) {
- global $cpzone;
+ global $config, $cpzone;
+ $reverse = empty($config['captiveportal'][$cpzone]['reverseacct']) ? false : true;
$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 ;
- // Ingress
- $ipfwin = "";
- $ipfwout = "";
- $matchesin = "";
- $matchesout = "";
- captiveportal_ipfw_set_context($cpzone);
- exec("/sbin/ipfw table 1 entrystats {$ip}", $ipfwin);
- if ($ipfwin[0]) {
- $ipfwin = explode(" ", $ipfwin[0]);
- $volume['input_pkts'] = $ipfwin[2];
- $volume['input_bytes'] = $ipfwin[3];
+ $ipfw = pfSense_ipfw_getTablestats($cpzone, 1, $ip);
+ if (is_array($ipfw)) {
+ if ($reverse) {
+ $volume['output_pkts'] = $ipfw['packets'];
+ $volume['output_bytes'] = $ipfw['bytes'];
+ }
+ else {
+ $volume['input_pkts'] = $ipfw['packets'];
+ $volume['input_bytes'] = $ipfw['bytes'];
+ }
}
- exec("/sbin/ipfw table 2 entrystats {$ip}", $ipfwout);
- if ($ipfwout[0]) {
- $ipfwout = explode(" ", $ipfwout[0]);
- $volume['output_pkts'] = $ipfwout[2];
- $volume['output_bytes'] = $ipfwout[3];
+ $ipfw = pfSense_ipfw_getTablestats($cpzone, 2, $ip);
+ if (is_array($ipfw)) {
+ if ($reverse) {
+ $volume['input_pkts'] = $ipfw['packets'];
+ $volume['input_bytes'] = $ipfw['bytes'];
+ }
+ else {
+ $volume['output_pkts'] = $ipfw['packets'];
+ $volume['output_bytes'] = $ipfw['bytes'];
+ }
}
return $volume;
}
/**
- * Get the NAS-Identifier
- *
- * We will use our local hostname to make up the nas_id
- */
-function getNasID()
-{
- $nasId = "";
- exec("/bin/hostname", $nasId);
- if(!$nasId[0])
- $nasId[0] = "{$g['product_name']}";
- return $nasId[0];
-}
-
-/**
* Get the NAS-IP-Address based on the current wan address
*
* Use functions in interfaces.inc to find this out
@@ -1587,18 +1564,25 @@ function getNasIP()
function portal_ip_from_client_ip($cliip) {
global $config, $cpzone;
+ $isipv6 = is_ipaddrv6($cliip);
$interfaces = explode(",", $config['captiveportal'][$cpzone]['interface']);
foreach ($interfaces as $cpif) {
- $ip = get_interface_ip($cpif);
- $sn = get_interface_subnet($cpif);
+ if ($isipv6) {
+ $ip = get_interface_ipv6($cpif);
+ $sn = get_interface_subnetv6($cpif);
+ } else {
+ $ip = get_interface_ip($cpif);
+ $sn = get_interface_subnet($cpif);
+ }
if (ip_in_subnet($cliip, "{$ip}/{$sn}"))
return $ip;
}
- $iface = exec_command("/sbin/route -n get {$cliip} | /usr/bin/awk '/interface/ { print \$2; };'");
+ $inet = ($isipv6) ? '-inet6' : '-inet';
+ $iface = exec_command("/sbin/route -n get {$inet} {$cliip} | /usr/bin/awk '/interface/ { print \$2; };'");
$iface = trim($iface, "\n");
if (!empty($iface)) {
- $ip = find_interface_ip($iface);
+ $ip = ($isipv6) ? find_interface_ipv6($iface) : find_interface_ip($iface);
if (is_ipaddr($ip))
return $ip;
}
@@ -1616,6 +1600,32 @@ function portal_ip_from_client_ip($cliip) {
return false;
}
+function portal_hostname_from_client_ip($cliip) {
+ global $config, $cpzone;
+
+ $cpcfg = $config['captiveportal'][$cpzone];
+
+ if (isset($cpcfg['httpslogin'])) {
+ $listenporthttps = $cpcfg['listenporthttps'] ? $cpcfg['listenporthttps'] : ($cpcfg['zoneid'] + 1);
+ $ourhostname = $cpcfg['httpsname'];
+
+ if ($listenporthttps != 443)
+ $ourhostname .= ":" . $listenporthttps;
+ } else {
+ $listenporthttp = $cpcfg['listenporthttp'] ? $cpcfg['listenporthttp'] : $cpcfg['zoneid'];
+ $ifip = portal_ip_from_client_ip($cliip);
+ if (!$ifip)
+ $ourhostname = "{$config['system']['hostname']}.{$config['system']['domain']}";
+ else
+ $ourhostname = (is_ipaddrv6($ifip)) ? "[{$ifip}]" : "{$ifip}";
+
+ if ($listenporthttp != 80)
+ $ourhostname .= ":" . $listenporthttp;
+ }
+
+ return $ourhostname;
+}
+
/* functions move from index.php */
function portal_reply_page($redirurl, $type = null, $message = null, $clientmac = null, $clientip = null, $username = null, $password = null) {
@@ -1633,26 +1643,16 @@ function portal_reply_page($redirurl, $type = null, $message = null, $clientmac
$cpcfg = $config['captiveportal'][$cpzone];
/* substitute the PORTAL_REDIRURL variable */
- if ($config['captiveportal'][$cpzone]['preauthurl']) {
- $htmltext = str_replace("\$PORTAL_REDIRURL\$", "{$config['captiveportal'][$cpzone]['preauthurl']}", $htmltext);
- $htmltext = str_replace("#PORTAL_REDIRURL#", "{$config['captiveportal'][$cpzone]['preauthurl']}", $htmltext);
+ if ($cpcfg['preauthurl']) {
+ $htmltext = str_replace("\$PORTAL_REDIRURL\$", "{$cpcfg['preauthurl']}", $htmltext);
+ $htmltext = str_replace("#PORTAL_REDIRURL#", "{$cpcfg['preauthurl']}", $htmltext);
}
/* substitute other variables */
- if (isset($config['captiveportal'][$cpzone]['httpslogin'])) {
- $httpsport = $cpcfg['listenporthttps'] ? $cpcfg['listenporthttps'] : ($cpcfg['zoneid'] + 1);
- $htmltext = str_replace("\$PORTAL_ACTION\$", "https://{$config['captiveportal'][$cpzone]['httpsname']}:{$httpsport}/", $htmltext);
- $htmltext = str_replace("#PORTAL_ACTION#", "https://{$config['captiveportal'][$cpzone]['httpsname']}:{$httpsport}/", $htmltext);
- } else {
- $httpport = $cpcfg['listenporthttp'] ? $cpcfg['listenporthttp'] : $cpcfg['zoneid'];
- $ifip = portal_ip_from_client_ip($clientip);
- if (!$ifip)
- $ourhostname = $config['system']['hostname'] . ":{$httpport}";
- else
- $ourhostname = "{$ifip}:{$httpport}";
- $htmltext = str_replace("\$PORTAL_ACTION\$", "http://{$ourhostname}/", $htmltext);
- $htmltext = str_replace("#PORTAL_ACTION#", "http://{$ourhostname}/", $htmltext);
- }
+ $ourhostname = portal_hostname_from_client_ip($clientip);
+ $protocol = (isset($cpcfg['httpslogin'])) ? 'https://' : 'http://';
+ $htmltext = str_replace("\$PORTAL_ACTION\$", "{$protocol}{$ourhostname}/", $htmltext);
+ $htmltext = str_replace("#PORTAL_ACTION#", "{$protocol}{$ourhostname}/", $htmltext);
$htmltext = str_replace("\$PORTAL_ZONE\$", htmlspecialchars($cpzone), $htmltext);
$htmltext = str_replace("\$PORTAL_REDIRURL\$", htmlspecialchars($redirurl), $htmltext);
@@ -1671,75 +1671,55 @@ function portal_reply_page($redirurl, $type = null, $message = null, $clientmac
$htmltext = str_replace("#USERNAME#", htmlspecialchars($username), $htmltext);
$htmltext = str_replace("#PASSWORD#", htmlspecialchars($password), $htmltext);
- echo $htmltext;
+ echo $htmltext;
}
function portal_mac_radius($clientmac,$clientip) {
- global $config, $cpzone;
+ global $config, $cpzone;
+
+ $radmac_secret = $config['captiveportal'][$cpzone]['radmac_secret'];
- $radmac_secret = $config['captiveportal'][$cpzone]['radmac_secret'];
+ /* authentication against the radius server */
+ $username = mac_format($clientmac);
+ $auth_list = radius($username,$radmac_secret,$clientip,$clientmac,"MACHINE LOGIN");
+ if ($auth_list['auth_val'] == 2)
+ return TRUE;
- /* authentication against the radius server */
- $username = mac_format($clientmac);
- $auth_list = radius($username,$radmac_secret,$clientip,$clientmac,"MACHINE LOGIN");
- if ($auth_list['auth_val'] == 2)
- return TRUE;
- if (!empty($auth_list['url_redirection']))
- portal_reply_page($auth_list['url_redirection'], "redir");
+ if (!empty($auth_list['url_redirection']))
+ portal_reply_page($auth_list['url_redirection'], "redir");
- return FALSE;
+ return FALSE;
}
function captiveportal_reapply_attributes($cpentry, $attributes) {
global $config, $cpzone, $g;
-
+
$dwfaultbw_up = isset($config['captiveportal'][$cpzone]['bwdefaultup']) ? $config['captiveportal'][$cpzone]['bwdefaultup'] : 0;
$dwfaultbw_down = isset($config['captiveportal'][$cpzone]['bwdefaultdn']) ? $config['captiveportal'][$cpzone]['bwdefaultdn'] : 0;
- $bw_up = isset($attributes['bw_up']) ? round(intval($attributes['bw_up'])/1000, 2) : $dwfaultbw_up;
- $bw_down = isset($attributes['bw_down']) ? round(intval($attributes['bw_down'])/1000, 2) : $dwfaultbw_down;
- $bw_up_pipeno = $cpentry[1]+20000;
- $bw_down_pipeno = $cpentry[1]+20001;
-
- $commands = "";
- $commands .= "pipe {$bw_up_pipeno} config bw {$bw_up}Kbit/s queue 100\n";
- $commands .= "pipe {$bw_down_pipeno} config bw {$bw_down}Kbit/s queue 100\n";
- @file_put_contents("{$g['tmp_path']}/reattribute{$cpzone}.rule.tmp", $commands);
- captiveportal_ipfw_set_context($cpzone);
- mwexec("/sbin/ipfw -q {$g['tmp_path']}/reattribute{$cpzone}.rule.tmp");
+ $bw_up = isset($attributes['bw_up']) ? round(intval($attributes['bw_up'])/1000, 2) : $dwfaultbw_up;
+ $bw_down = isset($attributes['bw_down']) ? round(intval($attributes['bw_down'])/1000, 2) : $dwfaultbw_down;
+ $bw_up_pipeno = $cpentry[1];
+ $bw_down_pipeno = $cpentry[1]+1;
+
+ pfSense_pipe_action("pipe {$bw_up_pipeno} config bw {$bw_up}Kbit/s queue 100 buckets 16");
+ pfSense_pipe_action("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);
+ unset($bw_up_pipeno, $bw_down_pipeno, $bw_up, $bw_down);
}
-function portal_allow($clientip,$clientmac,$username,$password = null, $attributes = null, $ruleno = null, $radiusctx = null) {
-
+function portal_allow($clientip,$clientmac,$username,$password = null, $attributes = null, $pipeno = null, $radiusctx = null) {
global $redirurl, $g, $config, $type, $passthrumac, $_POST, $cpzone;
- /* See if a ruleno is passed, if not start sessions because this means there isn't one atm */
- if ($ruleno == null)
- $ruleno = captiveportal_get_next_ipfw_ruleno();
-
- /* if the pool is empty, return appropriate message and exit */
- if (is_null($ruleno)) {
- portal_reply_page($redirurl, "error", "System reached maximum login capacity");
- log_error("WARNING! Captive portal has reached maximum login capacity");
- exit;
- }
-
// Ensure we create an array if we are missing attributes
if (!is_array($attributes))
$attributes = array();
- $radiusservers = captiveportal_get_radius_servers();
+ unset($sessionid);
/* Do not allow concurrent login execution. */
$cpdblck = lock("captiveportaldb{$cpzone}", LOCK_EX);
- unset($sessionid);
-
- /* read in client database */
- $cpdb = captiveportal_read_db(true);
-
if ($attributes['voucher'])
$remaining_time = $attributes['session_timeout'];
@@ -1754,47 +1734,64 @@ function portal_allow($clientip,$clientmac,$username,$password = null, $attribut
if ($macent['mac'] == $mac['mac']) {
$macrules = "";
$ruleno = captiveportal_get_ipfw_passthru_ruleno($mac['mac']);
- if ($ruleno) {
- captiveportal_free_ipfw_ruleno($ruleno, true);
- $macrules .= "delete {$ruleno}\n";
+ $pipeno = captiveportal_get_dn_passthru_ruleno($mac['mac']);
+ if ($ruleno) {
+ captiveportal_free_ipfw_ruleno($ruleno);
+ $macrules .= "delete {$ruleno}\n";
++$ruleno;
- $macrules .= "delete {$ruleno}\n";
- }
+ $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['mac'] = $clientmac;
$config['captiveportal'][$cpzone]['passthrumac'][] = $mac;
$macrules .= captiveportal_passthrumac_configure_entry($mac);
file_put_contents("{$g['tmp_path']}/macentry_{$cpzone}.rules.tmp", $macrules);
- captiveportal_ipfw_set_context($cpzone);
- mwexec("/sbin/ipfw -q {$g['tmp_path']}/macentry_{$cpzone}.rules.tmp");
+ mwexec("/sbin/ipfw -x {$cpzone} -q {$g['tmp_path']}/macentry_{$cpzone}.rules.tmp");
$writecfg = true;
$sessionid = true;
break;
}
}
- } else {
+ } else {
portal_reply_page($redirurl, "error", "Username: {$username} is already authenticated using another MAC address.",
$clientmac, $clientip, $username, $password);
- exit;
+ unlock($cpdblck);
+ return;
}
}
}
}
+ /* read in client database */
+ $query = "WHERE ip = '{$clientip}'";
+ $tmpusername = strtolower($username);
+ if (isset($config['captiveportal'][$cpzone]['noconcurrentlogins']))
+ $query .= " OR (username != 'unauthenticated' AND lower(username) = '{$tmpusername}')";
+ $cpdb = captiveportal_read_db($query);
+
/* Snapshot the timestamp */
$allow_time = time();
+ $radiusservers = captiveportal_get_radius_servers();
+ $unsetindexes = array();
if (is_null($radiusctx))
$radiusctx = 'first';
- foreach ($cpdb as $sid => $cpentry) {
+
+ foreach ($cpdb as $cpentry) {
if (empty($cpentry[10]))
$cpentry[10] = 'first';
/* on the same ip */
if ($cpentry[2] == $clientip) {
- if (isset($config['captiveportal'][$cpzone]['nomacfilter']) || $cpentry[3] == $clientmac)
+ if (isset($config['captiveportal'][$cpzone]['nomacfilter']) || $cpentry[3] == $clientmac)
captiveportal_logportalauth($cpentry[4],$cpentry[3],$cpentry[2],"CONCURRENT LOGIN - REUSING OLD SESSION");
else
captiveportal_logportalauth($cpentry[4],$cpentry[3],$cpentry[2],"CONCURRENT LOGIN - REUSING IP {$cpentry[2]} WITH DIFFERENT MAC ADDRESS {$cpentry[3]}");
- $sessionid = $sid;
+ $sessionid = $cpentry[5];
break;
}
elseif (($attributes['voucher']) && ($username != 'unauthenticated') && ($cpentry[4] == $username)) {
@@ -1807,7 +1804,7 @@ function portal_allow($clientip,$clientmac,$username,$password = null, $attribut
/* This user was already logged in so we disconnect the old one */
captiveportal_disconnect($cpentry,$radiusservers[$cpentry[10]],13);
captiveportal_logportalauth($cpentry[4],$cpentry[3],$cpentry[2],"CONCURRENT LOGIN - TERMINATING OLD SESSION");
- unset($cpdb[$sid]);
+ $unsetindexes[] = $cpentry[5];
break;
}
elseif ((isset($config['captiveportal'][$cpzone]['noconcurrentlogins'])) && ($username != 'unauthenticated')) {
@@ -1816,11 +1813,15 @@ function portal_allow($clientip,$clientmac,$username,$password = null, $attribut
/* This user was already logged in so we disconnect the old one */
captiveportal_disconnect($cpentry,$radiusservers[$cpentry[10]],13);
captiveportal_logportalauth($cpentry[4],$cpentry[3],$cpentry[2],"CONCURRENT LOGIN - TERMINATING OLD SESSION");
- unset($cpdb[$sid]);
+ $unsetindexes[] = $cpentry[5];
break;
}
}
}
+ unset($cpdb);
+
+ if (!empty($unsetindexes))
+ captiveportal_remove_entries($unsetindexes);
if ($attributes['voucher'] && $remaining_time <= 0)
return 0; // voucher already used and no time left
@@ -1830,11 +1831,6 @@ function portal_allow($clientip,$clientmac,$username,$password = null, $attribut
$tod = gettimeofday();
$sessionid = substr(md5(mt_rand() . $tod['sec'] . $tod['usec'] . $clientip . $clientmac), 0, 16);
- $dwfaultbw_up = isset($config['captiveportal'][$cpzone]['bwdefaultup']) ? $config['captiveportal'][$cpzone]['bwdefaultup'] : 0;
- $dwfaultbw_down = isset($config['captiveportal'][$cpzone]['bwdefaultdn']) ? $config['captiveportal'][$cpzone]['bwdefaultdn'] : 0;
- $bw_up = isset($attributes['bw_up']) ? round(intval($attributes['bw_up'])/1000, 2) : $dwfaultbw_up;
- $bw_down = isset($attributes['bw_down']) ? round(intval($attributes['bw_down'])/1000, 2) : $dwfaultbw_down;
-
if ($passthrumac) {
$mac = array();
$mac['mac'] = $clientmac;
@@ -1855,45 +1851,67 @@ function portal_allow($clientip,$clientmac,$username,$password = null, $attribut
unlock($cpdblck);
$macrules = captiveportal_passthrumac_configure_entry($mac);
file_put_contents("{$g['tmp_path']}/macentry_{$cpzone}.rules.tmp", $macrules);
- captiveportal_ipfw_set_context($cpzone);
- mwexec("/sbin/ipfw -q {$g['tmp_path']}/macentry_{$cpzone}.rules.tmp");
+ mwexec("/sbin/ipfw -x {$cpzone}-q {$g['tmp_path']}/macentry_{$cpzone}.rules.tmp");
$writecfg = true;
} else {
- captiveportal_ipfw_set_context($cpzone);
+ /* See if a pipeno is passed, if not start sessions because this means there isn't one atm */
+ if (is_null($pipeno))
+ $pipeno = captiveportal_get_next_dn_ruleno();
+
+ /* if the pool is empty, return appropriate message and exit */
+ if (is_null($pipeno)) {
+ portal_reply_page($redirurl, "error", "System reached maximum login capacity");
+ log_error("WARNING! Captive portal has reached maximum login capacity");
+ unlock($cpdblck);
+ return;
+ }
+
+ $dwfaultbw_up = isset($config['captiveportal'][$cpzone]['bwdefaultup']) ? $config['captiveportal'][$cpzone]['bwdefaultup'] : 0;
+ $dwfaultbw_down = isset($config['captiveportal'][$cpzone]['bwdefaultdn']) ? $config['captiveportal'][$cpzone]['bwdefaultdn'] : 0;
+ $bw_up = isset($attributes['bw_up']) ? round(intval($attributes['bw_up'])/1000, 2) : $dwfaultbw_up;
+ $bw_down = isset($attributes['bw_down']) ? round(intval($attributes['bw_down'])/1000, 2) : $dwfaultbw_down;
- $bw_up_pipeno = $ruleno + 20000;
+ $bw_up_pipeno = $pipeno;
+ $bw_down_pipeno = $pipeno + 1;
//$bw_up /= 1000; // Scale to Kbit/s
- mwexec("/sbin/ipfw pipe {$bw_up_pipeno} config bw {$bw_up}Kbit/s queue 100");
+ pfSense_pipe_action("pipe {$bw_up_pipeno} config bw {$bw_up}Kbit/s queue 100 buckets 16");
+ pfSense_pipe_action("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']))
- mwexec("/sbin/ipfw table 1 add {$clientip} mac {$clientmac} {$bw_up_pipeno}");
+ pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ADD, 1, $clientip, $clientsn, $clientmac, $bw_up_pipeno);
else
- mwexec("/sbin/ipfw table 1 add {$clientip} {$bw_up_pipeno}");
-
- $bw_down_pipeno = $ruleno + 20001;
- //$bw_down /= 1000; // Scale to Kbit/s
- mwexec("/sbin/ipfw pipe {$bw_down_pipeno} config bw {$bw_down}Kbit/s queue 100");
+ pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ADD, 1, $clientip, $clientsn, NULL, $bw_up_pipeno);
if (!isset($config['captiveportal'][$cpzone]['nomacfilter']))
- mwexec("/sbin/ipfw table 2 add {$clientip} mac {$clientmac} {$bw_down_pipeno}");
+ pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ADD, 2, $clientip, $clientsn, $clientmac, $bw_down_pipeno);
else
- mwexec("/sbin/ipfw table 2 add {$clientip} {$bw_down_pipeno}");
+ pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_ADD, 2, $clientip, $clientsn, NULL, $bw_down_pipeno);
if ($attributes['voucher'])
$attributes['session_timeout'] = $remaining_time;
+
+ /* handle empty attributes */
+ $session_timeout = (!empty($attributes['session_timeout'])) ? $attributes['session_timeout'] : 'NULL';
+ $idle_timeout = (!empty($attributes['idle_timeout'])) ? $attributes['idle_timeout'] : 'NULL';
+ $session_terminate_time = (!empty($attributes['session_terminate_time'])) ? $attributes['session_terminate_time'] : 'NULL';
+ $interim_interval = (!empty($attributes['interim_interval'])) ? $attributes['interim_interval'] : 'NULL';
+
+ /* escape username */
+ $safe_username = sqlite_escape_string($username);
/* encode password in Base64 just in case it contains commas */
$bpassword = base64_encode($password);
- $cpdb[] = array($allow_time, $ruleno, $clientip, $clientmac, $username, $sessionid, $bpassword,
- $attributes['session_timeout'], $attributes['idle_timeout'], $attributes['session_terminate_time'], $radiusctx);
+ $insertquery = "INSERT INTO captiveportal (allow_time, pipeno, ip, mac, username, sessionid, bpassword, session_timeout, idle_timeout, session_terminate_time, interim_interval) ";
+ $insertquery .= "VALUES ({$allow_time}, {$pipeno}, '{$clientip}', '{$clientmac}', '{$safe_username}', '{$sessionid}', '{$bpassword}', ";
+ $insertquery .= "{$session_timeout}, {$idle_timeout}, {$session_terminate_time}, {$interim_interval})";
- /* rewrite information to database */
- captiveportal_write_db($cpdb, true);
+ /* store information to database */
+ captiveportal_write_db($insertquery);
unlock($cpdblck);
if (isset($config['captiveportal'][$cpzone]['radacct_enable']) && !empty($radiusservers[$radiusctx])) {
- $acct_val = RADIUS_ACCOUNTING_START($ruleno,
- $username, $sessionid, $radiusservers[$radiusctx], $clientip, $clientmac);
+ $acct_val = RADIUS_ACCOUNTING_START($pipeno, $username, $sessionid, $radiusservers[$radiusctx], $clientip, $clientmac);
if ($acct_val == 1)
captiveportal_logportalauth($username,$clientmac,$clientip,$type,"RADIUS ACCOUNTING FAILED");
}
@@ -1913,25 +1931,9 @@ function portal_allow($clientip,$clientmac,$username,$password = null, $attribut
$my_redirurl = $redirurl;
if(isset($config['captiveportal'][$cpzone]['logoutwin_enable']) && !$passthrumac) {
-
- if (isset($config['captiveportal'][$cpzone]['httpslogin'])) {
- $httpsport =
- $config['captiveportal'][$cpzone]['listenporthttps'] ?
- $config['captiveportal'][$cpzone]['listenporthttps'] :
- ($config['captiveportal'][$cpzone]['zoneid'] + 1);
- $logouturl = "https://{$config['captiveportal']['httpsname']}:{$httpsport}/";
- } else {
- $ifip = portal_ip_from_client_ip($clientip);
- $httpport =
- $config['captiveportal'][$cpzone]['listenporthttp'] ?
- $config['captiveportal'][$cpzone]['listenporthttp'] :
- $config['captiveportal'][$cpzone]['zoneid'];
- if (!$ifip)
- $ourhostname = $config['system']['hostname'] . ":{$httpport}";
- else
- $ourhostname = "{$ifip}:{$httpport}";
- $logouturl = "http://{$ourhostname}/";
- }
+ $ourhostname = portal_hostname_from_client_ip($clientip);
+ $protocol = (isset($config['captiveportal'][$cpzone]['httpslogin'])) ? 'https://' : 'http://';
+ $logouturl = "{$protocol}{$ourhostname}/";
if (isset($attributes['reply_message']))
$message = $attributes['reply_message'];
@@ -2040,4 +2042,48 @@ function captiveportal_write_usedmacs_db($usedmacs) {
unlock($cpumaclck);
}
+function captiveportal_send_server_accounting($off = false) {
+ global $cpzone, $config;
+
+ if (!isset($config['captiveportal'][$cpzone]['radacct_enable'])) {
+ return;
+ }
+ if ($off) {
+ $racct = new Auth_RADIUS_Acct_Off;
+ } else {
+ $racct = new Auth_RADIUS_Acct_On;
+ }
+ $radiusservers = captiveportal_get_radius_servers();
+ if (empty($radiusservers)) {
+ return;
+ }
+ foreach ($radiusservers['first'] as $radsrv) {
+ // Add a new server to our instance
+ $racct->addServer($radsrv['ipaddr'], $radsrv['acctport'], $radsrv['key']);
+ }
+ if (PEAR::isError($racct->start())) {
+ $retvalue['acct_val'] = 1;
+ $retvalue['error'] = $racct->getMessage();
+
+ // If we encounter an error immediately stop this function and go back
+ $racct->close();
+ return $retvalue;
+ }
+ // Send request
+ $result = $racct->send();
+ // Evaluation of the response
+ // 5 -> Accounting-Response
+ // See RFC2866 for this.
+ if (PEAR::isError($result)) {
+ $retvalue['acct_val'] = 1;
+ $retvalue['error'] = $result->getMessage();
+ } else if ($result === true) {
+ $retvalue['acct_val'] = 5 ;
+ } else {
+ $retvalue['acct_val'] = 1 ;
+ }
+
+ $racct->close();
+ return $retvalue;
+}
?>
diff --git a/etc/inc/certs.inc b/etc/inc/certs.inc
index ed1f25c..61be3d1 100644
--- a/etc/inc/certs.inc
+++ b/etc/inc/certs.inc
@@ -34,6 +34,8 @@ define("OPEN_SSL_CONF_PATH", "/etc/ssl/openssl.cnf");
require_once("functions.inc");
+$openssl_digest_algs = array("sha1", "sha224", "sha256", "sha384", "sha512");
+
function & lookup_ca($refid) {
global $config;
@@ -159,11 +161,11 @@ function ca_import(& $ca, $str, $key="", $serial=0) {
return true;
}
-function ca_create(& $ca, $keylen, $lifetime, $dn) {
+function ca_create(& $ca, $keylen, $lifetime, $dn, $digest_alg = "sha256") {
$args = array(
"x509_extensions" => "v3_ca",
- "digest_alg" => "sha1",
+ "digest_alg" => $digest_alg,
"private_key_bits" => (int)$keylen,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
"encrypt_key" => false);
@@ -193,7 +195,7 @@ function ca_create(& $ca, $keylen, $lifetime, $dn) {
return true;
}
-function ca_inter_create(& $ca, $keylen, $lifetime, $dn, $caref) {
+function ca_inter_create(& $ca, $keylen, $lifetime, $dn, $caref, $digest_alg = "sha256") {
// Create Intermediate Certificate Authority
$signing_ca =& lookup_ca($caref);
if (!$signing_ca)
@@ -206,7 +208,7 @@ function ca_inter_create(& $ca, $keylen, $lifetime, $dn, $caref) {
$args = array(
"x509_extensions" => "v3_ca",
- "digest_alg" => "sha1",
+ "digest_alg" => $digest_alg,
"private_key_bits" => (int)$keylen,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
"encrypt_key" => false);
@@ -253,7 +255,7 @@ function cert_import(& $cert, $crt_str, $key_str) {
return true;
}
-function cert_create(& $cert, $caref, $keylen, $lifetime, $dn, $type="user") {
+function cert_create(& $cert, $caref, $keylen, $lifetime, $dn, $type="user", $digest_alg = "sha256") {
$ca =& lookup_ca($caref);
if (!$ca)
@@ -280,7 +282,7 @@ function cert_create(& $cert, $caref, $keylen, $lifetime, $dn, $type="user") {
$args = array(
"x509_extensions" => $cert_type,
- "digest_alg" => "sha1",
+ "digest_alg" => $digest_alg,
"private_key_bits" => (int)$keylen,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
"encrypt_key" => false);
@@ -312,11 +314,11 @@ function cert_create(& $cert, $caref, $keylen, $lifetime, $dn, $type="user") {
return true;
}
-function csr_generate(& $cert, $keylen, $dn) {
+function csr_generate(& $cert, $keylen, $dn, $digest_alg = "sha256") {
$args = array(
"x509_extensions" => "v3_req",
- "digest_alg" => "sha1",
+ "digest_alg" => $digest_alg,
"private_key_bits" => (int)$keylen,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
"encrypt_key" => false);
@@ -469,6 +471,17 @@ function cert_get_purpose($str_crt, $decode = true) {
return $purpose;
}
+function cert_get_dates($str_crt, $decode = true) {
+ if ($decode)
+ $str_crt = base64_decode($str_crt);
+ $crt_details = openssl_x509_parse($str_crt);
+ if ($crt_details['validFrom_time_t'] > 0)
+ $start = date('r', $crt_details['validFrom_time_t']);
+ if ($crt_details['validTo_time_t'] > 0)
+ $end = date('r', $crt_details['validTo_time_t']);
+ return array($start, $end);
+}
+
function prv_get_modulus($str_crt, $decode = true){
return cert_get_modulus($str_crt, $decode, "prv");
}
diff --git a/etc/inc/cmd_chain.inc b/etc/inc/cmd_chain.inc
deleted file mode 100644
index 4c1e69e..0000000
--- a/etc/inc/cmd_chain.inc
+++ /dev/null
@@ -1,132 +0,0 @@
-<?php
-/* $Id$ */
-/*
- cmd_chain.inc
- Part of pfSense
- Copyright (C) 2008 Scott Ullrich
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
- pfSense_MODULE: utils
-*/
-
-/*
- * HANDY FOR STAND ALONE DEBUGGING OF CLASS.
- *
-
- function log_error($text) {
- echo $text . "\n";
- }
-
-*/
-
-/*
- * CmdCHAIN allows a chaining of commands into one call.
- * If debugging is enabled verbose logging is applied.
- * During the command(s) execution if it fails the result
- * will be reported to syslog so that the problem can be reported.
- */
-Class CmdCHAIN {
-
- var $cmd_chain_array = array();
- var $is_debugging;
- var $halt_on_errors = true;
-
- /* clear() erases the current cmdchain */
- function clear() {
- unset($cmd_chain_array);
- $this->cmd_chain_array = array();
- }
-
- /* enables log_error() of each command we run */
- function setdebug() {
- $this->is_debugging = true;
- }
-
- /* no halt execution of CmdCHAIN if there is a failure */
- function nohaltonerror() {
- $this->halt_on_errors = false;
- }
-
- /* halts execution of CmdCHAIN if there is a failure */
- function sethaltonerror() {
- $this->halt_on_errors = true;
- }
-
- /* adds a command to the CmdCHAIN */
- function add($cmd_title = "", $command = "", $ignore_return_text = false) {
- if(!$cmd_title)
- return;
- if(!$command)
- return;
- $temp = array();
- $temp['cmd_title'] = $cmd_title;
- $temp['command'] = $command;
- if($ignore_return_text)
- $temp['ignore_return_text'] = true;
- else
- $temp['ignore_return_text'] = false;
- $this->cmd_chain_array[] = $temp; // add array to class
- return array();
- }
-
- /* executes the CmdCHAIN one command at a time */
- function execute() {
- foreach($this->cmd_chain_array as $cmd) {
- $cmd_title = $cmd['cmd_title'];
- $command = $cmd['command'];
- $ignore_return_text = $cmd['ignore_return_text'];
- // Should we perform verbose debugging?
- if($this->is_debugging == true) {
- log_error(sprintf(gettext('CmdCHAIN is executing -> %1$s - %2$s'), $cmd_title, $command));
- usleep(100); // give network stack time to deliver network syslog message
- }
- // Execute command
- $status = exec($command);
- if($this->ignore_return_text == true)
- continue;
- if(intval($status) <> 0) {
- log_error(sprintf(gettext('%1$s failed with return code -> %2$s. The command was %3$s'), $cmd_title, $status, $command));
- if($this->halt_on_errors == true)
- return(sprintf(gettext('%1$s failed with return code -> %2$s. The command was %3$s'), $cmd_title, $status, $command));
- }
- }
- return;
- }
-}
-
-/*
- * example usage:
- *
-
-$cmdchain = new CmdCHAIN();
-$cmdchain->add("grab freebsd version", "uname -a", false);
-$cmdchain->setdebug(); // optional for verbose logging
-$cmdchain->nohaltonerror(); // tells cmdchain to keep processing commands if any of them fail
-$cmdchain->execute();
-
-$cmdchain->clear(); // clears the previous added entries
-
-*/
-
-?>
diff --git a/etc/inc/config.console.inc b/etc/inc/config.console.inc
index fed3948..f7494db 100644
--- a/etc/inc/config.console.inc
+++ b/etc/inc/config.console.inc
@@ -51,7 +51,7 @@ function set_networking_interfaces_ports() {
$fp = fopen('php://stdin', 'r');
$memory = get_memory();
- $avail = $memory[0];
+ $avail = $memory[1];
if($avail < $g['minimum_ram_warning']) {
echo "\n\n\n";
diff --git a/etc/inc/config.lib.inc b/etc/inc/config.lib.inc
index dc57b41..bbd6fec 100644
--- a/etc/inc/config.lib.inc
+++ b/etc/inc/config.lib.inc
@@ -497,30 +497,25 @@ function write_config($desc="Unknown", $backup = true) {
log_error("WARNING! Configuration written on bootup. This can cause stray openvpn and load balancing items in config.xml");
*/
- if (!empty($_SESSION['Username']) && ($_SESSION['Username'] != "admin")) {
- $user = getUserEntry($_SESSION['Username']);
- if (is_array($user) && userHasPrivilege($user, "user-config-readonly"))
- return false;
+ if (!empty($_SERVER['REMOTE_ADDR'])) {
+ if (!session_id())
+ @session_start();
+ if (!empty($_SESSION['Username']) && ($_SESSION['Username'] != "admin")) {
+ $user = getUserEntry($_SESSION['Username']);
+ if (is_array($user) && userHasPrivilege($user, "user-config-readonly")) {
+ session_commit();
+ return false;
+ }
+ }
}
- $username = empty($_SESSION["Username"]) ? "(system)" : $_SESSION['Username'];
- if (!empty($_SERVER['REMOTE_ADDR']))
- $username .= '@' . $_SERVER['REMOTE_ADDR'];
+
+ if (!isset($argc))
+ session_commit();
if($backup)
backup_config();
- if (!is_array($config['revision']))
- $config['revision'] = array();
-
- if (time() > mktime(0, 0, 0, 9, 1, 2004)) /* make sure the clock settings are plausible */
- $config['revision']['time'] = time();
-
- /* Log the running script so it's not entirely unlogged what changed */
- if ($desc == "Unknown")
- $desc = sprintf(gettext("%s made unknown change"), $_SERVER['SCRIPT_NAME']);
-
- $config['revision']['description'] = "{$username}: " . $desc;
- $config['revision']['username'] = $username;
+ $config['revision'] = make_config_revision_entry($desc);
conf_mount_rw();
$lockkey = lock('config', LOCK_EX);
@@ -877,4 +872,39 @@ function set_device_perms() {
}
}
+function get_config_user() {
+ if (empty($_SESSION["Username"])) {
+ if (empty($_ENV['USER']) || $_ENV['USER'] == "root")
+ $username = "(system)";
+ else
+ $username = $_ENV['USER'];
+ } else
+ $username = $_SESSION["Username"];
+
+ if (!empty($_SERVER['REMOTE_ADDR']))
+ $username .= '@' . $_SERVER['REMOTE_ADDR'];
+
+ return $username;
+}
+
+function make_config_revision_entry($desc = null, $override_user = null) {
+ if (empty($override_user))
+ $username = get_config_user();
+ else
+ $username = $override_user;
+
+ $revision = array();
+
+ if (time() > mktime(0, 0, 0, 9, 1, 2004)) /* make sure the clock settings are plausible */
+ $revision['time'] = time();
+
+ /* Log the running script so it's not entirely unlogged what changed */
+ if ($desc == "Unknown")
+ $desc = sprintf(gettext("%s made unknown change"), $_SERVER['SCRIPT_NAME']);
+ if (!empty($desc))
+ $revision['description'] = "{$username}: " . $desc;
+ $revision['username'] = $username;
+ return $revision;
+}
+
?>
diff --git a/etc/inc/crypt.inc b/etc/inc/crypt.inc
index 8515c84..36b8ea2 100644
--- a/etc/inc/crypt.inc
+++ b/etc/inc/crypt.inc
@@ -26,7 +26,7 @@
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
- pfSense_BUILDER_BINARIES: /usr/bin/openssl
+ pfSense_BUILDER_BINARIES: /usr/local/bin/openssl
pfSense_MODULE: crypto
DISABLE_PHP_LINT_CHECKING
@@ -35,7 +35,7 @@
function crypt_data($val, $pass, $opt) {
$file = tempnam("/tmp", "php-encrypt");
file_put_contents("{$file}.dec", $val);
- exec("/usr/bin/openssl enc {$opt} -aes-256-cbc -in {$file}.dec -out {$file}.enc -k " . escapeshellarg($pass));
+ exec("/usr/local/bin/openssl enc {$opt} -aes-256-cbc -in {$file}.dec -out {$file}.enc -k " . escapeshellarg($pass));
if (file_exists("{$file}.enc"))
$result = file_get_contents("{$file}.enc");
else {
diff --git a/etc/inc/dyndns.class b/etc/inc/dyndns.class
index caf8770..1b7196d 100644
--- a/etc/inc/dyndns.class
+++ b/etc/inc/dyndns.class
@@ -96,6 +96,10 @@
var $_dnsResultMatch;
var $_dnsRequestIf;
var $_dnsRequestIfIP;
+ var $_dnsVerboseLog;
+ var $_dnsMaxCacheAgeDays;
+ var $_dnsDummyUpdateDone;
+ var $_forceUpdateNeeded;
/*
* Public Constructor Function (added 12 July 05) [beta]
@@ -110,14 +114,16 @@
$dnsWildcard = 'OFF', $dnsMX = '', $dnsIf = '', $dnsBackMX = '',
$dnsServer = '', $dnsPort = '', $dnsUpdateURL = '', $forceUpdate = false,
$dnsZoneID ='', $dnsTTL='', $dnsResultMatch = '', $dnsRequestIf = '',
- $dnsID = '') {
+ $dnsID = '', $dnsVerboseLog = false) {
global $config, $g;
$this->_cacheFile = "{$g['conf_path']}/dyndns_{$dnsIf}{$dnsService}" . escapeshellarg($dnsHost) . "{$dnsID}.cache";
$this->_debugFile = "{$g['varetc_path']}/dyndns_{$dnsIf}{$dnsService}" . escapeshellarg($dnsHost) . "{$dnsID}.debug";
- log_error("DynDns: updatedns() starting");
+ $this->_dnsVerboseLog = $dnsVerboseLog;
+ if ($this->_dnsVerboseLog)
+ log_error("DynDns: updatedns() starting");
$dyndnslck = lock("DDNS".$dnsID, LOCK_EX);
@@ -151,17 +157,21 @@
$this->_dnsPort = $dnsPort;
$this->_dnsWildcard = $dnsWildcard;
$this->_dnsMX = $dnsMX;
- $this->_dnsZoneID = $dnsZoneID;
- $this->_dnsTTL = $dnsTTL;
+ $this->_dnsZoneID = $dnsZoneID;
+ $this->_dnsTTL = $dnsTTL;
$this->_if = get_failover_interface($dnsIf);
$this->_checkIP();
$this->_dnsUpdateURL = $dnsUpdateURL;
$this->_dnsResultMatch = $dnsResultMatch;
$this->_dnsRequestIf = get_failover_interface($dnsRequestIf);
- log_error("DynDNS ({$this->_dnsHost}): running get_failover_interface for {$dnsRequestIf}. found {$this->_dnsRequestIf}");
+ if ($this->_dnsVerboseLog)
+ log_error("DynDNS ({$this->_dnsHost}): running get_failover_interface for {$dnsRequestIf}. found {$this->_dnsRequestIf}");
$this->_dnsRequestIfIP = get_interface_ip($dnsRequestIf);
-
- // Ensure that we where able to lookup the IP
+ $this->_dnsMaxCacheAgeDays = 25;
+ $this->_dnsDummyUpdateDone = false;
+ $this->_forceUpdateNeeded = $forceUpdate;
+
+ // Ensure that we were able to lookup the IP
if(!is_ipaddr($this->_dnsIP)) {
log_error("DynDNS ({$this->_dnsHost}) There was an error trying to determine the public IP for interface - {$dnsIf}({$this->_if}). Probably interface is not a WAN interface.");
unlock($dyndnslck);
@@ -180,6 +190,7 @@
case 'dyndns-custom':
case 'dhs':
case 'noip':
+ case 'noip-free':
case 'easydns':
case 'hn':
case 'zoneedit':
@@ -196,7 +207,15 @@
case 'selfhost':
case 'he-net-tunnelbroker':
case 'route53':
- $this->_update();
+ $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.
+ // Some providers (e.g. No-IP free accounts) need to have at least 1 address change every month.
+ // If the address has not changed recently, or the user did "Force Update", then the code does
+ // a dummy address change for providers like this.
+ sleep(10);
+ $this->_update();
+ }
break;
default:
$this->_error(6);
@@ -213,7 +232,8 @@
*/
function _update() {
- log_error("DynDNS ({$this->_dnsHost}): DynDns _update() starting.");
+ if ($this->_dnsVerboseLog)
+ log_error("DynDNS ({$this->_dnsHost}): DynDns _update() starting.");
if ($this->_dnsService != 'ods' and $this->_dnsService != 'route53 ') {
$ch = curl_init();
@@ -229,7 +249,8 @@
case 'dyndns-static':
case 'dyndns-custom':
$needsIP = FALSE;
- //log_error("DynDNS ({$this->_dnsHost}) DynDns _update() starting. Dynamic");
+ if ($this->_dnsVerboseLog)
+ log_error("DynDNS: ({$this->_dnsHost}) DNS update() starting.");
if (isset($this->_dnsWildcard) && $this->_dnsWildcard != "OFF") $this->_dnsWildcard = "ON";
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_USERPWD, $this->_dnsUser.':'.$this->_dnsPass);
@@ -269,6 +290,7 @@
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
break;
case 'noip':
+ case 'noip-free':
$needsIP = TRUE;
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$server = "http://dynupdate.no-ip.com/ducupdate.php";
@@ -277,7 +299,17 @@
$server = $this->_dnsServer;
if($this->_dnsPort)
$port = ":" . $this->_dnsPort;
- curl_setopt($ch, CURLOPT_URL, $server . $port . '?username=' . urlencode($this->_dnsUser) . '&pass=' . urlencode($this->_dnsPass) . '&hostname=' . $this->_dnsHost.'&ip=' . $this->_dnsIP);
+ if(($this->_dnsService == "noip-free") &&
+ ($this->_forceUpdateNeeded == true) &&
+ ($this->_dnsDummyUpdateDone == false)) {
+ // Update the IP to a dummy value to force No-IP free accounts to see a change.
+ $iptoset = "192.168.1.1";
+ $this->_dnsDummyUpdateDone = true;
+ log_error("DynDNS ({$this->_dnsHost}): Processing dummy update on No-IP free account. IP temporarily set to " . $iptoset);
+ } else {
+ $iptoset = $this->_dnsIP;
+ }
+ curl_setopt($ch, CURLOPT_URL, $server . $port . '?username=' . urlencode($this->_dnsUser) . '&pass=' . urlencode($this->_dnsPass) . '&hostname=' . $this->_dnsHost.'&ip=' . $iptoset);
break;
case 'easydns':
$needsIP = TRUE;
@@ -402,7 +434,8 @@
https://username:password@updates.dnsomatic.com/nic/update?hostname=yourhostname&myip=ipaddress&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG
*/
$needsIP = FALSE;
- log_error("DNS-O-Matic: DNS update() starting.");
+ if ($this->_dnsVerboseLog)
+ log_error("DNS-O-Matic: DNS update() starting.");
if (isset($this->_dnsWildcard) && $this->_dnsWildcard != "OFF") $this->_dnsWildcard = "ON";
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_USERPWD, $this->_dnsUser.':'.$this->_dnsPass);
@@ -418,7 +451,8 @@
https://dynamicdns.park-your-domain.com/update?host=[host_name]&domain=[domain.com]&password=[domain_password]&ip=[your_ip]
*/
$needsIP = FALSE;
- log_error("Namecheap ({$this->_dnsHost}): DNS update() starting.");
+ if ($this->_dnsVerboseLog)
+ log_error("Namecheap ({$this->_dnsHost}): DNS update() starting.");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$dparts = explode(".", trim($this->_dnsHost));
$domain_part_count = ($dparts[count($dparts)-1] == "uk") ? 3 : 2;
@@ -431,15 +465,17 @@
break;
case 'he-net':
$needsIP = FALSE;
- log_error("HE.net ({$this->_dnsHost}): DNS update() starting.");
+ if ($this->_dnsVerboseLog)
+ log_error("HE.net ({$this->_dnsHost}): DNS update() starting.");
$server = "https://dyn.dns.he.net/nic/update?";
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
- curl_setopt($ch, CURLOPT_USERPWD, $this->_dnsHost . ':' . $this->_dnsPass);
- curl_setopt($ch, CURLOPT_URL, $server . 'hostname=' . $this->_dnsHost);
+ curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
+ curl_setopt($ch, CURLOPT_URL, $server . 'hostname=' . $this->_dnsHost . '&password=' . $this->_dnsPass . '&myip=' . $this->_dnsIP);
break;
case 'he-net-tunnelbroker':
$needsIP = FALSE;
- log_error("HE.net Tunnelbroker: DNS update() starting.");
+ if ($this->_dnsVerboseLog)
+ log_error("HE.net Tunnelbroker: DNS update() starting.");
$server = "https://ipv4.tunnelbroker.net/ipv4_end.php?";
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_USERPWD, $this->_dnsUser . ':' . $this->_dnsPass);
@@ -447,7 +483,8 @@
break;
case 'selfhost':
$needsIP = FALSE;
- //log_error("SelfHost: DNS update() starting.");
+ if ($this->_dnsVerboseLog)
+ log_error("SelfHost: DNS update() starting.");
if (isset($this->_dnsWildcard) && $this->_dnsWildcard != "OFF") $this->_dnsWildcard = "ON";
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_USERPWD, $this->_dnsUser.':'.$this->_dnsPass);
@@ -459,70 +496,74 @@
$port = ":" . $this->_dnsPort;
curl_setopt($ch, CURLOPT_URL, $server .$port . '?system=dyndns&hostname=' . $this->_dnsHost . '&myip=' . $this->_dnsIP . '&wildcard='.$this->_dnsWildcard . '&mx=' . $this->_dnsMX . '&backmx=NO');
break;
- case 'route53':
- log_error("Route53 ({$this->_dnsHost}): DNS update() starting.");
-
- /* Setting Variables */
- $hostname = "{$this->_dnsHost}.";
- $ZoneID = $this->_dnsZoneID;
- $AccessKeyId=$this->_dnsUser;
- $SecretAccessKey=$this->_dnsPass;
- $NewIP=$this->_dnsIP;
- $NewTTL=$this->_dnsTTL;
+ case 'route53':
+ if ($this->_dnsVerboseLog)
+ log_error("Route53 ({$this->_dnsHost}): DNS update() starting.");
+
+ /* Setting Variables */
+ $hostname = "{$this->_dnsHost}.";
+ $ZoneID = $this->_dnsZoneID;
+ $AccessKeyId=$this->_dnsUser;
+ $SecretAccessKey=$this->_dnsPass;
+ $NewIP=$this->_dnsIP;
+ $NewTTL=$this->_dnsTTL;
- /* Include Route 53 Library Class */
- require_once('/etc/inc/r53.class');
+ /* Include Route 53 Library Class */
+ require_once('/etc/inc/r53.class');
- /* Set Amazon AWS Credentials for this record */
- $r53 = new Route53($AccessKeyId, $SecretAccessKey);
+ /* Set Amazon AWS Credentials for this record */
+ $r53 = new Route53($AccessKeyId, $SecretAccessKey);
- /* Function to find old values of records in Route 53 */
- if(!function_exists('Searchrecords')) {
- function SearchRecords($records, $name) {
- $result = array();
- foreach($records as $record) {
- if(strtolower($record['Name']) == strtolower($name)) {
- $result [] = $record;
- }
- }
- return ($result) ? $result : false;
- }}
+ /* Function to find old values of records in Route 53 */
+ if(!function_exists('Searchrecords')) {
+ function SearchRecords($records, $name) {
+ $result = array();
+ foreach($records as $record) {
+ if(strtolower($record['Name']) == strtolower($name)) {
+ $result [] = $record;
+ }
+ }
+ return ($result) ? $result : false;
+ }
+ }
- $records = $r53->listResourceRecordSets("/hostedzone/$ZoneID");
+ $records = $r53->listResourceRecordSets("/hostedzone/$ZoneID");
- /* Get IP for your hostname in Route 53 */
- if(false !== ($a_result = SearchRecords($records['ResourceRecordSets'], "$hostname"))) {
- $OldTTL=$a_result[0][TTL];
- $OldIP=$a_result[0][ResourceRecords][0];
- } else {
- $OldIP="";
- }
+ /* Get IP for your hostname in Route 53 */
+ if(false !== ($a_result = SearchRecords($records['ResourceRecordSets'], "$hostname"))) {
+ $OldTTL=$a_result[0][TTL];
+ $OldIP=$a_result[0][ResourceRecords][0];
+ } else {
+ $OldIP="";
+ }
- /* Check if we need update DNS Record */
- if ($OldIP !== $NewIP) {
- if(!empty($OldIP)) {
- /* Your Hostname already exists, deleting and creating it again */
- $changes = array();
- $changes[] = $r53->prepareChange(DELETE, $hostname, A, $OldTTL, $OldIP);
- $changes[] = $r53->prepareChange(CREATE, $hostname, A, $NewTTL, $NewIP);
- $result = $r53->changeResourceRecordSets("/hostedzone/$ZoneID", $changes);
- } else {
- /* Your Hostname does not exist yet, creating it */
- $changes = $r53->prepareChange(CREATE, $hostname, A, $NewTTL, $NewIP);
- $result = $r53->changeResourceRecordSets("/hostedzone/$ZoneID", $changes);
- }
- }
- $this->_checkStatus(0, $result);
- break;
+ /* Check if we need to update DNS Record */
+ if ($OldIP !== $NewIP) {
+ if(!empty($OldIP)) {
+ /* Your Hostname already exists, deleting and creating it again */
+ $changes = array();
+ $changes[] = $r53->prepareChange(DELETE, $hostname, A, $OldTTL, $OldIP);
+ $changes[] = $r53->prepareChange(CREATE, $hostname, A, $NewTTL, $NewIP);
+ $result = $r53->changeResourceRecordSets("/hostedzone/$ZoneID", $changes);
+ } else {
+ /* Your Hostname does not exist yet, creating it */
+ $changes = $r53->prepareChange(CREATE, $hostname, A, $NewTTL, $NewIP);
+ $result = $r53->changeResourceRecordSets("/hostedzone/$ZoneID", $changes);
+ }
+ }
+ $this->_checkStatus(0, $result);
+ break;
case 'custom':
- log_error("Custom DDNS ({$this->_dnsHost}): DNS update() starting.");
+ if ($this->_dnsVerboseLog)
+ log_error("Custom DDNS ({$this->_dnsHost}): DNS update() starting.");
if (strstr($this->dnsUpdateURL, "%IP%")) {$needsIP = TRUE;} else {$needsIP = FALSE;}
if ($this->_dnsUser != '') {
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "{$this->_dnsUser}:{$this->_dnsPass}");
}
$server = str_replace("%IP%", $this->_dnsIP, $this->_dnsUpdateURL);
- log_error("Sending request to: ".$server);
+ if ($this->_dnsVerboseLog)
+ log_error("Sending request to: ".$server);
curl_setopt($ch, CURLOPT_URL, $server);
break;
default:
@@ -540,8 +581,10 @@
* Retrieve Update Status
*/
function _checkStatus($ch, $data) {
- log_error("DynDNS ({$this->_dnsHost}): DynDns _checkStatus() starting.");
- log_error("DynDNS ({$this->_dnsHost}): Current Service: {$this->_dnsService}");
+ if ($this->_dnsVerboseLog) {
+ log_error("DynDNS ({$this->_dnsHost}): DynDns _checkStatus() starting.");
+ log_error("DynDNS ({$this->_dnsHost}): Current Service: {$this->_dnsService}");
+ }
$successful_update = false;
if ($this->_dnsService != 'ods' and $this->_dnsService != 'route53' && @curl_error($ch)) {
$status = "Curl error occurred: " . curl_error($ch);
@@ -626,6 +669,7 @@
case 'dhs':
break;
case 'noip':
+ case 'noip-free':
list($ip,$code) = explode(":",$data);
switch ($code) {
case 0:
@@ -695,7 +739,7 @@
} else if (preg_match('/NOSERVICE/i', $data)) {
$status = "phpDynDNS ({$this->_dnsHost}): (Error) No Service: Dynamic DNS Service has been disabled for this domain.";
} else if (preg_match('/ILLEGAL INPUT/i', $data)) {
- $status = "phpDynDNS ({$this->_dnsHost}): (Error) Illegal Input: Self-Explantory";
+ $status = "phpDynDNS ({$this->_dnsHost}): (Error) Illegal Input: Self-Explanatory";
} else if (preg_match('/TOOSOON/i', $data)) {
$status = "phpDynDNS ({$this->_dnsHost}): (Error) Too Soon: Not Enough Time Has Elapsed Since Last Update";
} else if (preg_match('/NOERROR/i', $data)) {
@@ -777,8 +821,8 @@
$successful_update = true;
} else {
$status = "phpDynDNS ({$this->_dnsHost}): (Unknown Response)";
- log_error("phpDynDNS ({$this->_dnsHost}): PAYLOAD: {$data}");
- $this->_debug($data);
+ log_error("phpDynDNS ({$this->_dnsHost}): PAYLOAD: {$data}");
+ $this->_debug($data);
}
break;
case 'loopia':
@@ -817,26 +861,26 @@
break;
case 'staticcling':
if (preg_match("/invalid ip/i", $data)) {
- $status = "phpDynDNS ({$this->_dnsHost}): (Error) Bad Request - The IP provided was invalid.";
+ $status = "phpDynDNS ({$this->_dnsHost}): (Error) Bad Request - The IP provided was invalid.";
} else if (preg_match('/required info missing/i', $data)) {
- $status = "phpDynDNS ({$this->_dnsHost}): (Error) Bad Request - Required parameters were not provided.";
+ $status = "phpDynDNS ({$this->_dnsHost}): (Error) Bad Request - Required parameters were not provided.";
} else if (preg_match('/invalid characters/i', $data)) {
- $status = "phpDynDNS ({$this->_dnsHost}): (Error) Bad Request - Illegal characters in either the username or the password.";
+ $status = "phpDynDNS ({$this->_dnsHost}): (Error) Bad Request - Illegal characters in either the username or the password.";
} else if (preg_match('/bad password/i', $data)) {
- $status = "phpDynDNS ({$this->_dnsHost}): (Error) Invalid password.";
+ $status = "phpDynDNS ({$this->_dnsHost}): (Error) Invalid password.";
} else if (preg_match('/account locked/i', $data)) {
- $status = "phpDynDNS ({$this->_dnsHost}): (Error) This account has been administratively locked.";
+ $status = "phpDynDNS ({$this->_dnsHost}): (Error) This account has been administratively locked.";
} else if (preg_match('/update too frequent/i', $data)) {
- $status = "phpDynDNS ({$this->_dnsHost}): (Error) Updating too frequently.";
+ $status = "phpDynDNS ({$this->_dnsHost}): (Error) Updating too frequently.";
} else if (preg_match('/DB error/i', $data)) {
- $status = "phpDynDNS ({$this->_dnsHost}): (Error) Server side error.";
+ $status = "phpDynDNS ({$this->_dnsHost}): (Error) Server side error.";
} else if (preg_match('/success/i', $data)) {
- $status = "phpDynDNS ({$this->_dnsHost}): (Success) IP Address Updated Successfully!";
- $successful_update = true;
+ $status = "phpDynDNS ({$this->_dnsHost}): (Success) IP Address Updated Successfully!";
+ $successful_update = true;
} else {
- $status = "phpDynDNS ({$this->_dnsHost}): (Unknown Response)";
- log_error("phpDynDNS ({$this->_dnsHost}): PAYLOAD: {$data}");
- $this->_debug($data);
+ $status = "phpDynDNS ({$this->_dnsHost}): (Unknown Response)";
+ log_error("phpDynDNS ({$this->_dnsHost}): PAYLOAD: {$data}");
+ $this->_debug($data);
}
break;
case 'namecheap':
@@ -861,21 +905,21 @@
case 'he-net':
if (preg_match("/badip/i", $data)) {
- $status = "phpDynDNS: (Error) Bad Request - The IP provided was invalid.";
+ $status = "phpDynDNS: (Error) Bad Request - The IP provided was invalid.";
} else if (preg_match('/nohost/i', $data)) {
- $status = "phpDynDNS: (Error) Bad Request - A hostname was not provided.";
+ $status = "phpDynDNS: (Error) Bad Request - A hostname was not provided.";
} else if (preg_match('/badauth/i', $data)) {
- $status = "phpDynDNS: (Error) Invalid username or password.";
+ $status = "phpDynDNS: (Error) Invalid username or password.";
} else if (preg_match('/good/i', $data)) {
- $status = "phpDynDNS: (Success) IP Address Updated Successfully!";
- $successful_update = true;
+ $status = "phpDynDNS: (Success) IP Address Updated Successfully!";
+ $successful_update = true;
} else if (preg_match('/nochg/i', $data)) {
- $status = "phpDynDNS: (Success) No Change In IP Address.";
- $successful_update = true;
+ $status = "phpDynDNS: (Success) No Change In IP Address.";
+ $successful_update = true;
} else {
- $status = "phpDynDNS: (Unknown Response)";
- log_error("phpDynDNS: PAYLOAD: {$data}");
- $this->_debug($data);
+ $status = "phpDynDNS: (Unknown Response)";
+ log_error("phpDynDNS: PAYLOAD: {$data}");
+ $this->_debug($data);
}
break;
case 'he-net-tunnelbroker':
@@ -888,21 +932,21 @@
+OK: Tunnel endpoint updated to: x.x.x.x
*/
if (preg_match("/Missing parameter/i", $data)) {
- $status = "phpDynDNS: (Error) Bad Request - Missing/Invalid Parameters.";
+ $status = "phpDynDNS: (Error) Bad Request - Missing/Invalid Parameters.";
} else if (preg_match('/Tunnel not found/i', $data)) {
- $status = "phpDynDNS: (Error) Bad Request - Invalid Tunnel ID.";
+ $status = "phpDynDNS: (Error) Bad Request - Invalid Tunnel ID.";
} else if (preg_match('/Invalid API key or password/i', $data)) {
- $status = "phpDynDNS: (Error) Invalid username or password.";
+ $status = "phpDynDNS: (Error) Invalid username or password.";
} else if (preg_match('/OK:/i', $data)) {
- $status = "phpDynDNS: (Success) IP Address Updated Successfully!";
- $successful_update = true;
+ $status = "phpDynDNS: (Success) IP Address Updated Successfully!";
+ $successful_update = true;
} else if (preg_match('/This tunnel is already associated with this IP address/i', $data)) {
- $status = "phpDynDNS: (Success) No Change In IP Address.";
- $successful_update = true;
+ $status = "phpDynDNS: (Success) No Change In IP Address.";
+ $successful_update = true;
} else {
- $status = "phpDynDNS: (Unknown Response)";
- log_error("phpDynDNS: PAYLOAD: {$data}");
- $this->_debug($data);
+ $status = "phpDynDNS: (Unknown Response)";
+ log_error("phpDynDNS: PAYLOAD: {$data}");
+ $this->_debug($data);
}
break;
case 'selfhost':
@@ -922,9 +966,9 @@
$this->_debug($data);
}
break;
- case 'route53':
- $successful_update = true;
- break;
+ case 'route53':
+ $successful_update = true;
+ break;
case 'custom':
$successful_update = false;
if ($this->_dnsResultMatch == "") {
@@ -940,9 +984,9 @@
unset ($matches);
}
if ($successful_update == true)
- $status = "phpDynDNS: (Success) IP Address Updated Successfully!";
+ $status = "phpDynDNS: (Success) IP Address Updated Successfully!";
else
- $status = "phpDynDNS: (Error) Result did not match.";
+ $status = "phpDynDNS: (Error) Result did not match.";
break;
}
@@ -989,14 +1033,14 @@
case 7:
$error = 'phpDynDNS: (ERROR!) No Update URL Provided.';
break;
- case 8:
- $status = "Route 53: (Error) Invalid ZoneID";
+ case 8:
+ $status = "Route 53: (Error) Invalid ZoneID";
break;
- case 9:
- $status = "Route 53: (Error) Invalid TTL";
- break;
+ case 9:
+ $status = "Route 53: (Error) Invalid TTL";
+ break;
case 10:
- $error = 'phpDynDNS: No change in my IP address and/or 25 days has not passed. Not updating dynamic DNS entry.';
+ $error = "phpDynDNS ({$this->_dnsHost}): No change in my IP address and/or " . $this->_dnsMaxCacheAgeDays . " days has not passed. Not updating dynamic DNS entry.";
break;
default:
$error = "phpDynDNS: (ERROR!) Unknown Response.";
@@ -1044,12 +1088,11 @@
$initial = true;
$log_error .= "No Cached IP found.";
}
- log_error($log_error);
+ if ($this->_dnsVerboseLog)
+ log_error($log_error);
- /* use 2419200 for dyndns, dhs, easydns, noip, hn
- * zoneedit, dyns, ods
- */
- $time = '2160000';
+ // Convert seconds = days * hr/day * min/hr * sec/min
+ $maxCacheAgeSecs = $this->_dnsMaxCacheAgeDays * 24 * 60 * 60;
$needs_updating = FALSE;
/* lets determine if the item needs updating */
@@ -1058,10 +1101,11 @@
$update_reason = "DynDns: cacheIP != wan_ip. Updating. ";
$update_reason .= "Cached IP: {$cacheIP} WAN IP: {$wan_ip} ";
}
- if (($currentTime - $cacheTime) > $time ) {
+ if (($currentTime - $cacheTime) > $maxCacheAgeSecs) {
$needs_updating = true;
- $update_reason = "DynDns: More than 25 days. Updating. ";
- $update_reason .= "{$currentTime} - {$cacheTime} > {$time} ";
+ $this->_forceUpdateNeeded = true;
+ $update_reason = "DynDns: More than " . $this->_dnsMaxCacheAgeDays . " days. Updating. ";
+ $update_reason .= "{$currentTime} - {$cacheTime} > {$maxCacheAgeSecs} ";
}
if ($initial == true) {
$needs_updating = true;
@@ -1070,9 +1114,10 @@
/* finally if we need updating then store the
* new cache value and return true
- */
+ */
if ($needs_updating == true) {
- log_error("DynDns debug information ({$this->_dnsHost}): {$update_reason}");
+ if ($this->_dnsVerboseLog)
+ log_error("DynDns ({$this->_dnsHost}): {$update_reason}");
return true;
}
@@ -1080,7 +1125,7 @@
}
/*
- * Private Funcation (added 16 July 05) [beta]
+ * Private Function (added 16 July 05) [beta]
* - Writes debug information to a file.
* - This function is only called when a unknown response
* - status is returned from a DynDNS service provider.
@@ -1090,7 +1135,7 @@
if (!$g['debug'])
return;
- $string = '\n'.date('m-d-y h:i:s').' - ('.$this->_debugID.') - ['.$this->_dnsService.'] - '.$data.'\n';
+ $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);
@@ -1130,15 +1175,17 @@
$ip_result_decoded = urldecode($ip_result_page);
preg_match('/Current IP Address: (.*)<\/body>/', $ip_result_decoded, $matches);
$ip_address = trim($matches[1]);
- if (is_ipaddr($ip_address))
- log_error("DynDns debug information ({$this->_dnsHost}): {$ip_address} extracted from {$hosttocheck}");
- else {
- log_error("DynDns debug information ({$this->_dnsHost}): IP address could not be extracted from {$hosttocheck}");
+ if (is_ipaddr($ip_address)) {
+ if ($this->_dnsVerboseLog)
+ log_error("DynDns ({$this->_dnsHost}): {$ip_address} extracted from {$hosttocheck}");
+ } else {
+ log_error("DynDns ({$this->_dnsHost}): IP address could not be extracted from {$hosttocheck}");
return 0;
}
- } else
- log_error("DynDns debug information ({$this->_dnsHost}): {$ip_address} extracted from local system.");
-
+ } else {
+ if ($this->_dnsVerboseLog)
+ log_error("DynDns ({$this->_dnsHost}): {$ip_address} extracted from local system.");
+ }
$this->_dnsIP = $ip_address;
return $ip_address;
diff --git a/etc/inc/easyrule.inc b/etc/inc/easyrule.inc
index dfd103a..86e2294 100644
--- a/etc/inc/easyrule.inc
+++ b/etc/inc/easyrule.inc
@@ -115,6 +115,7 @@ function easyrule_block_rule_create($int = 'wan', $ipproto = "inet") {
$filterent['source']['address'] = $blockaliasname . strtoupper($int);
$filterent['destination']['any'] = '';
$filterent['descr'] = gettext("Easy Rule: Blocked from Firewall Log View");
+ $filterent['created'] = make_config_revision_entry(null, gettext("Easy Rule"));
array_splice($a_filter, 0, 0, array($filterent));
@@ -271,10 +272,15 @@ function easyrule_pass_rule_add($int, $proto, $srchost, $dsthost, $dstport, $ipp
if ($proto == "icmp")
$filterent['icmptype'] = 'echoreq';
+ if (strtolower($proto) == "icmp6")
+ $filterent['protocol'] = "icmp";
+
if (is_subnet($srchost)) {
list($srchost, $srcmask) = explode("/", $srchost);
} elseif (is_specialnet($srchost)) {
$srcmask = 0;
+ } elseif (is_ipaddrv6($srchost)) {
+ $srcmask = 128;
} else {
$srcmask = 32;
}
@@ -283,6 +289,8 @@ function easyrule_pass_rule_add($int, $proto, $srchost, $dsthost, $dstport, $ipp
list($dsthost, $dstmask) = explode("/", $dsthost);
} elseif (is_specialnet($dsthost)) {
$dstmask = 0;
+ } elseif (is_ipaddrv6($dsthost)) {
+ $dstmask = 128;
} else {
$dstmask = 32;
}
@@ -290,6 +298,7 @@ function easyrule_pass_rule_add($int, $proto, $srchost, $dsthost, $dstport, $ipp
pconfig_to_address($filterent['source'], $srchost, $srcmask);
pconfig_to_address($filterent['destination'], $dsthost, $dstmask, '', $dstport, $dstport);
+ $filterent['created'] = make_config_revision_entry(null, gettext("Easy Rule"));
$a_filter[] = $filterent;
write_config($filterent['descr']);
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc
index bfd5b17..6f93823 100644
--- a/etc/inc/filter.inc
+++ b/etc/inc/filter.inc
@@ -93,13 +93,13 @@ function filter_pflog_start($kill_first = false) {
}
mute_kernel_msgs();
$output = 0;
- exec("/bin/pgrep -af 'tcpdump -s 256 -v -l -n -e -ttt -i pflog0'", $output, $retval);
+ exec("/bin/pgrep -af 'tcpdump -s 256 -v -S -l -n -e -ttt -i pflog0'", $output, $retval);
if ($kill_first && ($output[0] > 1)) {
mwexec("/bin/kill {$output[0]}");
usleep(1000);
}
if($retval != 0)
- mwexec_bg("/usr/sbin/tcpdump -s 256 -v -l -n -e -ttt -i pflog0 | logger -t pf -p local0.info");
+ mwexec_bg("/usr/sbin/tcpdump -s 256 -v -S -l -n -e -ttt -i pflog0 | logger -t pf -p local0.info");
unmute_kernel_msgs();
}
@@ -128,7 +128,7 @@ function filter_delete_states_for_down_gateways() {
$a_gateways = return_gateways_status();
if (is_array($GatewaysList)) {
- foreach ($GatewaysList as $gwname => $gateway) {
+ foreach ($GatewaysList as $gwname => $gateway) {
if (empty($gateway['monitor']))
continue;
if (!is_ipaddr($gateway['monitor']))
@@ -139,15 +139,15 @@ function filter_delete_states_for_down_gateways() {
continue;
$gwstatus =& $a_gateways[$gateway['monitor']];
if (strstr($gwstatus['status'], "down")) {
- $gwip = $gateway['gateway'];
- if (!is_ipaddr($gwip))
- $gwip = get_interface_gateway($gateway['friendlyiface']);
- if (is_ipaddr($gwstatus['srcip'])) {
- $cmd = "/sbin/pfctl -b {$gwstatus['srcip']}/32 ";
- if (is_ipaddr($gwip))
- $cmd .= "-b {$gwip}/32";
- else
- $cmd .= "-b 0.0.0.0/32";
+ if (!empty($gateway['interface']))
+ $gwiface = $gateway['interface'];
+ else
+ $gwiface = get_real_interface($gateway['friendlyiface']);
+ $cmd = "/sbin/pfctl -i {$gwiface} -Fs";
+ mwexec($cmd);
+ $gwip = $gateway['gateway'];
+ if (is_ipaddr($gwip)) {
+ $cmd = "/sbin/pfctl -i {$gwiface} -Fs -G {$gwip}";
mwexec($cmd);
}
}
@@ -223,7 +223,7 @@ function filter_configure_sync($delete_states_if_needed = true) {
// Copy rules.debug to rules.debug.old
if(file_exists("{$g['tmp_path']}/rules.debug"))
- copy("{$g['tmp_path']}/rules.debug", "{$g['tmp_path']}/rules.debug.old");
+ @copy("{$g['tmp_path']}/rules.debug", "{$g['tmp_path']}/rules.debug.old");
$limitrules = "";
/* Define the maximum number of tables the system can handle (should be at least aliases*2+some spare) */
@@ -241,6 +241,11 @@ function filter_configure_sync($delete_states_if_needed = true) {
} else
$limitrules .= "set optimization normal\n";
+ if (!empty($config['system']['adaptivestart']) && !empty($config['system']['adaptiveend']))
+ $limitrules .= "set timeout { adaptive.start {$config['system']['adaptivestart']}, adaptive.end {$config['system']['adaptiveend']} }\n";
+ else
+ $limitrules .= "set timeout { adaptive.start 0, adaptive.end 0 }\n";
+
if ($config['system']['maximumstates'] <> "" && is_numeric($config['system']['maximumstates'])) {
/* User defined maximum states in Advanced menu. */
$limitrules .= "set limit states {$config['system']['maximumstates']}\n";
@@ -276,77 +281,73 @@ function filter_configure_sync($delete_states_if_needed = true) {
$rules .= discover_pkg_rules("filter");
@file_put_contents("{$g['tmp_path']}/rules.limits", $limitrules);
- mwexec("/sbin/pfctl -O -f {$g['tmp_path']}/rules.limits");
-
- if(!file_put_contents("{$g['tmp_path']}/rules.debug", $rules, LOCK_EX)) {
+ mwexec("/sbin/pfctl -o basic -f {$g['tmp_path']}/rules.limits");
+
+ if (!@file_put_contents("{$g['tmp_path']}/rules.debug", $rules, LOCK_EX)) {
log_error("WARNING: Could not write new rules!");
unlock($filterlck);
return;
}
- /*
- * XXX: This are not being used for now so just comment them out.
- $rules = "1"; // force to be diff from oldrules
- $oldrules = "2"; // force to be diff from rules
+ unset($rules, $limitrules);
- if(file_exists("{$g['tmp_path']}/rules.debug"))
- $rules = file_get_contents("{$g['tmp_path']}/rules.debug");
- if(file_exists("{$g['tmp_path']}/rules.debug.old"))
- $oldrules = file_get_contents("{$g['tmp_path']}/rules.debug.old");
- *
- */
if(isset($config['system']['developerspew'])) {
$mt = microtime();
echo "pfctl being called at $mt\n";
}
- $rules_loading = mwexec("/sbin/pfctl -o basic -f {$g['tmp_path']}/rules.debug");
+ unset($rules_loading, $rules_error);
+ $_grbg = exec("/sbin/pfctl -o basic -f {$g['tmp_path']}/rules.debug 2>&1", $rules_error, $rules_loading);
if(isset($config['system']['developerspew'])) {
$mt = microtime();
echo "pfctl done at $mt\n";
}
- /* check for a error while loading the rules file. if an error has occured
+ /*
+ * check for a error while loading the rules file. if an error has occured
* then output the contents of the error to the caller
*/
if($rules_loading <> 0) {
- $rules_error = exec_command("/sbin/pfctl -f {$g['tmp_path']}/rules.debug");
- $line_error = explode(":", $rules_error);
+ $line_error = explode(":", $rules_error[0]);
$line_number = $line_error[1];
$line_split = file("{$g['tmp_path']}/rules.debug");
if(is_array($line_split))
$line_error = sprintf(gettext('The line in question reads [%1$d]: %2$s'), $line_number, $line_split[$line_number-1]);
- if($line_error and $line_number) {
- file_notice("filter_load", sprintf(gettext('There were error(s) loading the rules: %1$s - %2$s'), $rules_error, $line_error), "Filter Reload", "");
- log_error("There were error(s) loading the rules: {$rules_error} - {$line_error}");
- update_filter_reload_status(sprintf(gettext('There were error(s) loading the rules: %1$s - %2$s'), $rules_error, $line_error));
+ unset($line_split);
+ if ($line_error and $line_number) {
+ file_notice("filter_load", sprintf(gettext('There were error(s) loading the rules: %1$s - %2$s'), $rules_error[0], $line_error), "Filter Reload", "");
+ update_filter_reload_status(sprintf(gettext('There were error(s) loading the rules: %1$s - %2$s'), $rules_error[0], $line_error));
unlock($filterlck);
return;
}
/* Brutal ugly hack but required -- PF is stuck, unwedge */
- if(strstr("$rules_error", "busy")) {
- exec("/sbin/pfctl -d");
- exec("/sbin/pfctl -e");
- exec("/sbin/pfctl -f {$g['tmp_path']}/rules.debug");
+ if (strstr("$rules_error[0]", "busy")) {
+ exec("/sbin/pfctl -d; /sbin/pfctl -e; /sbin/pfctl -f {$g['tmp_path']}/rules.debug");
$error_msg = gettext("PF was wedged/busy and has been reset.");
file_notice("pf_busy", $error_msg, "pf_busy", "");
- log_error($error_msg);
}
}
+ # If allow IPv6 has been unchecked then we can remove any bogonsv6 table (if the table is not there, the kill is still fine).
+ if (!isset($config['system']['ipv6allow']))
+ $_grbg = exec("/sbin/pfctl -t bogonsv6 -T kill");
+
update_filter_reload_status(gettext("Starting up layer7 daemon"));
layer7_start_l7daemon();
if(!empty($filterdns)) {
- $filterdnsfd = fopen("{$g['varetc_path']}/filterdns.conf", "w");
- if($filterdnsfd) {
- fwrite($filterdnsfd, $filterdns);
- fclose($filterdnsfd);
+ @file_put_contents("{$g['varetc_path']}/filterdns.conf", $filterdns);
+ unset($filterdns);
+ if (isvalidpid("{$g['varrun_path']}/filterdns.pid"))
+ sigkillbypid("{$g['varrun_path']}/filterdns.pid", "HUP");
+ else {
+ /*
+ * FilterDNS has three debugging levels. The default choosen is 1.
+ * Availabe are level 2 and greater then 2.
+ */
+ mwexec("/usr/local/sbin/filterdns -p {$g['varrun_path']}/filterdns.pid -i 300 -c {$g['varetc_path']}/filterdns.conf -d 1");
}
- killbypid("{$g['tmp_path']}/filterdns.pid");
- /*
- * FilterDNS has three debugging levels. The default choosen is 1.
- * Availabe are level 2 and greater then 2.
- */
- mwexec("/usr/local/sbin/filterdns -p {$g['tmp_path']}/filterdns.pid -i 300 -c {$g['varetc_path']}/filterdns.conf -d 1");
+ } else {
+ killbypid("{$g['varrun_path']}/filterdns.pid");
+ @unlink("{$g['varrun_path']}/filterdns.pid");
}
/* run items scheduled for after filter configure run */
@@ -472,7 +473,7 @@ function filter_generate_nested_alias($name, $alias, &$aliasnesting, &$aliasaddr
else if(!isset($aliasnesting[$address]))
$tmpline = filter_generate_nested_alias($name, $aliastable[$address], $aliasnesting, $aliasaddrnesting);
} else if(!isset($aliasaddrnesting[$address])) {
- if (!is_ipaddr($address) && !is_subnet($address) && !is_port($address)) {
+ if (!is_ipaddr($address) && !is_subnet($address) && !is_port($address) && is_hostname($address)) {
$filterdns .= "pf {$address} {$name}\n";
/* Guarantee unique dns names on filterdns config */
$aliasaddrnesting[$address] = $address;
@@ -529,13 +530,21 @@ function filter_generate_aliases() {
$aliases .= " }\"\n";
}
} elseif (!empty($ifcfg['descr']) && !empty($ifcfg['if'])) {
- /* XXX possibly add 6to4 in the future as well, stf0 */
if ($ifcfg['type6'] == '6rd')
- $aliases .= "{$ifcfg['descr']} = \"{ {$ifcfg['if']} stf0 ";
+ $aliases .= "{$ifcfg['descr']} = \"{ {$ifcfg['if']} {$if}_stf";
else if ($ifcfg['type6'] == '6to4')
- $aliases .= "{$ifcfg['descr']} = \"{ {$ifcfg['if']} stf0 ";
- else
+ $aliases .= "{$ifcfg['descr']} = \"{ {$ifcfg['if']} {$if}_stf";
+ else {
$aliases .= "{$ifcfg['descr']} = \"{ {$ifcfg['if']}";
+
+ if ($ifcfg['type'] == 'pptp') {
+ foreach (get_parent_interface($ifcfg['if']) as $parent_if) {
+ if ($parent_if != $ifcfg['if']) {
+ $aliases .= " {$parent_if}";
+ }
+ }
+ }
+ }
$aliases .= " }\"\n";
}
}
@@ -546,15 +555,31 @@ function filter_generate_aliases() {
$aliases .= "#Snort tables\n";
$aliases .= "table <snort2c>\n";
+ $aliases .= "table <virusprot>\n";
+ if (!file_exists("/etc/bogons"))
+ @file_put_contents("/etc/bogons", "");
+ if (!file_exists("/etc/bogonsv6"))
+ @file_put_contents("/etc/bogonsv6", "");
+ $aliases .= "table <bogons> persist file \"/etc/bogons\"\n";
+ if (isset($config['system']['ipv6allow']))
+ $aliases .= "table <bogonsv6> persist file \"/etc/bogonsv6\"\n";
- $aliases .= "\ntable <virusprot>\n";
+ $vpns_list = filter_get_vpns_list();
+ if($vpns_list)
+ $aliases .= "table <vpn_networks> { $vpns_list }\n";
+
+ /* add a Negate_networks table */
+ $aliases .= "table <negate_networks> ";
+ if($vpns_list)
+ $aliases .= "{ $vpns_list }";
+ $aliases .= "\n";
$aliases .= "\n# User Aliases \n";
/* Setup pf groups */
if(isset($config['aliases']['alias'])) {
foreach ($config['aliases']['alias'] as $aliased) {
$extralias = "";
- /*
+ /*
* XXX: i am not sure what this does so i am commenting it out for now, because as it is
* its quite dangerous!
* $ip = find_interface_ip($aliased['address']);
@@ -627,8 +652,8 @@ function filter_generate_gateways() {
update_filter_reload_status(gettext("Creating gateway group item..."));
/* Lookup Gateways to be used in filter rules once */
- $GatewaysList = return_gateways_array();
- $GatewayGroupsList = return_gateway_groups_array();
+ $GatewaysList = return_gateways_array();
+ $GatewayGroupsList = return_gateway_groups_array();
if (is_array($GatewaysList)) {
foreach ($GatewaysList as $gwname => $gateway) {
@@ -639,7 +664,10 @@ function filter_generate_gateways() {
$gwip = get_interface_gateway($gateway['friendlyiface']);
if (is_ipaddr($gwip) && !empty($int))
$route = "route-to ( {$int} {$gwip} )";
- $rules .= "GW{$gwname} = \" {$route} \"\n";
+ if (($route === "") && isset($config['system']['skip_rules_gw_down']))
+ unset($GatewaysList[$gwname]);
+ else
+ $rules .= "GW{$gwname} = \" {$route} \"\n";
}
}
@@ -675,7 +703,10 @@ function filter_generate_gateways() {
}
}
}
- $rules .= "GW{$gateway} = \" {$route} \"\n";
+ if (($route === "") && isset($config['system']['skip_rules_gw_down']))
+ unset($GatewayGroupsList[$gateway]);
+ else
+ $rules .= "GW{$gateway} = \" {$route} \"\n";
}
}
@@ -694,6 +725,25 @@ function filter_get_vpns_list() {
$vpns = "";
$vpns_arr = array();
+ /* ipsec */
+ if (isset($config['ipsec']['enable'])) {
+ if (is_array($config['ipsec']['phase2'])) {
+ foreach ($config['ipsec']['phase2'] as $ph2ent) {
+ if ((!$ph2ent['mobile']) && ($ph2ent['mode'] != 'transport')) {
+ if (!function_exists('ipsec_idinfo_to_cidr'))
+ require_once("ipsec.inc");
+ if (!is_array($ph2ent['remoteid']))
+ continue;
+ $ph2ent['remoteid']['mode'] = $ph2ent['mode'];
+ $vpns_subnet = ipsec_idinfo_to_cidr($ph2ent['remoteid']);
+ if ($vpns_subnet == "0.0.0.0/0")
+ continue;
+ $vpns_arr[] = $vpns_subnet;
+ }
+ }
+ }
+ }
+
/* openvpn */
foreach (array('client', 'server') as $type) {
if(is_array($config['openvpn']["openvpn-$type"])) {
@@ -719,9 +769,10 @@ function filter_get_vpns_list() {
}
}
}
- if(!empty($vpns_arr)) {
+
+ if (!empty($vpns_arr))
$vpns = implode(" ", $vpns_arr);
- }
+
return $vpns;
}
@@ -804,12 +855,15 @@ function filter_generate_optcfg_array() {
$oic['if'] = get_real_interface($if);
if (!does_interface_exist($oic['if']))
continue;
+ $oic['ifv6'] = get_real_interface($if, "inet6");
$oic['ip'] = get_interface_ip($if);
$oic['ipv6'] = get_interface_ipv6($if);
if(!is_ipaddrv4($oc['ipaddr']) && !empty($oc['ipaddr']))
$oic['type'] = $oc['ipaddr'];
if(!is_ipaddrv6($oc['ipaddrv6']) && !empty($oc['ipaddrv6']))
$oic['type6'] = $oc['ipaddrv6'];
+ if (!empty($oc['track6-interface']))
+ $oc['track6-interface'] = $oc['track6-interface'];
$oic['sn'] = get_interface_subnet($if);
$oic['snv6'] = get_interface_subnetv6($if);
$oic['mtu'] = empty($oc['mtu']) ? 1500 : $oc['mtu'];
@@ -824,6 +878,29 @@ function filter_generate_optcfg_array() {
$oic['gatewayv6'] = $oc['gatewayv6'];
$oic['spoofcheck'] = "yes";
$oic['bridge'] = link_interface_to_bridge($if);
+ $vips = link_interface_to_vips($if);
+ if (!empty($vips)) {
+ foreach ($vips as $vipidx => $vip) {
+ if (is_ipaddrv4($vip['subnet'])) {
+ if (!is_array($oic['vips']))
+ $oic['vips'] = array();
+ $oic['vips'][$vipidx]['ip'] = $vip['subnet'];
+ if (empty($vip['subnet_bits']))
+ $oic['vips'][$vipidx]['sn'] = 32;
+ else
+ $oic['vips'][$vipidx]['sn'] = $vip['subnet_bits'];
+ } else if (is_ipaddrv6($vip['subnet'])) {
+ if (!is_array($oic['vips6']))
+ $oic['vips6'] = array();
+ $oic['vips6'][$vipidx]['ip'] = $vip['subnet'];
+ if (empty($vip['subnet_bits']))
+ $oic['vips6'][$vipidx]['sn'] = 128;
+ else
+ $oic['vips6'][$vipidx]['sn'] = $vip['subnet_bits'];
+ }
+ }
+ }
+ unset($vips);
$FilterIflist[$if] = $oic;
}
@@ -1312,9 +1389,9 @@ function filter_nat_rules_generate() {
$sn = "";
$sn1 = "";
$target = alias_expand($rule['external']);
- if (!$target) {
- $natrules .= "# Unresolvable alias {$rule['target']}\n";
- continue; /* unresolvable alias */
+ if (!$target) {
+ $natrules .= "# Unresolvable alias {$rule['target']}\n";
+ continue; /* unresolvable alias */
}
if (!$rule['interface'])
@@ -1322,12 +1399,12 @@ function filter_nat_rules_generate() {
else
$natif = $rule['interface'];
if (!isset($FilterIflist[$natif]))
- continue;
+ continue;
$srcaddr = filter_generate_address($rule, 'source');
- $dstaddr = filter_generate_address($rule, 'destination');
+ $dstaddr = filter_generate_address($rule, 'destination');
if(!$dstaddr)
- $dstaddr = $FilterIflist[$natif]['ip'];
+ $dstaddr = $FilterIflist[$natif]['ip'];
$srcaddr = trim($srcaddr);
$dstaddr = trim($dstaddr);
@@ -1374,10 +1451,10 @@ function filter_nat_rules_generate() {
else
$natif = $rule['interface'];
if (!isset($FilterIflist[$natif]))
- continue;
+ continue;
$srcaddr = filter_generate_address($rule, 'source');
- $dstaddr = filter_generate_address($rule, 'destination');
+ $dstaddr = filter_generate_address($rule, 'destination');
$srcaddr = trim($srcaddr);
$dstaddr = trim($dstaddr);
@@ -1397,16 +1474,25 @@ function filter_nat_rules_generate() {
if ($ph2ent['mode'] != 'transport' && !empty($ph2ent['natlocalid'])) {
if (!function_exists('ipsec_idinfo_to_cidr'))
require_once("ipsec.inc");
+ if (!is_array($ph2ent['localid']))
+ $ph2ent['localid'] = array();
+ $ph2ent['localid']['mode'] = $ph2ent['mode'];
$local_subnet = ipsec_idinfo_to_cidr($ph2ent['localid']);
if (empty($local_subnet) || $local_subnet == "0.0.0.0/0")
continue;
if (!is_subnet($local_subnet) && !is_ipaddr($local_subnet))
continue;
+ if (!is_array($ph2ent['natlocalid']))
+ $ph2ent['natlocalid'] = array();
+ $ph2ent['natlocalid']['mode'] = $ph2ent['mode'];
$natlocal_subnet = ipsec_idinfo_to_cidr($ph2ent['natlocalid']);
if (empty($natlocal_subnet) || $natlocal_subnet == "0.0.0.0/0")
continue;
if (!is_subnet($natlocal_subnet) && !is_ipaddr($natlocal_subnet))
continue;
+ if (!is_array($ph2ent['remoteid']))
+ $ph2ent['remoteid'] = array();
+ $ph2ent['remoteid']['mode'] = $ph2ent['mode'];
$remote_subnet = ipsec_idinfo_to_cidr($ph2ent['remoteid']);
if (empty($remote_subnet))
continue;
@@ -1416,7 +1502,7 @@ function filter_nat_rules_generate() {
$remote_subnet = "any";
if (is_ipaddr($natlocal_subnet) && !is_ipaddr($local_subnet) )
$nattype = "nat";
- else
+ else
$nattype = "binat";
$natrules .= "{$nattype} on enc0 from {$local_subnet} to {$remote_subnet} -> {$natlocal_subnet}\n";
}
@@ -1439,18 +1525,14 @@ function filter_nat_rules_generate() {
$dst = $obent['destination']['address'];
if(isset($obent['destination']['not']) && !isset($obent['destination']['any']))
$dst = "!" . $dst;
- if(!$obent['interface'])
- $natif = "wan";
- else
- $natif = $obent['interface'];
+
+ if(!$obent['interface'] || !isset($FilterIflist[$obent['interface']]))
+ continue;
$obtarget = ($obent['target'] == "other-subnet") ? $obent['targetip'] . '/' . $obent['targetip_subnet']: $obent['target'];
$poolopts = (is_subnet($obtarget) || is_alias($obtarget)) ? $obent['poolopts'] : "";
- if (!isset($FilterIflist[$natif]))
- continue;
-
- $natrules .= filter_nat_rules_generate_if($natif,
+ $natrules .= filter_nat_rules_generate_if($obent['interface'],
$src,
$obent['sourceport'],
$dst,
@@ -1547,7 +1629,7 @@ function filter_nat_rules_generate() {
$tonathosts .= "{$config['ipsec']['client']['pool_address']}/{$config['ipsec']['client']['pool_netbits']} ";
}
$natrules .= "\n# Subnets to NAT \n";
- $tonathosts .= "127.0.0.0/8 ";
+ $tonathosts .= "127.0.0.0/8 0.0.0.0 ";
if($numberofnathosts > 4) {
$natrules .= "table <tonatsubnets> { {$tonathosts} }\n";
$macroortable = "<tonatsubnets>";
@@ -1589,17 +1671,6 @@ function filter_nat_rules_generate() {
}
}
- $interface_counter = 0;
- $vpns_list = filter_get_vpns_list();
- if($vpns_list)
- $natrules .= "table <vpn_networks> { $vpns_list }\n";
-
- /* add a Negate_networks table */
- $natrules .= "table <negate_networks> {";
- if($vpns_list)
- $natrules .= " $vpns_list ";
- $natrules .= "}\n";
-
/* DIAG: add ipv6 NAT, if requested */
if(isset($config['diag']['ipv6nat']['enable']) &&
is_ipaddr($config['diag']['ipv6nat']['ipaddr']) &&
@@ -1852,14 +1923,14 @@ function filter_generate_address(& $rule, $target = "source", $isnat = false) {
if($rule['ipprotocol'] == "inet6") {
if(preg_match("/opt([0-9]*)$/", $rule[$target]['network'], $optmatch)) {
$opt_ip = $FilterIflist["opt{$optmatch[1]}"]['ipv6'];
- if(!is_ipaddr($opt_ip))
+ if(!is_ipaddrv6($opt_ip))
return "";
$src = $opt_ip . "/" .
$FilterIflist["opt{$optmatch[1]}"]['snv6'];
/* check for opt$NUMip here */
} else if(preg_match("/opt([0-9]*)ip/", $rule[$target]['network'], $matches)) {
$src = $FilterIflist["opt{$matches[1]}"]['ipv6'];
- if(!is_ipaddr($src))
+ if(!is_ipaddrv6($src))
return "";
}
if(isset($rule[$target]['not']))
@@ -1867,14 +1938,14 @@ function filter_generate_address(& $rule, $target = "source", $isnat = false) {
} else {
if(preg_match("/opt([0-9]*)$/", $rule[$target]['network'], $optmatch)) {
$opt_ip = $FilterIflist["opt{$optmatch[1]}"]['ip'];
- if(!is_ipaddr($opt_ip))
+ if(!is_ipaddrv4($opt_ip))
return "";
$src = $opt_ip . "/" .
$FilterIflist["opt{$optmatch[1]}"]['sn'];
/* check for opt$NUMip here */
} else if(preg_match("/opt([0-9]*)ip/", $rule[$target]['network'], $matches)) {
$src = $FilterIflist["opt{$matches[1]}"]['ip'];
- if(!is_ipaddr($src))
+ if(!is_ipaddrv4($src))
return "";
}
if(isset($rule[$target]['not']))
@@ -1885,17 +1956,25 @@ function filter_generate_address(& $rule, $target = "source", $isnat = false) {
switch ($rule[$target]['network']) {
case 'wan':
$wansa = $FilterIflist['wan']['sav6'];
+ if (!is_ipaddrv6($wansa))
+ return "";
$wansn = $FilterIflist['wan']['snv6'];
$src = "{$wansa}/{$wansn}";
break;
case 'wanip':
$src = $FilterIflist["wan"]['ipv6'];
+ if (!is_ipaddrv6($src))
+ return "";
break;
case 'lanip':
$src = $FilterIflist["lan"]['ipv6'];
+ if (!is_ipaddrv6($src))
+ return "";
break;
case 'lan':
$lansa = $FilterIflist['lan']['sav6'];
+ if (!is_ipaddrv6($lansa))
+ return "";
$lansn = $FilterIflist['lan']['snv6'];
$src = "{$lansa}/{$lansn}";
break;
@@ -1911,10 +1990,14 @@ function filter_generate_address(& $rule, $target = "source", $isnat = false) {
$src = "{$pppoesav6}/{$pppoesnv6}";
}
}
+ if(isset($rule[$target]['not']))
+ $src = " !{$src}";
} else {
switch ($rule[$target]['network']) {
case 'wan':
$wansa = $FilterIflist['wan']['sa'];
+ if (!is_ipaddrv4($wansa))
+ return "";
$wansn = $FilterIflist['wan']['sn'];
$src = "{$wansa}/{$wansn}";
break;
@@ -1926,6 +2009,8 @@ function filter_generate_address(& $rule, $target = "source", $isnat = false) {
break;
case 'lan':
$lansa = $FilterIflist['lan']['sa'];
+ if (!is_ipaddrv4($lansa))
+ return "";
$lansn = $FilterIflist['lan']['sn'];
$src = "{$lansa}/{$lansn}";
break;
@@ -1947,6 +2032,8 @@ function filter_generate_address(& $rule, $target = "source", $isnat = false) {
}
break;
}
+ if(isset($rule[$target]['not']))
+ $src = " !{$src}";
}
}
} else if($rule[$target]['address']) {
@@ -2021,8 +2108,9 @@ function filter_generate_user_rule($rule) {
} else
$aline['interface'] = "";
} else if(!array_key_exists($rule['interface'], $FilterIflist)) {
- foreach($FilterIflist as $oc) $item .= $oc['descr'];
- return "# {$item} {$rule['interface']} array key does not exist for " . $rule['descr'];
+ foreach($FilterIflist as $oc)
+ $items .= $oc['descr'] . " ";
+ return "# array key \"{$rule['interface']}\" does not exist for \"" . $rule['descr'] . "\" in array: {{$items}}";
} else if((array_key_exists($rule['interface'], $FilterIflist))
&& (is_array($FilterIflist[$rule['interface']]))
&& (is_array($FilterIflist[$rule['interface']][0]))) {
@@ -2037,18 +2125,16 @@ function filter_generate_user_rule($rule) {
return "# source network or destination network == pptp on " . $rule['descr'];
}
- if(isset($rule['ipprotocol'])) {
- switch($rule['ipprotocol']) {
- case "inet":
- $aline['ipprotocol'] = "inet";
- break;
- case "inet6":
- $aline['ipprotocol'] = "inet6";
- break;
- case "inet46":
- $aline['ipprotocol'] = "";
- break;
- }
+ switch($rule['ipprotocol']) {
+ case "inet":
+ $aline['ipprotocol'] = "inet";
+ break;
+ case "inet6":
+ $aline['ipprotocol'] = "inet6";
+ break;
+ default:
+ $aline['ipprotocol'] = "";
+ break;
}
/* check for unresolvable aliases */
@@ -2087,24 +2173,18 @@ function filter_generate_user_rule($rule) {
/* do not process reply-to for gateway'd rules */
if($rule['gateway'] == "" && $aline['direction'] <> "" && interface_has_gateway($rule['interface']) && !isset($config['system']['disablereplyto']) && !isset($rule['disablereplyto']) && $type != "match") {
- if($rule['ipprotocol'] == "inet6") {
+ if ($rule['ipprotocol'] == "inet6") {
$rg = get_interface_gateway_v6($rule['interface']);
- if(is_ipaddrv6($rg)) {
- $aline['reply'] = "reply-to ( {$ifcfg['if']} {$rg} ) ";
- } else {
- if($rule['interface'] <> "pptp") {
- log_error("Could not find IPv6 gateway for interface({$rule['interface']}).");
- }
- }
+ if (is_ipaddrv6($rg))
+ $aline['reply'] = "reply-to ( {$ifcfg['ifv6']} {$rg} ) ";
+ else if ($rule['interface'] <> "pptp")
+ log_error("Could not find IPv6 gateway for interface({$rule['interface']}).");
} else {
$rg = get_interface_gateway($rule['interface']);
- if(is_ipaddrv4($rg)) {
+ if (is_ipaddrv4($rg))
$aline['reply'] = "reply-to ( {$ifcfg['if']} {$rg} ) ";
- } else {
- if($rule['interface'] <> "pptp") {
- log_error(sprintf(gettext("Could not find IPv4 gateway for interface (%s)."), $rule['interface']));
- }
- }
+ else if ($rule['interface'] <> "pptp")
+ log_error(sprintf(gettext("Could not find IPv4 gateway for interface (%s)."), $rule['interface']));
}
}
/* if user has selected a custom gateway, lets work with it */
@@ -2112,6 +2192,8 @@ function filter_generate_user_rule($rule) {
if (isset($GatewaysList[$rule['gateway']]))
/* Add the load balanced gateways */
$aline['route'] = " \$GW{$rule['gateway']} ";
+ else if (isset($config['system']['skip_rules_gw_down']))
+ return "# rule " . $rule['descr'] . " disabled because gateway " . $rule['gateway'] . " is down ";
else
log_error("The gateway: {$rule['gateway']} is invalid or unknown, not using it.");
}
@@ -2132,8 +2214,8 @@ function filter_generate_user_rule($rule) {
update_filter_reload_status(sprintf(gettext("Creating rule %s"), $rule['descr']));
/* source address */
- $src = filter_generate_address($rule, "source");
- if(empty($src) || ($src == "/")) {
+ $src = trim(filter_generate_address($rule, "source"));
+ if (empty($src) || ($src == "/")) {
return "# at the break!";
}
$aline['src'] = " from $src ";
@@ -2143,8 +2225,8 @@ function filter_generate_user_rule($rule) {
$aline['os'] = " os {$rule['os']} ";
/* destination address */
- $dst = filter_generate_address($rule, "destination");
- if(empty($dst) || ($dst == "/")) {
+ $dst = trim(filter_generate_address($rule, "destination"));
+ if (empty($dst) || ($dst == "/")) {
return "# returning at dst $dst == \"/\"";
}
$aline['dst'] = "to $dst ";
@@ -2158,26 +2240,26 @@ function filter_generate_user_rule($rule) {
$l7_structures = $l7rule->get_unique_structures();
$aline['divert'] = "divert " . $l7rule->GetRPort() . " ";
}
- if(($rule['protocol'] == "icmp") && $rule['icmptype'] && ($rule['ipprotocol'] == "inet"))
+ if (($rule['protocol'] == "icmp") && $rule['icmptype'] && ($rule['ipprotocol'] == "inet"))
$aline['icmp-type'] = "icmp-type {$rule['icmptype']} ";
- if(($rule['protocol'] == "icmp") && $rule['icmptype'] && ($rule['ipprotocol'] == "inet6"))
+ if (($rule['protocol'] == "icmp") && $rule['icmptype'] && ($rule['ipprotocol'] == "inet6"))
$aline['icmp6-type'] = "icmp6-type {$rule['icmptype']} ";
- if(!empty($rule['tag']))
+ if (!empty($rule['tag']))
$aline['tag'] = " tag " .$rule['tag']. " ";
- if(!empty($rule['tagged']))
+ if (!empty($rule['tagged']))
$aline['tagged'] = " tagged " .$rule['tagged'] . " ";
- if(!empty($rule['dscp']))
+ if (!empty($rule['dscp']))
$aline['dscp'] = " dscp " . $rule['dscp'] . " ";
- if(!empty($rule['vlanprio']))
+ if (!empty($rule['vlanprio']) && ($rule['vlanprio'] != "none"))
$aline['vlanprio'] = " ieee8021q-pcp " . $rule['vlanprio'] . " ";
- if(!empty($rule['vlanprioset']))
+ if (!empty($rule['vlanprioset']) && ($rule['vlanprioset'] != "none"))
$aline['vlanprioset'] = " ieee8021q-setpcp " . $rule['vlanprioset'] . " ";
- if($type == "pass") {
- if(isset($rule['allowopts']))
+ if ($type == "pass") {
+ if (isset($rule['allowopts']))
$aline['allowopts'] = " allow-opts ";
$aline['flags'] = "";
- if($rule['protocol'] == "tcp") {
+ if ($rule['protocol'] == "tcp") {
if (isset($rule['tcpflags_any']))
$aline['flags'] = "flags any ";
else if (!empty($rule['tcpflags2'])) {
@@ -2377,6 +2459,13 @@ function filter_rules_generate() {
$log = "log";
else
$log = "";
+
+ if(!isset($config['system']['ipv6allow'])) {
+ $ipfrules .= "# Block all IPv6\n";
+ $ipfrules .= "block in {$log} quick inet6 all label \"Block all IPv6\"\n";
+ $ipfrules .= "block out {$log} quick inet6 all label \"Block all IPv6\"\n";
+ }
+
$ipfrules .= <<<EOD
#---------------------------------------------------------------------------
# default deny rules
@@ -2414,18 +2503,13 @@ block quick inet6 proto { tcp, udp } from any to any port = 0
EOD;
- if(!isset($config['system']['ipv6allow'])) {
- $ipfrules .= "# Block all IPv6\n";
- $ipfrules .= "block in inet6 all label \"Default Deny ipv6 rule\"\n";
- $ipfrules .= "block out inet6 all label \"Default Deny ipv6 rule\"\n";
- }
-
$ipfrules .= <<<EOD
# Snort package
block quick from <snort2c> to any label "Block snort2c hosts"
block quick from any to <snort2c> label "Block snort2c hosts"
+
EOD;
$ipfrules .= filter_process_carp_rules($log);
@@ -2446,7 +2530,7 @@ EOD;
$ipfrules .= "\n# webConfigurator lockout\n";
if(!$config['system']['webgui']['port']) {
- if($config['system']['webgui']['protocol'] == "http")
+ if($config['system']['webgui']['protocol'] == "http")
$webConfiguratorlockoutport = "80";
else
$webConfiguratorlockoutport = "443";
@@ -2463,47 +2547,47 @@ EOD;
$ipfrules .= "block in quick from <virusprot> to any label \"virusprot overload table\"\n";
/* if captive portal is enabled, ensure that access to this port
- * is allowed on a locked down interface
- */
- if(is_array($config['captiveportal'])) {
- foreach ($config['captiveportal'] as $cpcfg) {
- $cpinterfaces = explode(",", $cpcfg['interface']);
- $cpiflist = array();
- $cpiplist = array();
- foreach ($cpinterfaces as $cpifgrp) {
- if(!isset($FilterIflist[$cpifgrp]))
- continue;
- $tmpif = get_real_interface($cpifgrp);
- if(!empty($tmpif)) {
- $cpiflist[] = "{$tmpif}";
- $cpipm = get_interface_ip($cpifgrp);
- if(is_ipaddr($cpipm)) {
- $carpif = link_ip_to_carp_interface($cpipm);
- if (!empty($carpif)) {
- $cpiflist[] = $carpif;
- $carpsif = explode(" ", $carpif);
- foreach ($carpsif as $cpcarp) {
- $carpip = find_interface_ip($cpcarp);
- if (is_ipaddr($carpip))
- $cpiplist[] = $carpip;
- }
- }
- $cpiplist[] = $cpipm;
- }
- }
- }
- if (count($cpiplist) > 0 && count($cpiflist) > 0) {
- $cpinterface = implode(" ", $cpiflist);
- $cpaddresses = implode(" ", $cpiplist);
+ * is allowed on a locked down interface
+ */
+ if(is_array($config['captiveportal'])) {
+ foreach ($config['captiveportal'] as $cpcfg) {
+ $cpinterfaces = explode(",", $cpcfg['interface']);
+ $cpiflist = array();
+ $cpiplist = array();
+ foreach ($cpinterfaces as $cpifgrp) {
+ if(!isset($FilterIflist[$cpifgrp]))
+ continue;
+ $tmpif = get_real_interface($cpifgrp);
+ if(!empty($tmpif)) {
+ $cpiflist[] = "{$tmpif}";
+ $cpipm = get_interface_ip($cpifgrp);
+ if(is_ipaddr($cpipm)) {
+ $carpif = link_ip_to_carp_interface($cpipm);
+ if (!empty($carpif)) {
+ $cpiflist[] = $carpif;
+ $carpsif = explode(" ", $carpif);
+ foreach ($carpsif as $cpcarp) {
+ $carpip = find_interface_ip($cpcarp);
+ if (is_ipaddr($carpip))
+ $cpiplist[] = $carpip;
+ }
+ }
+ $cpiplist[] = $cpipm;
+ }
+ }
+ }
+ if (count($cpiplist) > 0 && count($cpiflist) > 0) {
+ $cpinterface = implode(" ", $cpiflist);
+ $cpaddresses = implode(" ", $cpiplist);
$listenporthttps = $cpcfg['listenporthttps'] ? $cpcfg['listenporthttps'] : ($cpcfg['zoneid'] + 1);
$listenporthttp = $cpcfg['listenporthttp'] ? $cpcfg['listenporthttp'] : $cpcfg['zoneid'];
- $portalias = $listenporthttps;
- $portalias .= " {$listenporthttp}";
- $ipfrules .= "pass in quick on { {$cpinterface} } proto tcp from any to { {$cpaddresses} } port { {$portalias} } keep state(sloppy)\n";
- $ipfrules .= "pass out quick on { {$cpinterface} } proto tcp from any to any flags any keep state(sloppy)\n";
- }
- }
- }
+ $portalias = $listenporthttps;
+ $portalias .= " {$listenporthttp}";
+ $ipfrules .= "pass in quick on { {$cpinterface} } proto tcp from any to { {$cpaddresses} } port { {$portalias} } keep state(sloppy)\n";
+ $ipfrules .= "pass out quick on { {$cpinterface} } proto tcp from any to any flags any keep state(sloppy)\n";
+ }
+ }
+ }
$bogontableinstalled = 0;
foreach ($FilterIflist as $on => $oc) {
@@ -2511,19 +2595,19 @@ EOD;
/* http://www.cymru.com/Documents/bogon-bn-nonagg.txt */
/* file is automatically in cron every 3000 minutes */
if(isset($config['interfaces'][$on]['blockbogons'])) {
- if($bogontableinstalled == 0) {
- $ipfrules .= "table <bogons> persist file \"/etc/bogons\"\n";
- $ipfrules .= "table <bogonsv6> persist file \"/etc/bogonsv6\"\n";
- }
$ipfrules .= <<<EOD
# block bogon networks
# http://www.cymru.com/Documents/bogon-bn-nonagg.txt
# http://www.team-cymru.org/Services/Bogons/fullbogons-ipv6.txt
block in $log quick on \${$oc['descr']} from <bogons> to any label "block bogon IPv4 networks from {$oc['descr']}"
+
+EOD;
+ if(isset($config['system']['ipv6allow'])) {
+ $ipfrules .= <<<EOD
block in $log quick on \${$oc['descr']} from <bogonsv6> to any label "block bogon IPv6 networks from {$oc['descr']}"
EOD;
- $bogontableinstalled++;
+ }
}
$isbridged = false;
if(is_array($config['bridges']['bridged'])) {
@@ -2579,14 +2663,19 @@ EOD;
/* allow access to DHCP server on interfaces */
if(isset($config['dhcpd'][$on]['enable'])) {
$ipfrules .= <<<EOD
-
# allow access to DHCP server on {$oc['descr']}
pass in quick on \${$oc['descr']} proto udp from any port = 68 to 255.255.255.255 port = 67 label "allow access to DHCP server"
+
+EOD;
+ if (is_ipaddrv4($oc['ip'])) {
+ $ipfrules .= <<<EOD
pass in quick on \${$oc['descr']} proto udp from any port = 68 to {$oc['ip']} port = 67 label "allow access to DHCP server"
pass out quick on \${$oc['descr']} proto udp from {$oc['ip']} port = 67 to any port = 68 label "allow access to DHCP server"
EOD;
- if($config['dhcpd'][$on]['failover_peerip'] <> "") {
+ }
+
+ if(is_ipaddrv4($pc['ip']) && $config['dhcpd'][$on]['failover_peerip'] <> "") {
$ipfrules .= <<<EOD
# allow access to DHCP failover on {$oc['descr']} from {$config['dhcpd'][$on]['failover_peerip']}
pass in quick on \${$oc['descr']} proto { tcp udp } from {$config['dhcpd'][$on]['failover_peerip']} to {$oc['ip']} port = 519 label "allow access to DHCP failover"
@@ -2602,7 +2691,6 @@ EOD;
case "slaac":
case "dhcp6":
$ipfrules .= <<<EOD
-
# allow our DHCPv6 client out to the {$oc['descr']}
pass in quick on \${$oc['descr']} proto udp from fe80::/10 port = 546 to fe80::/10 port = 546 label "allow dhcpv6 client in {$oc['descr']}"
pass in quick on \${$oc['descr']} proto udp from any port = 547 to any port = 546 label "allow dhcpv6 client in {$oc['descr']}"
@@ -2612,38 +2700,54 @@ EOD;
break;
case "6rd":
$ipfrules .= <<<EOD
-
# allow our proto 41 traffic from the 6RD border relay in
pass in on \${$oc['descr']} proto 41 from {$config['interfaces'][$on]['gateway-6rd']} to any label "Allow 6in4 traffic in for 6rd on {$oc['descr']}"
pass out on \${$oc['descr']} proto 41 from any to {$config['interfaces'][$on]['gateway-6rd']} label "Allow 6in4 traffic out for 6rd on {$oc['descr']}"
EOD;
+ if (is_ipaddrv6($oc['ipv6'])) {
+ $ipfrules .= <<<EOD
+pass in on \${$oc['descr']} inet6 from any to {$oc['ipv6']}/{$oc['snv6']} label "Allow 6rd traffic in for 6rd on {$oc['descr']}"
+pass out on \${$oc['descr']} inet6 from {$oc['ipv6']}/{$oc['snv6']} to any label "Allow 6rd traffic out for 6rd on {$oc['descr']}"
+
+EOD;
+ }
break;
case "6to4":
+ if (is_ipaddrv4($oc['ip'])) {
$ipfrules .= <<<EOD
-
# allow our proto 41 traffic from the 6to4 border relay in
-pass in on \${$oc['descr']} proto 41 from 192.88.99.1 to (self) label "Allow 6in4 traffic in for 6to4 on {$oc['descr']}"
-pass out on \${$oc['descr']} proto 41 from (self) to 192.88.99.1 label "Allow 6in4 traffic out for 6to4 on {$oc['descr']}"
+pass in on \${$oc['descr']} proto 41 from any to {$oc['ip']} label "Allow 6in4 traffic in for 6to4 on {$oc['descr']}"
+pass out on \${$oc['descr']} proto 41 from {$oc['ip']} to any label "Allow 6in4 traffic out for 6to4 on {$oc['descr']}"
+
+EOD;
+ }
+ if (is_ipaddrv6($oc['ipv6'])) {
+ $ipfrules .= <<<EOD
+pass in on \${$oc['descr']} inet6 from any to {$oc['ipv6']}/{$oc['snv6']} label "Allow 6in4 traffic in for 6to4 on {$oc['descr']}"
+pass out on \${$oc['descr']} inet6 from {$oc['ipv6']}/{$oc['snv6']} to any label "Allow 6in4 traffic out for 6to4 on {$oc['descr']}"
EOD;
+ }
break;
default:
- if((isset($config['dhcpdv6'][$on]['enable'])) ||
- (isset($config['interfaces'][$on]['track6-interface']))) {
+ if ((is_array($config['dhcpdv6'][$on]) && isset($config['dhcpdv6'][$on]['enable'])) || isset($oc['track6-interface'])) {
$ipfrules .= <<<EOD
-
# allow access to DHCPv6 server on {$oc['descr']}
-anchor "dhcpv6server{$oc['descr']}"
# We need inet6 icmp for stateless autoconfig and dhcpv6
pass quick on \${$oc['descr']} inet6 proto udp from fe80::/10 to fe80::/10 port = 546 label "allow access to DHCPv6 server"
pass quick on \${$oc['descr']} inet6 proto udp from fe80::/10 to ff02::/16 port = 546 label "allow access to DHCPv6 server"
pass quick on \${$oc['descr']} inet6 proto udp from fe80::/10 to ff02::/16 port = 547 label "allow access to DHCPv6 server"
pass quick on \${$oc['descr']} inet6 proto udp from ff02::/16 to fe80::/10 port = 547 label "allow access to DHCPv6 server"
+
+EOD;
+ if (is_ipaddrv6($oc['ipv6'])) {
+ $ipfrules .= <<<EOD
pass in quick on \${$oc['descr']} inet6 proto udp from fe80::/10 to {$oc['ipv6']} port = 546 label "allow access to DHCPv6 server"
pass out quick on \${$oc['descr']} inet6 proto udp from {$oc['ipv6']} port = 547 to fe80::/10 label "allow access to DHCPv6 server"
EOD;
+ }
}
break;
}
@@ -2674,25 +2778,26 @@ EOD;
continue;
$gw = get_interface_gateway($ifdescr);
- if (is_ipaddr($gw) && is_ipaddr($ifcfg['ip']))
- $ipfrules .= "pass out route-to ( {$ifcfg['if']} {$gw} ) from {$ifcfg['ip']} to !{$ifcfg['sa']}/{$ifcfg['sn']} keep state allow-opts label \"let out anything from firewall host itself\"\n";
+ if (is_ipaddrv4($gw) && is_ipaddrv4($ifcfg['ip'])) {
+ $ipfrules .= "pass out route-to ( {$ifcfg['if']} {$gw} ) from {$ifcfg['ip']} to !{$ifcfg['sa']}/{$ifcfg['sn']} keep state allow-opts label \"let out anything from firewall host itself\"\n";
+ if (is_array($ifcfg['vips'])) {
+ foreach ($ifcfg['vips'] as $vip)
+ $ipfrules .= "pass out route-to ( {$ifcfg['if']} {$gw} ) from {$vip['ip']} to !{$vip['ip']}/{$vip['sn']} keep state allow-opts label \"let out anything from firewall host itself\"\n";
+ }
+ }
$gwv6 = get_interface_gateway_v6($ifdescr);
- switch($ifcfg['type6']) {
- case "6rd":
- case "6to4":
- $stf = stf0;
- $pdlen = 64 - calculate_ipv6_delegation_length($ifdescr);
- break;
- default:
- $stf = $ifcfg['if'];
- $pdlen = 64 - calculate_ipv6_delegation_length($ifdescr);
- break;
+ $stf = get_real_interface($ifdescr, "inet6");
+ $pdlen = 64 - calculate_ipv6_delegation_length($ifdescr);
+ if (is_ipaddrv6($gwv6) && is_ipaddrv6($ifcfg['ipv6'])) {
+ $ipfrules .= "pass out route-to ( {$stf} {$gwv6} ) inet6 from {$ifcfg['ipv6']} to !{$ifcfg['ipv6']}/{$pdlen} keep state allow-opts label \"let out anything from firewall host itself\"\n";
+ if (is_array($ifcfg['vips6'])) {
+ foreach ($ifcfg['vips6'] as $vip)
+ $ipfrules .= "pass out route-to ( {$stf} {$gwv6} ) inet6 from {$vip['ip']} to !{$vip['ip']}/{$pdlen} keep state allow-opts label \"let out anything from firewall host itself\"\n";
+ }
}
- if (is_ipaddrv6($gwv6) && is_ipaddrv6($ifcfg['ipv6']))
- $ipfrules .= "pass out route-to ( {$stf} {$gwv6} ) inet6 from {$ifcfg['ipv6']} to !{$ifcfg['ipv6']}/{$pdlen} keep state allow-opts label \"let out anything from firewall host itself\"\n";
}
-
+
/* add ipsec interfaces */
if(isset($config['ipsec']['enable']) || isset($config['ipsec']['client']['enable']))
@@ -2760,62 +2865,91 @@ EOD;
}
}
- if(isset($config['filter']['rule'])) {
+ if (isset($config['filter']['rule'])) {
/* Pre-cache all our rules so we only have to generate them once */
$rule_arr1 = array();
$rule_arr2 = array();
+ $rule_arr3 = array();
+ $vpn_and_ppp_ifs = array("l2tp", "pptp", "pppoe", "enc0", "openvpn");
/*
- * NB: Floating rules need to be written before regular once.
+ * NB: The order must be: Floating rules, then interface group and then regular ones.
*/
foreach ($config['filter']['rule'] as $rule) {
update_filter_reload_status("Pre-caching {$rule['descr']}...");
- if(!isset ($rule['disabled'])) {
- if(isset($rule['floating'])) {
+ if (isset ($rule['disabled']))
+ continue;
+
+ if (!empty($rule['ipprotocol']) && $rule['ipprotocol'] == "inet46") {
+ if (isset($rule['floating'])) {
+ $rule['ipprotocol'] = "inet";
$rule_arr1[] = filter_generate_user_rule_arr($rule);
- } else {
+ $rule['ipprotocol'] = "inet6";
+ $rule_arr1[] = filter_generate_user_rule_arr($rule);
+ } else if (is_interface_group($rule['interface']) || in_array($rule['interface'], $vpn_and_ppp_ifs)) {
+ $rule['ipprotocol'] = "inet";
+ $rule_arr2[] = filter_generate_user_rule_arr($rule);
+ $rule['ipprotocol'] = "inet6";
$rule_arr2[] = filter_generate_user_rule_arr($rule);
+ } else {
+ $rule['ipprotocol'] = "inet";
+ $rule_arr3[] = filter_generate_user_rule_arr($rule);
+ $rule['ipprotocol'] = "inet6";
+ $rule_arr3[] = filter_generate_user_rule_arr($rule);
}
- if($rule['sched'])
- $time_based_rules = true;
+ $rule['ipprotocol'] = "inet46";
+ } else {
+ if (isset($rule['floating']))
+ $rule_arr1[] = filter_generate_user_rule_arr($rule);
+ else if (is_interface_group($rule['interface']) || in_array($rule['interface'], $vpn_and_ppp_ifs))
+ $rule_arr2[] = filter_generate_user_rule_arr($rule);
+ else
+ $rule_arr3[] = filter_generate_user_rule_arr($rule);
}
+ if ($rule['sched'])
+ $time_based_rules = true;
}
- $rule_arr = array_merge($rule_arr1,$rule_arr2);
$ipfrules .= "\n# User-defined rules follow\n";
$ipfrules .= "\nanchor \"userrules/*\"\n";
/* Generate user rule lines */
- foreach($rule_arr as $rule) {
- if(isset($rule['disabled']))
+ foreach($rule_arr1 as $rule) {
+ if (isset($rule['disabled']))
+ continue;
+ if (!$rule['rule'])
continue;
- if(!$rule['rule'])
+ $ipfrules .= "{$rule['rule']} {$rule['descr']}\n";
+ }
+ foreach($rule_arr2 as $rule) {
+ if (isset($rule['disabled']))
+ continue;
+ if (!$rule['rule'])
continue;
$ipfrules .= "{$rule['rule']} {$rule['descr']}\n";
}
+ foreach($rule_arr3 as $rule) {
+ if (isset($rule['disabled']))
+ continue;
+ if (!$rule['rule'])
+ continue;
+ $ipfrules .= "{$rule['rule']} {$rule['descr']}\n";
+ }
+ unset($rule_arr1, $rule_arr2, $rule_arr3);
}
$ipfrules .= "\n# Automatic Pass rules for any delegated IPv6 prefixes through dynamic IPv6 clients\n";
/* add automatic LAN rules to allow IPv6 traffic out for dynamic IPv6 networks */
foreach ($FilterIflist as $ifdescr => $ifcfg) {
- $oc = $FilterIflist[$ifdescr];
- if($config['interfaces'][$ifdescr]['track6-interface'] <> "") {
- $realif = get_real_interface($ifdescr);
- $ifcfgipv6 = find_interface_ipv6($realif);
- $trackifname = $config['interfaces'][$ifdescr]['track6-interface'];
- $trackcfg = $config['interfaces'][$trackifname];
- if($trackcfg['descr'] == "")
- $trackcfg['descr'] = $trackifname;
- $trackcfg['descr'] = strtoupper($trackcfg['descr']);
-
- $pdlen = 64 - calculate_ipv6_delegation_length($trackifname);
- if(is_ipaddrv6($ifcfgipv6)) {
- $prefix = Net_IPv6::getNetmask($ifcfgipv6, $pdlen);
- $ipfrules .= "pass in quick on \${$oc['descr']} inet6 from $prefix/$pdlen to any keep state label \"Allow IPv6 on {$oc['descr']} to any\"\n";
+ if (isset($ifcfg['track6-interface'])) {
+ if (is_ipaddrv6($ifcfg['ipv6'])) {
+ $trackifname = $ifcfg['track6-interface'];
+ $trackcfg = $FilterIflist[$trackifname];
+ $pdlen = 64 - calculate_ipv6_delegation_length($trackifname);
+ $prefix = Net_IPv6::getNetmask($ifcfg['ipv6'], $pdlen);
+ $ipfrules .= "pass in on \${$ifcfg['descr']} inet6 from $prefix/$pdlen to any keep state label \"Allow IPv6 on {$ifcfg['descr']} to any\"\n";
/* add rules on the WAN for traffic back in, let the downstream router
* figure out what to do with the traffic */
- $trackcfgipv6 = find_interface_ipv6(get_real_interface($trackifname));
- if(is_ipaddrv6($trackcfgipv6)) {
- $ipfrules .= "pass in quick on \${$trackcfg['descr']} inet6 from any to $prefix/$pdlen keep state label \"Allow IPv6 in on {$trackcfg['descr']} to $prefix/$pdlen\"\n";
- }
+ if (is_ipaddrv6($trackcfg['ipv6']))
+ $ipfrules .= "pass in on \${$trackcfg['descr']} inet6 from any to $prefix/$pdlen keep state label \"Allow IPv6 in on {$trackcfg['descr']} to $prefix/$pdlen\"\n";
}
}
}
@@ -2831,12 +2965,12 @@ EOD;
if(is_array($FilterIflist[$friendly])) {
$oc = $FilterIflist[$friendly];
$routeent = explode("/", $route['network']);
- if($oc['ip']) {
+ unset($sa);
+ if (is_ipaddrv4($oc['ip'])) {
$sa = $oc['sa'];
$sn = $oc['sn'];
- $if = $oc['if'];
}
- if($sa && is_ipaddrv4($routeent[0])) {
+ if ($sa && is_ipaddrv4($routeent[0])) {
$ipfrules .= <<<EOD
pass quick on \${$oc['descr']} proto tcp from {$sa}/{$sn} to {$route['network']} flags any keep state(sloppy) label "pass traffic between statically routed subnets"
pass quick on \${$oc['descr']} from {$sa}/{$sn} to {$route['network']} keep state(sloppy) label "pass traffic between statically routed subnets"
@@ -2845,12 +2979,12 @@ pass quick on \${$oc['descr']} from {$route['network']} to {$sa}/{$sn} keep stat
EOD;
}
- if($oc['ipv6']) {
+ unset($sa);
+ if (is_ipaddrv6($oc['ipv6'])) {
$sa = $oc['sav6'];
$sn = $oc['snv6'];
- $if = $oc['if'];
}
- if($sa && is_ipaddrv6($routeent[0])) {
+ if ($sa && is_ipaddrv6($routeent[0])) {
$ipfrules .= <<<EOD
pass quick on \${$oc['descr']} inet6 proto tcp from {$sa}/{$sn} to {$route['network']} flags any keep state(sloppy) label "pass traffic between statically routed subnets"
pass quick on \${$oc['descr']} inet6 from {$sa}/{$sn} to {$route['network']} keep state(sloppy) label "pass traffic between statically routed subnets"
@@ -2872,29 +3006,26 @@ anchor "tftp-proxy/*"
EOD;
update_filter_reload_status("Creating uPNP rules...");
- if(isset($config['installedpackages']['miniupnpd']) && isset($config['installedpackages']['miniupnpd']['config'][0]['enable'])) {
-
- $ipfrules .= <<<EOD
-# uPnPd
-anchor "miniupnpd"
-
-EOD;
-
- $upnp_interfaces = explode(",", $config['installedpackages']['miniupnpd'][0]['config']['iface_array']);
- foreach($upnp_interfaces as $upnp_if) {
- if(is_array($FilterIflist[$upnp_if])) {
- $oc = $FilterIflist[$upnp_if];
- if($oc['ip']) {
- $sa = $oc['sa'];
- $sn = $oc['sn'];
- $if = $oc['if'];
- }
- if($sa) {
- $ipfrules .= <<<EOD
-
+ if (is_array($config['installedpackages']['miniupnpd']) && is_array($config['installedpackages']['miniupnpd']['config'][0])) {
+ if (isset($config['installedpackages']['miniupnpd']['config'][0]['enable']))
+ $ipfrules .= "anchor \"miniupnpd\"\n";
+
+ if (is_array($config['installedpackages']['miniupnpd'][0]['config'])) {
+ $upnp_interfaces = explode(",", $config['installedpackages']['miniupnpd'][0]['config']['iface_array']);
+ foreach($upnp_interfaces as $upnp_if) {
+ if (is_array($FilterIflist[$upnp_if])) {
+ $oc = $FilterIflist[$upnp_if];
+ unset($sa);
+ if($oc['ip']) {
+ $sa = $oc['sa'];
+ $sn = $oc['sn'];
+ }
+ if($sa) {
+ $ipfrules .= <<<EOD
pass in on \${$oc['descr']} proto tcp from {$sa}/{$sn} to 239.255.255.250/32 port 1900 keep state label "pass multicast traffic to miniupnpd"
EOD;
+ }
}
}
}
diff --git a/etc/inc/filter_log.inc b/etc/inc/filter_log.inc
index 3e06058..db0131c 100644
--- a/etc/inc/filter_log.inc
+++ b/etc/inc/filter_log.inc
@@ -71,7 +71,8 @@ function conv_log_filter($logfile, $nentries, $tail = 50, $filtertext = "", $fil
$flent = parse_filter_line($logent);
if (!$filterinterface || ($filterinterface == $flent['interface']))
{
- if (($flent != "") && (match_filter_line($flent, $filtertext))) {
+ if ( ( ($flent != "") && (!is_array($filtertext)) && (match_filter_line ($flent, $filtertext))) ||
+ ( ($flent != "") && ( is_array($filtertext)) && (match_filter_field($flent, $filtertext)) ) ) {
$counter++;
$filterlog[] = $flent;
}
@@ -88,6 +89,29 @@ function match_filter_line($flent, $filtertext = "") {
return preg_match("/{$filtertext}/i", implode(" ", array_values($flent)));
}
+function match_filter_field($flent, $fields) {
+ foreach ($fields as $field) {
+ if ($fields[$field] == "All") continue;
+ if ((strpos($fields[$field], '!') === 0)) {
+ $fields[$field] = substr($fields[$field], 1);
+ if (preg_match("/act/i", $field)) {
+ if ( (in_arrayi($flent[$field], explode(",", str_replace(" ", ",", $fields[$field]))) ) ) return false;
+ } else if ( (preg_match("/{$fields[$field]}/i", $flent[$field])) ) return false;
+ }
+ else {
+ if (preg_match("/act/i", $field)) {
+ if ( !(in_arrayi($flent[$field], explode(",", str_replace(" ", ",", $fields[$field]))) ) ) return false;
+ } else if ( !(preg_match("/{$fields[$field]}/i", $flent[$field])) ) return false;
+ }
+ }
+ return true;
+}
+
+// Case Insensitive in_array function
+function in_arrayi($needle, $haystack) {
+ return in_array(strtolower($needle), array_map('strtolower', $haystack));
+}
+
function collapse_filter_lines($logarr) {
$lastline = "";
$collapsed = array();
@@ -112,9 +136,9 @@ function collapse_filter_lines($logarr) {
function parse_filter_line($line) {
global $config, $g;
$log_split = "";
- preg_match("/(.*)\s(.*)\spf:\s.*\srule\s(.*)\(match\)\:\s(.*)\s\w+\son\s(\w+)\:\s\((.*)\)\s(.*)\s>\s(.*)\:\s(.*)/", $line, $log_split);
+ preg_match("/(.*)\s(.*)\spf:\s.*\srule\s(.*)\(match\)\:\s(.*)\s(\w+)\son\s(\w+)\:\s\((.*)\)\s(.*)\s>\s(.*)\:\s(.*)/", $line, $log_split);
- list($all, $flent['time'], $host, $rule, $flent['act'], $flent['realint'], $details, $src, $dst, $leftovers) = $log_split;
+ list($all, $flent['time'], $host, $rule, $flent['act'], $flent['direction'], $flent['realint'], $details, $src, $dst, $leftovers) = $log_split;
list($flent['srcip'], $flent['srcport']) = parse_ipport($src);
list($flent['dstip'], $flent['dstport']) = parse_ipport($dst);
@@ -156,7 +180,17 @@ function parse_filter_line($line) {
$flags = preg_split('/[, ]/', $leftovers);
$flent['tcpflags'] = str_replace(".", "A", substr($flags[1], 1, -1));
} elseif ($flent['proto'] == "Options") {
- $flent['proto'] = "none";
+ /* Then there must be some info we missed */
+ if (!(strpos($leftovers, 'sum ok] ') === FALSE)) {
+ preg_match("/.*\ssum ok]\s(.*)\,\s.*/", $leftovers, $proto);
+ } elseif (!(strpos($line, 'sum ok] ') === FALSE)) {
+ preg_match("/.*\ssum ok]\s(.*)\,\s.*/", $line, $proto);
+ }
+ $proto = explode(" ", trim($proto[1]));
+ $flent['proto'] = rtrim($proto[0], ",");
+ /* If it's still 'Options', then just ignore it. */
+ if ($flent['proto'] == "Options")
+ $flent['proto'] = "none";
}
/* If there is a src, a dst, and a time, then the line should be usable/good */
diff --git a/etc/inc/globals.inc b/etc/inc/globals.inc
index 74b2876..bcfc80f 100644
--- a/etc/inc/globals.inc
+++ b/etc/inc/globals.inc
@@ -34,12 +34,6 @@
*/
-function remove_numbers($string) {
- $nums = array("1", "2", "3", "4", "5", "6", "7", "8", "9", "0", " ");
- $string = str_replace($nums, '', $string);
- return $string;
-}
-
$g = array(
"base_packages" => "siproxd",
"event_address" => "unix:///var/run/check_reload_status",
@@ -47,7 +41,6 @@ $g = array(
"factory_shipped_password" => "pfsense",
"upload_path" => "/root",
"dhcpd_chroot_path" => "/var/dhcpd",
- "unbound_chroot_path" => "/var/unbound",
"varrun_path" => "/var/run",
"varetc_path" => "/var/etc",
"vardb_path" => "/var/db",
@@ -65,19 +58,20 @@ $g = array(
"product_name" => "pfSense",
"product_copyright" => "BSD Perimeter LLC",
"product_copyright_url" => "http://www.bsdperimeter.com",
- "product_copyright_years" => "2004 - 2012",
+ "product_copyright_years" => "2004 - 2013",
"product_website" => "www.pfsense.org",
"product_website_footer" => "http://www.pfsense.org/?gui20",
"product_email" => "coreteam@pfsense.org",
"hideplatform" => false,
"hidedownloadbackup" => false,
+ "hidebackupbeforeupgrade" => false,
"disablethemeselection" => false,
"disablehelpmenu" => false,
"disablehelpicon" => false,
"disablecrashreporter" => false,
"crashreporterurl" => "http://crashreporter.pfsense.org/crash_reporter.php",
"debug" => false,
- "latest_config" => "9.1",
+ "latest_config" => "9.4",
"nopkg_platforms" => array("cdrom"),
"minimum_ram_warning" => "101",
"minimum_ram_warning_text" => "128 MB",
@@ -109,6 +103,8 @@ if(file_exists("/etc/platform")) {
$g['update_url']="http://snapshots.pfsense.org/FreeBSD_RELENG_8_3/{$arch}/pfSense_HEAD/.updaters/";
$g['update_manifest']="http://updates.pfSense.com/nanobsd/manifest";
$g['firmware_update_text']="pfSense-*.img.gz";
+ $g['hidedownloadbackup'] = true;
+ $g['hidebackupbeforeupgrade'] = true;
} else {
$g['update_url']="http://snapshots.pfsense.org/FreeBSD_RELENG_8_3/{$arch}/pfSense_HEAD/.updaters/";
@@ -125,6 +121,8 @@ $sysctls = array("net.inet.ip.portrange.first" => "1024",
"net.inet.tcp.drop_synfin" => "1",
"net.inet.ip.redirect" => "1",
"net.inet6.ip6.redirect" => "1",
+ "net.inet6.ip6.use_tempaddr" => "0",
+ "net.inet6.ip6.prefer_tempaddr" => "0",
"net.inet.tcp.syncookies" => "1",
"net.inet.tcp.recvspace" => "65228",
"net.inet.tcp.sendspace" => "65228",
@@ -145,7 +143,12 @@ $sysctls = array("net.inet.ip.portrange.first" => "1024",
"vfs.read_max" => "32",
"kern.ipc.maxsockbuf" => "4262144",
"debug.pfftpproxy" => "0",
- "net.inet.ip.process_options" => 0
+ "net.inet.ip.process_options" => 0,
+ "vfs.forcesync" => 0,
+ "kern.random.sys.harvest.interrupt" => 0,
+ "kern.random.sys.harvest.point_to_point" => 0,
+ "kern.random.sys.harvest.ethernet" => 0,
+ "net.route.netisr_maxqlen" => 1024
);
$config_parsed = false;
diff --git a/etc/inc/gwlb.inc b/etc/inc/gwlb.inc
index 173a185..813cf40 100644
--- a/etc/inc/gwlb.inc
+++ b/etc/inc/gwlb.inc
@@ -53,7 +53,7 @@ function setup_gateways_monitor() {
if (!is_array($gateways_arr)) {
log_error("No gateways to monitor. Apinger will not be run.");
killbypid("{$g['varrun_path']}/apinger.pid");
- @unlink("{$g['tmp_path']}/apinger.status");
+ @unlink("{$g['varrun_path']}/apinger.status");
return;
}
@@ -78,7 +78,7 @@ pid_file "{$g['varrun_path']}/apinger.pid"
status {
## File where the status information should be written to
- file "{$g['tmp_path']}/apinger.status"
+ file "{$g['varrun_path']}/apinger.status"
## Interval between file updates
## when 0 or not set, file is written only when SIGUSR1 is received
interval 5s
@@ -161,8 +161,9 @@ EOD;
/* Interface ip is needed since apinger will bind a socket to it. */
if (is_ipaddrv4($gateway['gateway'])) {
$gwifip = find_interface_ip($gateway['interface'], true);
- }
- if (is_ipaddrv6($gateway['gateway'])) {
+ if (!is_ipaddrv4($gwifip))
+ continue; //Skip this target
+ } else if (is_ipaddrv6($gateway['gateway'])) {
/* link locals really need a different src ip */
if(preg_match("/fe80::/i", $gateway['gateway'])) {
$linklocal = explode("%", find_interface_ipv6_ll($gateway['interface'], true));
@@ -171,9 +172,10 @@ EOD;
} else {
$gwifip = find_interface_ipv6($gateway['interface'], true);
}
- }
- if (!is_ipaddr($gwifip))
- continue; //Skip this target
+ if (!is_ipaddrv6($gwifip))
+ continue; //Skip this target
+ } else
+ continue;
$monitor_ips[] = monitor_ips;
$apingercfg = "target \"{$gateway['monitor']}\" {\n";
@@ -265,7 +267,7 @@ EOD;
@chown("{$g['vardb_path']}/rrd", "nobody");
/* start a new apinger process */
- @unlink("{$g['tmp_path']}/apinger.status");
+ @unlink("{$g['varrun_path']}/apinger.status");
sleep(1);
mwexec_bg("/usr/local/sbin/apinger -c {$g['varetc_path']}/apinger.conf");
@@ -277,8 +279,8 @@ function return_gateways_status($byname = false) {
global $config, $g;
$apingerstatus = array();
- if (file_exists("{$g['tmp_path']}/apinger.status")) {
- $apingerstatus = file("{$g['tmp_path']}/apinger.status");
+ if (file_exists("{$g['varrun_path']}/apinger.status")) {
+ $apingerstatus = file("{$g['varrun_path']}/apinger.status");
}
$status = array();
@@ -289,6 +291,7 @@ function return_gateways_status($byname = false) {
else
$target = $info[2];
+ $status[$target] = array();
$status[$target]['monitorip'] = $info[0];
$status[$target]['srcip'] = $info[1];
$status[$target]['name'] = $info[2];
@@ -302,37 +305,39 @@ function return_gateways_status($byname = false) {
* or are down, which could cause gateway groups to fail */
$gateways_arr = return_gateways_array();
foreach($gateways_arr as $gwitem) {
- if(isset($gwitem['monitor_disable'])) {
- if(!is_ipaddr($gwitem['monitorip'])) {
- $realif = $gwitem['interface'];
- $tgtip = get_interface_gateway($realif);
- $srcip = find_interface_ip($realif);
- } else {
- $tgtip = $gwitem['monitorip'];
- $srcip = find_interface_ip($realif);
- }
- if($byname == true)
- $target = $gwitem['name'];
- else
- $target = $tgtip;
-
- /* failsafe for down interfaces */
- if($target == "") {
- $target = $gwitem['name'];
- $status[$target]['name'] = $gwitem['name'];
- $status[$target]['lastcheck'] = date('r');
- $status[$target]['delay'] = "0.0ms";
- $status[$target]['loss'] = "100.0%";
- $status[$target]['status'] = "down";
- } else {
- $status[$target]['monitorip'] = $tgtip;
- $status[$target]['srcip'] = $srcip;
- $status[$target]['name'] = $gwitem['name'];
- $status[$target]['lastcheck'] = date('r');
- $status[$target]['delay'] = "0.0ms";
- $status[$target]['loss'] = "0.0%";
- $status[$target]['status'] = "none";
- }
+ if(!isset($gwitem['monitor_disable']))
+ continue;
+ if(!is_ipaddr($gwitem['monitorip'])) {
+ $realif = $gwitem['interface'];
+ $tgtip = get_interface_gateway($realif);
+ if (!is_ipaddr($tgtip))
+ $tgtip = "none";
+ $srcip = find_interface_ip($realif);
+ } else {
+ $tgtip = $gwitem['monitorip'];
+ $srcip = find_interface_ip($realif);
+ }
+ if($byname == true)
+ $target = $gwitem['name'];
+ else
+ $target = $tgtip;
+
+ /* failsafe for down interfaces */
+ if($target == "none") {
+ $target = $gwitem['name'];
+ $status[$target]['name'] = $gwitem['name'];
+ $status[$target]['lastcheck'] = date('r');
+ $status[$target]['delay'] = "0.0ms";
+ $status[$target]['loss'] = "100.0%";
+ $status[$target]['status'] = "down";
+ } else {
+ $status[$target]['monitorip'] = $tgtip;
+ $status[$target]['srcip'] = $srcip;
+ $status[$target]['name'] = $gwitem['name'];
+ $status[$target]['lastcheck'] = date('r');
+ $status[$target]['delay'] = "0.0ms";
+ $status[$target]['loss'] = "0.0%";
+ $status[$target]['status'] = "none";
}
}
return($status);
@@ -353,72 +358,60 @@ function return_gateways_array($disabled = false, $localhost = false) {
$i = 0;
/* Process/add all the configured gateways. */
if (is_array($config['gateways']['gateway_item'])) {
- foreach($config['gateways']['gateway_item'] as $gateway) {
- /* skip disabled interfaces */
- if(!isset($config['interfaces'][$gateway['interface']]['enable']))
+ foreach ($config['gateways']['gateway_item'] as $gateway) {
+ if (empty($config['interfaces'][$gateway['interface']]))
continue;
-
$wancfg = $config['interfaces'][$gateway['interface']];
- /* getting this detection right is hard at this point because we still don't
- * store the address family in the gateway item */
- if(is_ipaddrv4($gateway['gateway']))
- $gateway['ipprotocol'] = "inet";
- if(is_ipaddrv6($gateway['gateway']))
- $gateway['ipprotocol'] = "inet6";
- if((preg_match("/dynamic/i", $gateway['gateway'])) && (!isset($gateway['ipprotocol']))) {
- if(is_ipaddrv4($gateway['gateway']))
- $gateway['ipprotocol'] = "inet";
- if(is_ipaddrv6($gateway['gateway']))
- $gateway['ipprotocol'] = "inet6";
- }
- if((preg_match("/dynamic/i", $gateway['monitor'])) && (!isset($gateway['ipprotocol']))) {
- if(is_ipaddrv4($gateway['monitor']))
- $gateway['ipprotocol'] = "inet";
- if(is_ipaddrv6($gateway['monitor']))
- $gateway['ipprotocol'] = "inet6";
- }
+
+ /* skip disabled interfaces */
+ if (!isset($wancfg['enable']))
+ continue;
/* if the gateway is dynamic and we can find the IPv4, Great! */
- if((empty($gateway['gateway']) || ($gateway['gateway'] == "dynamic")) && ($gateway['ipprotocol'] == "inet")) {
- /* we know which interfaces is dynamic, this should be made a function */
- switch($wancfg['ipaddr']) {
- case "dhcp":
- case "pppoe":
- case "pptp":
- case "ppp":
- $gateway['ipprotocol'] = "inet";
- $gateway['gateway'] = get_interface_gateway($gateway['interface']);
- if($gateway['gateway'] == "dynamic") {
- $dynstr = $gateway['gateway'];
- }
- /* no IP address found, set to dynamic */
- if(! is_ipaddrv4($gateway['gateway'])) {
- $gateway['gateway'] = "{$dynstr}";
- }
- $gateway['dynamic'] = true;
- break;
+ if (empty($gateway['gateway']) || $gateway['gateway'] == "dynamic") {
+ if ($gateway['ipprotocol'] == "inet") {
+ /* we know which interfaces is dynamic, this should be made a function */
+ switch($wancfg['ipaddr']) {
+ case "dhcp":
+ case "pppoe":
+ case "pptp":
+ case "ppp":
+ $gateway['ipprotocol'] = "inet";
+ $gateway['gateway'] = get_interface_gateway($gateway['interface']);
+ /* no IP address found, set to dynamic */
+ if (!is_ipaddrv4($gateway['gateway']))
+ $gateway['gateway'] = "dynamic";
+ $gateway['dynamic'] = true;
+ break;
+ }
}
- }
- /* if the gateway is dynamic6 and we can find the IPv6, Great! */
- if((empty($gateway['gateway']) || ($gateway['gateway'] == "dynamic")) && ($gateway['ipprotocol'] == "inet6")) {
- /* we know which interfaces is dynamic, this should be made a function, and for v6 too */
- switch($wancfg['ipaddrv6']) {
- case "6rd":
- case "6to4":
- case "dhcp6":
- $gateway['ipprotocol'] = "inet6";
- $gateway['gateway'] = get_interface_gateway_v6($gateway['interface']);
- if($gateway['gateway'] == "dynamic6") {
- $dynstr = $gateway['gateway'];
- }
- /* no IPv6 address found, set to dynamic6 */
- if(! is_ipaddrv6($gateway['gateway'])) {
- $gateway['gateway'] = "{$dynstr}";
- }
- $gateway['dynamic'] = true;
- break;
+ /* if the gateway is dynamic6 and we can find the IPv6, Great! */
+ if ($gateway['ipprotocol'] == "inet6") {
+ /* we know which interfaces is dynamic, this should be made a function, and for v6 too */
+ switch($wancfg['ipaddrv6']) {
+ case "6rd":
+ case "6to4":
+ case "dhcp6":
+ case "pppoe":
+ case "pptp":
+ case "ppp":
+ $gateway['ipprotocol'] = "inet6";
+ $gateway['gateway'] = get_interface_gateway_v6($gateway['interface']);
+ /* no IPv6 address found, set to dynamic6 */
+ if (!is_ipaddrv6($gateway['gateway']))
+ $gateway['gateway'] = "dynamic6";
+ $gateway['dynamic'] = true;
+ break;
+ }
}
+ } else {
+ /* getting this detection right is hard at this point because we still don't
+ * store the address family in the gateway item */
+ if (is_ipaddrv4($gateway['gateway']))
+ $gateway['ipprotocol'] = "inet";
+ else if(is_ipaddrv6($gateway['gateway']))
+ $gateway['ipprotocol'] = "inet6";
}
if (isset($gateway['monitor_disable']))
@@ -429,65 +422,32 @@ function return_gateways_array($disabled = false, $localhost = false) {
$gateway['friendlyiface'] = $gateway['interface'];
/* special treatment for tunnel interfaces */
- if($gateway['ipprotocol'] == "inet6") {
- switch($wancfg['ipaddrv6']) {
- case "6rd":
- case "6to4":
- $gateway['interface'] = "stf0";
- break;
- default:
- $gateway['interface'] = get_real_interface($gateway['interface']);
- break;
- }
- }
- if($gateway['ipprotocol'] == "inet") {
+ if ($gateway['ipprotocol'] == "inet6") {
+ $gateway['interface'] = get_real_interface($gateway['interface'], "inet6");
+ $interfaces_v6[$gateway['friendlyiface']] = $gateway['friendlyiface'];
+ } else {
$gateway['interface'] = get_real_interface($gateway['interface']);
+ $interfaces_v4[$gateway['friendlyiface']] = $gateway['friendlyiface'];
}
/* entry has a default flag, use it */
if (isset($gateway['defaultgw'])) {
- if($gateway['ipprotocol'] == "inet") {
+ if ($gateway['ipprotocol'] == "inet") {
$gateway['defaultgw'] = true;
$found_defaultv4 = 1;
- }
- if($gateway['ipprotocol'] == "inet6") {
+ } else if ($gateway['ipprotocol'] == "inet6") {
$gateway['defaultgw'] = true;
$found_defaultv6 = 1;
}
}
- /* FIXME: Should this be enabled.
- * Some interface like wan might be default but have no info recorded
- * the config. */
- /* this is a fallback if all else fails and we want to get packets out @smos */
- if (!isset($gateway['defaultgw'])) {
- if (($gateway['friendlyiface'] == "wan") && ($found_defaultv4 == 0)) {
- if (file_exists("{$g['tmp_path']}/{$gateway['interface']}_defaultgw")) {
- $gateway['defaultgw'] = true;
- $found_defaultv4 = 1;
- }
- }
- if (($gateway['friendlyiface'] == "wan") && ($found_defaultv6 == 0)) {
- if (file_exists("{$g['tmp_path']}/{$gateway['interface']}_defaultgwv6")) {
- $gateway['defaultgw'] = true;
- $found_defaultv6 = 1;
- }
- }
- }
/* include the gateway index as the attribute */
$gateway['attribute'] = $i;
- /* tack a item on the array to keep track of dynamic interfaces */
- if($gateway['ipprotocol'] == "inet")
- $interfaces_v4[] = $gateway['friendlyiface'];
-
- if($gateway['ipprotocol'] == "inet6")
- $interfaces_v6[] = $gateway['friendlyiface'];
-
$gateways_arr[$gateway['name']] = $gateway;
- unset($gateway);
$i++;
}
}
+ unset($gateway);
/* Loop through all interfaces with a gateway and add it to a array */
if ($disabled == false)
@@ -504,13 +464,13 @@ function return_gateways_array($disabled = false, $localhost = false) {
continue;
$ifcfg = &$config['interfaces'][$ifname];
- if(!empty($ifcfg['ipaddr']) && is_ipaddrv4($ifcfg['ipaddr']))
+ if(!isset($ifcfg['enable']))
continue;
- if(!isset($ifcfg['enable']))
+ if(!empty($ifcfg['ipaddr']) && is_ipaddrv4($ifcfg['ipaddr']))
continue;
- if(in_array($ifname, $interfaces_v4))
+ if (isset($interfaces_v4[$ifname]))
continue;
$ctype = "";
@@ -522,7 +482,7 @@ function return_gateways_array($disabled = false, $localhost = false) {
$ctype = strtoupper($ifcfg['ipaddr']);
break;
default:
- if (substr($ifcfg['if'], 0, 5) == "ovpnc")
+ if (substr($ifcfg['if'], 0, 4) == "ovpn")
$ctype = "VPNv4";
break;
}
@@ -558,11 +518,15 @@ function return_gateways_array($disabled = false, $localhost = false) {
$gateway['descr'] = "Interface {$friendly}{$ctype} Gateway";
$gateways_arr[$gateway['name']] = $gateway;
- unset($gateway);
}
+ unset($gateway);
/* Process/add dynamic v6 gateways. */
foreach($iflist as $ifname => $friendly ) {
+ /* If the user has disabled IPv6, they probably don't want any IPv6 gateways. */
+ if (!isset($config['system']['ipv6allow']))
+ break;
+
if(! interface_has_gatewayv6($ifname))
continue;
@@ -570,13 +534,13 @@ function return_gateways_array($disabled = false, $localhost = false) {
continue;
$ifcfg = &$config['interfaces'][$ifname];
- if(!empty($ifcfg['ipaddrv6']) && is_ipaddrv6($ifcfg['ipaddrv6']))
- continue;
-
if(!isset($ifcfg['enable']))
continue;
- if(in_array($ifname, $interfaces_v6))
+ if(!empty($ifcfg['ipaddrv6']) && is_ipaddrv6($ifcfg['ipaddrv6']))
+ continue;
+
+ if(isset($interfaces_v6[$ifname]))
continue;
$ctype = "";
@@ -588,7 +552,7 @@ function return_gateways_array($disabled = false, $localhost = false) {
$ctype = strtoupper($ifcfg['ipaddrv6']);
break;
default:
- if (substr($ifcfg['if'], 0, 5) == "ovpnc")
+ if (substr($ifcfg['if'], 0, 4) == "ovpn")
$ctype = "VPNv6";
break;
}
@@ -598,18 +562,12 @@ function return_gateways_array($disabled = false, $localhost = false) {
$gateway['dynamic'] = false;
$gateway['ipprotocol'] = "inet6";
$gateway['gateway'] = get_interface_gateway_v6($ifname, $gateway['dynamic']);
+ $gateway['interface'] = get_real_interface($ifname, "inet6");
switch($ifcfg['ipaddrv6']) {
- case "6to4":
- $gateway['interface'] = "stf0";
- $gateway['dynamic'] = "default";
- break;
case "6rd":
- $gateway['interface'] = "stf0";
+ case "6to4":
$gateway['dynamic'] = "default";
break;
- default:
- $gateway['interface'] = get_real_interface($ifname);
- break;
}
$gateway['friendlyiface'] = $ifname;
$gateway['name'] = "{$friendly}{$ctype}";
@@ -637,7 +595,28 @@ function return_gateways_array($disabled = false, $localhost = false) {
$gateway['descr'] = "Interface {$friendly}{$ctype} Gateway";
$gateways_arr[$gateway['name']] = $gateway;
- unset($gateway);
+ }
+ unset($gateway);
+
+ /* FIXME: Should this be enabled.
+ * Some interface like wan might be default but have no info recorded
+ * the config. */
+ /* this is a fallback if all else fails and we want to get packets out @smos */
+ if ($found_defaultv4 == 0 || $found_defaultv6 == 0) {
+ foreach ($gateways_arr as &$gateway) {
+ if (($gateway['friendlyiface'] == "wan") && ($found_defaultv4 == 0) && (!isset($gateway['ipprotocol']) || ($gateway['ipprotocol'] == "inet"))) {
+ if (file_exists("{$g['tmp_path']}/{$gateway['interface']}_defaultgw")) {
+ $gateway['defaultgw'] = true;
+ $found_defaultv4 = 1;
+ }
+ }
+ if (($gateway['friendlyiface'] == "wan") && ($found_defaultv6 == 0) && ($gateway['ipprotocol'] == "inet6")) {
+ if (file_exists("{$g['tmp_path']}/{$gateway['interface']}_defaultgwv6")) {
+ $gateway['defaultgw'] = true;
+ $found_defaultv6 = 1;
+ }
+ }
+ }
}
if($localhost === true) {
@@ -721,26 +700,30 @@ function return_gateway_groups_array() {
$gateways_status = return_gateways_status(true);
$gateways_arr = return_gateways_array();
$gateway_groups_array = array();
- $carplist = get_configured_carp_interface_list();
if (isset($config['system']['gw_switch_default'])) {
fixup_default_gateway("inet", $gateways_status, $gateways_arr);
fixup_default_gateway("inet6", $gateways_status, $gateways_arr);
}
if (is_array($config['gateways']['gateway_group'])) {
- foreach($config['gateways']['gateway_group'] as $group) {
+ $carplist = get_configured_carp_interface_list();
+ foreach ($config['gateways']['gateway_group'] as $group) {
/* create array with group gateways members seperated by tier */
$tiers = array();
$backupplan = array();
- foreach($group['item'] as $item) {
- $itemsplit = explode("|", $item);
- $tier = $itemsplit[1];
- $gwname = $itemsplit[0];
- $vipname = $itemsplit[2];
- if(is_ipaddr($carplist[$vipname]))
+ $gwvip_arr = array();
+ foreach ($group['item'] as $item) {
+ list($gwname, $tier, $vipname) = explode("|", $item);
+
+ if (is_ipaddr($carplist[$vipname])) {
+ if (!is_array($group['name']))
+ $gwvip_arr[$group['name']] = array();
$gwvip_arr[$group['name']][$gwname] = $vipname;
+ }
/* Do it here rather than reiterating again the group in case no member is up. */
+ if (!is_array($backupplan[$tier]))
+ $backupplan[$tier] = array();
$backupplan[$tier][] = $gwname;
/* check if the gateway is available before adding it to the array */
@@ -765,19 +748,21 @@ function return_gateway_groups_array() {
notify_via_smtp($msg);
} else {
/* Online add member */
+ if (!is_array($tiers[$tier]))
+ $tiers[$tier] = array();
$tiers[$tier][] = $gwname;
}
} else if (isset($gateways_arr[$gwname]['monitor_disable']))
$tiers[$tier][] = $gwname;
}
$tiers_count = count($tiers);
- if($tiers_count == 0) {
+ if ($tiers_count == 0) {
/* Oh dear, we have no members! Engage Plan B */
if (!$g['booting']) {
$msg = gettext("Gateways status could not be determined, considering all as up/active. (Group: {$group['name']})");
log_error($msg);
notify_via_growl($msg);
- notify_via_smtp($msg);
+ //notify_via_smtp($msg);
}
$tiers = $backupplan;
}
@@ -785,9 +770,9 @@ function return_gateway_groups_array() {
ksort($tiers);
/* we do not really foreach the tiers as we stop after the first tier */
- foreach($tiers as $tier) {
+ foreach ($tiers as $tieridx => $tier) {
/* process all gateways in this tier */
- foreach($tier as $member) {
+ foreach ($tier as $member) {
/* determine interface gateway */
if (isset($gateways_arr[$member])) {
$gateway = $gateways_arr[$member];
@@ -795,15 +780,15 @@ function return_gateway_groups_array() {
$gatewayip = "";
if(is_ipaddr($gateway['gateway']))
$gatewayip = $gateway['gateway'];
- else if ($int <> "")
+ else if (!empty($int))
$gatewayip = get_interface_gateway($gateway['friendlyiface']);
- if (($int <> "") && is_ipaddr($gatewayip)) {
+ if (!empty($int) && is_ipaddr($gatewayip)) {
$groupmember = array();
$groupmember['int'] = $int;
$groupmember['gwip'] = $gatewayip;
$groupmember['weight'] = isset($gateway['weight']) ? $gateway['weight'] : 1;
- if($gwvip_arr[$group['name']][$gwname] <> "")
+ if (is_array($gwvip_arr[$group['name']])&& !empty($gwvip_arr[$group['name']][$gwname]))
$groupmember['vip'] = $gwvip_arr[$group['name']][$gwname];
$gateway_groups_array[$group['name']]['ipprotocol'] = $gateway['ipprotocol'];
$gateway_groups_array[$group['name']][] = $groupmember;
@@ -811,13 +796,14 @@ function return_gateway_groups_array() {
}
}
/* we should have the 1st available tier now, exit stage left */
- if(is_array($gateway_groups_array[$group['name']]))
+ if (count($gateway_groups_array[$group['name']]) > 0)
break;
else
- log_error("GATEWAYS: We did not find the first tier of the gateway group {$group['name']}! That's odd.");
+ log_error("GATEWAYS: Group {$group['name']} did not have any gateways up on tier {$tieridx}!");
}
}
}
+
return ($gateway_groups_array);
}
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc
index 3c84eb7..0ad8211 100644
--- a/etc/inc/interfaces.inc
+++ b/etc/inc/interfaces.inc
@@ -1,5 +1,4 @@
<?php
-/* $Id$ */
/*
interfaces.inc
Copyright (C) 2004-2008 Scott Ullrich
@@ -37,14 +36,13 @@
pfSense_BUILDER_BINARIES: /sbin/dhclient /bin/sh /usr/bin/grep /usr/bin/xargs /usr/bin/awk /usr/local/sbin/choparp
pfSense_BUILDER_BINARIES: /sbin/ifconfig /sbin/route /usr/sbin/ngctl /usr/sbin/arp /bin/kill /usr/local/sbin/mpd5
- pfSense_BUILDER_BINARIES: /usr/local/sbin/dhclient
+ pfSense_BUILDER_BINARIES: /usr/local/sbin/dhcp6c
pfSense_MODULE: interfaces
*/
/* include all configuration functions */
require_once("globals.inc");
-require_once("cmd_chain.inc");
require_once("util.inc");
require_once("gwlb.inc");
@@ -61,13 +59,13 @@ function interfaces_bring_up($interface) {
* Return the interface array
*/
function get_interface_arr($flush = false) {
- global $interface_arr_cache;
+ global $interface_arr_cache;
- /* If the cache doesn't exist, build it */
- if (!isset($interface_arr_cache) or $flush)
- $interface_arr_cache = pfSense_interface_listget();
+ /* If the cache doesn't exist, build it */
+ if (!isset($interface_arr_cache) or $flush)
+ $interface_arr_cache = pfSense_interface_listget();
- return $interface_arr_cache;
+ return $interface_arr_cache;
}
/*
@@ -76,7 +74,7 @@ function get_interface_arr($flush = false) {
*/
function does_interface_exist($interface) {
global $config;
-
+
if(!$interface)
return false;
@@ -93,7 +91,7 @@ function does_interface_exist($interface) {
*/
function does_vip_exist($vip) {
global $config;
-
+
if(!$vip)
return false;
@@ -173,7 +171,7 @@ This block of code is only entered for OPTx interfaces that are configured for P
$found = true;
break;
}
-*/
+*/
$ports = explode(',',$ppp['ports']);
foreach($ports as $pid => $port){
$port = get_real_interface($port);
@@ -181,8 +179,8 @@ This block of code is only entered for OPTx interfaces that are configured for P
$found = true;
break;
}
- /* Find the parent interfaces of the vlans in the MLPPP configs
- * there should be only one element in the array here
+ /* Find the parent interfaces of the vlans in the MLPPP configs
+ * there should be only one element in the array here
* -- this could be better . . . */
$parent_if = get_parent_interface($port);
if ($realif == $parent_if[0]) {
@@ -193,7 +191,7 @@ This block of code is only entered for OPTx interfaces that are configured for P
}
}
}
-
+
if ($found == false) {
$realif = get_real_interface($interface);
pfSense_ngctl_detach("{$realif}:", $realif);
@@ -236,7 +234,7 @@ function interfaces_vlan_configure() {
}
function interface_vlan_configure(&$vlan) {
- global $config, $g;
+ global $config, $g;
if (!is_array($vlan)) {
log_error(gettext("VLAN: called with wrong options. Problems with config!"));
@@ -278,73 +276,79 @@ function interface_vlan_configure(&$vlan) {
}
function interface_qinq_configure(&$vlan, $fd = NULL) {
- global $config, $g;
-
- if (!is_array($vlan)) {
- log_error(sprintf(gettext("QinQ compat VLAN: called with wrong options. Problems with config!%s"), "\n"));
- return;
- }
-
- $qinqif = $vlan['if'];
- $tag = $vlan['tag'];
- if(empty($qinqif)) {
- log_error(sprintf(gettext("interface_qinq_configure called with if undefined.%s"), "\n"));
- return;
- }
+ global $config, $g;
+
+ if (!is_array($vlan)) {
+ log_error(sprintf(gettext("QinQ compat VLAN: called with wrong options. Problems with config!%s"), "\n"));
+ return;
+ }
+
+ $qinqif = $vlan['if'];
+ $tag = $vlan['tag'];
+ if(empty($qinqif)) {
+ log_error(sprintf(gettext("interface_qinq_configure called with if undefined.%s"), "\n"));
+ return;
+ }
+
+ if(!does_interface_exist($qinqif)) {
+ log_error(sprintf(gettext("interface_qinq_configure called with invalid if.%s"), "\n"));
+ return;
+ }
+
$vlanif = interface_vlan_configure($vlan);
- if ($fd == NULL) {
- $exec = true;
- $fd = fopen("{$g['tmp_path']}/netgraphcmd", "w");
- } else
- $exec = false;
- /* make sure the parent is converted to ng_vlan(4) and is up */
- interfaces_bring_up($qinqif);
+ if ($fd == NULL) {
+ $exec = true;
+ $fd = fopen("{$g['tmp_path']}/netgraphcmd", "w");
+ } else
+ $exec = false;
+ /* make sure the parent is converted to ng_vlan(4) and is up */
+ interfaces_bring_up($qinqif);
pfSense_ngctl_attach(".", $qinqif);
- if (!empty($vlanif) && does_interface_exist($vlanif)) {
- fwrite($fd, "shutdown {$qinqif}qinq:\n");
- exec("/usr/sbin/ngctl msg {$qinqif}qinq: gettable", $result);
- if (empty($result)) {
- fwrite($fd, "mkpeer {$qinqif}: vlan lower downstream\n");
- fwrite($fd, "name {$qinqif}:lower {$vlanif}qinq\n");
- fwrite($fd, "connect {$qinqif}: {$vlanif}qinq: upper nomatch\n");
- }
- } else {
- fwrite($fd, "mkpeer {$qinqif}: vlan lower downstream\n");
- fwrite($fd, "name {$qinqif}:lower {$vlanif}qinq\n");
- fwrite($fd, "connect {$qinqif}: {$vlanif}qinq: upper nomatch\n");
- }
-
- /* invalidate interface cache */
- get_interface_arr(true);
-
- if (!stristr($qinqif, "vlan"))
- mwexec("/sbin/ifconfig {$qinqif} promisc\n");
-
- $macaddr = get_interface_mac($qinqif);
- if (!empty($vlan['members'])) {
- $members = explode(" ", $vlan['members']);
- foreach ($members as $qtag) {
- $qinq = array();
- $qinq['tag'] = $qtag;
- $qinq['if'] = $vlanif;
- interface_qinq2_configure($qinq, $fd, $macaddr);
- }
- }
- if ($exec == true) {
- fclose($fd);
- mwexec("/usr/sbin/ngctl -f {$g['tmp_path']}/netgraphcmd");
- }
-
- interfaces_bring_up($qinqif);
- if (!empty($vlan['members'])) {
- $members = explode(" ", $vlan['members']);
- foreach ($members as $qif)
- interfaces_bring_up("{$vlanif}_{$qif}");
- }
-
- return $vlanif;
+ if (!empty($vlanif) && does_interface_exist($vlanif)) {
+ fwrite($fd, "shutdown {$qinqif}qinq:\n");
+ exec("/usr/sbin/ngctl msg {$qinqif}qinq: gettable", $result);
+ if (empty($result)) {
+ fwrite($fd, "mkpeer {$qinqif}: vlan lower downstream\n");
+ fwrite($fd, "name {$qinqif}:lower {$vlanif}qinq\n");
+ fwrite($fd, "connect {$qinqif}: {$vlanif}qinq: upper nomatch\n");
+ }
+ } else {
+ fwrite($fd, "mkpeer {$qinqif}: vlan lower downstream\n");
+ fwrite($fd, "name {$qinqif}:lower {$vlanif}qinq\n");
+ fwrite($fd, "connect {$qinqif}: {$vlanif}qinq: upper nomatch\n");
+ }
+
+ /* invalidate interface cache */
+ get_interface_arr(true);
+
+ if (!stristr($qinqif, "_vlan"))
+ mwexec("/sbin/ifconfig {$qinqif} promisc\n");
+
+ $macaddr = get_interface_mac($qinqif);
+ if (!empty($vlan['members'])) {
+ $members = explode(" ", $vlan['members']);
+ foreach ($members as $qtag) {
+ $qinq = array();
+ $qinq['tag'] = $qtag;
+ $qinq['if'] = $vlanif;
+ interface_qinq2_configure($qinq, $fd, $macaddr);
+ }
+ }
+ if ($exec == true) {
+ fclose($fd);
+ mwexec("/usr/sbin/ngctl -f {$g['tmp_path']}/netgraphcmd");
+ }
+
+ interfaces_bring_up($qinqif);
+ if (!empty($vlan['members'])) {
+ $members = explode(" ", $vlan['members']);
+ foreach ($members as $qif)
+ interfaces_bring_up("{$vlanif}_{$qif}");
+ }
+
+ return $vlanif;
}
function interfaces_qinq_configure() {
@@ -362,85 +366,110 @@ function interfaces_qinq_configure() {
}
function interface_qinq2_configure(&$qinq, $fd, $macaddr) {
- global $config, $g;
-
- if (!is_array($qinq)) {
- log_error(sprintf(gettext("QinQ compat VLAN: called with wrong options. Problems with config!%s"), "\n"));
- return;
- }
-
- $if = $qinq['if'];
- $tag = $qinq['tag'];
- $vlanif = "{$if}_{$tag}";
- if(empty($if)) {
- log_error(sprintf(gettext("interface_qinq2_configure called with if undefined.%s"), "\n"));
- return;
- }
-
- fwrite($fd, "shutdown {$if}h{$tag}:\n");
- fwrite($fd, "mkpeer {$if}qinq: eiface {$if}{$tag} ether\n");
- fwrite($fd, "name {$if}qinq:{$if}{$tag} {$if}h{$tag}\n");
- fwrite($fd, "msg {$if}qinq: addfilter { vlan={$tag} hook=\"{$if}{$tag}\" }\n");
- fwrite($fd, "msg {$if}h{$tag}: setifname \"{$vlanif}\"\n");
- fwrite($fd, "msg {$if}h{$tag}: set {$macaddr}\n");
-
- /* invalidate interface cache */
- get_interface_arr(true);
-
- return $vlanif;
+ global $config, $g;
+
+ if (!is_array($qinq)) {
+ log_error(sprintf(gettext("QinQ compat VLAN: called with wrong options. Problems with config!%s"), "\n"));
+ return;
+ }
+
+ $if = $qinq['if'];
+ $tag = $qinq['tag'];
+ $vlanif = "{$if}_{$tag}";
+ if(empty($if)) {
+ log_error(sprintf(gettext("interface_qinq2_configure called with if undefined.%s"), "\n"));
+ return;
+ }
+
+ fwrite($fd, "shutdown {$if}h{$tag}:\n");
+ fwrite($fd, "mkpeer {$if}qinq: eiface {$if}{$tag} ether\n");
+ fwrite($fd, "name {$if}qinq:{$if}{$tag} {$if}h{$tag}\n");
+ fwrite($fd, "msg {$if}qinq: addfilter { vlan={$tag} hook=\"{$if}{$tag}\" }\n");
+ fwrite($fd, "msg {$if}h{$tag}: setifname \"{$vlanif}\"\n");
+ fwrite($fd, "msg {$if}h{$tag}: set {$macaddr}\n");
+
+ /* invalidate interface cache */
+ get_interface_arr(true);
+
+ return $vlanif;
}
function interfaces_create_wireless_clones() {
- global $config;
+ global $config, $g;
if($g['booting'])
- echo gettext("Creating other wireless clone interfaces...");
- if (is_array($config['wireless']['clone']) && count($config['wireless']['clone'])) {
+ echo gettext("Creating wireless clone interfaces...");
+
+ $iflist = get_configured_interface_list();
+
+ foreach ($iflist as $if) {
+ $realif = $config['interfaces'][$if]['if'];
+ if (is_interface_wireless($realif))
+ interface_wireless_clone(interface_get_wireless_clone($realif), $config['interfaces'][$if]);
+ }
+
+ if (isset($config['wireless']['clone']) && is_array($config['wireless']['clone']) && count($config['wireless']['clone'])) {
foreach ($config['wireless']['clone'] as $clone) {
if(empty($clone['cloneif']))
continue;
if(does_interface_exist($clone['cloneif']))
continue;
/* XXX: Maybe we should report any errors?! */
- if(interface_wireless_clone($clone['cloneif'], $clone))
- if($g['booting'])
- echo " " . $clone['cloneif'];
+ interface_wireless_clone($clone['cloneif'], $clone);
}
}
if($g['booting'])
- echo " " . gettext("done.") . "\n";
+ echo gettext("done.") . "\n";
}
function interfaces_bridge_configure($checkmember = 0) {
- global $config;
-
- $i = 0;
- if (is_array($config['bridges']['bridged']) && count($config['bridges']['bridged'])) {
- foreach ($config['bridges']['bridged'] as $bridge) {
- if(empty($bridge['bridgeif']))
- $bridge['bridgeif'] = "bridge{$i}";
- /* XXX: Maybe we should report any errors?! */
- interface_bridge_configure($bridge, $checkmember);
- $i++;
- }
- }
+ global $config;
+
+ $i = 0;
+ if (is_array($config['bridges']['bridged']) && count($config['bridges']['bridged'])) {
+ foreach ($config['bridges']['bridged'] as $bridge) {
+ if(empty($bridge['bridgeif']))
+ $bridge['bridgeif'] = "bridge{$i}";
+ if ($checkmember == 1) {
+ $members = explode(',', $bridge['members']);
+ foreach ($members as $member) {
+ if (strstr($bridge['if'], "_vip"))
+ continue 2;
+ if (!empty($config['interfaces'][$bridge['if']]) && $config['interfaces'][$bridge['if']]['ipaddrv6'] == "track6")
+ continue 2;
+ }
+ }
+ else if ($checkmember == 2) {
+ $members = explode(',', $bridge['members']);
+ foreach ($members as $member) {
+ if (!strstr($bridge['if'], "_vip"))
+ continue 2;
+ if (empty($config['interfaces'][$bridge['if']]) || $config['interfaces'][$bridge['if']]['ipaddrv6'] != "track6")
+ continue 2;
+ }
+ }
+ /* XXX: Maybe we should report any errors?! */
+ interface_bridge_configure($bridge, $checkmember);
+ $i++;
+ }
+ }
}
function interface_bridge_configure(&$bridge, $checkmember = 0) {
global $config, $g;
if (!is_array($bridge))
- return -1;
+ return;
if (empty($bridge['members'])) {
log_error(sprintf(gettext("No members found on %s"), $bridge['bridgeif']));
- return -1;
+ return;
}
$members = explode(',', $bridge['members']);
if (!count($members))
- return -1;
+ return;
/* Calculate smaller mtu and enforce it */
$smallermtu = 0;
@@ -478,7 +507,7 @@ function interface_bridge_configure(&$bridge, $checkmember = 0) {
/* Just in case anything is not working well */
if ($smallermtu == 0)
- $smallermtu = 1500;
+ $smallermtu = 1500;
$flags = 0;
if ($commonrx === false)
@@ -495,33 +524,34 @@ function interface_bridge_configure(&$bridge, $checkmember = 0) {
if ($g['booting'] || !empty($bridge['bridgeif'])) {
pfSense_interface_destroy($bridge['bridgeif']);
pfSense_interface_create($bridge['bridgeif']);
- $bridgeif = $bridge['bridgeif'];
- } else
+ $bridgeif = escapeshellarg($bridge['bridgeif']);
+ } else {
$bridgeif = pfSense_interface_create("bridge");
+ $bridge['bridgeif'] = $bridgeif;
+ }
$checklist = get_configured_interface_list();
/* Add interfaces to bridge */
foreach ($members as $member) {
- if (!array_key_exists($member, $checklist))
+ if (empty($checklist[$member]))
continue;
- $realif1 = get_real_interface($member);
- $realif = escapeshellarg($realif1);
+ $realif = get_real_interface($member);
if (!$realif) {
log_error(gettext("realif not defined in interfaces bridge - up"));
continue;
}
/* make sure the parent interface is up */
- pfSense_interface_mtu($realif1, $smallermtu);
- pfSense_interface_capabilities($realif1, -$flags);
- interfaces_bring_up($realif1);
- pfSense_bridge_add_member($bridgeif, $realif1);
+ pfSense_interface_mtu($realif, $smallermtu);
+ pfSense_interface_capabilities($realif, -$flags);
+ interfaces_bring_up($realif);
+ pfSense_bridge_add_member($bridge['bridgeif'], $realif);
}
if (isset($bridge['enablestp'])) {
/* Choose spanning tree proto */
- mwexec("/sbin/ifconfig {$bridgeif} proto {$bridge['proto']}");
-
+ mwexec("/sbin/ifconfig {$bridgeif} proto " . escapeshellarg($bridge['proto']));
+
if (!empty($bridge['stp'])) {
$stpifs = explode(',', $bridge['stp']);
foreach ($stpifs as $stpif) {
@@ -530,15 +560,15 @@ function interface_bridge_configure(&$bridge, $checkmember = 0) {
}
}
if (!empty($bridge['maxage']))
- mwexec("/sbin/ifconfig {$bridgeif} maxage {$bridge['maxage']}");
+ mwexec("/sbin/ifconfig {$bridgeif} maxage " . escapeshellarg($bridge['maxage']));
if (!empty($bridge['fwdelay']))
- mwexec("/sbin/ifconfig {$bridgeif} fwddelay {$bridge['fwdelay']}");
+ mwexec("/sbin/ifconfig {$bridgeif} fwddelay " . escapeshellarg($bridge['fwdelay']));
if (!empty($bridge['hellotime']))
- mwexec("/sbin/ifconfig {$bridgeif} hellotime {$bridge['hellotime']}");
+ mwexec("/sbin/ifconfig {$bridgeif} hellotime " . escapeshellarg($bridge['hellotime']));
if (!empty($bridge['priority']))
- mwexec("/sbin/ifconfig {$bridgeif} priority {$bridge['priority']}");
- if (!empty($bridge['holdcount']))
- mwexec("/sbin/ifconfig {$bridgeif} holdcnt {$bridge['holdcnt']}");
+ mwexec("/sbin/ifconfig {$bridgeif} priority " . escapeshellarg($bridge['priority']));
+ if (!empty($bridge['holdcnt']))
+ mwexec("/sbin/ifconfig {$bridgeif} holdcnt " . escapeshellarg($bridge['holdcnt']));
if (!empty($bridge['ifpriority'])) {
$pconfig = explode(",", $bridge['ifpriority']);
$ifpriority = array();
@@ -549,7 +579,7 @@ function interface_bridge_configure(&$bridge, $checkmember = 0) {
}
foreach ($ifpriority as $key => $value) {
$realif = get_real_interface($key);
- mwexec("/sbin/ifconfig ${bridgeif} ifpriority {$realif} {$value}");
+ mwexec("/sbin/ifconfig ${bridgeif} ifpriority {$realif} " . escapeshellarg($value));
}
}
if (!empty($bridge['ifpathcost'])) {
@@ -561,69 +591,67 @@ function interface_bridge_configure(&$bridge, $checkmember = 0) {
$ifpathcost[$key] = $value;
}
foreach ($ifpathcost as $key => $value) {
- $realif = get_real_interface($key);
- mwexec("/sbin/ifconfig ${bridgeif} ifpathcost {$realif} {$value}");
- }
+ $realif = get_real_interface($key);
+ mwexec("/sbin/ifconfig ${bridgeif} ifpathcost {$realif} " . escapeshellarg($value));
+ }
}
}
if ($bridge['maxaddr'] <> "")
mwexec("/sbin/ifconfig {$bridgeif} maxaddr {$bridge['maxaddr']}");
- if ($bridge['timeout'] <> "")
- mwexec("/sbin/ifconfig {$bridgeif} timeout {$bridge['timeout']}");
- if ($bridge['span'] <> "") {
+ if ($bridge['timeout'] <> "")
+ mwexec("/sbin/ifconfig {$bridgeif} timeout {$bridge['timeout']}");
+ if ($bridge['span'] <> "") {
$realif = get_real_interface($bridge['span']);
- mwexec("/sbin/ifconfig {$bridgeif} span {$realif}");
+ mwexec("/sbin/ifconfig {$bridgeif} span {$realif}");
}
if (!empty($bridge['edge'])) {
- $edgeifs = explode(',', $bridge['edge']);
- foreach ($edgeifs as $edgeif) {
+ $edgeifs = explode(',', $bridge['edge']);
+ foreach ($edgeifs as $edgeif) {
$realif = get_real_interface($edgeif);
- mwexec("/sbin/ifconfig {$bridgeif} edge {$realif}");
- }
+ mwexec("/sbin/ifconfig {$bridgeif} edge {$realif}");
+ }
}
if (!empty($bridge['autoedge'])) {
- $edgeifs = explode(',', $bridge['autoedge']);
- foreach ($edgeifs as $edgeif) {
- $realif = get_real_interface($edgeif);
- mwexec("/sbin/ifconfig {$bridgeif} -autoedge {$realif}");
- }
+ $edgeifs = explode(',', $bridge['autoedge']);
+ foreach ($edgeifs as $edgeif) {
+ $realif = get_real_interface($edgeif);
+ mwexec("/sbin/ifconfig {$bridgeif} -autoedge {$realif}");
+ }
}
if (!empty($bridge['ptp'])) {
- $ptpifs = explode(',', $bridge['ptp']);
- foreach ($ptpifs as $ptpif) {
- $realif = get_real_interface($ptpif);
- mwexec("/sbin/ifconfig {$bridgeif} ptp {$realif}");
- }
+ $ptpifs = explode(',', $bridge['ptp']);
+ foreach ($ptpifs as $ptpif) {
+ $realif = get_real_interface($ptpif);
+ mwexec("/sbin/ifconfig {$bridgeif} ptp {$realif}");
+ }
}
if (!empty($bridge['autoptp'])) {
- $ptpifs = explode(',', $bridge['autoptp']);
- foreach ($ptpifs as $ptpif) {
- $realif = get_real_interface($ptpif);
- mwexec("/sbin/ifconfig {$bridgeif} -autoptp {$realif}");
- }
+ $ptpifs = explode(',', $bridge['autoptp']);
+ foreach ($ptpifs as $ptpif) {
+ $realif = get_real_interface($ptpif);
+ mwexec("/sbin/ifconfig {$bridgeif} -autoptp {$realif}");
+ }
}
if (!empty($bridge['static'])) {
- $stickyifs = explode(',', $bridge['static']);
- foreach ($stickyifs as $stickyif) {
- $realif = get_real_interface($stickyif);
- mwexec("/sbin/ifconfig {$bridgeif} sticky {$realif}");
- }
+ $stickyifs = explode(',', $bridge['static']);
+ foreach ($stickyifs as $stickyif) {
+ $realif = get_real_interface($stickyif);
+ mwexec("/sbin/ifconfig {$bridgeif} sticky {$realif}");
+ }
}
if (!empty($bridge['private'])) {
- $privateifs = explode(',', $bridge['private']);
- foreach ($privateifs as $privateif) {
- $realif = get_real_interface($privateif);
- mwexec("/sbin/ifconfig {$bridgeif} private {$realif}");
- }
+ $privateifs = explode(',', $bridge['private']);
+ foreach ($privateifs as $privateif) {
+ $realif = get_real_interface($privateif);
+ mwexec("/sbin/ifconfig {$bridgeif} private {$realif}");
+ }
}
- if($bridgeif)
- interfaces_bring_up($bridgeif);
- else
+ if ($bridge['bridgeif'])
+ interfaces_bring_up($bridge['bridgeif']);
+ else
log_error(gettext("bridgeif not defined -- could not bring interface up"));
-
- return $bridgeif;
}
function interface_bridge_add_member($bridgeif, $interface) {
@@ -633,7 +661,7 @@ function interface_bridge_add_member($bridgeif, $interface) {
$mtu = get_interface_mtu($bridgeif);
$mtum = get_interface_mtu($interface);
-
+
if ($mtu != $mtum && !(substr($interface, 0, 3) == "gif" && $mtu <= 1500))
pfSense_interface_mtu($interface, $mtu);
@@ -651,51 +679,50 @@ function interface_bridge_add_member($bridgeif, $interface) {
pfSense_bridge_add_member($bridgeif, $interface);
}
-function interfaces_lagg_configure()
-{
- global $config, $g;
- if($g['booting'])
- echo gettext("Configuring LAGG interfaces...");
- $i = 0;
- if (is_array($config['laggs']['lagg']) && count($config['laggs']['lagg'])) {
- foreach ($config['laggs']['lagg'] as $lagg) {
- if(empty($lagg['laggif']))
- $lagg['laggif'] = "lagg{$i}";
- /* XXX: Maybe we should report any errors?! */
- interface_lagg_configure($lagg);
- $i++;
- }
+function interfaces_lagg_configure() {
+ global $config, $g;
+ if($g['booting'])
+ echo gettext("Configuring LAGG interfaces...");
+ $i = 0;
+ if (is_array($config['laggs']['lagg']) && count($config['laggs']['lagg'])) {
+ foreach ($config['laggs']['lagg'] as $lagg) {
+ if(empty($lagg['laggif']))
+ $lagg['laggif'] = "lagg{$i}";
+ /* XXX: Maybe we should report any errors?! */
+ interface_lagg_configure($lagg);
+ $i++;
}
- if($g['booting'])
- echo gettext("done.") . "\n";
+ }
+ if($g['booting'])
+ echo gettext("done.") . "\n";
}
function interface_lagg_configure(&$lagg) {
- global $config, $g;
+ global $config, $g;
- if (!is_array($lagg))
+ if (!is_array($lagg))
return -1;
$members = explode(',', $lagg['members']);
if (!count($members))
return -1;
-
+
if ($g['booting'] || !(empty($lagg['laggif']))) {
pfSense_interface_destroy($lagg['laggif']);
pfSense_interface_create($lagg['laggif']);
- $laggif = $lagg['laggif'];
- } else
+ $laggif = $lagg['laggif'];
+ } else
$laggif = pfSense_interface_create("lagg");
/* Calculate smaller mtu and enforce it */
- $smallermtu = 0;
- foreach ($members as $member) {
+ $smallermtu = 0;
+ foreach ($members as $member) {
$opts = pfSense_get_interface_addresses($member);
- $mtu = $opts['mtu'];
+ $mtu = $opts['mtu'];
if (!isset($opts['encaps']['txcsum']))
- $commontx = false;
- if (!isset($opts['encaps']['rxcsum']))
- $commonrx = false;
+ $commontx = false;
+ if (!isset($opts['encaps']['rxcsum']))
+ $commonrx = false;
if (!isset($opts['encaps']['tso4']))
$commontso4 = false;
if (!isset($opts['encaps']['tso6']))
@@ -704,25 +731,25 @@ function interface_lagg_configure(&$lagg) {
$commonlro = false;
if ($smallermtu == 0 && !empty($mtu))
$smallermtu = $mtu;
- else if (!empty($mtu) && $mtu < $smallermtu)
- $smallermtu = $mtu;
- }
+ else if (!empty($mtu) && $mtu < $smallermtu)
+ $smallermtu = $mtu;
+ }
/* Just in case anything is not working well */
- if ($smallermtu == 0)
- $smallermtu = 1500;
+ if ($smallermtu == 0)
+ $smallermtu = 1500;
$flags = 0;
- if ($commonrx === false)
- $flags |= IFCAP_RXCSUM;
- if ($commontx === false)
- $flags |= IFCAP_TXCSUM;
+ if ($commonrx === false)
+ $flags |= IFCAP_RXCSUM;
+ if ($commontx === false)
+ $flags |= IFCAP_TXCSUM;
if ($commontso4 === false)
- $flags |= IFCAP_TSO4;
- if ($commontso6 === false)
- $flags |= IFCAP_TSO6;
- if ($commonlro === false)
- $flags |= IFCAP_LRO;
+ $flags |= IFCAP_TSO4;
+ if ($commontso6 === false)
+ $flags |= IFCAP_TSO6;
+ if ($commonlro === false)
+ $flags |= IFCAP_LRO;
$checklist = get_interface_list();
@@ -735,7 +762,7 @@ function interface_lagg_configure(&$lagg) {
interfaces_bring_up($member);
mwexec("/sbin/ifconfig {$laggif} laggport {$member}");
}
-
+
mwexec("/sbin/ifconfig {$laggif} laggproto {$lagg['proto']}");
interfaces_bring_up($laggif);
@@ -744,25 +771,33 @@ function interface_lagg_configure(&$lagg) {
}
function interfaces_gre_configure($checkparent = 0) {
- global $config;
+ global $config;
- if (is_array($config['gres']['gre']) && count($config['gres']['gre'])) {
- foreach ($config['gres']['gre'] as $i => $gre) {
- if(empty($gre['greif']))
- $gre['greif'] = "gre{$i}";
- if ($checkparent == 1 && strstr($gre['if'], "_vip"))
- continue;
- if ($checkparent == 2 && !strstr($gre['if'], "_vip"))
- continue;
- /* XXX: Maybe we should report any errors?! */
- interface_gre_configure($gre);
- }
- }
+ if (is_array($config['gres']['gre']) && count($config['gres']['gre'])) {
+ foreach ($config['gres']['gre'] as $i => $gre) {
+ if(empty($gre['greif']))
+ $gre['greif'] = "gre{$i}";
+ if ($checkparent == 1) {
+ if (strstr($gre['if'], "_vip"))
+ continue;
+ if (!empty($config['interfaces'][$gre['if']]) && $config['interfaces'][$gre['if']]['ipaddrv6'] == "track6")
+ continue;
+ }
+ else if ($checkparent == 2) {
+ if (!strstr($gre['if'], "_vip"))
+ continue;
+ if (empty($config['interfaces'][$gre['if']]) || $config['interfaces'][$gre['if']]['ipaddrv6'] != "track6")
+ continue;
+ }
+ /* XXX: Maybe we should report any errors?! */
+ interface_gre_configure($gre);
+ }
+ }
}
/* NOTE: $grekey is not used but useful for passing this function to array_walk. */
function interface_gre_configure(&$gre, $grekey = "") {
- global $config, $g;
+ global $config, $g;
if (!is_array($gre))
return -1;
@@ -787,16 +822,16 @@ function interface_gre_configure(&$gre, $grekey = "") {
} else {
mwexec("/sbin/ifconfig {$greif} {$gre['tunnel-local-addr']} {$gre['tunnel-remote-addr']} netmask " . gen_subnet_mask($gre['tunnel-remote-net']));
}
- if (isset($gre['link0']) && $gre['link0'])
+ if (isset($gre['link0']))
pfSense_interface_flags($greif, IFF_LINK0);
- if (isset($gre['link1']) && $gre['link1'])
+ if (isset($gre['link1']))
pfSense_interface_flags($greif, IFF_LINK1);
- if (isset($gre['link2']) && $gre['link2'])
+ if (isset($gre['link2']))
pfSense_interface_flags($greif, IFF_LINK2);
if($greif)
interfaces_bring_up($greif);
- else
+ else
log_error(gettext("Could not bring greif up -- variable not defined."));
if (isset($gre['link1']) && $gre['link1'])
@@ -816,10 +851,18 @@ function interfaces_gif_configure($checkparent = 0) {
foreach ($config['gifs']['gif'] as $i => $gif) {
if(empty($gif['gifif']))
$gre['gifif'] = "gif{$i}";
- if ($checkparent == 1 && strstr($gif['if'], "_vip"))
- continue;
- if ($checkparent == 2 && !strstr($gif['if'], "_vip"))
- continue;
+ if ($checkparent == 1) {
+ if (strstr($gif['if'], "_vip"))
+ continue;
+ if (!empty($config['interfaces'][$gif['if']]) && $config['interfaces'][$gif['if']]['ipaddrv6'] == "track6")
+ continue;
+ }
+ else if ($checkparent == 2) {
+ if (!strstr($gre['if'], "_vip"))
+ continue;
+ if (empty($config['interfaces'][$gif['if']]) || $config['interfaces'][$gif['if']]['ipaddrv6'] != "track6")
+ continue;
+ }
/* XXX: Maybe we should report any errors?! */
interface_gif_configure($gif);
}
@@ -834,19 +877,25 @@ function interface_gif_configure(&$gif, $gifkey = "") {
return -1;
$realif = get_real_interface($gif['if']);
+ $ipaddr = $gif['ipaddr'];
- if(is_ipaddrv4($gif['remote-addr'])) {
- $realifip = get_interface_ip($gif['if']);
+ if (is_ipaddrv4($gif['remote-addr'])) {
+ if (is_ipaddrv4($ipaddr))
+ $realifip = $ipaddr;
+ else
+ $realifip = get_interface_ip($gif['if']);
$realifgw = get_interface_gateway($gif['if']);
- }
- if(is_ipaddrv6($gif['remote-addr'])) {
- $realifip = get_interface_ipv6($gif['if']);
+ } else if (is_ipaddrv6($gif['remote-addr'])) {
+ if (is_ipaddrv6($ipaddr))
+ $realifip = $ipaddr;
+ else
+ $realifip = get_interface_ipv6($gif['if']);
$realifgw = get_interface_gatewayv6($gif['if']);
}
/* make sure the parent interface is up */
if($realif)
interfaces_bring_up($realif);
- else
+ else
log_error(gettext("could not bring realif up -- variable not defined -- interface_gif_configure()"));
if ($g['booting'] || !(empty($gif['gifif']))) {
@@ -863,9 +912,9 @@ function interface_gif_configure(&$gif, $gifkey = "") {
} else {
mwexec("/sbin/ifconfig {$gifif} {$gif['tunnel-local-addr']} {$gif['tunnel-remote-addr']} netmask " . gen_subnet_mask($gif['tunnel-remote-net']));
}
- if (isset($gif['link0']) && $gif['link0'])
+ if (isset($gif['link0']))
pfSense_interface_flags($gifif, IFF_LINK0);
- if (isset($gif['link1']) && $gif['link1'])
+ if (isset($gif['link1']))
pfSense_interface_flags($gifif, IFF_LINK1);
if($gifif)
interfaces_bring_up($gifif);
@@ -892,12 +941,12 @@ function interface_gif_configure(&$gif, $gifkey = "") {
if(is_ipaddrv6($gif['tunnel-remote-addr']))
file_put_contents("{$g['tmp_path']}/{$gifif}_routerv6", $gif['tunnel-remote-addr']);
- if (is_ipaddrv4($realifgw)) {
- mwexec("route change -host {$gif['remote-addr']} {$realifgw}");
- }
- if (is_ipaddrv6($realifgw)) {
- mwexec("route change -host -inet6 {$gif['remote-addr']} {$realifgw}");
- }
+ if (is_ipaddrv4($realifgw)) {
+ mwexec("route change -host {$gif['remote-addr']} {$realifgw}");
+ }
+ if (is_ipaddrv6($realifgw)) {
+ mwexec("route change -host -inet6 {$gif['remote-addr']} {$realifgw}");
+ }
return $gifif;
}
@@ -911,6 +960,9 @@ function interfaces_configure() {
/* Set up our loopback interface */
interfaces_loopback_configure();
+ /* create the unconfigured wireless clones */
+ interfaces_create_wireless_clones();
+
/* set up LAGG virtual interfaces */
interfaces_lagg_configure();
@@ -922,7 +974,8 @@ function interfaces_configure() {
$iflist = get_configured_interface_with_descr();
$delayed_list = array();
$bridge_list = array();
-
+ $track6_list = array();
+
/* This is needed to speedup interfaces on bootup. */
$reload = false;
if (!$g['booting'])
@@ -930,7 +983,7 @@ function interfaces_configure() {
foreach($iflist as $if => $ifname) {
$realif = $config['interfaces'][$if]['if'];
- if (strstr($realif, "bridge"))
+ if (strstr($realif, "bridge"))
$bridge_list[$if] = $ifname;
else if (strstr($realif, "gre"))
$delayed_list[$if] = $ifname;
@@ -939,6 +992,8 @@ function interfaces_configure() {
else if (strstr($realif, "ovpn")) {
//echo "Delaying OpenVPN interface configuration...done.\n";
continue;
+ } else if (!empty($config['interfaces'][$if]['ipaddrv6']) && $config['interfaces'][$if]['ipaddrv6'] == "track6") {
+ $track6_list[$if] = $ifname;
} else {
if ($g['booting'])
printf(gettext("Configuring %s interface..."), $ifname);
@@ -946,14 +1001,11 @@ function interfaces_configure() {
if($g['debug'])
log_error(sprintf(gettext("Configuring %s"), $ifname));
interface_configure($if, $reload);
- if ($g['booting'])
+ if ($g['booting'])
echo gettext( "done.") . "\n";
}
}
- /* create the unconfigured wireless clones */
- interfaces_create_wireless_clones();
-
/*
* NOTE: The following function parameter consists of
* 1 - Do not load gre/gif/bridge with parent/member as vip
@@ -969,6 +1021,18 @@ function interfaces_configure() {
/* set up BRIDGe virtual interfaces */
interfaces_bridge_configure(1);
+ foreach ($track6_list as $if => $ifname) {
+ if ($g['booting'])
+ printf(gettext("Configuring %s interface..."), $ifname);
+ if ($g['debug'])
+ log_error(sprintf(gettext("Configuring %s"), $ifname));
+
+ interface_configure($if, $reload);
+
+ if ($g['booting'])
+ echo gettext("done.") . "\n";
+ }
+
/* bring up vip interfaces */
interfaces_vips_configure();
@@ -981,8 +1045,8 @@ function interfaces_configure() {
foreach ($delayed_list as $if => $ifname) {
if ($g['booting'])
printf(gettext("Configuring %s interface..."), $ifname);
- if ($g['debug'])
- log_error(sprintf(gettext("Configuring %s"), $ifname));
+ if ($g['debug'])
+ log_error(sprintf(gettext("Configuring %s"), $ifname));
interface_configure($if, $reload);
@@ -1022,7 +1086,8 @@ function interfaces_configure() {
services_dnsmasq_configure();
/* reload captive portal */
- captiveportal_init_rules();
+ if (function_exists('captiveportal_init_rules'))
+ captiveportal_init_rules();
}
return 0;
@@ -1044,35 +1109,52 @@ function interface_vip_bring_down($vip) {
break;
case "ipalias":
$vipif = get_real_interface($vip['interface']);
- if(does_interface_exist($vipif))
- pfSense_interface_deladdress($vipif, $vip['subnet']);
+ if (does_interface_exist($vipif)) {
+ if (is_ipaddrv6($vip['subnet']))
+ mwexec("/sbin/ifconfig {$vipif} inet6 {$vip['subnet']} -alias");
+ else
+ pfSense_interface_deladdress($vipif, $vip['subnet']);
+ }
break;
case "carp":
$vipif = "{$vip['interface']}_vip{$vip['vhid']}";
- if (does_interface_exist($vipif))
+ if (does_interface_exist($vipif))
pfSense_interface_destroy($vipif);
break;
}
}
-function interface_bring_down($interface = "wan", $destroy = false) {
+function interface_bring_down($interface = "wan", $destroy = false, $ifacecfg = false) {
global $config, $g;
if (!isset($config['interfaces'][$interface]))
- return;
- log_error("Calling interface down for interface {$interface}, destroy is " . (($destroy) ? 'true' : 'false'));
+ return;
- $ifcfg = $config['interfaces'][$interface];
+ if ($g['debug'])
+ log_error("Calling interface down for interface {$interface}, destroy is " . (($destroy) ? 'true' : 'false'));
- $realif = get_real_interface($interface);
+ if ($ifacecfg === false) {
+ $ifcfg = $config['interfaces'][$interface];
+ $ppps = $config['ppps']['ppp'];
+ $realif = get_real_interface($interface);
+ } elseif (!is_array($ifacecfg)) {
+ log_error(gettext("Wrong parameters used during interface_bring_down"));
+ } else {
+ $ifcfg = $ifacecfg['ifcfg'];
+ $ppps = $ifacecfg['ppps'];
+ if (isset($ifacecfg['ifcfg']['realif']))
+ $realif = $ifacecfg['ifcfg']['realif'];
+ else
+ $realif = get_real_interface($interface);
+ }
switch ($ifcfg['ipaddr']) {
case "ppp":
case "pppoe":
case "pptp":
case "l2tp":
- if (is_array($config['ppps']['ppp']) && count($config['ppps']['ppp'])) {
- foreach ($config['ppps']['ppp'] as $pppid => $ppp) {
+ if (is_array($ppps) && count($ppps)) {
+ foreach ($ppps as $pppid => $ppp) {
if ($realif == $ppp['if']) {
if (isset($ppp['ondemand']) && !$destroy){
send_event("interface reconfigure {$interface}");
@@ -1091,7 +1173,7 @@ function interface_bring_down($interface = "wan", $destroy = false) {
case "dhcp":
$pid = find_dhclient_process($realif);
if($pid)
- mwexec("/bin/kill {$pid}");
+ posix_kill($pid, SIGTERM);
sleep(1);
unlink_if_exists("{$g['varetc_path']}/dhclient_{$interface}.conf");
if(does_interface_exist("$realif")) {
@@ -1116,35 +1198,36 @@ function interface_bring_down($interface = "wan", $destroy = false) {
case "dhcp6":
$pidv6 = find_dhcp6c_process($realif);
if($pidv6)
- mwexec("/bin/kill {$pidv6}");
+ posix_kill($pidv6, SIGTERM);
sleep(3);
unlink_if_exists("{$g['varetc_path']}/dhcp6c_{$interface}.conf");
- if(does_interface_exist("$realif")) {
- mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " delete", true);
+ if (does_interface_exist("$realif")) {
+ $ip6 = get_interface_ipv6($interface);
+ if (is_ipaddrv6($ip6))
+ mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " inet6 {$ip6} delete", true);
if ($destroy == true)
pfSense_interface_flags($realif, -IFF_UP);
mwexec("/usr/sbin/arp -d -i {$realif} -a");
}
break;
case "6rd":
- $realif = "srd0";
- if(does_interface_exist("$realif")) {
- mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " delete", true);
- if ($destroy == true)
- pfSense_interface_flags($realif, -IFF_UP);
- }
- break;
case "6to4":
- $realif = "stf0";
+ $realif = "{$interface}_stf";
if(does_interface_exist("$realif")) {
- mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " delete", true);
+ $ip6 = get_interface_ipv6($interface);
+ if (is_ipaddrv6($ip6))
+ mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " inet6 {$ip6} delete", true);
if ($destroy == true)
pfSense_interface_flags($realif, -IFF_UP);
- }
+ }
break;
default:
if(does_interface_exist("$realif")) {
- mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " delete", true);
+ $ip6 = get_interface_ipv6($interface);
+ if (is_ipaddrv6($ip6))
+ mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " inet6 {$ip6} delete", true);
+ if (!empty($ifcfg['ipaddrv6']) && is_ipaddrv6($ifcfg['ipaddrv6']))
+ mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " inet6 {$ifcfg['ipaddrv6']} delete", true);
if ($destroy == true)
pfSense_interface_flags($realif, -IFF_UP);
mwexec("/usr/sbin/arp -d -i {$realif} -a");
@@ -1157,7 +1240,7 @@ function interface_bring_down($interface = "wan", $destroy = false) {
// log_error("Checking for old router states: {$g['tmp_path']}/{$realif}_router = {$old_router}");
if (!empty($old_router)) {
log_error("Clearing states to old gateway {$old_router}.");
- mwexec("/sbin/pfctl -b 0.0.0.0/32 -b {$old_router}/32");
+ mwexec("/sbin/pfctl -i {$realif} -Fs -G {$old_router}");
}
/* remove interface up file if it exists */
@@ -1168,18 +1251,18 @@ function interface_bring_down($interface = "wan", $destroy = false) {
unlink_if_exists("{$g['tmp_path']}/{$realif}_routerv6");
unlink_if_exists("{$g['varetc_path']}/nameserver_{$realif}");
unlink_if_exists("{$g['varetc_path']}/searchdomain_{$realif}");
-
+
/* hostapd and wpa_supplicant do not need to be running when the interface is down.
* They will also use 100% CPU if running after the wireless clone gets deleted. */
if (is_array($ifcfg['wireless'])) {
- mwexec(kill_hostapd($realif));
+ kill_hostapd($realif);
mwexec(kill_wpasupplicant($realif));
}
if ($destroy == true) {
- if (preg_match("/^[a-z0-9]+_vip|^tun|^ovpn|^gif|^gre|^lagg|^bridge|vlan|^stf|^srd/i", $realif))
+ if (preg_match("/^[a-z0-9]+_vip|^tun|^ovpn|^gif|^gre|^lagg|^bridge|vlan|_stf$/i", $realif))
pfSense_interface_destroy($realif);
- }
+ }
return;
}
@@ -1224,11 +1307,11 @@ function handle_pppoe_reset($post_array) {
$pppif = "{$post_array['type']}{$post_array['ptpid']}";
$cron_cmd_file = "{$g['varetc_path']}/pppoe_restart_{$pppif}";
- if (!is_array($config['cron']['item']))
- $config['cron']['item'] = array();
+ if (!is_array($config['cron']['item']))
+ $config['cron']['item'] = array();
$itemhash = getMPDCRONSettings($pppif);
-
+
// reset cron items if necessary and return
if (empty($post_array['pppoe-reset-type'])) {
if (isset($itemhash))
@@ -1237,7 +1320,7 @@ function handle_pppoe_reset($post_array) {
return;
}
- if (empty($itemhash))
+ if (empty($itemhash))
$itemhash = array();
$item = array();
if (isset($post_array['pppoe-reset-type']) && $post_array['pppoe-reset-type'] == "custom") {
@@ -1263,7 +1346,7 @@ function handle_pppoe_reset($post_array) {
$item['month'] = "*";
$item['wday'] = "*";
break;
- case "weekly":
+ case "weekly":
$item['minute'] = "0";
$item['hour'] = "0";
$item['mday'] = "*";
@@ -1290,9 +1373,9 @@ function handle_pppoe_reset($post_array) {
}
if (empty($item))
return;
- if (isset($item['ID']))
+ if (isset($item['ID']))
$config['cron']['item'][$item['ID']] = $item;
- else
+ else
$config['cron']['item'][] = $item;
}
@@ -1334,7 +1417,7 @@ function interface_ppps_configure($interface) {
$type = "modem";
else
$type = $ppp['type'];
- $upper_type = strtoupper($ppp['type']);
+ $upper_type = strtoupper($ppp['type']);
if($g['booting']) {
$descr = isset($ifcfg['descr']) ? $ifcfg['descr'] : strtoupper($interface);
@@ -1346,8 +1429,11 @@ function interface_ppps_configure($interface) {
$ports = explode(',',$ppp['ports']);
if ($type != "modem") {
- foreach ($ports as $pid => $port)
+ foreach ($ports as $pid => $port) {
$ports[$pid] = get_real_interface($port);
+ if (empty($ports[$pid]))
+ return 0;
+ }
}
$localips = explode(',',$ppp['localip']);
$gateways = explode(',',$ppp['gateway']);
@@ -1358,10 +1444,12 @@ function interface_ppps_configure($interface) {
*/
foreach($ports as $pid => $port){
switch ($ppp['type']) {
- case "pppoe":
+ case "pppoe":
/* Bring the parent interface up */
interfaces_bring_up($port);
pfSense_ngctl_attach(".", $port);
+ /* Enable setautosrc to automatically change mac address if parent interface's changes */
+ mwexec("ngctl msg {$port}: setautosrc 1");
break;
case "pptp":
case "l2tp":
@@ -1372,22 +1460,11 @@ function interface_ppps_configure($interface) {
interfaces_bring_up($port);
} else if (empty($localips[$pid]))
$localips[$pid] = get_interface_ip($port); // try to get the interface IP from the port
-
+
if(!is_ipaddr($localips[$pid])){
log_error("Could not get a Local IP address for PPTP/L2TP link on {$port} in interfaces_ppps_configure. Using 0.0.0.0 ip!");
$localips[$pid] = "0.0.0.0";
}
- /* XXX: This needs to go away soon! [It's commented out!] */
- /* Configure the gateway (remote IP ) */
- if (!$g['booting'] && !is_ipaddr($gateways[$pid]) && is_hostname($gateways[$pid])) {
- /* XXX: Fix later
- $gateways[$pid] = gethostbyname($gateways[$pid]);
- if(!is_ipaddr($gateways[$pid])) {
- log_error("Could not get a valid Gateway IP from {$port} via DNS in interfaces_ppps_configure.");
- return 0;
- }
- */
- }
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;
@@ -1405,12 +1482,12 @@ function interface_ppps_configure($interface) {
break;
}
}
-
+
if (is_array($ports) && count($ports) > 1)
$multilink = "enable";
else
$multilink = "disable";
-
+
if ($type == "modem"){
if (is_ipaddr($ppp['localip']))
$localip = $ppp['localip'];
@@ -1422,13 +1499,13 @@ function interface_ppps_configure($interface) {
else
$gateway = "10.64.64.{$pppid}";
$ranges = "{$localip}/0 {$gateway}/0";
-
- if (empty($ppp['apnum']))
+
+ if (empty($ppp['apnum']))
$ppp['apnum'] = 1;
} else
$ranges = "0.0.0.0/0 0.0.0.0/0";
- if (isset($ppp['ondemand']))
+ if (isset($ppp['ondemand']))
$ondemand = "enable";
else
$ondemand = "disable";
@@ -1482,7 +1559,7 @@ EOD;
}
}
}
-
+
if (($interface == "wan" && $founddefaultgw == false) || $setdefaultgw == true){
$setdefaultgw = true;
$mpdconf .= <<<EOD
@@ -1501,7 +1578,7 @@ EOD;
set iface addrs 10.10.1.1 10.10.1.2
EOD;
-
+
if (isset($ppp['tcpmssfix']))
$tcpmss = "disable";
else
@@ -1662,7 +1739,7 @@ EOD;
EOD;
}
-
+
$mpdconf .= "\topen\n";
} //end foreach($port)
@@ -1706,7 +1783,7 @@ EOD;
/* fire up mpd */
mwexec("/usr/local/sbin/mpd5 -b -k -d {$g['varetc_path']} -f mpd_{$interface}.conf -p {$g['varrun_path']}/{$ppp['type']}_{$interface}.pid -s ppp {$ppp['type']}client");
- // Check for PPPoE periodic reset request
+ // Check for PPPoE periodic reset request
if ($type == "pppoe") {
if (!empty($ppp['pppoe-reset-type']))
interface_setup_pppoe_reset_file($ppp['if'], $interface);
@@ -1747,24 +1824,18 @@ EOD;
function interfaces_carp_setup() {
global $g, $config;
- $balanacing = "";
- $pfsyncinterface = "";
- $pfsyncenabled = "";
- if(isset($config['system']['developerspew'])) {
+ if (isset($config['system']['developerspew'])) {
$mt = microtime();
echo "interfaces_carp_setup() being called $mt\n";
}
- // Prepare CmdCHAIN that will be used to execute commands.
- $cmdchain = new CmdCHAIN();
-
if ($g['booting']) {
echo gettext("Configuring CARP settings...");
mute_kernel_msgs();
}
/* suck in configuration items */
- if($config['hasync']) {
+ if ($config['hasync']) {
$pfsyncenabled = $config['hasync']['pfsyncenabled'];
$balanacing = $config['hasync']['balancing'];
$pfsyncinterface = $config['hasync']['pfsyncinterface'];
@@ -1775,66 +1846,48 @@ function interfaces_carp_setup() {
unset($pfsyncenabled);
}
- if($balanacing) {
- $cmdchain->add(gettext("Enable CARP ARP-balancing"), "/sbin/sysctl net.inet.carp.arpbalance=1", true);
- $cmdchain->add(gettext("Disallow CARP preemption"), "/sbin/sysctl net.inet.carp.preempt=0", true);
+ if ($balanacing) {
+ mwexec("/sbin/sysctl net.inet.carp.arpbalance=1", true);
+ mwexec("/sbin/sysctl net.inet.carp.preempt=0", true);
} else
- $cmdchain->add(gettext("Enable CARP preemption"), "/sbin/sysctl net.inet.carp.preempt=1", true);
+ mwexec("/sbin/sysctl net.inet.carp.preempt=1", true);
- $cmdchain->add(gettext("Enable CARP logging"), "/sbin/sysctl net.inet.carp.log=1", true);
+ mwexec("sbin/sysctl net.inet.carp.log=1", true);
if (!empty($pfsyncinterface))
$carp_sync_int = get_real_interface($pfsyncinterface);
-
- if($g['booting']) {
- /* install rules to alllow pfsync to sync up during boot
- * carp interfaces will remain down until the bootup sequence finishes
- */
- $fd = fopen("{$g['tmp_path']}/rules.boot", "w");
- if ($fd) {
- fwrite($fd, "block quick proto carp \n");
- fwrite($fd, "block quick proto pfsync \n");
- fwrite($fd, "pass out quick from any to any keep state\n");
- fclose($fd);
- mwexec("/sbin/pfctl -f {$g['tmp_path']}/rules.boot");
- } else
- log_error(gettext("Could not create rules.boot file!"));
- }
+ else
+ unset($carp_sync_int);
/* setup pfsync interface */
- if($carp_sync_int and $pfsyncenabled) {
+ if ($carp_sync_int and $pfsyncenabled) {
if (is_ipaddr($pfsyncpeerip))
- $cmdchain->add(gettext("Bring up pfsync0 syncpeer"), "/sbin/ifconfig pfsync0 syncdev {$carp_sync_int} syncpeer {$pfsyncpeerip} up", false);
+ $syncpeer = "syncpeer {$pfsyncpeerip}";
else
- $cmdchain->add(gettext("Bring up pfsync0 syncdev"), "/sbin/ifconfig pfsync0 syncdev {$carp_sync_int} up", false);
- } else
- $cmdchain->add(gettext("Bring up pfsync0"), "/sbin/ifconfig pfsync0 syncdev lo0 up", false);
+ $syncpeer = "-syncpeer";
- sleep(1);
+ mwexec("/sbin/ifconfig pfsync0 syncdev {$carp_sync_int} {$syncpeer} up", false);
- /* XXX: Handle an issue with pfsync(4) and carp(4). In a cluster carp will come up before pfsync(4) has updated and so will cause issues
- * for existing sessions.
- */
- if ($config['hasync']['pfsyncenabled'] === "on"){
- echo "waiting for pfsync...";
+ sleep(1);
+
+ /* XXX: Handle an issue with pfsync(4) and carp(4). In a cluster carp will come up before pfsync(4) has updated and so will cause issues
+ * for existing sessions.
+ */
+ log_error("waiting for pfsync...");
$i = 0;
while (intval(trim(`/sbin/ifconfig pfsync0 | /usr/bin/grep 'syncok: 0' | /usr/bin/grep -v grep | /usr/bin/wc -l`)) == 0 && $i < 30) {
$i++;
sleep(1);
}
- echo "pfsync done in $i seconds.\n";
- echo "Configuring CARP settings finalize...";
+ log_error("pfsync done in $i seconds.");
+ log_error("Configuring CARP settings finalize...");
+ } else {
+ mwexec("/sbin/ifconfig pfsync0 -syncdev -syncpeer down", false);
}
if($config['virtualip']['vip'])
- $cmdchain->add(gettext("Allow CARP."), "/sbin/sysctl net.inet.carp.allow=1", true);
+ mwexec("/sbin/sysctl net.inet.carp.allow=1", true);
else
- $cmdchain->add(gettext("Disallow CARP."), "/sbin/sysctl net.inet.carp.allow=0", true);
-
- if($g['debug'])
- $cmdchain->setdebug(); // optional for verbose logging
-
- $cmdchain->execute();
- $cmdchain->clear();
+ mwexec("/sbin/sysctl net.inet.carp.allow=0", true);
if ($g['booting']) {
unmute_kernel_msgs();
@@ -1868,7 +1921,7 @@ function interface_proxyarp_configure($interface = "") {
$proxyif = $vipent['interface'];
else
$proxyif = "wan";
-
+
if (!empty($interface) && $interface != $proxyif)
continue;
@@ -1883,16 +1936,16 @@ function interface_proxyarp_configure($interface = "") {
if (!empty($interface)) {
if (is_array($paa[$interface])) {
$paaifip = get_interface_ip($interface);
- if (!is_ipaddr($paaifip))
- return;
- $args = get_real_interface($interface) . " auto";
- foreach ($paa[$interface] as $paent) {
- if (isset($paent['subnet']))
- $args .= " " . escapeshellarg("{$paent['subnet']}/{$paent['subnet_bits']}");
- else if (isset($paent['range']))
- $args .= " " . escapeshellarg($paent['range']['from'] . "-" . $paent['range']['to']);
- }
- mwexec_bg("/usr/local/sbin/choparp " . $args);
+ if (!is_ipaddr($paaifip))
+ return;
+ $args = get_real_interface($interface) . " auto";
+ foreach ($paa[$interface] as $paent) {
+ if (isset($paent['subnet']))
+ $args .= " " . escapeshellarg("{$paent['subnet']}/{$paent['subnet_bits']}");
+ else if (isset($paent['range']))
+ $args .= " " . escapeshellarg($paent['range']['from'] . "-" . $paent['range']['to']);
+ }
+ mwexec_bg("/usr/local/sbin/choparp " . $args);
}
} else if (count($paa) > 0) {
foreach ($paa as $paif => $paents) {
@@ -1932,7 +1985,7 @@ function interfaces_vips_configure($interface = "") {
case "ipalias":
if ($interface <> "" && $vip['interface'] <> $interface)
continue;
- interface_ipalias_configure(&$vip);
+ interface_ipalias_configure($vip);
break;
case "carp":
if ($interface <> "" && $vip['interface'] <> $interface)
@@ -2001,7 +2054,7 @@ function interface_carp_configure(&$vip) {
/*
* ensure the interface containing the VIP really exists
- * prevents a panic if the interface is missing or invalid
+ * prevents a panic if the interface is missing or invalid
*/
$realif = get_real_interface($vip['interface']);
if (!does_interface_exist($realif)) {
@@ -2069,7 +2122,7 @@ function interface_carp_configure(&$vip) {
function interface_wireless_clone($realif, $wlcfg) {
global $config, $g;
- /* Check to see if interface has been cloned as of yet.
+ /* Check to see if interface has been cloned as of yet.
* If it has not been cloned then go ahead and clone it.
*/
$needs_clone = false;
@@ -2078,15 +2131,15 @@ function interface_wireless_clone($realif, $wlcfg) {
else
$wlcfg_mode = $wlcfg['mode'];
switch($wlcfg_mode) {
- case "hostap":
- $mode = "wlanmode hostap";
- break;
- case "adhoc":
- $mode = "wlanmode adhoc";
- break;
- default:
- $mode = "";
- break;
+ case "hostap":
+ $mode = "wlanmode hostap";
+ break;
+ case "adhoc":
+ $mode = "wlanmode adhoc";
+ break;
+ default:
+ $mode = "";
+ break;
}
$baseif = interface_get_wireless_base($wlcfg['if']);
if(does_interface_exist($realif)) {
@@ -2135,8 +2188,8 @@ function interface_sync_wireless_clones(&$ifcfg, $sync_changes = false) {
global $config, $g;
$shared_settings = array('standard', 'turbo', 'protmode', 'txpower', 'channel',
- 'diversity', 'txantenna', 'rxantenna', 'distance',
- 'regdomain', 'regcountry', 'reglocation');
+ 'diversity', 'txantenna', 'rxantenna', 'distance',
+ 'regdomain', 'regcountry', 'reglocation');
if(!is_interface_wireless($ifcfg['if']))
return;
@@ -2168,7 +2221,7 @@ function interface_sync_wireless_clones(&$ifcfg, $sync_changes = false) {
}
// Read or write settings at shared area
- if (isset($config['wireless']['interfaces'][$baseif])) {
+ if (isset($config['wireless']['interfaces'][$baseif]) && is_array($config['wireless']['interfaces'][$baseif])) {
foreach ($shared_settings as $setting) {
if ($sync_changes) {
if (isset($ifcfg['wireless'][$setting]))
@@ -2185,7 +2238,7 @@ function interface_sync_wireless_clones(&$ifcfg, $sync_changes = false) {
}
// Sync the mode on the clone creation page with the configured mode on the interface
- if (interface_is_wireless_clone($ifcfg['if'])) {
+ if (interface_is_wireless_clone($ifcfg['if']) && isset($config['wireless']['clone']) && is_array($config['wireless']['clone'])) {
foreach ($config['wireless']['clone'] as &$clone) {
if ($clone['cloneif'] == $ifcfg['if']) {
if ($sync_changes) {
@@ -2365,7 +2418,7 @@ function interface_wireless_configure($if, &$wl, &$wlcfg) {
$wlcmd[] = "authmode open wepmode off ";
}
- mwexec(kill_hostapd("{$if}"));
+ kill_hostapd($if);
mwexec(kill_wpasupplicant("{$if}"));
/* generate wpa_supplicant/hostap config if wpa is enabled */
@@ -2396,9 +2449,9 @@ EOD;
}
break;
case 'hostap':
- if($wlcfg['wpa']['passphrase'])
+ if($wlcfg['wpa']['passphrase'])
$wpa_passphrase = "wpa_passphrase={$wlcfg['wpa']['passphrase']}\n";
- else
+ else
$wpa_passphrase = "";
if (isset($wlcfg['wpa']['enable'])) {
$wpa .= <<<EOD
@@ -2438,10 +2491,10 @@ EOD;
}
if($wlcfg['auth_server_addr'] && $wlcfg['auth_server_shared_secret']) {
$auth_server_port = "1812";
- if($wlcfg['auth_server_port'])
+ if($wlcfg['auth_server_port'])
$auth_server_port = $wlcfg['auth_server_port'];
$auth_server_port2 = "1812";
- if($wlcfg['auth_server_port2'])
+ if($wlcfg['auth_server_port2'])
$auth_server_port2 = $wlcfg['auth_server_port2'];
$wpa .= <<<EOD
@@ -2501,7 +2554,7 @@ EOD;
" link " . escapeshellarg($if_oldmac) . "\n");
}
- fwrite($fd_set, "{$hostapd} -B {$g['varetc_path']}/hostapd_{$if}.conf\n");
+ 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")) {
@@ -2558,7 +2611,7 @@ EOD;
$clone_list = array();
if (does_interface_exist(interface_get_wireless_clone($baseif)))
$clone_list[] = interface_get_wireless_clone($baseif);
- if (is_array($config['wireless']['clone'])) {
+ if (isset($config['wireless']['clone']) && is_array($config['wireless']['clone'])) {
foreach ($config['wireless']['clone'] as $clone) {
if ($clone['if'] == $baseif)
$clone_list[] = $clone['cloneif'];
@@ -2606,7 +2659,7 @@ EOD;
$wlcmd_args = implode(" ", $wlcmd);
mwexec("/sbin/ifconfig {$if} $wlcmd_args", false);
-
+
sleep(1);
/* execute hostapd and wpa_supplicant if required in shell */
mwexec("/bin/sh {$g['tmp_path']}/{$if}_setup.sh");
@@ -2616,11 +2669,14 @@ EOD;
}
function kill_hostapd($interface) {
- return "/bin/pkill -f \"hostapd .*{$interface}\"\n";
+ global $g;
+
+ if (isvalidpid("{$g['varrun_path']}/hostapd_{$interface}.pid"))
+ return killbypid("{$g['varrun_path']}/hostapd_{$interface}.pid");
}
function kill_wpasupplicant($interface) {
- return "/bin/pkill -f \"wpa_supplicant .*{$interface}\"\n";
+ return "/bin/pkill -f \"wpa_supplicant .*{$interface}\\.conf\"\n";
}
function find_dhclient_process($interface) {
@@ -2633,14 +2689,35 @@ function find_dhclient_process($interface) {
}
function find_dhcp6c_process($interface) {
- if ($interface)
- $pid = `/bin/ps auxww|grep "[d]hclient[ ]-6" |grep "{$interface}"|awk '{print $2}'`;
+ global $g;
+
+ if ($interface && isvalidpid("{$g['varrun_path']}/dhcp6c_{$interface}.pid"))
+ $pid = trim(file_get_contents("{$g['varrun_path']}/dhcp6c_{$interface}.pid"), " \n");
else
return(false);
return intval($pid);
}
+function interface_vlan_mtu_configured($realhwif, $mtu) {
+ global $config;
+
+ if (is_array($config['vlans']['vlan'])) {
+ foreach ($config['vlans']['vlan'] as $vlan) {
+ if ($vlan['if'] != $realhwif)
+ continue;
+ $assignedport = convert_real_interface_to_friendly_interface_name($vlan['vlanif']);
+ if (!empty($assignedport)) {
+ $portmtu = $config['interfaces'][$assignedport]['mtu'];
+ if (!empty($portmtu) && $portmtu > $mtu)
+ $mtu = $portmtu;
+ }
+ }
+ }
+
+ return $mtu;
+}
+
function interface_configure($interface = "wan", $reloadall = false, $linkupevent = false) {
global $config, $g;
global $interface_sn_arr_cache, $interface_ip_arr_cache;
@@ -2648,22 +2725,26 @@ function interface_configure($interface = "wan", $reloadall = false, $linkupeven
$wancfg = $config['interfaces'][$interface];
+ if (!isset($wancfg['enable']))
+ return;
+
$realif = get_real_interface($interface);
$realhwif_array = get_parent_interface($interface);
// Need code to handle MLPPP if we ever use $realhwif for MLPPP handling
$realhwif = $realhwif_array[0];
/* Disable Accepting router advertisements unless specifically requested */
- log_error("Deny router advertisements for interface {$interface}");
+ if ($g['debug'])
+ log_error("Deny router advertisements for interface {$interface}");
mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " inet6 -accept_rtadv");
-
+
if (!$g['booting'] && !(substr($realif, 0, 4) == "ovpn")) {
/* remove all IPv4 and IPv6 addresses */
while (mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " -alias", true) == 0);
while (mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " inet6 -alias", true) == 0);
/* only bring down the interface when both v4 and v6 are set to NONE */
- if(($wancfg['ipaddr'] <> "none") && ($wancfg['ipaddrv6'] <> "none")) {
+ if(empty($wancfg['ipaddr']) && empty($wancfg['ipaddrv6'])) {
interface_bring_down($interface);
}
}
@@ -2673,25 +2754,27 @@ function interface_configure($interface = "wan", $reloadall = false, $linkupeven
interface_wireless_configure($realif, $wancfg, $wancfg['wireless']);
$mac = get_interface_mac($realhwif);
- /* Don't try to reapply the spoofed MAC if it's already applied.
- When ifconfig link is used, it cycles the interface down/up, which triggers
- the interface config again, which attempts to spoof the MAC again,
- which cycles the link again... */
+ /*
+ * Don't try to reapply the spoofed MAC if it's already applied.
+ * When ifconfig link is used, it cycles the interface down/up, which triggers
+ * the interface config again, which attempts to spoof the MAC again,
+ * which cycles the link again...
+ */
if ($wancfg['spoofmac'] && ($wancfg['spoofmac'] != $mac)) {
mwexec("/sbin/ifconfig " . escapeshellarg($realhwif) .
" link " . escapeshellarg($wancfg['spoofmac']));
- /*
- * All vlans need to spoof their parent mac address, too. see
- * ticket #1514: http://cvstrac.pfsense.com/tktview?tn=1514,33
- */
- if (is_array($config['vlans']['vlan'])) {
- foreach ($config['vlans']['vlan'] as $vlan) {
- if ($vlan['if'] == $realhwif)
- mwexec("/sbin/ifconfig " . escapeshellarg($vlan['vlanif']) .
- " link " . escapeshellarg($wancfg['spoofmac']));
- }
- }
+ /*
+ * All vlans need to spoof their parent mac address, too. see
+ * ticket #1514: http://cvstrac.pfsense.com/tktview?tn=1514,33
+ */
+ if (is_array($config['vlans']['vlan'])) {
+ foreach ($config['vlans']['vlan'] as $vlan) {
+ if ($vlan['if'] == $realhwif)
+ mwexec("/sbin/ifconfig " . escapeshellarg($vlan['vlanif']) .
+ " link " . escapeshellarg($wancfg['spoofmac']));
+ }
+ }
} else {
if ($mac == "ff:ff:ff:ff:ff:ff") {
@@ -2717,14 +2800,6 @@ function interface_configure($interface = "wan", $reloadall = false, $linkupeven
$cmd .= " mediaopt " . escapeshellarg($wancfg['mediaopt']);
mwexec($cmd);
}
- if (!empty($wancfg['mtu']))
- pfSense_interface_mtu($realhwif, $wancfg['mtu']);
- else {
- $mtu = get_interface_default_mtu(remove_numbers($realhwif));
- if ($mtu != get_interface_mtu($realhwif))
- pfSense_interface_mtu($realhwif, $mtu);
- }
-
$options = pfSense_get_interface_addresses($realhwif);
if (is_array($options) && isset($options['caps']['polling'])) {
if (isset($config['system']['polling']))
@@ -2734,45 +2809,45 @@ function interface_configure($interface = "wan", $reloadall = false, $linkupeven
}
/* skip vlans for checksumming and polling */
- if (!stristr($realhwif, "vlan") && is_array($options)) {
+ if (!stristr($realif, "_vlan") && is_array($options)) {
$flags = 0;
if(isset($config['system']['disablechecksumoffloading'])) {
if (isset($options['encaps']['txcsum']))
$flags |= IFCAP_TXCSUM;
if (isset($options['encaps']['rxcsum']))
$flags |= IFCAP_RXCSUM;
- } else {
- if (!isset($options['caps']['txcsum']))
+ } else {
+ if (!isset($options['caps']['txcsum']))
$flags |= IFCAP_TXCSUM;
if (!isset($options['caps']['rxcsum']))
$flags |= IFCAP_RXCSUM;
- }
+ }
- if(isset($config['system']['disablesegmentationoffloading'])) {
- if (isset($options['encaps']['tso4']))
+ if(isset($config['system']['disablesegmentationoffloading'])) {
+ if (isset($options['encaps']['tso4']))
$flags |= IFCAP_TSO;
- if (isset($options['encaps']['tso6']))
+ if (isset($options['encaps']['tso6']))
$flags |= IFCAP_TSO;
- } else {
- if (!isset($options['caps']['tso4']))
+ } else {
+ if (!isset($options['caps']['tso4']))
$flags |= IFCAP_TSO;
- if (!isset($options['caps']['tso6']))
+ if (!isset($options['caps']['tso6']))
$flags |= IFCAP_TSO;
- }
+ }
- if(isset($config['system']['disablelargereceiveoffloading'])) {
- if (isset($options['encaps']['lro']))
+ if(isset($config['system']['disablelargereceiveoffloading'])) {
+ if (isset($options['encaps']['lro']))
$flags |= IFCAP_LRO;
- } else {
- if (!isset($options['caps']['lro']))
+ } else {
+ if (!isset($options['caps']['lro']))
$flags |= IFCAP_LRO;
- }
+ }
- /* if the NIC supports polling *AND* it is enabled in the GUI */
- if (!isset($config['system']['polling']) || !isset($options['caps']['polling'])) {
+ /* if the NIC supports polling *AND* it is enabled in the GUI */
+ if (!isset($config['system']['polling']) || !isset($options['caps']['polling'])) {
$flags |= IFCAP_POLLING;
}
- pfSense_interface_capabilities($realhwif, -$flags);
+ pfSense_interface_capabilities($realhwif, -$flags);
}
/* invalidate interface/ip/sn cache */
@@ -2802,7 +2877,7 @@ function interface_configure($interface = "wan", $reloadall = false, $linkupeven
interface_gre_configure($gre);
}
} else if (substr($realif, 0, 3) == "gif") {
- if (is_array($config['gifs']['gif'])) {
+ if (is_array($config['gifs']['gif'])) {
foreach ($config['gifs']['gif'] as $gif)
if($gif['gifif'] == $realif)
interface_gif_configure($gif);
@@ -2816,16 +2891,16 @@ function interface_configure($interface = "wan", $reloadall = false, $linkupeven
switch ($wancfg['ipaddrv6']) {
case 'slaac':
case 'dhcp6':
- interface_dhcpv6_configure($interface);
+ interface_dhcpv6_configure($interface, $wancfg);
break;
case '6rd':
- interface_6rd_configure($interface);
+ interface_6rd_configure($interface, $wancfg);
break;
case '6to4':
- interface_6to4_configure($interface);
+ interface_6to4_configure($interface, $wancfg);
break;
case 'track6':
- interface_track6_configure($interface);
+ interface_track6_configure($interface, $wancfg);
break;
default:
if (is_ipaddr($wancfg['ipaddrv6']) && $wancfg['subnetv6'] <> "") {
@@ -2836,11 +2911,119 @@ function interface_configure($interface = "wan", $reloadall = false, $linkupeven
break;
}
+ $mtu = get_interface_default_mtu(remove_ifindex($realhwif));
+ $assignedparent = convert_real_interface_to_friendly_interface_name($realhwif);
+ if (!empty($assignedparent) && !empty($config['interfaces'][$assignedparent]['mtu']))
+ $mtu = $config['interfaces'][$assignedparent]['mtu'];
+
+ $vlanifs = link_interface_to_vlans($realhwif);
+ if (empty($vlanifs))
+ $vlanifs = array();
+
+ if (!empty($wancfg['mtu'])) {
+ if (stristr($realif, "_vlan")) {
+ if (!empty($assignedparent)) {
+ $parentmtu = $config['interfaces'][$assignedparent]['mtu'];
+ if (empty($parentmtu))
+ $parentmtu = interface_vlan_mtu_configured($realhwif, $wancfg['mtu']);
+ if ($wancfg['mtu'] > $parentmtu) {
+ if (get_interface_mtu($realhwif) != $wancfg['mtu'])
+ pfSense_interface_mtu($realhwif, $wancfg['mtu']);
+
+ /* All vlans need to use the same mtu value as their parent. */
+ foreach ($vlanifs as $vlan) {
+ if ($vlan['vlanif'] == $realif)
+ continue;
+ $assignedport = convert_real_interface_to_friendly_interface_name($vlan['vlanif']);
+ if (!empty($assignedport)) {
+ $portmtu = $config['interfaces'][$assignedport]['mtu'];
+ if (empty($portmtu) && (get_interface_mtu($vlan['vlanif']) != $wancfg['mtu']))
+ pfSense_interface_mtu($vlan['vlanif'], $wancfg['mtu']);
+ } else if (get_interface_mtu($vlan['vlanif']) != $wancfg['mtu'])
+ pfSense_interface_mtu($vlan['vlanif'], $wancfg['mtu']);
+ }
+ }
+ } else {
+ /* Parent is not assigned, back to default */
+ if (get_interface_mtu($realhwif) != $mtu)
+ pfSense_interface_mtu($realhwif, $mtu);
+
+ /* All vlans need to use the same mtu value as their parent. */
+ foreach ($vlanifs as $vlan) {
+ if ($vlan['vlanif'] == $realif)
+ continue;
+ $assignedport = convert_real_interface_to_friendly_interface_name($vlan['vlanif']);
+ if (!empty($assignedport)) {
+ $portmtu = $config['interfaces'][$assignedport]['mtu'];
+ if (empty($portmtu) && (get_interface_mtu($vlan['vlanif']) != $mtu))
+ pfSense_interface_mtu($vlan['vlanif'], $mtu);
+ } else if (get_interface_mtu($vlan['vlanif']) != $mtu)
+ pfSense_interface_mtu($vlan['vlanif'], $mtu);
+ }
+
+ if (get_interface_mtu($realif) != $wancfg['mtu'])
+ pfSense_interface_mtu($realif, $wancfg['mtu']);
+ }
+ } else {
+ foreach ($vlanifs as $vlan) {
+ $assignedport = convert_real_interface_to_friendly_interface_name($vlan['vlanif']);
+ if (empty($assignedport)) {
+ if (get_interface_mtu($vlan['vlanif']) != $wancfg['mtu'])
+ pfSense_interface_mtu($vlan['vlanif'], $wancfg['mtu']);
+ } else {
+ $vlanmtu = $config['interfaces'][$assignedport]['mtu'];
+ if ((empty($vlanmtu) || ($vlanmtu >= $wancfg['mtu'])) && (get_interface_mtu($vlan['vlanif']) != $wancfg['mtu']))
+ pfSense_interface_mtu($vlan['vlanif'], $wancfg['mtu']);
+ }
+ }
+ }
+ if ($wancfg['mtu'] != get_interface_mtu($realif))
+ pfSense_interface_mtu($realif, $wancfg['mtu']);
+ } else if (stristr($realif, "_vlan")) {
+ /* XXX: This is really dangerous for example with vlans changing their parent mtu! */
+ $bigmtu = interface_vlan_mtu_configured($realhwif, $mtu);
+ if ($mtu < $bigmtu)
+ $mtu = $bigmtu;
+
+ if (get_interface_mtu($realhwif) != $mtu)
+ pfSense_interface_mtu($realhwif, $mtu);
+
+ /* All vlans need to use the same mtu value as their parent. */
+ foreach ($vlanifs as $vlan) {
+ if ($vlan['vlanif'] == $realif)
+ continue;
+ $assignedport = convert_real_interface_to_friendly_interface_name($vlan['vlanif']);
+ if (!empty($assignedport)) {
+ $portmtu = $config['interfaces'][$assignedport]['mtu'];
+ if (empty($portmtu) && (get_interface_mtu($vlan['vlanif']) != $mtu))
+ pfSense_interface_mtu($vlan['vlanif'], $mtu);
+ } else if (get_interface_mtu($vlan['vlanif']) != $mtu)
+ pfSense_interface_mtu($vlan['vlanif'], $mtu);
+ }
+ if (get_interface_mtu($realif) != $mtu)
+ pfSense_interface_mtu($realif, $mtu);
+ } else {
+ /* All vlans need to use the same mtu value as their parent. */
+ foreach ($vlanifs as $vlan) {
+ $assignedport = convert_real_interface_to_friendly_interface_name($vlan['vlanif']);
+ if (!empty($assignedport)) {
+ $portmtu = $config['interfaces'][$assignedport]['mtu'];
+ if (empty($portmtu) && (get_interface_mtu($vlan['vlanif']) != $mtu))
+ pfSense_interface_mtu($vlan['vlanif'], $mtu);
+ } else if (get_interface_mtu($vlan['vlanif']) != $mtu)
+ pfSense_interface_mtu($vlan['vlanif'], $mtu);
+ }
+ if ($mtu != get_interface_mtu($realhwif))
+ pfSense_interface_mtu($realhwif, $mtu);
+ }
+
+ unset($vlanifs);
+
if(does_interface_exist($wancfg['if']))
interfaces_bring_up($wancfg['if']);
interface_netgraph_needed($interface);
-
+
if (!$g['booting']) {
link_interface_to_vips($interface, "update");
@@ -2888,81 +3071,92 @@ function interface_configure($interface = "wan", $reloadall = false, $linkupeven
}
}
+ interfaces_staticarp_configure($interface);
return 0;
}
-function interface_track6_configure($interface = "lan") {
+function interface_track6_configure($interface = "lan", $wancfg) {
global $config, $g;
- $iflist = get_configured_interface_with_descr(false, true);
- $wancfg = $config['interfaces'][$interface];
- $wanif = $wancfg['if'];
- if (empty($wancfg))
- $wancfg = array();
+ if (!is_array($wancfg))
+ return;
+
+ if (!isset($wancfg['enable']))
+ return;
- $wanif = get_real_interface($interface);
-
/* If the interface is not configured via another, exit */
- if(!$wancfg['track6-interface'] <> "") {
- return(false);
- }
+ if (empty($wancfg['track6-interface']))
+ return;
/* always configure a link-local of fe80::1:1 on the track6 interfaces */
$realif = get_real_interface($interface);
+ $linklocal = find_interface_ipv6_ll($realif);
+ if (!empty($linklocal))
+ mwexec("/sbin/ifconfig {$realif} inet6 {$linklocal} delete");
mwexec("/sbin/ifconfig {$realif} inet6 fe80::1:1%{$realif}");
- $type = $config['interfaces'][$wancfg['track6-interface']]['ipaddrv6'];
- switch($type) {
- case "6to4":
+ $trackcfg = $config['interfaces'][$wancfg['track6-interface']];
+ if (!isset($trackcfg['enable'])) {
+ log_error("Interface {$interface} tracking non-existant interface {$wancfg['track6-interface']}");
+ return;
+ }
+
+ switch($trackcfg['ipaddrv6']) {
+ case "6to4":
+ if ($g['debug'])
log_error("Interface {$interface} configured via {$wancfg['track6-interface']} type {$type}");
- interface_track6_6to4_configure($interface);
- break;
- case "6rd":
+ interface_track6_6to4_configure($interface, $wancfg);
+ break;
+ case "6rd":
+ if ($g['debug'])
log_error("Interface {$interface} configured via {$wancfg['track6-interface']} type {$type}");
- interface_track6_6rd_configure($interface);
- break;
- case "dhcp6":
+ interface_track6_6rd_configure($interface, $wancfg);
+ break;
+ case "dhcp6":
+ if ($g['debug'])
log_error("Interface {$interface} configured via {$wancfg['track6-interface']} type {$type}");
- interface_track6_dhcp6_configure($interface);
- break;
- default:
- log_error("Interface {$interface} configured via {$wancfg['track6-interface']} but unknown type {$type}");
- break;
+ interface_track6_dhcp6_configure($interface, $wancfg);
+ break;
+ }
+
+ if (!$g['booting']) {
+ if (!function_exists('services_dhcpd_configure'))
+ require_once("services.inc");
+
+ services_dhcpd_configure("inet6");
}
+
return 0;
}
-
-function interface_track6_6rd_configure($interface = "lan") {
+function interface_track6_6rd_configure($interface = "lan", $lancfg) {
global $config, $g;
- $iflist = get_configured_interface_with_descr(false, true);
+ global $interface_ipv6_arr_cache;
+ global $interface_snv6_arr_cache;
- $lancfg = $config['interfaces'][$interface];
- $lanif = $lancfg['if'];
- if (empty($lancfg))
- $lancfg = array();
+ if (!is_array($lancfg))
+ return;
- $lanif = get_real_interface($interface);
-
/* If the interface is not configured via another, exit */
- if(!$lancfg['track6-interface'] <> "") {
- return(false);
- }
- if(!is_numeric($lancfg['track6-prefix-id']))
+ if (empty($lancfg['track6-interface']))
+ return;
+
+ if (!is_numeric($lancfg['track6-prefix-id']))
$lancfg['track6-prefix-id'] = 0;
-
+
$wancfg = $config['interfaces'][$lancfg['track6-interface']];
- $wanif = $wancfg['if'];
- if (empty($wancfg))
- $wancfg = array();
-
- $ip4address = find_interface_ip($wanif);
- if((!is_ipaddrv4($ip4address)) || (is_private_ip($ip4address))) {
- log_error("The interface IPv4 '{$ip4address}' address on interface '{$wanif}' is not public, not configuring 6RD tunnel");
- return false;
+ if (empty($wancfg)) {
+ log_error("Interface {$interface} tracking non-existant interface {$lancfg['track6-interface']}");
+ return;
+ }
+
+ $ip4address = get_interface_ip($lancfg['track6-interface']);
+ if (!is_ipaddrv4($ip4address)) { /* XXX: This should not be needed by 6rd || (is_private_ip($ip4address))) { */
+ log_error("The interface IPv4 '{$ip4address}' address on interface '{$lancfg['track6-interface']}' is not public, not configuring 6RD tunnel");
+ return;
}
$hexwanv4 = return_hex_ipv4($ip4address);
-
+
/* create the long prefix notation for math, save the prefix length */
$rd6prefix = explode("/", $wancfg['prefix-6rd']);
$rd6prefixlen = $rd6prefix[1];
@@ -2970,7 +3164,7 @@ function interface_track6_6rd_configure($interface = "lan") {
/* binary presentation of the prefix for all 128 bits. */
$rd6lanbin = convert_ipv6_to_128bit($rd6prefix);
-
+
/* just save the left prefix length bits */
$rd6lanbin = substr($rd6lanbin, 0, $rd6prefixlen);
/* add the v4 address, offset n bits from the left */
@@ -2984,44 +3178,49 @@ function interface_track6_6rd_configure($interface = "lan") {
/* fill the rest out with zeros */
$rd6lanbin = str_pad($rd6lanbin, 128, "0", STR_PAD_RIGHT);;
- /* convert the 128 bits for the lan address back into a valid IPv6 address */
+ /* convert the 128 bits for the lan address back into a valid IPv6 address */
$rd6lan = convert_128bit_to_ipv6($rd6lanbin) ."1";
-
+
+ $lanif = get_real_interface($interface);
+ $oip = find_interface_ipv6($lanif);
+ if (is_ipaddrv6($oip))
+ mwexec("/sbin/ifconfig {$lanif} inet6 {$oip} delete");
+ unset($interface_ipv6_arr_cache[$lanif]);
+ unset($interface_snv6_arr_cache[$lanif]);
log_error("rd6 {$interface} with ipv6 address {$rd6lan} based on {$lancfg['track6-interface']} ipv4 {$ip4address}");
mwexec("/sbin/ifconfig {$lanif} inet6 {$rd6lan} prefixlen 64");
+
return 0;
}
-function interface_track6_6to4_configure($interface = "lan") {
+function interface_track6_6to4_configure($interface = "lan", $lancfg) {
global $config, $g;
- $iflist = get_configured_interface_with_descr(false, true);
+ global $interface_ipv6_arr_cache;
+ global $interface_snv6_arr_cache;
- $lancfg = $config['interfaces'][$interface];
- $lanif = $lancfg['if'];
- if (empty($lancfg))
- $lancfg = array();
+ if (!is_array($lancfg))
+ return;
- $lanif = get_real_interface($interface);
-
/* If the interface is not configured via another, exit */
- if(!$lancfg['track6-interface'] <> "") {
- return(false);
+ if (empty($lancfg['track6-interface']))
+ return;
+
+ $wancfg = $config['interfaces'][$lancfg['track6-interface']];
+ if (empty($wancfg)) {
+ log_error("Interface {$interface} tracking non-existant interface {$lancfg['track6-interface']}");
+ return;
}
- if(!is_numeric($lancfg['track6-prefix-id']))
+
+ if (!is_numeric($lancfg['track6-prefix-id']))
$lancfg['track6-prefix-id'] = 0;
-
- $wancfg = $config['interfaces'][$lancfg['track6-interface']];
- $wanif = $wancfg['if'];
- if (empty($wancfg))
- $wancfg = array();
-
- $ip4address = find_interface_ip($wanif);
- if((!is_ipaddrv4($ip4address)) || (is_private_ip($ip4address))) {
- log_error("The interface IPv4 '{$ip4address}' address on interface '{$wanif}' is not public, not configuring 6RD tunnel");
- return false;
+
+ $ip4address = get_interface_ip($lancfg['track6-interface']);
+ if (!is_ipaddrv4($ip4address) || is_private_ip($ip4address)) {
+ log_error("The interface IPv4 '{$ip4address}' address on interface '{$lancfg['track6-interface']}' is not public, not configuring 6RD tunnel");
+ return;
}
$hexwanv4 = return_hex_ipv4($ip4address);
-
+
/* create the long prefix notation for math, save the prefix length */
$sixto4prefix = "2002::";
$sixto4prefixlen = 16;
@@ -3029,7 +3228,7 @@ function interface_track6_6to4_configure($interface = "lan") {
/* binary presentation of the prefix for all 128 bits. */
$sixto4lanbin = convert_ipv6_to_128bit($sixto4prefix);
-
+
/* just save the left prefix length bits */
$sixto4lanbin = substr($sixto4lanbin, 0, $sixto4prefixlen);
/* add the v4 address */
@@ -3038,89 +3237,85 @@ function interface_track6_6to4_configure($interface = "lan") {
$sixto4lanbin .= sprintf("%016b", $lancfg['track6-prefix-id']);
/* fill the rest out with zeros */
$sixto4lanbin = str_pad($sixto4lanbin, 128, "0", STR_PAD_RIGHT);;
-
- /* convert the 128 bits for the lan address back into a valid IPv6 address */
+
+ /* convert the 128 bits for the lan address back into a valid IPv6 address */
$sixto4lan = convert_128bit_to_ipv6($sixto4lanbin) ."1";
-
+
+ $lanif = get_real_interface($interface);
+ $oip = find_interface_ipv6($lanif);
+ if (is_ipaddrv6($oip))
+ mwexec("/sbin/ifconfig {$lanif} inet6 {$oip} delete");
+ unset($interface_ipv6_arr_cache[$lanif]);
+ unset($interface_snv6_arr_cache[$lanif]);
log_error("sixto4 {$interface} with ipv6 address {$sixto4lan} based on {$lancfg['track6-interface']} ipv4 {$ip4address}");
mwexec("/sbin/ifconfig {$lanif} inet6 {$sixto4lan} prefixlen 64");
+
return 0;
}
-function interface_track6_dhcp6_configure($interface = "lan") {
+function interface_track6_dhcp6_configure($interface = "lan", $lancfg) {
global $config, $g;
- $iflist = get_configured_interface_with_descr(false, true);
+ global $interface_ipv6_arr_cache;
+ global $interface_snv6_arr_cache;
- $lancfg = $config['interfaces'][$interface];
- $lanif = $lancfg['if'];
- if (empty($lancfg))
- $lancfg = array();
+ if (!is_array($lancfg))
+ return;
- $lanif = get_real_interface($interface);
-
/* If the interface is not configured via another, exit */
- if(!$lancfg['track6-interface'] <> "") {
- return(false);
- }
- if(!is_numeric($lancfg['track6-prefix-id']))
+ if (empty($lancfg['track6-interface']))
+ return;
+
+ if (!is_numeric($lancfg['track6-prefix-id']))
$lancfg['track6-prefix-id'] = 0;
-
+
$wancfg = $config['interfaces'][$lancfg['track6-interface']];
- $wanif = $wancfg['if'];
- if (empty($wancfg))
- $wancfg = array();
-
- $realwanif = get_real_interface($wanif);
- if(is_readable("{$g['vardb_path']}/{$realwanif}_pd_ipv6")) {
- $ifcfgipv6pfx = file_get_contents("{$g['vardb_path']}/{$realwanif}_pd_ipv6");
- } else {
- log_error("No DHCP-PD delegated prefix found, exiting");
- return false;
- }
-
- log_error("Delegated IPv6 prefix is {$ifcfgipv6pfx}");
- $ifcfgipv6pfxarr = explode("/", $ifcfgipv6pfx);
- $ifcfgipv6 = $ifcfgipv6pfxarr[0];
-
- if(is_ipaddrv6($ifcfgipv6)) {
- $dhcp6lanarr = explode(":", Net_IPv6::uncompress($ifcfgipv6));
- /* we need to fold the $lancfg['track6-prefix-id'] into this address */
- $dhcp6lanarr[4] = 0;
- $dhcp6lanarr[5] = 0;
- $dhcp6lanarr[6] = 0;
- $dhcp6lanarr[7] = 1;
- $dhcp6lan = Net_IPv6::compress(implode(":", $dhcp6lanarr));
- log_error("dhcp6 {$interface} with ipv6 address {$dhcp6lan} based on {$lancfg['track6-interface']}");
- mwexec("/sbin/ifconfig {$lanif} inet6 {$dhcp6lan} prefixlen 64");
- } else {
- log_error("The DHCP-PD interface {$interface} address {$ifcfgipv6} is not a valid IPv6 address");
+ if (empty($wancfg)) {
+ log_error("Interface {$interface} tracking non-existant interface {$lancfg['track6-interface']}");
+ return;
+ }
+
+ $lanif = get_real_interface($interface);
+ $oip = find_interface_ipv6($lanif);
+ if (is_ipaddrv6($oip))
+ mwexec("/sbin/ifconfig {$lanif} inet6 {$oip} delete");
+ unset($interface_ipv6_arr_cache[$lanif]);
+ unset($interface_snv6_arr_cache[$lanif]);
+
+ if ($wancfg['ipaddrv6'] == "slaac") {
+ $ifcfgipv6 = get_interface_ipv6($lancfg['track6-interface']);
+ if (is_ipaddrv6($ifcfgipv6)) {
+ $dhcp6lanarr = explode(":", Net_IPv6::uncompress($ifcfgipv6));
+ $dhcp6lanarr[4] = 0;
+ $dhcp6lanarr[5] = 0;
+ $dhcp6lanarr[6] = 0;
+ $dhcp6lanarr[7] = 1;
+ $dhcp6lan = Net_IPv6::compress(implode(":", $dhcp6lanarr));
+ log_error("dhcp6 {$interface} with ipv6 address {$dhcp6lan} based on {$lancfg['track6-interface']}");
+ mwexec("/sbin/ifconfig {$lanif} inet6 {$dhcp6lan} prefixlen 64");
+ }
}
+
return 0;
}
-function interface_6rd_configure($interface = "wan") {
+function interface_6rd_configure($interface = "wan", $wancfg) {
global $config, $g;
- $iflist = get_configured_interface_with_descr(false, true);
- /* because this is a tunnel interface we can only function
+ /* because this is a tunnel interface we can only function
* with a public IPv4 address on the interface */
- $wancfg = $config['interfaces'][$interface];
- $wanif = $wancfg['if'];
- if (empty($wancfg))
- $wancfg = array();
+ if (!is_array($wancfg))
+ return;
$wanif = get_real_interface($interface);
-
$ip4address = find_interface_ip($wanif);
- $ip4gateway = get_interface_gateway($wanif);
- if((!is_ipaddrv4($ip4address)) || (is_private_ip($ip4address))) {
+ if ((!is_ipaddrv4($ip4address)) || (is_private_ip($ip4address))) {
log_error("The interface IPv4 '{$ip4address}' address on interface '{$wanif}' is not public, not configuring 6RD tunnel");
return false;
}
$hexwanv4 = return_hex_ipv4($ip4address);
-
- if(!is_numeric($wancfg['prefix-6rd-v4plen']))
+
+ if (!is_numeric($wancfg['prefix-6rd-v4plen']))
$wancfg['prefix-6rd-v4plen'] = 0;
/* create the long prefix notation for math, save the prefix length */
@@ -3128,21 +3323,8 @@ function interface_6rd_configure($interface = "wan") {
$rd6prefixlen = $rd6prefix[1];
$rd6prefix = Net_IPv6::uncompress($rd6prefix[0]);
- /* we need the hex form of the broker IPv4 address */
- $hexbrv4 = return_hex_ipv4($wancfg['gateway-6rd']);
-
/* binary presentation of the prefix for all 128 bits. */
$rd6prefixbin = convert_ipv6_to_128bit($rd6prefix);
-
- /* just save the left prefix length bits */
- $rd6brprefixbin = substr($rd6prefixbin, 0, $rd6prefixlen);
- /* if the prefix length is not 32 bits we need to shave bits off from the left of the v4 address. */
- $rd6brprefixbin .= substr(sprintf("%032b", hexdec($hexbrv4)), $wancfg['prefix-6rd-v4plen'], 32);
- /* fill out the rest with 0's */
- $rd6brprefixbin = str_pad($rd6brprefixbin, 128, "0", STR_PAD_RIGHT);;
-
- /* convert the 128 bits for the broker address back into a valid IPv6 address */
- $rd6brgw = convert_128bit_to_ipv6($rd6brprefixbin);
/* just save the left prefix length bits */
$rd6prefixbin = substr($rd6prefixbin, 0, $rd6prefixlen);
@@ -3151,66 +3333,63 @@ function interface_6rd_configure($interface = "wan") {
/* fill out the rest with 0's */
$rd6prefixbin = str_pad($rd6prefixbin, 128, "0", STR_PAD_RIGHT);;
- /* convert the 128 bits for the broker address back into a valid IPv6 address */
+ /* convert the 128 bits for the broker address back into a valid IPv6 address */
$rd6prefix = convert_128bit_to_ipv6($rd6prefixbin);
- /* setup the stf interface */
- /* use the srd device
- mwexec("/sbin/ifconfig srd0 destroy");
- mwexec("/sbin/ifconfig srd0 create");
- mwexec("/sbin/ifconfig srd0 v4plen {$wancfg['prefix-6rd-v4plen']} pfix {$rd6prefix} plen {$rd6prefixlen} braddr {$wancfg['gateway-6rd']}");
- log_error("Created 6rd interface srd0 v4plen {$wancfg['prefix-6rd-v4plen']} pfix {$rd6prefix} plen {$rd6prefixlen} braddr {$wancfg['gateway-6rd']}");
- */
- /* stf approach only works when embedding the entire 32 bits of the v4 */
- mwexec("/sbin/ifconfig stf0 destroy");
- mwexec("/sbin/ifconfig stf0 create");
- mwexec("/sbin/ifconfig stf0 inet6 {$rd6prefix}/{$rd6prefixlen}");
- log_error("Created 6rd interface stf0 {$rd6prefix}/{$rd6prefixlen}");
+ $rd6brgw = "{$rd6prefix}{$wancfg['gateway-6rd']}";
+
+ /* XXX: need to extend to support variable prefix size for v4 */
+ if (!is_module_loaded("if_stf"))
+ mwexec("/sbin/kldload if_stf.ko");
+ $stfiface = "{$interface}_stf";
+ if (does_interface_exist($stfiface))
+ pfSense_interface_destroy($stfiface);
+ $tmpstfiface = pfSense_interface_create("stf");
+ pfSense_interface_rename($tmpstfiface, $stfiface);
+ pfSense_interface_flags($stfiface, IFF_LINK2);
+ mwexec("/sbin/ifconfig {$stfiface} inet6 {$rd6prefix}/{$rd6prefixlen}");
+ if ($wancfg['prefix-6rd-v4plen'] > 0 && $wancfg['prefix-6rd-v4plen'] < 32)
+ mwexec("/sbin/ifconfig {$stfiface} stfv4net {$ip4address}/{$wancfg['prefix-6rd-v4plen']}");
+ if ($g['debug'])
+ log_error("Created 6rd interface {$stfiface} {$rd6prefix}/{$rd6prefixlen}");
/* write out a default router file */
file_put_contents("{$g['tmp_path']}/{$wanif}_routerv6", "{$rd6brgw}\n");
file_put_contents("{$g['tmp_path']}/{$wanif}_defaultgwv6", "{$rd6brgw}\n");
- if (is_ipaddrv4($ip4gateway)) {
- mwexec("route change -host " . $wancfg['gateway-6rd'] . " {$ip4gateway}");
- }
+ $ip4gateway = get_interface_gateway($interface);
+ if (is_ipaddrv4($ip4gateway))
+ mwexec("/sbin/route change -host " . escapeshellarg($wancfg['gateway-6rd']) . " {$ip4gateway}");
/* configure dependent interfaces */
- foreach($iflist as $if => $ifname) {
- if($config['interfaces'][$if]['track6-interface'] == $interface)
- interface_track6_configure($if);
- }
-
+ if (!$g['booting'])
+ link_interface_to_track6($interface, "update");
+
return 0;
}
-function interface_6to4_configure($interface = "wan"){
+function interface_6to4_configure($interface = "wan", $wancfg){
global $config, $g;
- $iflist = get_configured_interface_with_descr(false, true);
- /* because this is a tunnel interface we can only function
+ /* because this is a tunnel interface we can only function
* with a public IPv4 address on the interface */
- $wancfg = $config['interfaces'][$interface];
- $wanif = $wancfg['if'];
- if (empty($wancfg))
- $wancfg = array();
+ if (!is_array($wancfg))
+ return;
$wanif = get_real_interface($interface);
-
$ip4address = find_interface_ip($wanif);
- $ip4gateway = get_interface_gateway($wanif);
if((!is_ipaddrv4($ip4address)) || (is_private_ip($ip4address))) {
log_error("The interface IPv4 '{$ip4address}' address on interface '{$wanif}' is not public, not configuring 6RD tunnel");
return false;
}
-
+
/* create the long prefix notation for math, save the prefix length */
$stfprefixlen = 16;
$stfprefix = Net_IPv6::uncompress("2002::");
$stfarr = explode(":", $stfprefix);
$v4prefixlen = "0";
-
+
/* we need the hex form of the interface IPv4 address */
$ip4arr = explode(".", $ip4address);
$hexwanv4 = "";
@@ -3222,7 +3401,7 @@ function interface_6to4_configure($interface = "wan"){
$hexbrv4 = "";
foreach($ip4arr as $octet)
$hexbrv4 .= sprintf("%02x", $octet);
-
+
/* binary presentation of the prefix for all 128 bits. */
$stfprefixbin = "";
foreach($stfarr as $element) {
@@ -3239,7 +3418,7 @@ function interface_6to4_configure($interface = "wan"){
$stflanbin = substr(sprintf("%032b", hexdec($hexwanv4)), $v4prefixlen, 32);
$stflanbin = str_pad($stfprefixstartbin . $stflanbin, 128, "0", STR_PAD_RIGHT);;
- /* convert the 128 bits for the broker address back into a valid IPv6 address */
+ /* convert the 128 bits for the broker address back into a valid IPv6 address */
$stfbrarr = array();
$stfbrbinarr = array();
$stfbrbinarr = str_split($stfbrokerbin, 16);
@@ -3247,7 +3426,7 @@ function interface_6to4_configure($interface = "wan"){
$stfbrarr[] = dechex(bindec($bin));
$stfbrgw = Net_IPv6::compress(implode(":", $stfbrarr));
- /* convert the 128 bits for the broker address back into a valid IPv6 address */
+ /* convert the 128 bits for the broker address back into a valid IPv6 address */
$stflanarr = array();
$stflanbinarr = array();
$stflanbinarr = str_split($stflanbin, 16);
@@ -3258,83 +3437,133 @@ function interface_6to4_configure($interface = "wan"){
$stflan = Net_IPv6::compress(implode(":", $stflanarr));
/* setup the stf interface */
- mwexec("/sbin/ifconfig stf0 destroy");
- mwexec("/sbin/ifconfig stf0 create");
- mwexec("/sbin/ifconfig stf0 inet6 {$stflanpr} prefixlen 16");
+ if (!is_module_loaded("if_stf"))
+ mwexec("/sbin/kldload if_stf.ko");
+ $stfiface = "{$interface}_stf";
+ if (does_interface_exist($stfiface))
+ pfSense_interface_destroy($stfiface);
+ $tmpstfiface = pfSense_interface_create("stf");
+ pfSense_interface_rename($tmpstfiface, $stfiface);
+ pfSense_interface_flags($stfiface, IFF_LINK2);
+ mwexec("/sbin/ifconfig {$stfiface} inet6 {$stflanpr} prefixlen 16");
+
+ if ($g['debug'])
+ log_error("Set IPv6 address inet6 {$stflanpr} prefixlen 16 for {$stfiface}, route {$stfbrgw}");
- log_error("Set IPv6 address inet6 {$stflanpr} prefixlen 16 for stf0, route {$stfbrgw}");
-
/* write out a default router file */
file_put_contents("{$g['tmp_path']}/{$wanif}_routerv6", "{$stfbrgw}");
file_put_contents("{$g['tmp_path']}/{$wanif}_defaultgwv6", "{$stfbrgw}");
- if (is_ipaddrv4($ip4gateway)) {
+ $ip4gateway = get_interface_gateway($interface);
+ if (is_ipaddrv4($ip4gateway))
mwexec("route change -host 192.88.99.1 {$ip4gateway}");
- }
- /* configure dependent interfaces */
- foreach($iflist as $if => $ifname) {
- if($config['interfaces'][$if]['track6-interface'] == $interface)
- interface_track6_configure($if);
- }
-
+ if (!$g['booting'])
+ link_interface_to_track6($interface, "update");
+
return 0;
}
-function interface_dhcpv6_configure($interface = "wan") {
+function interface_dhcpv6_configure($interface = "wan", $wancfg) {
global $config, $g;
- $iflist = get_configured_interface_with_descr(false, true);
- $wancfg = $config['interfaces'][$interface];
- $wanif = $wancfg['if'];
- if (empty($wancfg))
- $wancfg = array();
+ if (!is_array($wancfg))
+ return;
$wanif = get_real_interface($interface);
+ $dhcp6cconf = "";
+ $dhcp6cconf .= "interface {$wanif} {\n";
- /* Add ISC IPv6 dhclient here */
- $fd = fopen("{$g['varetc_path']}/dhcp6c_{$interface}.conf", "w");
- if (!$fd) {
+ /* for SLAAC interfaces we do fire off a dhcp6 client for just our name servers */
+ if($wancfg['ipaddrv6'] == "slaac") {
+ $dhcp6cconf .= " information-only;\n";
+ $dhcp6cconf .= " request domain-name-servers;\n";
+ $dhcp6cconf .= " request domain-name;\n";
+ $dhcp6cconf .= " script \"{$g['varetc_path']}/dhcp6c_{$interface}_script.sh\"; # we'd like some nameservers please\n";
+ $dhcp6cconf .= "};\n";
+ } else {
+
+ $dhcp6cconf .= " send ia-na 0; # request stateful address\n";
+ if(is_numeric($wancfg['dhcp6-ia-pd-len']))
+ $dhcp6cconf .= " send ia-pd 0; # request prefix delegation\n";
+ $dhcp6cconf .= "request domain-name-servers;\n";
+ $dhcp6cconf .= "request domain-name;\n";
+ $dhcp6cconf .= "script \"{$g['varetc_path']}/dhcp6c_{$interface}_script.sh\"; # we'd like some nameservers please\n";
+
+ $dhcp6cconf .= "};\n";
+ $dhcp6cconf .= "id-assoc na 0 { };\n";
+ if(is_numeric($wancfg['dhcp6-ia-pd-len'])) {
+ /* Setup the prefix delegation */
+ $dhcp6cconf .= "id-assoc pd 0 {\n";
+ $iflist = link_interface_to_track6($interface);
+ foreach ($iflist as $friendly => $ifcfg) {
+ if (is_numeric($ifcfg['track6-prefix-id'])) {
+ if ($g['debug'])
+ log_error("setting up $ifdescr - {$ifcfg['track6-prefix-id']}");
+ $realif = get_real_interface($friendly);
+ $dhcp6cconf .= " prefix-interface {$realif} {\n";
+ $dhcp6cconf .= " sla-id {$ifcfg['track6-prefix-id']};\n";
+ $dhcp6cconf .= " sla-len {$wancfg['dhcp6-ia-pd-len']};\n";
+ $dhcp6cconf .= " };\n";
+ }
+ }
+ unset($iflist, $ifcfg);
+ $dhcp6cconf .= "};\n";
+ }
+ }
+ /* wide-dhcp6c works for now. */
+ if (!@file_put_contents("{$g['varetc_path']}/dhcp6c_{$interface}.conf", $dhcp6cconf)) {
printf("Error: cannot open dhcp6c_{$interface}.conf in interface_dhcpv6_configure() for writing.\n");
+ unset($dhcp6cconf);
return 1;
}
+ unset($dhcp6cconf);
- $dhcp6cconf = "interface \"{$wanif}\" {\n";
- $dhcp6cconf .= "script \"/sbin/dhclient6-script\";\n";
- $dhcp6cconf .= "}\n";
-
- fwrite($fd, $dhcp6cconf);
- fclose($fd);
+ $dhcp6cscript = "#!/bin/sh\n";
+ $dhcp6cscript .= "# This shell script launches /etc/rc.newwanipv6 with a interface argument.\n";
+ $dhcp6cscript .= "/etc/rc.newwanipv6 {$wanif} \n";
+ /* Add wide-dhcp6c shell script here. Because we can not pass a argument to it. */
+ if (!@file_put_contents("{$g['varetc_path']}/dhcp6c_{$interface}_script.sh", $dhcp6cscript)) {
+ printf("Error: cannot open dhcp6c_{$interface}_script.sh in interface_dhcpv6_configure() for writing.\n");
+ unset($dhcp6cscript);
+ return 1;
+ }
+ unset($dhcp6cscript);
+ @chmod("{$g['varetc_path']}/dhcp6c_{$interface}_script.sh", 0755);
+
+ $rtsoldscript = "#!/bin/sh\n";
+ $rtsoldscript .= "# This shell script launches dhcp6c and configured gateways for this interface.\n";
+ $rtsoldscript .= "echo $2 > {$g['tmp_path']}/{$wanif}_routerv6\n";
+ $rtsoldscript .= "echo $2 > {$g['tmp_path']}/{$wanif}_defaultgwv6\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 .= "fi\n";
+ $rtsoldscript .= "/usr/local/sbin/dhcp6c -d -c {$g['varetc_path']}/dhcp6c_{$interface}.conf -p {$g['varrun_path']}/dhcp6c_{$wanif}.pid {$wanif}\n";
+ /* Add wide-dhcp6c shell script here. Because we can not pass a argument to it. */
+ if (!@file_put_contents("{$g['varetc_path']}/rtsold_{$wanif}_script.sh", $rtsoldscript)) {
+ printf("Error: cannot open rtsold_{$interface}_script.sh in interface_dhcpv6_configure() for writing.\n");
+ unset($rtsoldscript);
+ return 1;
+ }
+ unset($rtsoldscript);
+ @chmod("{$g['varetc_path']}/rtsold_{$wanif}_script.sh", 0755);
/* accept router advertisements for this interface */
mwexec("/sbin/sysctl -w net.inet6.ip6.accept_rtadv=1");
log_error("Accept router advertisements on interface {$wanif} ");
mwexec("/sbin/ifconfig {$wanif} inet6 accept_rtadv");
- /* run a filter configure so that the filter rules allow traffic before we launch the client */
- filter_configure_sync();
- sleep(3);
+ /* fire up rtsold for IPv6 RAs first, this backgrounds immediately. It will call dhcp6c */
+ if (isvalidpid("{$g['varrun_path']}/rtsold_{$wanif}.pid")) {
+ killbypid("{$g['varrun_path']}/rtsold_{$wanif}.pid");
+ sleep(2);
+ }
+ mwexec("/usr/sbin/rtsold -1 -p {$g['varrun_path']}/rtsold_{$wanif}.pid -O {$g['varetc_path']}/rtsold_{$wanif}_script.sh {$wanif}");
- /* dhclient -6
- * -T temprorary address
- * -S information only
- * -P Prefix
- * -N request address with temporary or prefix
- */
+ /* NOTE: will be called from rtsold invoked script
+ * link_interface_to_track6($interface, "update");
+ */
- $dhcp6c_options = "";
- if($wancfg['ipaddrv6'] == "slaac") {
- $dhcp6c_options .= "-S ";
- }
- if($wancfg['ipaddrv6'] == "dhcp6") {
- $dhcp6c_options .= "-N ";
- }
- if(is_numeric($wancfg['dhcp6-ia-pd-len'])) {
- $dhcp6c_options .= "-P ";
- }
- /* fire up dhcp6c for IPv6 first, this backgrounds immediately */
- mwexec_bg("/usr/local/sbin/dhclient -6 {$dhcp6c_options} -cf {$g['varetc_path']}/dhcp6c_{$interface}.conf -lf {$g['varetc_path']}/dhcp6c_{$interface}.leases -pf {$g['varrun_path']}/dhcp6c_{$interface}.pid {$wanif}");
- sleep(5);
return 0;
}
@@ -3365,8 +3594,8 @@ function interface_dhcp_configure($interface = "wan") {
log_error(sprintf(gettext("Invalid interface \"%s\" in interface_dhcp_configure()"), $interface));
return 0;
}
- $dhclientconf = "";
-
+ $dhclientconf = "";
+
$dhclientconf .= <<<EOD
interface "{$wanif}" {
timeout 60;
@@ -3396,11 +3625,11 @@ EOD;
/* bring wan interface up before starting dhclient */
if($wanif)
interfaces_bring_up($wanif);
- else
+ else
log_error(printf(gettext("Could not bring up %s interface in interface_dhcp_configure()"), $wanif));
/* fire up dhclient */
- mwexec("/sbin/dhclient -c {$g['varetc_path']}/dhclient_{$interface}.conf {$wanif} > {$g['tmp_path']}/{$wanif}_output > {$g['tmp_path']}/{$wanif}_error_output");
+ mwexec("/sbin/dhclient -c {$g['varetc_path']}/dhclient_{$interface}.conf {$wanif} > {$g['tmp_path']}/{$wanif}_output 2> {$g['tmp_path']}/{$wanif}_error_output");
return 0;
}
@@ -3432,11 +3661,23 @@ function interface_group_setup(&$groupname /* The parameter is an array */) {
return;
}
+function is_interface_group($if) {
+ global $config;
+
+ if (is_array($config['ifgroups']['ifgroupentry']))
+ foreach ($config['ifgroups']['ifgroupentry'] as $groupentry) {
+ if ($groupentry['ifname'] === $if)
+ return true;
+ }
+
+ return false;
+}
+
function interface_group_add_member($interface, $groupname) {
$interface = get_real_interface($interface);
mwexec("/sbin/ifconfig {$interface} group {$groupname}", true);
}
-
+
/* COMPAT Function */
function convert_friendly_interface_to_real_interface_name($interface) {
return get_real_interface($interface);
@@ -3456,47 +3697,51 @@ function get_current_wan_address($interface = "wan") {
* convert_real_interface_to_friendly_interface_name($interface): convert fxp0 -> wan, etc.
*/
function convert_real_interface_to_friendly_interface_name($interface = "wan") {
- global $config;
+ global $config;
if (stristr($interface, "_vip")) {
- foreach ($config['virtualip']['vip'] as $counter => $vip) {
- if ($vip['mode'] == "carp") {
- if ($interface == "{$vip['interface']}_vip{$vip['vhid']}")
- return $vip['interface'];
- }
- }
- }
-
- /* XXX: For speed reasons reference directly the interface array */
+ foreach ($config['virtualip']['vip'] as $counter => $vip) {
+ if ($vip['mode'] == "carp") {
+ if ($interface == "{$vip['interface']}_vip{$vip['vhid']}")
+ return $vip['interface'];
+ }
+ }
+ }
+
+ /* XXX: For speed reasons reference directly the interface array */
$ifdescrs = &$config['interfaces'];
- //$ifdescrs = get_configured_interface_list(false, true);
+ //$ifdescrs = get_configured_interface_list(false, true);
- foreach ($ifdescrs as $if => $ifname) {
- if ($config['interfaces'][$if]['if'] == $interface)
- return $if;
+ if (strstr($interface, "_stf"))
+ $interface = str_replace("_stf", "", $interface);
- if (stristr($interface, "_wlan0") && $config['interfaces'][$if]['if'] == interface_get_wireless_base($interface))
- return $if;
+ foreach ($ifdescrs as $if => $ifname) {
+ if ($if == $interface || $config['interfaces'][$if]['if'] == $interface)
+ return $if;
+
+ if (stristr($interface, "_wlan0") && $config['interfaces'][$if]['if'] == interface_get_wireless_base($interface))
+ return $if;
// XXX: This case doesn't work anymore (segfaults - recursion?) - should be replaced with something else or just removed.
// Not to be replaced with get_real_interface - causes slow interface listings here because of recursion!
/*
- $int = get_parent_interface($if);
- if ($int[0] == $interface)
- return $ifname;
+ $int = get_parent_interface($if);
+ if ($int[0] == $interface)
+ return $ifname;
*/
- }
- return NULL;
+ }
+
+ return NULL;
}
/* attempt to resolve interface to friendly descr */
function convert_friendly_interface_to_friendly_descr($interface) {
- global $config;
+ global $config;
- switch ($interface) {
- case "l2tp":
- $ifdesc = "L2TP";
- break;
+ switch ($interface) {
+ case "l2tp":
+ $ifdesc = "L2TP";
+ break;
case "pptp":
$ifdesc = "PPTP";
break;
@@ -3510,12 +3755,12 @@ function convert_friendly_interface_to_friendly_descr($interface) {
case "ipsec":
$ifdesc = "IPsec";
break;
- default:
- if (isset($config['interfaces'][$interface])) {
- if (empty($config['interfaces'][$interface]['descr']))
- $ifdesc = strtoupper($interface);
- else
- $ifdesc = strtoupper($config['interfaces'][$interface]['descr']);
+ default:
+ if (isset($config['interfaces'][$interface])) {
+ if (empty($config['interfaces'][$interface]['descr']))
+ $ifdesc = strtoupper($interface);
+ else
+ $ifdesc = strtoupper($config['interfaces'][$interface]['descr']);
break;
} else if (stristr($interface, "_vip")) {
if (is_array($config['virtualip']['vip'])) {
@@ -3525,8 +3770,8 @@ function convert_friendly_interface_to_friendly_descr($interface) {
return "{$vip['subnet']} - {$vip['descr']}";
}
}
- }
- } else {
+ }
+ } else {
/* if list */
$ifdescrs = get_configured_interface_with_descr(false, true);
foreach ($ifdescrs as $if => $ifname) {
@@ -3534,23 +3779,23 @@ function convert_friendly_interface_to_friendly_descr($interface) {
return $ifname;
}
}
- break;
- }
+ break;
+ }
- return $ifdesc;
+ return $ifdesc;
}
function convert_real_interface_to_friendly_descr($interface) {
- global $config;
+ global $config;
- $ifdesc = convert_real_interface_to_friendly_interface_name("{$interface}");
+ $ifdesc = convert_real_interface_to_friendly_interface_name("{$interface}");
- if ($ifdesc) {
- $iflist = get_configured_interface_with_descr(false, true);
- return $iflist[$ifdesc];
- }
+ if ($ifdesc) {
+ $iflist = get_configured_interface_with_descr(false, true);
+ return $iflist[$ifdesc];
+ }
- return $interface;
+ return $interface;
}
/*
@@ -3573,7 +3818,7 @@ function get_parent_interface($interface) {
// If we got a real interface, find it's friendly assigned name
$interface = convert_real_interface_to_friendly_interface_name($interface);
-
+
if (!empty($interface) && isset($config['interfaces'][$interface])) {
$ifcfg = $config['interfaces'][$interface];
switch ($ifcfg['ipaddr']) {
@@ -3584,9 +3829,9 @@ function get_parent_interface($interface) {
if (empty($parents))
if (is_array($config['ppps']['ppp']))
foreach ($config['ppps']['ppp'] as $pppidx => $ppp) {
- if ($ppp_if == $ppp['if']) {
+ if ($ifcfg['if'] == $ppp['if']) {
$ports = explode(',', $ppp['ports']);
- foreach ($ports as $pid => $parent_if)
+ foreach ($ports as $pid => $parent_if)
$parents[$pid] = get_real_interface($parent_if);
break;
}
@@ -3596,8 +3841,8 @@ function get_parent_interface($interface) {
case "static":
default:
// Handle _vlans
- if (strstr($realif,"_vlan"))
- if (is_array($config['vlans']['vlan']))
+ if (stristr($realif,"_vlan"))
+ if (is_array($config['vlans']['vlan']))
foreach ($config['vlans']['vlan'] as $vlanidx => $vlan)
if ($ifcfg['if'] == $vlan['vlanif']){
$parents[0] = $vlan['if'];
@@ -3606,10 +3851,10 @@ function get_parent_interface($interface) {
break;
}
}
-
+
if (empty($parents))
$parents[0] = $realif;
-
+
return $parents;
}
@@ -3637,8 +3882,8 @@ function interface_get_wireless_clone($wlif) {
}
}
-function get_real_interface($interface = "wan") {
- global $config;
+function get_real_interface($interface = "wan", $family = "all") {
+ global $config, $g;
$wanif = NULL;
@@ -3677,35 +3922,32 @@ function get_real_interface($interface = "wan") {
$cfg = &$config['interfaces'][$interface];
- // Wireless cloned NIC support (FreeBSD 8+)
- // interface name format: $parentnic_wlanparentnic#
- // example: ath0_wlan0
- if (is_interface_wireless($cfg['if'])) {
- $wanif = interface_get_wireless_clone($cfg['if']);
- break;
- }
- /*
- if (empty($cfg['if'])) {
- $wancfg = $cfg['if'];
- break;
- }
- */
-
- switch ($cfg['ipaddr']) {
- case "pppoe":
- case "pptp":
- case "l2tp":
- case "ppp":
- $wanif = $cfg['if'];
+ if ($family == "inet6") {
+ switch ($cfg['ipaddrv6']) {
+ case "6rd":
+ case "6to4":
+ $wanif = "{$interface}_stf";
break;
default:
- $wanif = $cfg['if'];
+ if( is_array($cfg['wireless']) || preg_match($g['wireless_regex'], $cfg['if']))
+ $wanif = interface_get_wireless_clone($cfg['if']);
+ else
+ $wanif = $cfg['if'];
break;
+ }
+ } else {
+ // Wireless cloned NIC support (FreeBSD 8+)
+ // interface name format: $parentnic_wlanparentnic#
+ // example: ath0_wlan0
+ if( is_array($cfg['wireless']) || preg_match($g['wireless_regex'], $cfg['if']))
+ $wanif = interface_get_wireless_clone($cfg['if']);
+ else
+ $wanif = $cfg['if'];
}
break;
}
- return $wanif;
+ return $wanif;
}
/* Guess the physical interface by providing a IP address */
@@ -3740,7 +3982,7 @@ function guess_interface_from_ip($ipaddress) {
}
$ret = exec_command("/sbin/route -n get {$ipaddress} | /usr/bin/awk '/interface/ { print \$2; };'");
if(empty($ret)) {
- return false;
+ return false;
}
return $ret;
}
@@ -3749,25 +3991,33 @@ function guess_interface_from_ip($ipaddress) {
* find_ip_interface($ip): return the interface where an ip is defined
* (or if $bits is specified, where an IP within the subnet is defined)
*/
-function find_ip_interface($ip, $bits = null)
-{
+function find_ip_interface($ip, $bits = null) {
+ if (!is_ipaddr($ip))
+ return false;
+
+ $isv6ip = is_ipaddrv6($ip);
+
/* if list */
$ifdescrs = get_configured_interface_list();
-
+
foreach ($ifdescrs as $ifdescr => $ifname) {
- if ($bits === null) {
- if ($ip == get_interface_ip($ifname)) {
+ $ifip = ($isv6ip) ? get_interface_ipv6($ifname) : get_interface_ip($ifname);
+ if (is_null($ifip))
+ continue;
+ if (is_null($bits)) {
+ if ($ip == $ifip) {
$int = get_real_interface($ifname);
return $int;
}
}
else {
- if (ip_in_subnet(get_interface_ip($ifname), $ip . "/" . $bits)) {
+ if (ip_in_subnet($ifip, $ip . "/" . $bits)) {
$int = get_real_interface($ifname);
return $int;
}
}
}
+
return false;
}
@@ -3777,18 +4027,27 @@ function find_ip_interface($ip, $bits = null)
*/
function find_virtual_ip_alias($ip, $bits = null) {
global $config;
+
if (!is_array($config['virtualip']['vip'])) {
return false;
}
+ if (!is_ipaddr($ip))
+ return false;
+
+ $isv6ip = is_ipaddrv6($ip);
+
foreach ($config['virtualip']['vip'] as $vip) {
if ($vip['mode'] === "ipalias") {
- if ($bits === null) {
+ if (is_ipaddrv6($vip['subnet']) != $isv6ip)
+ continue;
+ if (is_null($bits)) {
if (ip_in_subnet($ip, $vip['subnet'] . "/" . $vip['subnet_bits'])) {
return $vip;
}
}
else {
- if (check_subnets_overlap($ip, $bits, $vip['subnet'], $vip['subnet_bits'])) {
+ if (($isv6ip && check_subnetsv6_overlap($ip, $bits, $vip['subnet'], $vip['subnet_bits']))
+ || (!$isv6ip && check_subnets_overlap($ip, $bits, $vip['subnet'], $vip['subnet_bits']))) {
return $vip;
}
}
@@ -3886,30 +4145,52 @@ function link_carp_interface_to_parent($interface) {
* $carp_ints
******/
function link_ip_to_carp_interface($ip) {
- global $config;
+ global $config;
- if (!is_ipaddr($ip))
- return;
+ if (!is_ipaddr($ip))
+ return;
- $carp_ints = "";
- if (is_array($config['virtualip']['vip'])) {
+ $carp_ints = "";
+ if (is_array($config['virtualip']['vip'])) {
$first = 0;
$carp_int = array();
- foreach ($config['virtualip']['vip'] as $vip) {
- if ($vip['mode'] == "carp") {
- $carp_ip = $vip['subnet'];
- $carp_sn = $vip['subnet_bits'];
- $carp_nw = gen_subnet($carp_ip, $carp_sn);
- if (ip_in_subnet($ip, "{$carp_nw}/{$carp_sn}")) {
+ foreach ($config['virtualip']['vip'] as $vip) {
+ if ($vip['mode'] == "carp") {
+ $carp_ip = $vip['subnet'];
+ $carp_sn = $vip['subnet_bits'];
+ $carp_nw = gen_subnet($carp_ip, $carp_sn);
+ if (ip_in_subnet($ip, "{$carp_nw}/{$carp_sn}")) {
$carp_int[] = "{$vip['interface']}_vip{$vip['vhid']}";
}
- }
- }
+ }
+ }
if (!empty($carp_int))
$carp_ints = implode(" ", array_unique($carp_int));
- }
+ }
- return $carp_ints;
+ return $carp_ints;
+}
+
+function link_interface_to_track6($int, $action = "") {
+ global $config;
+
+ if (empty($int))
+ return;
+
+ if (is_array($config['interfaces'])) {
+ $list = array();
+ foreach ($config['interfaces'] as $ifname => $ifcfg) {
+ if (!isset($ifcfg['enable']))
+ continue;
+ if (!empty($ifcfg['ipaddrv6']) && $ifcfg['track6-interface'] == $int) {
+ if ($action == "update")
+ interface_track6_configure($ifname, $ifcfg);
+ else if ($action == "")
+ $list[$ifname] = $ifcfg;
+ }
+ }
+ return $list;
+ }
}
function link_interface_to_vlans($int, $action = "") {
@@ -3919,29 +4200,34 @@ function link_interface_to_vlans($int, $action = "") {
return;
if (is_array($config['vlans']['vlan'])) {
- foreach ($config['vlans']['vlan'] as $vlan) {
+ $ifaces = array();
+ foreach ($config['vlans']['vlan'] as $vlan) {
if ($int == $vlan['if']) {
if ($action == "update") {
interfaces_bring_up($int);
} else if ($action == "")
- return $vlan;
+ $ifaces[$vlan['tag']] = $vlan;
}
}
+ if (!empty($ifaces))
+ return $ifaces;
}
}
function link_interface_to_vips($int, $action = "") {
- global $config;
+ global $config;
- if (is_array($config['virtualip']['vip'])) {
+ if (is_array($config['virtualip']['vip'])) {
+ $result = array();
foreach ($config['virtualip']['vip'] as $vip) {
if ($int == $vip['interface']) {
if ($action == "update")
interfaces_vips_configure($int);
else
- return $vip;
+ $result[] = $vip;
}
}
+ return $result;
}
}
@@ -3954,23 +4240,23 @@ function link_interface_to_vips($int, $action = "") {
* bridge[0-99]
******/
function link_interface_to_bridge($int) {
- global $config;
+ global $config;
- if (is_array($config['bridges']['bridged'])) {
- foreach ($config['bridges']['bridged'] as $bridge) {
+ if (is_array($config['bridges']['bridged'])) {
+ foreach ($config['bridges']['bridged'] as $bridge) {
if (in_array($int, explode(',', $bridge['members'])))
- return "{$bridge['bridgeif']}";
+ return "{$bridge['bridgeif']}";
}
}
}
function link_interface_to_group($int) {
- global $config;
+ global $config;
$result = array();
- if (is_array($config['ifgroups']['ifgroupentry'])) {
- foreach ($config['ifgroups']['ifgroupentry'] as $group) {
+ if (is_array($config['ifgroups']['ifgroupentry'])) {
+ foreach ($config['ifgroups']['ifgroupentry'] as $group) {
if (in_array($int, explode(" ", $group['members'])))
$result[$group['ifname']] = $int;
}
@@ -3980,13 +4266,13 @@ function link_interface_to_group($int) {
}
function link_interface_to_gre($interface) {
- global $config;
+ global $config;
$result = array();
- if (is_array($config['gres']['gre'])) {
- foreach ($config['gres']['gre'] as $gre)
- if($gre['if'] == $interface)
+ if (is_array($config['gres']['gre'])) {
+ foreach ($config['gres']['gre'] as $gre)
+ if($gre['if'] == $interface)
$result[] = $gre;
}
@@ -3994,14 +4280,14 @@ function link_interface_to_gre($interface) {
}
function link_interface_to_gif($interface) {
- global $config;
+ global $config;
$result = array();
- if (is_array($config['gifs']['gif'])) {
- foreach ($config['gifs']['gif'] as $gif)
- if($gif['if'] == $interface)
- $result[] = $gif;
+ if (is_array($config['gifs']['gif'])) {
+ foreach ($config['gifs']['gif'] as $gif)
+ if($gif['if'] == $interface)
+ $result[] = $gif;
}
return $result;
@@ -4010,13 +4296,12 @@ function link_interface_to_gif($interface) {
/*
* find_interface_ip($interface): return the interface ip (first found)
*/
-function find_interface_ip($interface, $flush = false)
-{
+function find_interface_ip($interface, $flush = false) {
global $interface_ip_arr_cache;
global $interface_sn_arr_cache;
$interface = str_replace("\n", "", $interface);
-
+
if (!does_interface_exist($interface))
return;
@@ -4033,22 +4318,21 @@ function find_interface_ip($interface, $flush = false)
/*
* find_interface_ipv6($interface): return the interface ip (first found)
*/
-function find_interface_ipv6($interface, $flush = false)
-{
+function find_interface_ipv6($interface, $flush = false) {
global $interface_ipv6_arr_cache;
global $interface_snv6_arr_cache;
global $config;
-
+
$interface = trim($interface);
$interface = get_real_interface($interface);
-
+
if (!does_interface_exist($interface))
return;
/* Setup IP cache */
if (!isset($interface_ipv6_arr_cache[$interface]) or $flush) {
- $ifinfo = pfSense_get_interface_addresses($interface);
// FIXME: Add IPv6 support to the pfSense module
+ $ifinfo = array();
exec("/sbin/ifconfig {$interface} inet6", $output);
foreach($output as $line) {
if(preg_match("/inet6/", $line)) {
@@ -4061,6 +4345,7 @@ function find_interface_ipv6($interface, $flush = false)
} else {
$ifinfo['subnetbitsv6'] = $parts[3];
}
+ break;
}
}
}
@@ -4074,13 +4359,12 @@ function find_interface_ipv6($interface, $flush = false)
/*
* find_interface_ipv6_ll($interface): return the interface ipv6 link local (first found)
*/
-function find_interface_ipv6_ll($interface, $flush = false)
-{
+function find_interface_ipv6_ll($interface, $flush = false) {
global $interface_llv6_arr_cache;
global $config;
-
+
$interface = str_replace("\n", "", $interface);
-
+
if (!does_interface_exist($interface))
return;
@@ -4103,8 +4387,7 @@ function find_interface_ipv6_ll($interface, $flush = false)
return $interface_llv6_arr_cache[$interface];
}
-function find_interface_subnet($interface, $flush = false)
-{
+function find_interface_subnet($interface, $flush = false) {
global $interface_sn_arr_cache;
global $interface_ip_arr_cache;
@@ -4116,13 +4399,12 @@ function find_interface_subnet($interface, $flush = false)
$ifinfo = pfSense_get_interface_addresses($interface);
$interface_ip_arr_cache[$interface] = $ifinfo['ipaddr'];
$interface_sn_arr_cache[$interface] = $ifinfo['subnetbits'];
- }
+ }
return $interface_sn_arr_cache[$interface];
}
-function find_interface_subnetv6($interface, $flush = false)
-{
+function find_interface_subnetv6($interface, $flush = false) {
global $interface_snv6_arr_cache;
global $interface_ipv6_arr_cache;
@@ -4130,11 +4412,14 @@ function find_interface_subnetv6($interface, $flush = false)
if (does_interface_exist($interface) == false)
return;
+ $foundv6 = false;
if (!isset($interface_snv6_arr_cache[$interface]) or $flush) {
- $ifinfo = pfSense_get_interface_addresses($interface);
+ $ifinfo = array();
// FIXME: Add IPv6 support to the pfSense module
+ unset($output);
exec("/sbin/ifconfig {$interface} inet6", $output);
foreach($output as $line) {
+ $line = trim($line);
if(preg_match("/inet6/", $line)) {
$parts = explode(" ", $line);
if(! preg_match("/fe80::/", $parts[1])) {
@@ -4145,12 +4430,17 @@ function find_interface_subnetv6($interface, $flush = false)
} else {
$ifinfo['subnetbitsv6'] = $parts[3];
}
+ $foundv6 = true;
+ break;
}
}
}
- $interface_ipv6_arr_cache[$interface] = $ifinfo['ipaddrv6'];
- $interface_snv6_arr_cache[$interface] = $ifinfo['subnetbitsv6'];
- }
+ if ($foundv6 === true) {
+ $interface_ipv6_arr_cache[$interface] = $ifinfo['ipaddrv6'];
+ $interface_snv6_arr_cache[$interface] = $ifinfo['subnetbitsv6'];
+ } else
+ unset($interface_ipv6_arr_cache[$interface], $interface_snv6_arr_cache[$interface]);
+ }
return $interface_snv6_arr_cache[$interface];
}
@@ -4161,23 +4451,22 @@ function ip_in_interface_alias_subnet($interface, $ipalias) {
if (empty($interface) || !is_ipaddr($ipalias))
return false;
if (is_array($config['virtualip']['vip'])) {
- foreach ($config['virtualip']['vip'] as $vip) {
- switch ($vip['mode']) {
- case "ipalias":
- if ($vip['interface'] <> $interface)
- break;
+ foreach ($config['virtualip']['vip'] as $vip) {
+ switch ($vip['mode']) {
+ case "ipalias":
+ if ($vip['interface'] <> $interface)
+ break;
if (ip_in_subnet($ipalias, gen_subnet($vip['subnet'], $vip['subnet_bits']) . "/" . $vip['subnet_bits']))
return true;
- break;
- }
- }
+ break;
+ }
+ }
}
return false;
}
-function get_interface_ip($interface = "wan")
-{
+function get_interface_ip($interface = "wan") {
$realif = get_failover_interface($interface);
if (!$realif) {
if (preg_match("/^carp/i", $interface))
@@ -4195,34 +4484,25 @@ function get_interface_ip($interface = "wan")
return null;
}
-function get_interface_ipv6($interface = "wan")
-{
+function get_interface_ipv6($interface = "wan", $flush = false) {
global $config;
- $realif = get_failover_interface($interface);
- switch($config['interfaces'][$interface]['ipaddrv6']) {
- case "6rd":
- case "6to4":
- $realif = "stf0";
- break;
- }
+
+ $realif = get_failover_interface($interface, "inet6");
if (!$realif) {
- if (preg_match("/^carp/i", $interface))
- $realif = $interface;
- else if (preg_match("/^[a-z0-9]+_vip/i", $interface))
+ if (preg_match("/^[a-z0-9]+_vip/i", $interface))
$realif = $interface;
else
return null;
}
- $curip = find_interface_ipv6($realif);
+ $curip = find_interface_ipv6($realif, $flush);
if ($curip && is_ipaddrv6($curip) && ($curip != "::"))
return $curip;
else
return null;
}
-function get_interface_linklocal($interface = "wan")
-{
+function get_interface_linklocal($interface = "wan") {
$realif = get_failover_interface($interface);
if (!$realif) {
if (preg_match("/^carp/i", $interface))
@@ -4240,17 +4520,16 @@ function get_interface_linklocal($interface = "wan")
return null;
}
-function get_interface_subnet($interface = "wan")
-{
+function get_interface_subnet($interface = "wan") {
$realif = get_real_interface($interface);
if (!$realif) {
- if (preg_match("/^carp/i", $interface))
- $realif = $interface;
- else if (preg_match("/^[a-z0-9]+_vip/i", $interface))
- $realif = $interface;
- else
- return null;
- }
+ if (preg_match("/^carp/i", $interface))
+ $realif = $interface;
+ else if (preg_match("/^[a-z0-9]+_vip/i", $interface))
+ $realif = $interface;
+ else
+ return null;
+ }
$cursn = find_interface_subnet($realif);
if (!empty($cursn))
@@ -4259,17 +4538,16 @@ function get_interface_subnet($interface = "wan")
return null;
}
-function get_interface_subnetv6($interface = "wan")
-{
- $realif = get_real_interface($interface);
+function get_interface_subnetv6($interface = "wan") {
+ global $config;
+
+ $realif = get_real_interface($interface, "inet6");
if (!$realif) {
- if (preg_match("/^carp/i", $interface))
- $realif = $interface;
- else if (preg_match("/^[a-z0-9]+_vip/i", $interface))
- $realif = $interface;
- else
- return null;
- }
+ if (preg_match("/^[a-z0-9]+_vip/i", $interface))
+ $realif = $interface;
+ else
+ return null;
+ }
$cursn = find_interface_subnetv6($realif);
if (!empty($cursn))
@@ -4296,7 +4574,7 @@ function get_interfaces_with_gateway() {
$ints[$ifdescr] = $ifdescr;
break;
default:
- if (substr($ifname['if'], 0, 5) == "ovpnc" ||
+ if (substr($ifname['if'], 0, 4) == "ovpn" ||
!empty($ifname['gateway']))
$ints[$ifdescr] = $ifdescr;
break;
@@ -4320,7 +4598,7 @@ function interface_has_gateway($friendly) {
return true;
break;
default:
- if (substr($ifname['if'], 0, 5) == "ovpnc")
+ if (substr($ifname['if'], 0, 4) == "ovpn")
return true;
if (!empty($ifname['gateway']))
return true;
@@ -4340,16 +4618,12 @@ function interface_has_gatewayv6($friendly) {
switch ($ifname['ipaddrv6']) {
case "slaac":
case "dhcp6":
- return true;
- break;
case "6to4":
- return true;
- break;
case "6rd":
return true;
break;
default:
- if (substr($ifname['if'], 0, 5) == "ovpnc")
+ if (substr($ifname['if'], 0, 4) == "ovpn")
return true;
if (!empty($ifname['gatewayv6']))
return true;
@@ -4370,10 +4644,10 @@ function interface_has_gatewayv6($friendly) {
******/
function is_altq_capable($int) {
- /* Per:
- * http://www.freebsd.org/cgi/man.cgi?query=altq&manpath=FreeBSD+7.2-current&format=html
- * Only the following drivers have ALTQ support
- */
+ /* Per:
+ * http://www.freebsd.org/cgi/man.cgi?query=altq&manpath=FreeBSD+7.2-current&format=html
+ * Only the following drivers have ALTQ support
+ */
$capable = array("age", "alc", "ale", "an", "ath", "aue", "awi", "bce",
"bfe", "bge", "bridge", "cas", "dc", "de", "ed", "em", "ep", "fxp", "gem",
"hme", "igb", "ipw", "iwi", "jme", "le", "lem", "msk", "mxge", "my", "nfe",
@@ -4382,18 +4656,18 @@ function is_altq_capable($int) {
"ndis", "tun", "ovpns", "ovpnc", "vlan", "pppoe", "pptp", "ng",
"l2tp", "ppp", "vtnet");
- $int_family = preg_split("/[0-9]+/", $int);
+ $int_family = remove_ifindex($int);
- if (in_array($int_family[0], $capable))
- return true;
+ if (in_array($int_family, $capable))
+ return true;
else if (stristr($int, "l2tp")) /* VLANs are name $parent_$vlan now */
return true;
- else if (stristr($int, "vlan")) /* VLANs are name $parent_$vlan now */
+ else if (stristr($int, "_vlan")) /* VLANs are name $parent_$vlan now */
return true;
else if (stristr($int, "_wlan")) /* WLANs are name $parent_$wlan now */
return true;
- else
- return false;
+ else
+ return false;
}
/****f* interfaces/is_interface_wireless
@@ -4403,18 +4677,18 @@ function is_altq_capable($int) {
* $tmp - Returns if an interface is wireless
******/
function is_interface_wireless($interface) {
- global $config, $g;
-
- $friendly = convert_real_interface_to_friendly_interface_name($interface);
- if(!isset($config['interfaces'][$friendly]['wireless'])) {
- if (preg_match($g['wireless_regex'], $interface)) {
- if (isset($config['interfaces'][$friendly]))
- $config['interfaces'][$friendly]['wireless'] = array();
- return true;
- }
- return false;
- } else
- return true;
+ global $config, $g;
+
+ $friendly = convert_real_interface_to_friendly_interface_name($interface);
+ if(!isset($config['interfaces'][$friendly]['wireless'])) {
+ if (preg_match($g['wireless_regex'], $interface)) {
+ if (isset($config['interfaces'][$friendly]))
+ $config['interfaces'][$friendly]['wireless'] = array();
+ return true;
+ }
+ return false;
+ } else
+ return true;
}
function get_wireless_modes($interface) {
@@ -4433,8 +4707,7 @@ function get_wireless_modes($interface) {
$interface_channel_count = count($interface_channels);
$c = 0;
- while ($c < $interface_channel_count)
- {
+ while ($c < $interface_channel_count) {
$channel_line = explode(",", $interface_channels["$c"]);
$wireless_mode = trim($channel_line[0]);
$wireless_channel = trim($channel_line[1]);
@@ -4492,8 +4765,8 @@ function get_wireless_channel_info($interface) {
* $tmp - Returns the mtu of an interface
******/
function get_interface_mtu($interface) {
- $mtu = pfSense_get_interface_addresses($interface);
- return $mtu['mtu'];
+ $mtu = pfSense_get_interface_addresses($interface);
+ return $mtu['mtu'];
}
function get_interface_mac($interface) {
@@ -4511,10 +4784,10 @@ function get_interface_mac($interface) {
* $mac - a random mac address
******/
function generate_random_mac_address() {
- $mac = "02";
- for($x=0; $x<5; $x++)
- $mac .= ":" . dechex(rand(16, 255));
- return $mac;
+ $mac = "02";
+ for($x=0; $x<5; $x++)
+ $mac .= ":" . dechex(rand(16, 255));
+ return $mac;
}
/****f* interfaces/is_jumbo_capable
@@ -4526,16 +4799,11 @@ function generate_random_mac_address() {
* boolean - true or false
******/
function is_jumbo_capable($iface) {
-
-
$iface = trim($iface);
$capable = pfSense_get_interface_addresses($iface);
- if (isset($capable['caps']['vlanmtu']))
- return true;
-
-
-
+ if (isset($capable['caps']['vlanmtu']))
+ return true;
return false;
}
@@ -4601,7 +4869,7 @@ function interfaces_staticarp_configure($if) {
$ifcfg = $config['interfaces'][$if];
- if (empty($if) || empty($ifcfg['if']))
+ if (empty($if) || empty($ifcfg['if']) || !isset($ifcfg['enable']))
return 0;
/* Enable staticarp, if enabled */
@@ -4619,16 +4887,23 @@ function interfaces_staticarp_configure($if) {
} else {
mwexec("/sbin/ifconfig " . escapeshellarg($ifcfg['if']) . " -staticarp " );
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) {
+ if (isset($arpent['arp_table_static_entry'])) {
+ mwexec("/usr/sbin/arp -s " . escapeshellarg($arpent['ipaddr']) . " " . escapeshellarg($arpent['mac']));
+ }
+ }
+ }
}
return 0;
}
-function get_failover_interface($interface) {
+function get_failover_interface($interface, $family = "all") {
global $config;
/* shortcut to get_real_interface if we find it in the config */
if(is_array($config['interfaces'][$interface])) {
- $wanif = get_real_interface($interface);
+ $wanif = get_real_interface($interface, $family);
return $wanif;
}
@@ -4640,12 +4915,16 @@ function get_failover_interface($interface) {
$wanif = $a_groups[$interface][0]['vip'];
else
$wanif = $a_groups[$interface][0]['int'];
-
+
return $wanif;
}
/* fall through to get_real_interface */
- $wanif = get_real_interface($interface);
+ $wanif = get_real_interface($interface, $family);
return $wanif;
}
+function remove_ifindex($ifname) {
+ return preg_replace("/[0-9]+$/", "", $ifname);
+}
+
?>
diff --git a/etc/inc/ipsec.inc b/etc/inc/ipsec.inc
index 52037ea..8b8f1b9 100644
--- a/etc/inc/ipsec.inc
+++ b/etc/inc/ipsec.inc
@@ -151,10 +151,11 @@ function ipsec_get_phase1_src(& $ph1ent) {
if ($ph1ent['interface']) {
if (!is_ipaddr($ph1ent['interface'])) {
- $if = get_failover_interface($ph1ent['interface']);
- if($ph1ent['protocol'] == "inet6") {
+ if ($ph1ent['protocol'] == "inet6") {
+ $if = get_failover_interface($ph1ent['interface'], "inet6");
$interfaceip = get_interface_ipv6($if);
} else {
+ $if = get_failover_interface($ph1ent['interface']);
$interfaceip = get_interface_ip($if);
}
} else {
@@ -162,11 +163,10 @@ function ipsec_get_phase1_src(& $ph1ent) {
}
} else {
$if = "wan";
- if($ph1ent['protocol'] == "inet6") {
+ if ($ph1ent['protocol'] == "inet6")
$interfaceip = get_interface_ipv6($if);
- } else {
+ else
$interfaceip = get_interface_ip($if);
- }
}
return $interfaceip;
@@ -177,6 +177,7 @@ function ipsec_get_phase1_src(& $ph1ent) {
*/
function ipsec_get_phase1_dst(& $ph1ent) {
global $g;
+
if (empty($ph1ent['remote-gateway']))
return false;
$rg = $ph1ent['remote-gateway'];
@@ -193,38 +194,42 @@ function ipsec_get_phase1_dst(& $ph1ent) {
/*
* Return phase2 idinfo in cidr format
*/
-function ipsec_idinfo_to_cidr(& $idinfo,$addrbits = false) {
+function ipsec_idinfo_to_cidr(& $idinfo, $addrbits = false, $mode = "") {
global $config;
- switch ($idinfo['type'])
- {
+ switch ($idinfo['type']) {
case "address":
if ($addrbits) {
- if($idinfo['mode'] == "tunnel6") {
+ if ($mode == "tunnel6")
return $idinfo['address']."/128";
- } else {
+ else
return $idinfo['address']."/32";
- }
- } else {
+ } else
return $idinfo['address'];
- }
+ break; /* NOTREACHED */
case "network":
- return $idinfo['address']."/".$idinfo['netbits'];
+ return "{$idinfo['address']}/{$idinfo['netbits']}";
+ break; /* NOTREACHED */
case "none":
case "mobile":
return "0.0.0.0/0";
+ break; /* NOTREACHED */
default:
- if($idinfo['mode'] == "tunnel6") {
+ if (empty($mode) && !empty($idinfo['mode']))
+ $mode = $idinfo['mode'];
+
+ if ($mode == "tunnel6") {
$address = get_interface_ipv6($idinfo['type']);
$netbits = get_interface_subnetv6($idinfo['type']);
$address = gen_subnetv6($address,$netbits);
- return $address."/".$netbits;
+ return "{$address}/{$netbits}";
} else {
$address = get_interface_ip($idinfo['type']);
$netbits = get_interface_subnet($idinfo['type']);
$address = gen_subnet($address,$netbits);
- return $address."/".$netbits;
+ return "{$address}/{$netbits}";
}
+ break; /* NOTREACHED */
}
}
@@ -234,25 +239,25 @@ function ipsec_idinfo_to_cidr(& $idinfo,$addrbits = false) {
function ipsec_idinfo_to_subnet(& $idinfo,$addrbits = false) {
global $config;
- switch ($idinfo['type'])
- {
+ switch ($idinfo['type']) {
case "address":
if ($addrbits) {
- if($idinfo['mode'] == "tunnel6") {
+ if ($idinfo['mode'] == "tunnel6")
return $idinfo['address']."/128";
- } else {
+ else
return $idinfo['address']."/255.255.255.255";
- }
- } else {
+ } else
return $idinfo['address'];
- }
+ break; /* NOTREACHED */
case "none":
case "network":
return $idinfo['address']."/".gen_subnet_mask($idinfo['netbits']);
+ break; /* NOTREACHED */
case "mobile":
return "0.0.0.0/0";
+ break; /* NOTREACHED */
default:
- if($idinfo['mode'] == "tunnel6") {
+ if ($idinfo['mode'] == "tunnel6") {
$address = get_interface_ipv6($idinfo['type']);
$netbits = get_interface_subnetv6($idinfo['type']);
$address = gen_subnetv6($address,$netbits);
@@ -263,6 +268,7 @@ function ipsec_idinfo_to_subnet(& $idinfo,$addrbits = false) {
$address = gen_subnet($address,$netbits);
return $address."/".$netbits;
}
+ break; /* NOTREACHED */
}
}
@@ -270,40 +276,51 @@ function ipsec_idinfo_to_subnet(& $idinfo,$addrbits = false) {
* Return phase2 idinfo in text format
*/
function ipsec_idinfo_to_text(& $idinfo) {
+ global $config;
- switch ($idinfo['type'])
- {
+ switch ($idinfo['type']) {
case "address":
- return $idinfo['address'];
+ return $idinfo['address'];
+ break; /* NOTREACHED */
case "network":
- return $idinfo['address']."/".$idinfo['netbits'];
+ return $idinfo['address']."/".$idinfo['netbits'];
+ break; /* NOTREACHED */
case "mobile":
return gettext("Mobile Client");
+ break; /* NOTREACHED */
case "none":
return gettext("None");
+ break; /* NOTREACHED */
default:
- return strtoupper($idinfo['type']);
- }
+ if (!empty($config['interfaces'][$idinfo['type']]))
+ return convert_friendly_interface_to_friendly_descr($idinfo['type']);
+ else
+ return strtoupper($idinfo['type']);
+ break; /* NOTREACHED */
+ }
}
/*
* Return phase1 association for phase2
*/
-function ipsec_lookup_phase1(& $ph2ent,& $ph1ent)
-{
- global $config;
- $a_phase1 = $config['ipsec']['phase1'];
-
- if (is_array($a_phase1) && count($a_phase1)) {
- foreach ($a_phase1 as $ph1tmp) {
- if ($ph1tmp['ikeid'] == $ph2ent['ikeid']) {
- $ph1ent = $ph1tmp;
- return $ph1ent;
- }
- }
- }
-
- return false;
+function ipsec_lookup_phase1(& $ph2ent,& $ph1ent) {
+ global $config;
+
+ if (!is_array($config['ipsec']))
+ return;
+ if (!is_array($config['ipsec']['phase1']))
+ return;
+ if (empty($config['ipsec']['phase1']))
+ return;
+
+ foreach ($config['ipsec']['phase1'] as $ph1tmp) {
+ if ($ph1tmp['ikeid'] == $ph2ent['ikeid']) {
+ $ph1ent = $ph1tmp;
+ return $ph1ent;
+ }
+ }
+
+ return false;
}
/*
@@ -314,7 +331,7 @@ function ipsec_phase1_status(& $ph1ent) {
$loc_ip = get_ipsec_tunnel_src($ph1ent);
$rmt_ip = $ph1ent['remote-gateway'];
- if(ipsec_lookup_ipsakmp_sa($loc_ip,$rmt_ip))
+ if (ipsec_lookup_ipsakmp_sa($loc_ip,$rmt_ip))
return true;
return false;
@@ -328,16 +345,16 @@ function ipsec_phase2_status(& $spd,& $sad,& $ph1ent,& $ph2ent) {
$loc_ip = ipsec_get_phase1_src($ph1ent);
$rmt_ip = ipsec_get_phase1_dst($ph1ent);
- $loc_id = ipsec_idinfo_to_cidr($ph2ent['localid'],true);
+ $loc_id = ipsec_idinfo_to_cidr($ph2ent['localid'],true,$ph2ent['mode']);
if (!empty($ph2ent['natlocalid']))
- $natloc_id = ipsec_idinfo_to_cidr($ph2ent['natlocalid'],true);
- $rmt_id = ipsec_idinfo_to_cidr($ph2ent['remoteid'],true);
+ $natloc_id = ipsec_idinfo_to_cidr($ph2ent['natlocalid'],true,$ph2ent['mode']);
+ $rmt_id = ipsec_idinfo_to_cidr($ph2ent['remoteid'],true,$ph2ent['mode']);
/* check for established SA in both directions */
if( ipsec_lookup_ipsec_sa($spd,$sad,"out",$loc_ip,$rmt_ip,$loc_id,$rmt_id)) {
if (empty($ph2ent['natlocalid']) && ipsec_lookup_ipsec_sa($spd,$sad,"in",$rmt_ip,$loc_ip,$rmt_id,$loc_id))
return true;
- else if (!empty($ph2ent['natlocalid']) && ipsec_lookup_ipsec_sa($spd,$sad,"in",$rmt_ip,$loc_ip,$rmt_id,$natloc_id))
+ else if (!empty($ph2ent['natlocalid']) && ipsec_lookup_ipsec_sa($spd,$sad,"out",$loc_ip,$rmt_ip,$loc_id,$rmt_id))
return true;
}
@@ -358,6 +375,10 @@ function ipsec_lookup_isakmp_sa($in_srcip,$in_dstip) {
function ipsec_lookup_ipsec_sa(& $spd,& $sad,$dir,$in_srcip,$in_dstip,$in_srcid,$in_dstid) {
/* match the phase1/2 to an SP */
+ $in_srcip = ipsec_fixup_ip($in_srcip);
+ $in_dstip = ipsec_fixup_ip($in_dstip);
+ $in_srcid = ipsec_fixup_ip($in_srcid);
+ $in_dstid = ipsec_fixup_ip($in_dstid);
foreach($spd as $sp) {
@@ -368,9 +389,9 @@ function ipsec_lookup_ipsec_sa(& $spd,& $sad,$dir,$in_srcip,$in_dstip,$in_srcid,
/* match IPs */
- if($in_srcip != $sp['src'])
+ if($in_srcip != ipsec_fixup_ip($sp['src']))
continue;
- if($in_dstip != $sp['dst'])
+ if($in_dstip != ipsec_fixup_ip($sp['dst']))
continue;
/* add netbits for address IDs */
@@ -378,16 +399,24 @@ function ipsec_lookup_ipsec_sa(& $spd,& $sad,$dir,$in_srcip,$in_dstip,$in_srcid,
$sp_srcid = $sp['srcid'];
$sp_dstid = $sp['dstid'];
- if (!strstr($sp_srcid,"/"))
- $sp_srcid .= '/32';
- if (!strstr($sp_dstid,"/"))
- $sp_dstid .= '/32';
+ if (!strstr($sp_srcid,"/")) {
+ if (is_ipaddrv4($sp_srcid))
+ $sp_srcid .= '/32';
+ elseif (is_ipaddrv6($sp_srcid))
+ $sp_srcid .= '/128';
+ }
+ if (!strstr($sp_dstid,"/")) {
+ if (is_ipaddrv4($sp_dstid))
+ $sp_dstid .= '/32';
+ elseif (is_ipaddrv6($sp_dstid))
+ $sp_dstid .= '/128';
+ }
/* match IDs */
- if($in_srcid != $sp_srcid)
+ if($in_srcid != ipsec_fixup_ip($sp_srcid))
continue;
- if($in_dstid != $sp_dstid)
+ if($in_dstid != ipsec_fixup_ip($sp_dstid))
continue;
/* match the SP to a unique SA by reqid */
@@ -411,9 +440,9 @@ function ipsec_lookup_ipsec_sa(& $spd,& $sad,$dir,$in_srcip,$in_dstip,$in_srcid,
/* match IPs */
- if($in_srcip != $sa_srcip)
+ if($in_srcip != ipsec_fixup_ip($sa_srcip))
continue;
- if($in_dstip != $sa_dstip)
+ if($in_dstip != ipsec_fixup_ip($sa_dstip))
continue;
return $sa;
@@ -483,7 +512,7 @@ function ipsec_dump_sad()
if ($fd) {
while (!feof($fd)) {
$line = chop(fgets($fd));
- if (!$line)
+ if (!$line || $line[0] == " ")
continue;
if ($line == "No SAD entries.")
break;
@@ -592,4 +621,11 @@ function ipsec_disconnect_mobile($username) {
exec("/usr/local/sbin/racoonctl logout-user " . escapeshellarg($username));
}
+function ipsec_fixup_ip($ipaddr) {
+ if (is_ipaddrv6($ipaddr) || is_subnetv6($ipaddr))
+ return Net_IPv6::compress(Net_IPv6::uncompress($ipaddr));
+ else
+ return $ipaddr;
+}
+
?>
diff --git a/etc/inc/openvpn.inc b/etc/inc/openvpn.inc
index 5dcd509..a5244fd 100644
--- a/etc/inc/openvpn.inc
+++ b/etc/inc/openvpn.inc
@@ -40,7 +40,7 @@
DISABLE_PHP_LINT_CHECKING
- pfSense_BUILDER_BINARIES: /usr/local/sbin/openvpn /usr/bin/openssl /sbin/ifconfig
+ pfSense_BUILDER_BINARIES: /usr/local/sbin/openvpn /usr/local/bin/openssl /sbin/ifconfig
pfSense_MODULE: openvpn
*/
@@ -49,7 +49,7 @@ require_once("certs.inc");
require_once('pfsense-utils.inc');
require_once("auth.inc");
-$openvpn_prots = array("UDP", "TCP");
+$openvpn_prots = array("UDP", "UDP6", "TCP", "TCP6");
$openvpn_dev_mode = array("tun", "tap");
@@ -102,7 +102,7 @@ function openvpn_create_key() {
function openvpn_create_dhparams($bits) {
- $fp = popen("/usr/bin/openssl dhparam {$bits} 2>/dev/null", "r");
+ $fp = popen("/usr/local/bin/openssl dhparam {$bits} 2>/dev/null", "r");
if (!$fp)
return false;
@@ -137,28 +137,46 @@ function openvpn_vpnid_next() {
return $vpnid;
}
-function openvpn_port_used($prot, $port) {
+function openvpn_port_used($prot, $interface, $port, $curvpnid = 0) {
global $config;
- if (is_array($config['openvpn']['openvpn-server']))
- foreach ($config['openvpn']['openvpn-server'] as & $settings)
- if ($port == $settings['local_port'] &&
- $prot == $settings['protocol'] && !isset($settings['disable']))
+ if (is_array($config['openvpn']['openvpn-server'])) {
+ foreach ($config['openvpn']['openvpn-server'] as & $settings) {
+ if (isset($settings['disable']))
+ continue;
+
+ if ($curvpnid != 0 && $curvpnid == $settings['vpnid'])
+ continue;
+
+ if ($port == $settings['local_port'] && $prot == $settings['protocol'] &&
+ ($interface == $settings['interface'] || $interface == "any" || $settings['interface'] == "any"))
return $settings['vpnid'];
+ }
+ }
- if (is_array($config['openvpn']['openvpn-client']))
- foreach ($config['openvpn']['openvpn-client'] as & $settings)
- if ($port == $settings['local_port'] &&
- $prot == $settings['protocol'] && !isset($settings['disable']))
+ if (is_array($config['openvpn']['openvpn-client'])) {
+ foreach ($config['openvpn']['openvpn-client'] as & $settings) {
+ if (isset($settings['disable']))
+ continue;
+
+ if ($curvpnid != 0 && $curvpnid == $settings['vpnid'])
+ continue;
+
+ if ($port == $settings['local_port'] && $prot == $settings['protocol'] &&
+ ($interface == $settings['interface'] || $interface == "any" || $settings['interface'] == "any"))
return $settings['vpnid'];
+ }
+ }
return 0;
}
-function openvpn_port_next($prot) {
+function openvpn_port_next($prot, $interface = "wan") {
$port = 1194;
- while(openvpn_port_used($prot, $port))
+ while(openvpn_port_used($prot, $interface, $port))
+ $port++;
+ while(openvpn_port_used($prot, "any", $port))
$port++;
return $port;
@@ -180,12 +198,31 @@ function openvpn_get_cipherlist() {
function openvpn_get_engines() {
$openssl_engines = array('none' => 'No Hardware Crypto Acceleration');
- exec("/usr/bin/openssl engine", $openssl_engine_output);
+ exec("/usr/local/bin/openssl engine -t -c", $openssl_engine_output);
+ $openssl_engine_output = implode("\n", $openssl_engine_output);
+ $openssl_engine_output = preg_replace("/\\n\\s+/", "|", $openssl_engine_output);
+ $openssl_engine_output = explode("\n", $openssl_engine_output);
+
foreach ($openssl_engine_output as $oeo) {
+ $keep = true;
+ $details = explode("|", $oeo);
+ $engine = array_shift($details);
$linematch = array();
- preg_match("/\((.*)\)\s(.*)/", $oeo, $linematch);
- if ($linematch[1] != "dynamic")
- $openssl_engines[$linematch[1]] = $linematch[2];
+ preg_match("/\((.*)\)\s(.*)/", $engine, $linematch);
+ foreach ($details as $dt) {
+ if (strpos($dt, "unavailable") !== FALSE)
+ $keep = false;
+ if (strpos($dt, "available") !== FALSE)
+ continue;
+ if (strpos($dt, "[") !== FALSE)
+ $ciphers = trim($dt, "[]");
+ }
+ if (!empty($ciphers))
+ $ciphers = " - " . $ciphers;
+ if (strlen($ciphers) > 60)
+ $ciphers = substr($ciphers, 0, 60) . " ... ";
+ if ($keep)
+ $openssl_engines[$linematch[1]] = $linematch[2] . $ciphers;
}
return $openssl_engines;
}
@@ -209,14 +246,51 @@ function openvpn_validate_port($value, $name) {
return false;
}
-function openvpn_validate_cidr($value, $name) {
+function openvpn_validate_cidr($value, $name, $multiple = false, $ipproto = "ipv4") {
+ $value = trim($value);
+ $error = false;
+ if (empty($value))
+ return false;
+ $networks = explode(',', $value);
+
+ if (!$multiple && (count($networks) > 1))
+ return sprintf(gettext("The field '%s' must contain a single valid %s CIDR range."), $name, $ipproto);
+
+ foreach ($networks as $network) {
+ if ($ipproto == "ipv4")
+ $error = !openvpn_validate_cidr_ipv4($network);
+ else
+ $error = !openvpn_validate_cidr_ipv6($network);
+ if ($error)
+ break;
+ }
+
+ if ($error)
+ return sprintf(gettext("The field '%s' must contain only valid %s CIDR range(s) separated by commas."), $name, $ipproto);
+ else
+ return false;
+}
+
+function openvpn_validate_cidr_ipv4($value) {
$value = trim($value);
if (!empty($value)) {
list($ip, $mask) = explode('/', $value);
- if (!is_ipaddr($ip) or !is_numeric($mask) or ($mask > 32) or ($mask < 0))
- return sprintf(gettext("The field '%s' must contain a valid CIDR range."), $name);
+ if (!is_ipaddrv4($ip) or !is_numeric($mask) or ($mask > 32) or ($mask < 0))
+ return false;
}
- return false;
+ return true;
+}
+
+function openvpn_validate_cidr_ipv6($value) {
+ $value = trim($value);
+ if (!empty($value)) {
+ list($ipv6, $prefix) = explode('/', $value);
+ if (empty($prefix))
+ $prefix = "128";
+ if (!is_ipaddrv6($ipv6) or !is_numeric($prefix) or ($prefix > 128) or ($prefix < 0))
+ return false;
+ }
+ return true;
}
function openvpn_add_dhcpopts(& $settings, & $conf) {
@@ -315,7 +389,7 @@ function openvpn_reconfigure($mode, $settings) {
$devname = "ovpnc{$vpnid}";
/* is our device already configured */
- if (mwexec("/sbin/ifconfig {$devname}")) {
+ if (mwexec("/sbin/ifconfig {$devname}", true)) {
/* create the tap device if required */
if (!file_exists("/dev/{$tunname}"))
@@ -329,7 +403,9 @@ function openvpn_reconfigure($mode, $settings) {
}
$pfile = $g['varrun_path'] . "/openvpn_{$mode_id}.pid";
- $proto = ($settings['protocol'] == 'UDP' ? 'udp' : "tcp-{$mode}");
+ $proto = strtolower($settings['protocol']);
+ if (substr($settings['protocol'], 0, 3) == "TCP")
+ $proto = "{$proto}-{$mode}";
$dev_mode = $settings['dev_mode'];
$cipher = $settings['crypto'];
@@ -386,10 +462,11 @@ function openvpn_reconfigure($mode, $settings) {
}
}
- if (is_ipaddrv4($iface_ip)) {
- $conf .= "local {$iface_ip}\n";
- } elseif (is_ipaddrv6($iface_ipv6)) {
- $conf .= "local {$iface_ipv6}\n";
+ /* Determine the local IP to use - and make sure it matches with the selected protocol. */
+ if (is_ipaddrv4($iface_ip) && (stristr($settings['protocol'], "6") === false)) {
+ $conf .= "local {$iface_ip}\n";
+ } elseif (is_ipaddrv6($iface_ipv6) && (stristr($settings['protocol'], "6") !== false)) {
+ $conf .= "local {$iface_ipv6}\n";
}
if (openvpn_validate_engine($settings['engine']) && ($settings['engine'] != "none"))
@@ -421,17 +498,24 @@ function openvpn_reconfigure($mode, $settings) {
if (!empty($ip) && !empty($mask) && ($cidr < 30)) {
$conf .= "server {$ip} {$mask}\n";
$conf .= "client-config-dir {$g['varetc_path']}/openvpn-csc\n";
+ if(is_ipaddr($ipv6))
+ $conf .= "server-ipv6 {$ipv6}/{$prefix}\n";
}
case 'p2p_shared_key':
if (!empty($ip) && !empty($mask)) {
- $baselong = ip2long32($ip) & ip2long($mask);
- $ip1 = long2ip32($baselong + 1);
- $ip2 = long2ip32($baselong + 2);
+ list($ip1, $ip2) = openvpn_get_interface_ip($ip, $mask);
if ($settings['dev_mode'] == 'tun')
$conf .= "ifconfig {$ip1} {$ip2}\n";
else
$conf .= "ifconfig {$ip1} {$mask}\n";
}
+ if (!empty($ipv6) && !empty($prefix)) {
+ list($ipv6_1, $ipv6_2) = openvpn_get_interface_ipv6($ipv6, $prefix);
+ if ($settings['dev_mode'] == 'tun')
+ $conf .= "ifconfig-ipv6 {$ipv6_1} {$ipv6_2}\n";
+ else
+ $conf .= "ifconfig {$ipv6_1} {$prefix}\n";
+ }
break;
case 'server_tls':
case 'server_user':
@@ -513,15 +597,10 @@ function openvpn_reconfigure($mode, $settings) {
// Can we push routes
if ($settings['local_network']) {
- list($ip, $mask) = explode('/', $settings['local_network']);
- $mask = gen_subnet_mask($mask);
- $conf .= "push \"route $ip $mask\"\n";
+ $conf .= openvpn_gen_routes($settings['local_network'], "ipv4", true);
}
if ($settings['local_networkv6']) {
- list($ipv6, $prefix) = explode('/', $settings['local_networkv6']);
- if (empty($prefix))
- $prefix = "128";
- $conf .= "push \"route-ipv6 $ipv6/$prefix\"\n";
+ $conf .= openvpn_gen_routes($settings['local_networkv6'], "ipv6", true);
}
switch($settings['mode']) {
@@ -573,15 +652,22 @@ function openvpn_reconfigure($mode, $settings) {
if (!empty($settings['tunnel_network'])) {
list($ip, $mask) = explode('/', $settings['tunnel_network']);
$mask = gen_subnet_mask($mask);
- $baselong = ip2long32($ip) & ip2long($mask);
- $ip1 = long2ip32($baselong + 1);
- $ip2 = long2ip32($baselong + 2);
+ list($ip1, $ip2) = openvpn_get_interface_ip($ip, $mask);
if ($settings['dev_mode'] == 'tun')
$conf .= "ifconfig {$ip2} {$ip1}\n";
else
$conf .= "ifconfig {$ip2} {$mask}\n";
}
+ if (!empty($settings['tunnel_networkv6'])) {
+ list($ipv6, $prefix) = explode('/', $settings['tunnel_networkv6']);
+ list($ipv6_1, $ipv6_2) = openvpn_get_interface_ipv6($ipv6, $prefix);
+ if ($settings['dev_mode'] == 'tun')
+ $conf .= "ifconfig-ipv6 {$ipv6_2} {$ipv6_1}\n";
+ else
+ $conf .= "ifconfig {$ipv6_2} {$prefix}\n";
+ }
+
if ($settings['proxy_addr']) {
$conf .= "http-proxy {$settings['proxy_addr']} {$settings['proxy_port']}";
if ($settings['proxy_authtype'] != "none") {
@@ -595,17 +681,12 @@ function openvpn_reconfigure($mode, $settings) {
}
// Add a remote network route if set, and only for p2p modes.
- if ((substr($settings['mode'], 0, 3) == "p2p") && is_subnet($settings['remote_network'])) {
- list($ip, $mask) = explode('/', $settings['remote_network']);
- $mask = gen_subnet_mask($mask);
- $conf .= "route $ip $mask\n";
+ if ((substr($settings['mode'], 0, 3) == "p2p") && (openvpn_validate_cidr($settings['remote_network'], "", true, "ipv4") === FALSE)) {
+ $conf .= openvpn_gen_routes($settings['remote_network'], "ipv4", false);
}
// Add a remote network route if set, and only for p2p modes.
- if ((substr($settings['mode'], 0, 3) == "p2p") && is_subnet($settings['remote_networkv6'])) {
- list($ipv6, $prefix) = explode('/', $settings['remote_networkv6']);
- if (empty($prefix))
- $prefix = "128";
- $conf .= "route-ipv6 ${ipv6}/${prefix}\n";
+ if ((substr($settings['mode'], 0, 3) == "p2p") && (openvpn_validate_cidr($settings['remote_networkv6'], "", true, "ipv6") === FALSE)) {
+ $conf .= openvpn_gen_routes($settings['remote_networkv6'], "ipv6", false);
}
// Write the settings for the keys
@@ -653,6 +734,10 @@ function openvpn_reconfigure($mode, $settings) {
$conf .= "float\n";
}
+ if ($settings['topology_subnet']) {
+ $conf .= "topology subnet\n";
+ }
+
openvpn_add_custom($settings, $conf);
openvpn_create_dirs();
@@ -698,6 +783,7 @@ function openvpn_restart($mode, $settings) {
/* start the new process */
$fpath = $g['varetc_path']."/openvpn/{$mode_id}.conf";
+ openvpn_clear_route($mode, $settings);
mwexec_bg("/usr/local/sbin/openvpn --config {$fpath}");
if (!$g['booting'])
@@ -852,6 +938,35 @@ function openvpn_resync_all($interface = "") {
}
+// Resync and restart all VPNs using a gateway group.
+function openvpn_resync_gwgroup($gwgroupname = "") {
+ global $g, $config;
+
+ if ($gwgroupname <> "") {
+ if (is_array($config['openvpn']['openvpn-server'])) {
+ foreach ($config['openvpn']['openvpn-server'] as & $settings) {
+ if ($gwgroupname == $settings['interface']) {
+ log_error("Resyncing OpenVPN for gateway group " . $gwgroupname . " server " . $settings["description"] . ".");
+ openvpn_resync('server', $settings);
+ }
+ }
+ }
+
+ if (is_array($config['openvpn']['openvpn-client'])) {
+ foreach ($config['openvpn']['openvpn-client'] as & $settings) {
+ if ($gwgroupname == $settings['interface']) {
+ log_error("Resyncing OpenVPN for gateway group " . $gwgroupname . " client " . $settings["description"] . ".");
+ openvpn_resync('client', $settings);
+ }
+ }
+ }
+
+ // Note: no need to resysnc Client Specific (csc) here, as changes to the OpenVPN real interface do not effect these.
+
+ } else
+ log_error("openvpn_resync_gwgroup called with null gwgroup parameter.");
+}
+
function openvpn_get_active_servers($type="multipoint") {
global $config, $g;
@@ -872,11 +987,9 @@ function openvpn_get_active_servers($type="multipoint") {
else
$server['name'] = "Server {$prot}:{$port}";
$server['conns'] = array();
-
- $vpnid = $settings['vpnid'];
- $mode_id = "server{$vpnid}";
- $server['mgmt'] = $mode_id;
- $socket = "unix://{$g['varetc_path']}/openvpn/{$mode_id}.sock";
+ $server['vpnid'] = $settings['vpnid'];
+ $server['mgmt'] = "server{$server['vpnid']}";
+ $socket = "unix://{$g['varetc_path']}/openvpn/{$server['mgmt']}.sock";
list($tn, $sm) = explode('/', $settings['tunnel_network']);
if ((($server['mode'] == "p2p_shared_key") || ($sm >= 30) ) && ($type == "p2p"))
@@ -929,6 +1042,16 @@ function openvpn_get_server_status($server, $socket) {
$conn['connect_time'] = $list[6];
$server['conns'][] = $conn;
}
+ /* parse routing table lines */
+ if (strstr($line, "ROUTING_TABLE")) {
+ $list = explode(",", $line);
+ $conn = array();
+ $conn['virtual_addr'] = $list[1];
+ $conn['common_name'] = $list[2];
+ $conn['remote_host'] = $list[3];
+ $conn['last_time'] = $list[4];
+ $server['routes'][] = $conn;
+ }
}
/* cleanup */
@@ -936,8 +1059,8 @@ function openvpn_get_server_status($server, $socket) {
} else {
$conn = array();
$conn['common_name'] = "[error]";
- $conn['remote_host'] = "Management Daemon Unreachable";
- $conn['virtual_addr'] = "";
+ $conn['remote_host'] = "Unable to contact daemon";
+ $conn['virtual_addr'] = "Service not running?";
$conn['bytes_recv'] = 0;
$conn['bytes_sent'] = 0;
$conn['connect_time'] = 0;
@@ -966,10 +1089,9 @@ function openvpn_get_active_clients() {
else
$client['name'] = "Client {$prot}{$port}";
- $vpnid = $settings['vpnid'];
- $mode_id = "client{$vpnid}";
- $client['mgmt'] = $mode_id;
- $socket = "unix://{$g['varetc_path']}/openvpn/{$mode_id}.sock";
+ $client['vpnid'] = $settings['vpnid'];
+ $client['mgmt'] = "client{$client['vpnid']}";
+ $socket = "unix://{$g['varetc_path']}/openvpn/{$client['mgmt']}.sock";
$client['status']="down";
$clients[] = openvpn_get_client_status($client, $socket);
@@ -1059,8 +1181,8 @@ function openvpn_get_client_status($client, $socket) {
} else {
$DisplayNote=true;
- $client['remote_host'] = "No Management Daemon";
- $client['virtual_addr'] = "See Note Below";
+ $client['remote_host'] = "Unable to contact daemon";
+ $client['virtual_addr'] = "Service not running?";
$client['bytes_recv'] = 0;
$client['bytes_sent'] = 0;
$client['connect_time'] = 0;
@@ -1106,4 +1228,110 @@ function openvpn_create_dirs() {
safe_mkdir("{$g['varetc_path']}/openvpn-csc", 0750);
}
+function openvpn_get_interface_ip($ip, $mask) {
+ $baselong = ip2long32($ip) & ip2long($mask);
+ $ip1 = long2ip32($baselong + 1);
+ $ip2 = long2ip32($baselong + 2);
+ return array($ip1, $ip2);
+}
+
+function openvpn_get_interface_ipv6($ipv6, $prefix) {
+ $basev6 = gen_subnetv6($ipv6, $prefix);
+ // Is there a better way to do this math?
+ $ipv6_arr = explode(':', $basev6);
+ $last = hexdec(array_pop($ipv6_arr));
+ $ipv6_1 = Net_IPv6::compress(implode(':', $ipv6_arr) . ':' . dechex($last + 1));
+ $ipv6_2 = Net_IPv6::compress(implode(':', $ipv6_arr) . ':' . dechex($last + 2));
+ return array($ipv6_1, $ipv6_2);
+}
+
+function openvpn_clear_route($mode, $settings) {
+ if (empty($settings['tunnel_network']))
+ return;
+ list($ip, $cidr) = explode('/', $settings['tunnel_network']);
+ $mask = gen_subnet_mask($cidr);
+ $clear_route = false;
+
+ switch($settings['mode']) {
+ case 'shared_key':
+ $clear_route = true;
+ break;
+ case 'p2p_tls':
+ case 'p2p_shared_key':
+ if ($cidr == 30)
+ $clear_route = true;
+ break;
+ }
+
+ if ($clear_route && !empty($ip) && !empty($mask)) {
+ list($ip1, $ip2) = openvpn_get_interface_ip($ip, $mask);
+ $ip_to_clear = ($mode == "server") ? $ip1 : $ip2;
+ mwexec("/sbin/route -q delete {$ip_to_clear}");
+ }
+}
+
+function openvpn_gen_routes($value, $ipproto = "ipv4", $push = false) {
+ $routes = "";
+ if (empty($value))
+ return "";
+ $networks = explode(',', $value);
+
+ foreach ($networks as $network) {
+ if ($ipproto == "ipv4")
+ $route = openvpn_gen_route_ipv4($network);
+ else
+ $route = openvpn_gen_route_ipv6($network);
+
+ if ($push)
+ $routes .= "push \"{$route}\"\n";
+ else
+ $routes .= "{$route}\n";
+ }
+ return $routes;
+}
+
+function openvpn_gen_route_ipv4($network) {
+ list($ip, $mask) = explode('/', trim($network));
+ $mask = gen_subnet_mask($mask);
+ return "route $ip $mask";
+}
+
+function openvpn_gen_route_ipv6($network) {
+ list($ipv6, $prefix) = explode('/', trim($network));
+ if (empty($prefix))
+ $prefix = "128";
+ return "route-ipv6 ${ipv6}/${prefix}";
+}
+
+function openvpn_get_settings($mode, $vpnid) {
+ global $config;
+
+ if (is_array($config['openvpn']['openvpn-server'])) {
+ foreach ($config['openvpn']['openvpn-server'] as $settings) {
+ if (isset($settings['disable']))
+ continue;
+
+ if ($vpnid != 0 && $vpnid == $settings['vpnid'])
+ return $settings;
+ }
+ }
+
+ if (is_array($config['openvpn']['openvpn-client'])) {
+ foreach ($config['openvpn']['openvpn-client'] as $settings) {
+ if (isset($settings['disable']))
+ continue;
+
+ if ($vpnid != 0 && $vpnid == $settings['vpnid'])
+ return $settings;
+ }
+ }
+
+ return array();
+}
+
+function openvpn_restart_by_vpnid($mode, $vpnid) {
+ $settings = openvpn_get_settings($mode, $vpnid);
+ openvpn_restart($mode, $settings);
+}
+
?>
diff --git a/etc/inc/pfsense-utils.inc b/etc/inc/pfsense-utils.inc
index c352f53..7c53885 100644
--- a/etc/inc/pfsense-utils.inc
+++ b/etc/inc/pfsense-utils.inc
@@ -40,21 +40,6 @@
pfSense_MODULE: utils
*/
-/****f* pfsense-utils/have_natonetooneruleint_access
- * NAME
- * have_natonetooneruleint_access
- * INPUTS
- * none
- * RESULT
- * returns true if user has access to edit a specific firewall nat one to one interface
- ******/
-function have_natonetooneruleint_access($if) {
- $security_url = "firewall_nat_1to1_edit.php?if=". strtolower($if);
- if(isAllowedPage($security_url, $_SESSION['Username']))
- return true;
- return false;
-}
-
/****f* pfsense-utils/have_natpfruleint_access
* NAME
* have_natpfruleint_access
@@ -65,7 +50,7 @@ function have_natonetooneruleint_access($if) {
******/
function have_natpfruleint_access($if) {
$security_url = "firewall_nat_edit.php?if=". strtolower($if);
- if(isAllowedPage($security_url, $allowed))
+ if(isAllowedPage($security_url, $allowed))
return true;
return false;
}
@@ -80,7 +65,7 @@ function have_natpfruleint_access($if) {
******/
function have_ruleint_access($if) {
$security_url = "firewall_rules.php?if=". strtolower($if);
- if(isAllowedPage($security_url))
+ if(isAllowedPage($security_url))
return true;
return false;
}
@@ -97,9 +82,9 @@ function does_url_exist($url) {
$fd = fopen("$url","r");
if($fd) {
fclose($fd);
- return true;
+ return true;
} else {
- return false;
+ return false;
}
}
@@ -112,18 +97,18 @@ function does_url_exist($url) {
* returns true if an ip address is in a private range
******/
function is_private_ip($iptocheck) {
- $isprivate = false;
- $ip_private_list=array(
- "10.0.0.0/8",
- "100.64.0.0/10",
- "172.16.0.0/12",
- "192.168.0.0/16",
- );
- foreach($ip_private_list as $private) {
- if(ip_in_subnet($iptocheck,$private)==true)
- $isprivate = true;
- }
- return $isprivate;
+ $isprivate = false;
+ $ip_private_list=array(
+ "10.0.0.0/8",
+ "100.64.0.0/10",
+ "172.16.0.0/12",
+ "192.168.0.0/16",
+ );
+ foreach($ip_private_list as $private) {
+ if(ip_in_subnet($iptocheck,$private)==true)
+ $isprivate = true;
+ }
+ return $isprivate;
}
/****f* pfsense-utils/get_tmp_file
@@ -176,12 +161,12 @@ function enable_hardware_offloading($interface) {
/* translate wan, lan, opt -> real interface if needed */
$int = get_real_interface($interface);
- if(empty($int))
+ if(empty($int))
return;
$int_family = preg_split("/[0-9]+/", $int);
$supported_ints = array('fxp');
if (in_array($int_family, $supported_ints)) {
- if(does_interface_exist($int))
+ if(does_interface_exist($int))
pfSense_interface_flags($int, IFF_LINK0);
}
@@ -319,9 +304,9 @@ function setup_microcode() {
* boolean - true if CARP is enabled, false if otherwise.
******/
function get_carp_status() {
- /* grab the current status of carp */
- $status = `/sbin/sysctl -n net.inet.carp.allow`;
- return (intval($status) > 0);
+ /* grab the current status of carp */
+ $status = `/sbin/sysctl -n net.inet.carp.allow`;
+ return (intval($status) > 0);
}
/*
@@ -341,11 +326,11 @@ function get_carp_interface_status($carpinterface) {
$carp_query = "";
exec("/sbin/ifconfig $carpinterface | /usr/bin/grep -v grep | /usr/bin/grep carp:", $carp_query);
foreach($carp_query as $int) {
- if(stristr($int, "MASTER"))
+ if(stristr($int, "MASTER"))
return gettext("MASTER");
- if(stristr($int, "BACKUP"))
+ if(stristr($int, "BACKUP"))
return gettext("BACKUP");
- if(stristr($int, "INIT"))
+ if(stristr($int, "INIT"))
return gettext("INIT");
}
return;
@@ -355,10 +340,10 @@ function get_carp_interface_status($carpinterface) {
* get_pfsync_interface_status($pfsyncinterface): returns the status of a pfsync
*/
function get_pfsync_interface_status($pfsyncinterface) {
- $result = does_interface_exist($pfsyncinterface);
- if($result <> true) return;
- $status = exec_command("/sbin/ifconfig {$pfsyncinterface} | /usr/bin/awk '/pfsync:/ {print \$5}'");
- return $status;
+ $result = does_interface_exist($pfsyncinterface);
+ if($result <> true) return;
+ $status = exec_command("/sbin/ifconfig {$pfsyncinterface} | /usr/bin/awk '/pfsync:/ {print \$5}'");
+ return $status;
}
/*
@@ -377,7 +362,7 @@ function remove_text_from_file($file, $text) {
return;
$filecontents = file_get_contents($file);
$text = str_replace($text, "", $filecontents);
- @file_put_contents($file, $text);
+ @file_put_contents($file, $text);
}
/*
@@ -394,7 +379,7 @@ function add_text_to_file($file, $text, $replace = false) {
$file_text = implode("\n", $filecontents);
- @file_put_contents($file, $file_text);
+ @file_put_contents($file, $file_text);
return true;
}
return false;
@@ -670,7 +655,7 @@ function rmdir_recursive($path,$follow_links=false) {
} elseif (is_file($workingdir)) {
unlink($workingdir);
}
- }
+ }
}
return;
}
@@ -703,7 +688,7 @@ function call_pfsense_method($method, $params, $timeout = 0) {
$proxypass = $config['system']['proxypass'];
$cli = new XML_RPC_Client($xmlrpc_path, $xmlrpc_base_url, $port, $proxyurl, $proxyport, $proxyuser, $proxypass);
// If the ALT PKG Repo has a username/password set, use it.
- if($config['system']['altpkgrepo']['username'] &&
+ if($config['system']['altpkgrepo']['username'] &&
$config['system']['altpkgrepo']['password']) {
$username = $config['system']['altpkgrepo']['username'];
$password = $config['system']['altpkgrepo']['password'];
@@ -762,15 +747,15 @@ function check_firmware_version($tocheck = "all", $return_php = true) {
* host_firmware_version(): Return the versions used in this install
*/
function host_firmware_version($tocheck = "") {
- global $g, $config;
+ global $g, $config;
- return array(
+ return array(
"firmware" => array("version" => trim(file_get_contents('/etc/version', " \n"))),
- "kernel" => array("version" => trim(file_get_contents('/etc/version_kernel', " \n"))),
- "base" => array("version" => trim(file_get_contents('/etc/version_base', " \n"))),
- "platform" => trim(file_get_contents('/etc/platform', " \n")),
- "config_version" => $config['version']
- );
+ "kernel" => array("version" => trim(file_get_contents('/etc/version_kernel', " \n"))),
+ "base" => array("version" => trim(file_get_contents('/etc/version_base', " \n"))),
+ "platform" => trim(file_get_contents('/etc/platform', " \n")),
+ "config_version" => $config['version']
+ );
}
function get_disk_info() {
@@ -914,31 +899,65 @@ function auto_login() {
$gettytab = file_get_contents("/etc/gettytab");
$getty_split = explode("\n", $gettytab);
+ $getty_update_needed = false;
+ $getty_search_str = ":ht:np:sp#115200";
+ $getty_al_str = ":al=root:";
+ $getty_al_search_str = $getty_search_str . $getty_al_str;
+ /* Check if gettytab is already OK, if so then do not rewrite it. */
+ foreach($getty_split as $gs) {
+ if(stristr($gs, $getty_search_str)) {
+ if($status == true) {
+ if(!stristr($gs, $getty_al_search_str)) {
+ $getty_update_needed = true;
+ }
+ } else {
+ if(stristr($gs, $getty_al_search_str)) {
+ $getty_update_needed = true;
+ }
+ }
+ }
+ }
+
+ if (!$getty_update_needed) {
+ return;
+ }
+
conf_mount_rw();
$fd = false;
$tries = 0;
while (!$fd && $tries < 100) {
$fd = fopen("/etc/gettytab", "w");
$tries++;
-
+
}
if (!$fd) {
conf_mount_ro();
- log_error(gettext("Enabling auto login was not possible."));
+ if ($status) {
+ log_error(gettext("Enabling auto login was not possible."));
+ } else {
+ log_error(gettext("Disabling auto login was not possible."));
+ }
return;
}
foreach($getty_split as $gs) {
- if(stristr($gs, ":ht:np:sp#115200") ) {
+ if(stristr($gs, $getty_search_str)) {
if($status == true) {
- fwrite($fd, " :ht:np:sp#115200:al=root:\n");
+ fwrite($fd, " ".$getty_al_search_str."\n");
} else {
- fwrite($fd, " :ht:np:sp#115200:\n");
+ fwrite($fd, " ".$getty_search_str."\n");
}
} else {
fwrite($fd, "{$gs}\n");
}
}
fclose($fd);
+
+ if ($status) {
+ log_error(gettext("Enabled console auto login, console menu is NOT password protected."));
+ } else {
+ log_error(gettext("Disabled console auto login, console menu is password protected."));
+ }
+
conf_mount_ro();
}
@@ -988,7 +1007,8 @@ function setup_serial_port($when="save", $path="") {
if(!empty($bcs)
&& (stripos($bcs, "console") === false)
&& (stripos($bcs, "boot_multicons") === false)
- && (stripos($bcs, "boot_serial") === false))
+ && (stripos($bcs, "boot_serial") === false)
+ && (stripos($bcs, "hw.usb.no_pf") === false))
$new_boot_config[] = $bcs;
$serialspeed = (is_numeric($config['system']['serialspeed'])) ? $config['system']['serialspeed'] : "9600";
@@ -1000,6 +1020,9 @@ function setup_serial_port($when="save", $path="") {
} elseif ($g['platform'] == "nanobsd") {
$new_boot_config[] = 'comconsole_speed="' . $serialspeed . '"';
}
+
+ $new_boot_config[] = 'hw.usb.no_pf="1"';
+
file_put_contents($loader_conf_file, implode("\n", $new_boot_config) . "\n");
}
}
@@ -1035,58 +1058,40 @@ function print_value_list($list, $count = 10, $separator = ",") {
}
/* DHCP enabled on any interfaces? */
-function is_dhcp_server_enabled()
-{
+function is_dhcp_server_enabled() {
global $config;
- $dhcpdenable = false;
-
if (!is_array($config['dhcpd']))
return false;
- $Iflist = get_configured_interface_list();
-
- if(is_array($config['dhcpd'])) {
- foreach ($config['dhcpd'] as $dhcpif => $dhcpifconf) {
- if (isset($dhcpifconf['enable']) && isset($Iflist[$dhcpif])) {
- $dhcpdenable = true;
- break;
- }
- }
+ foreach ($config['dhcpd'] as $dhcpif => $dhcpifconf) {
+ if (isset($dhcpifconf['enable']) && !empty($config['interfaces'][$dhcpif]))
+ return true;
}
- return $dhcpdenable;
+ return false;
}
/* DHCP enabled on any interfaces? */
-function is_dhcpv6_server_enabled()
-{
+function is_dhcpv6_server_enabled() {
global $config;
- $dhcpdenable = false;
-
- $Iflist = get_configured_interface_list();
-
- foreach($Iflist as $ifname) {
- if($config['interfaces'][$ifname]['track6-interface'] <> "") {
- return true;
+ if (is_array($config['interfaces'])) {
+ foreach ($config['interfaces'] as $ifcfg) {
+ if (isset($ifcfg['enable']) && !empty($ifcfg['track6-interface']))
+ return true;
}
}
if (!is_array($config['dhcpdv6']))
return false;
-
- if(is_array($config['dhcpdv6'])) {
- foreach ($config['dhcpdv6'] as $dhcpv6if => $dhcpv6ifconf) {
- if (isset($dhcpv6ifconf['enable']) && isset($Iflist[$dhcpv6if])) {
- $dhcpdenable = true;
- break;
- }
- }
+ foreach ($config['dhcpdv6'] as $dhcpv6if => $dhcpv6ifconf) {
+ if (isset($dhcpv6ifconf['enable']) && !empty($config['interfaces'][$dhcpv6if]))
+ return true;
}
- return $dhcpdenable;
+ return false;
}
/* radvd enabled on any interfaces? */
@@ -1180,12 +1185,12 @@ function convert_seconds_to_hms($sec){
function get_ppp_uptime($port){
if (file_exists("/conf/{$port}.log")){
- $saved_time = file_get_contents("/conf/{$port}.log");
- $uptime_data = explode("\n",$saved_time);
+ $saved_time = file_get_contents("/conf/{$port}.log");
+ $uptime_data = explode("\n",$saved_time);
$sec=0;
foreach($uptime_data as $upt) {
$sec += substr($upt, 1 + strpos($upt, " "));
- }
+ }
return convert_seconds_to_hms($sec);
} else {
$total_time = gettext("No history data found!");
@@ -1207,7 +1212,7 @@ function get_interface_info($ifdescr) {
$ifinfotmp = pfSense_get_interface_addresses($chkif);
$ifinfo['status'] = $ifinfotmp['status'];
if (empty($ifinfo['status']))
- $ifinfo['status'] = "down";
+ $ifinfo['status'] = "down";
$ifinfo['macaddr'] = $ifinfotmp['macaddr'];
$ifinfo['ipaddr'] = $ifinfotmp['ipaddr'];
$ifinfo['subnet'] = $ifinfotmp['subnet'];
@@ -1217,11 +1222,11 @@ function get_interface_info($ifdescr) {
if (isset($ifinfotmp['link0']))
$link0 = "down";
$ifinfotmp = pfSense_get_interface_stats($chkif);
- // $ifinfo['inpkts'] = $ifinfotmp['inpkts'];
- // $ifinfo['outpkts'] = $ifinfotmp['outpkts'];
- $ifinfo['inerrs'] = $ifinfotmp['inerrs'];
- $ifinfo['outerrs'] = $ifinfotmp['outerrs'];
- $ifinfo['collisions'] = $ifinfotmp['collisions'];
+ // $ifinfo['inpkts'] = $ifinfotmp['inpkts'];
+ // $ifinfo['outpkts'] = $ifinfotmp['outpkts'];
+ $ifinfo['inerrs'] = $ifinfotmp['inerrs'];
+ $ifinfo['outerrs'] = $ifinfotmp['outerrs'];
+ $ifinfo['collisions'] = $ifinfotmp['collisions'];
/* Use pfctl for non wrapping 64 bit counters */
/* Pass */
@@ -1265,11 +1270,11 @@ function get_interface_info($ifdescr) {
$ifinfo['outbytes'] = $out4_pass + $out6_pass;
$ifinfo['inpkts'] = $in4_pass_packets + $in6_pass_packets;
$ifinfo['outpkts'] = $out4_pass_packets + $out6_pass_packets;
-
+
$ifconfiginfo = "";
$link_type = $config['interfaces'][$ifdescr]['ipaddr'];
switch ($link_type) {
- /* DHCP? -> see if dhclient is up */
+ /* DHCP? -> see if dhclient is up */
case "dhcp":
/* see if dhclient is up */
if (find_dhclient_process($ifinfo['if']) <> "")
@@ -1298,7 +1303,7 @@ function get_interface_info($ifdescr) {
if (empty($ifinfo['status']))
$ifinfo['status'] = "down";
-
+
if (is_array($config['ppps']['ppp']) && count($config['ppps']['ppp'])) {
foreach ($config['ppps']['ppp'] as $pppid => $ppp) {
if ($config['interfaces'][$ifdescr]['if'] == $ppp['if'])
@@ -1310,7 +1315,7 @@ function get_interface_info($ifdescr) {
break;
if (!file_exists($dev)) {
$ifinfo['nodevice'] = 1;
- $ifinfo['pppinfo'] = $dev . " " . gettext("device not present! Is the modem attached to the system?");
+ $ifinfo['pppinfo'] = $dev . " " . gettext("device not present! Is the modem attached to the system?");
}
$usbmodemoutput = array();
@@ -1346,12 +1351,12 @@ function get_interface_info($ifdescr) {
default:
break;
}
-
+
if (file_exists("{$g['varrun_path']}/{$link_type}_{$ifdescr}.pid")) {
$sec = trim(`/usr/local/sbin/ppp-uptime.sh {$ifinfo['if']}`);
$ifinfo['ppp_uptime'] = convert_seconds_to_hms($sec);
}
-
+
if ($ifinfo['status'] == "up") {
/* try to determine media with ifconfig */
unset($ifconfiginfo);
@@ -1437,7 +1442,7 @@ function get_interface_info($ifdescr) {
//returns cpu speed of processor. Good for determining capabilities of machine
function get_cpu_speed() {
- return exec("sysctl hw.clockrate | awk '{ print $2 }'");
+ return exec("sysctl hw.clockrate | awk '{ print $2 }'");
}
function add_hostname_to_watch($hostname) {
@@ -1477,7 +1482,7 @@ function is_fqdn($fqdn) {
if(preg_match("/\.\./", $fqdn)) {
$hostname = false;
}
- if(preg_match("/^\./i", $fqdn)) {
+ if(preg_match("/^\./i", $fqdn)) {
$hostname = false;
}
if(preg_match("/\//i", $fqdn)) {
@@ -1487,12 +1492,12 @@ function is_fqdn($fqdn) {
}
function pfsense_default_state_size() {
- /* get system memory amount */
- $memory = get_memory();
- $avail = $memory[0];
- /* Be cautious and only allocate 10% of system memory to the state table */
- $max_states = (int) ($avail/10)*1000;
- return $max_states;
+ /* get system memory amount */
+ $memory = get_memory();
+ $avail = $memory[1];
+ /* Be cautious and only allocate 10% of system memory to the state table */
+ $max_states = (int) ($avail/10)*1000;
+ return $max_states;
}
function pfsense_default_tables_size() {
@@ -1561,8 +1566,7 @@ function load_crypto() {
if (!in_array($config['system']['crypto_hardware'], $crypto_modules))
return false;
- $is_loaded = `/sbin/kldstat | /usr/bin/grep -c {$config['system']['crypto_hardware']}`;
- if (!empty($config['system']['crypto_hardware']) && ($is_loaded == 0)) {
+ if (!empty($config['system']['crypto_hardware']) && !is_module_loaded($config['system']['crypto_hardware'])) {
log_error("Loading {$config['system']['crypto_hardware']} cryptographic accelerator module.");
mwexec("/sbin/kldload {$config['system']['crypto_hardware']}");
}
@@ -1578,8 +1582,7 @@ function load_thermal_hardware() {
if (!in_array($config['system']['thermal_hardware'], $thermal_hardware_modules))
return false;
- $is_loaded = `/sbin/kldstat | /usr/bin/grep -c {$config['system']['thermal_hardware']}`;
- if (!empty($config['system']['thermal_hardware']) && ($is_loaded == 0)) {
+ if (!empty($config['system']['thermal_hardware']) && !is_module_loaded($config['system']['thermal_hardware'])) {
log_error("Loading {$config['system']['thermal_hardware']} thermal monitor module.");
mwexec("/sbin/kldload {$config['system']['thermal_hardware']}");
}
@@ -1596,7 +1599,7 @@ function load_thermal_hardware() {
function isvm() {
$virtualenvs = array("vmware", "parallels", "qemu", "bochs", "plex86");
$bios_vendor = strtolower(`/bin/kenv | /usr/bin/awk -F= '/smbios.bios.vendor/ {print $2}'`);
- if(in_array($bios_vendor, $virtualenvs))
+ if(in_array($bios_vendor, $virtualenvs))
return true;
else
return false;
@@ -1608,28 +1611,28 @@ function get_freebsd_version() {
}
function download_file_with_progress_bar($url_file, $destination_file, $readbody = 'read_body', $connect_timeout=60, $timeout=0) {
- global $ch, $fout, $file_size, $downloaded, $config, $first_progress_update;
- $file_size = 1;
- $downloaded = 1;
+ global $ch, $fout, $file_size, $downloaded, $config, $first_progress_update;
+ $file_size = 1;
+ $downloaded = 1;
$first_progress_update = TRUE;
- /* open destination file */
- $fout = fopen($destination_file, "wb");
-
- /*
- * Originally by Author: Keyvan Minoukadeh
- * Modified by Scott Ullrich to return Content-Length size
- */
-
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url_file);
- curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'read_header');
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
- /* Don't verify SSL peers since we don't have the certificates to do so. */
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_WRITEFUNCTION, $readbody);
- curl_setopt($ch, CURLOPT_NOPROGRESS, '1');
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $connect_timeout);
- curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
+ /* open destination file */
+ $fout = fopen($destination_file, "wb");
+
+ /*
+ * Originally by Author: Keyvan Minoukadeh
+ * Modified by Scott Ullrich to return Content-Length size
+ */
+
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url_file);
+ curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'read_header');
+ curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
+ /* Don't verify SSL peers since we don't have the certificates to do so. */
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_WRITEFUNCTION, $readbody);
+ curl_setopt($ch, CURLOPT_NOPROGRESS, '1');
+ curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $connect_timeout);
+ curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
if (!empty($config['system']['proxyurl'])) {
curl_setopt($ch, CURLOPT_PROXY, $config['system']['proxyurl']);
@@ -1641,38 +1644,38 @@ function download_file_with_progress_bar($url_file, $destination_file, $readbody
}
}
- @curl_exec($ch);
- $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
- if($fout)
- fclose($fout);
- curl_close($ch);
- return ($http_code == 200) ? true : $http_code;
+ @curl_exec($ch);
+ $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+ if($fout)
+ fclose($fout);
+ curl_close($ch);
+ return ($http_code == 200) ? true : $http_code;
}
function read_header($ch, $string) {
- global $file_size, $fout;
- $length = strlen($string);
- $regs = "";
- preg_match("/(Content-Length:) (.*)/", $string, $regs);
- if($regs[2] <> "") {
- $file_size = intval($regs[2]);
- }
- ob_flush();
- return $length;
+ global $file_size, $fout;
+ $length = strlen($string);
+ $regs = "";
+ preg_match("/(Content-Length:) (.*)/", $string, $regs);
+ if($regs[2] <> "") {
+ $file_size = intval($regs[2]);
+ }
+ ob_flush();
+ return $length;
}
function read_body($ch, $string) {
- global $fout, $file_size, $downloaded, $sendto, $static_status, $static_output, $lastseen, $first_progress_update;
- global $pkg_interface;
- $length = strlen($string);
- $downloaded += intval($length);
- if($file_size > 0) {
- $downloadProgress = round(100 * (1 - $downloaded / $file_size), 0);
- $downloadProgress = 100 - $downloadProgress;
- } else
- $downloadProgress = 0;
- if($lastseen <> $downloadProgress and $downloadProgress < 101) {
- if($sendto == "status") {
+ global $fout, $file_size, $downloaded, $sendto, $static_status, $static_output, $lastseen, $first_progress_update;
+ global $pkg_interface;
+ $length = strlen($string);
+ $downloaded += intval($length);
+ if($file_size > 0) {
+ $downloadProgress = round(100 * (1 - $downloaded / $file_size), 0);
+ $downloadProgress = 100 - $downloadProgress;
+ } else
+ $downloadProgress = 0;
+ if($lastseen <> $downloadProgress and $downloadProgress < 101) {
+ if($sendto == "status") {
if($pkg_interface == "console") {
if(($downloadProgress % 10) == 0 || $downloadProgress < 10) {
$tostatus = $static_status . $downloadProgress . "%";
@@ -1683,9 +1686,9 @@ function read_body($ch, $string) {
}
} else {
$tostatus = $static_status . $downloadProgress . "%";
- update_status($tostatus);
+ update_status($tostatus);
}
- } else {
+ } else {
if($pkg_interface == "console") {
if(($downloadProgress % 10) == 0 || $downloadProgress < 10) {
$tooutput = $static_output . $downloadProgress . "%";
@@ -1698,63 +1701,72 @@ function read_body($ch, $string) {
$tooutput = $static_output . $downloadProgress . "%";
update_output_window($tooutput);
}
- }
+ }
if(($pkg_interface != "console") || (($downloadProgress % 10) == 0) || ($downloadProgress < 10)) {
update_progress_bar($downloadProgress, $first_progress_update);
$first_progress_update = FALSE;
}
- $lastseen = $downloadProgress;
- }
- if($fout)
- fwrite($fout, $string);
- ob_flush();
- return $length;
+ $lastseen = $downloadProgress;
+ }
+ if($fout)
+ fwrite($fout, $string);
+ ob_flush();
+ return $length;
}
/*
* update_output_window: update bottom textarea dynamically.
*/
function update_output_window($text) {
- global $pkg_interface;
- $log = preg_replace("/\n/", "\\n", $text);
- if($pkg_interface != "console") {
- echo "\n<script language=\"JavaScript\">\nthis.document.forms[0].output.value = \"" . $log . "\";\n";
- echo "this.document.forms[0].output.scrollTop = this.document.forms[0].output.scrollHeight;\n";
- echo "</script>";
- }
- /* ensure that contents are written out */
- ob_flush();
+ global $pkg_interface;
+ $log = preg_replace("/\n/", "\\n", $text);
+ if($pkg_interface != "console") {
+ echo "\n<script type=\"text/javascript\">";
+ echo "\n//<![CDATA[";
+ echo "\nthis.document.forms[0].output.value = \"" . $log . "\";";
+ echo "\nthis.document.forms[0].output.scrollTop = this.document.forms[0].output.scrollHeight;";
+ echo "\n//]]>";
+ echo "\n</script>";
+ }
+ /* ensure that contents are written out */
+ ob_flush();
}
/*
* update_status: update top textarea dynamically.
*/
function update_status($status) {
- global $pkg_interface;
- if($pkg_interface == "console") {
- echo "\r{$status}";
- } else {
- echo "\n<script type=\"text/javascript\">this.document.forms[0].status.value=\"" . $status . "\";</script>";
- }
- /* ensure that contents are written out */
- ob_flush();
+ global $pkg_interface;
+ if($pkg_interface == "console") {
+ echo "\r{$status}";
+ } else {
+ echo "\n<script type=\"text/javascript\">";
+ echo "\n//<![CDATA[";
+ echo "\nthis.document.forms[0].status.value=\"" . $status . "\";";
+ echo "\n//]]>";
+ echo "\n</script>";
+ }
+ /* ensure that contents are written out */
+ ob_flush();
}
/*
* update_progress_bar($percent, $first_time): updates the javascript driven progress bar.
*/
function update_progress_bar($percent, $first_time) {
- global $pkg_interface;
- if($percent > 100) $percent = 1;
- if($pkg_interface <> "console") {
- echo "\n<script type=\"text/javascript\" language=\"javascript\">";
- echo "\ndocument.progressbar.style.width='" . $percent . "%';";
- echo "\n</script>";
- } else {
+ global $pkg_interface;
+ if($percent > 100) $percent = 1;
+ if($pkg_interface <> "console") {
+ echo "\n<script type=\"text/javascript\">";
+ echo "\n//<![CDATA[";
+ echo "\ndocument.progressbar.style.width='" . $percent . "%';";
+ echo "\n//]]>";
+ echo "\n</script>";
+ } else {
if(!($first_time))
echo "\x08\x08\x08\x08\x08";
echo sprintf("%4d%%", $percent);
- }
+ }
}
/* Split() is being DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged. */
@@ -1767,7 +1779,7 @@ if(!function_exists("split")) {
function update_alias_names_upon_change($section, $field, $new_alias_name, $origname) {
global $g, $config, $pconfig, $debug;
- if(!$origname)
+ if(!$origname)
return;
$sectionref = &$config;
@@ -1906,7 +1918,7 @@ function version_compare_dates($a, $b) {
} else {
if ($a_time < $b_time)
return -1;
- elseif ($$a_time == $b_time)
+ elseif ($a_time == $b_time)
return 0;
else
return 1;
@@ -1921,7 +1933,8 @@ function version_get_string_value($a) {
5 => "C",
6 => "D",
7 => "RC",
- 8 => "RELEASE"
+ 8 => "RELEASE",
+ 9 => "*" // Matches all release levels
);
$major = 0;
$minor = 0;
@@ -1937,7 +1950,12 @@ function version_get_string_value($a) {
return "{$major}.{$minor}";
}
function version_compare_string($a, $b) {
- return version_compare_numeric(version_get_string_value($a), version_get_string_value($b));
+ // Only compare string parts if both versions give a specific release
+ // (If either version lacks a string part, assume intended to match all release levels)
+ if (isset($a) && isset($b))
+ return version_compare_numeric(version_get_string_value($a), version_get_string_value($b));
+ else
+ return 0;
}
function version_compare_numeric($a, $b) {
$a_arr = explode('.', rtrim($a, '.0'));
@@ -2162,14 +2180,14 @@ function nanobsd_friendly_slice_name($slicename) {
}
function get_include_contents($filename) {
- if (is_file($filename)) {
- ob_start();
- include $filename;
- $contents = ob_get_contents();
- ob_end_clean();
- return $contents;
- }
- return false;
+ if (is_file($filename)) {
+ ob_start();
+ include $filename;
+ $contents = ob_get_contents();
+ ob_end_clean();
+ return $contents;
+ }
+ return false;
}
/* This xml 2 array function is courtesy of the php.net comment section on xml_parse.
@@ -2385,9 +2403,9 @@ function generate_ipv6_from_mac($mac) {
if($i == 2) {
$ipv6 .= "ff:fe";
}
-
+
$i++;
- }
+ }
return $ipv6;
}
@@ -2411,7 +2429,7 @@ function load_mac_manufacturer_table() {
$mac_man["$matches[1]"]=$matches[2];
}
}
- return $mac_man;
+ return $mac_man;
} else
return -1;
@@ -2426,12 +2444,60 @@ function load_mac_manufacturer_table() {
* returns true if the IP Address is
* configured and present on this device.
*/
-function is_ipaddr_configured($ipaddr) {
- $interface_list_ips = get_configured_ip_addresses();
- foreach($interface_list_ips as $ilips) {
- if(strcasecmp($ipaddr, $ilips) == 0)
+function is_ipaddr_configured($ipaddr, $ignore_if = "", $check_localip = false, $check_subnets = false) {
+ global $config;
+
+ $isipv6 = is_ipaddrv6($ipaddr);
+
+ if ($check_subnets) {
+ $iflist = get_configured_interface_list();
+ foreach ($iflist as $if => $ifname) {
+ if ($ignore_if == $if)
+ continue;
+
+ if ($isipv6 === true) {
+ $bitmask = get_interface_subnetv6($if);
+ $subnet = gen_subnetv6(get_interface_ipv6($if), $bitmask);
+ } else {
+ $bitmask = get_interface_subnet($if);
+ $subnet = gen_subnet(get_interface_ip($if), $bitmask);
+ }
+
+ if (ip_in_subnet($ipaddr, $subnet . '/' . $bitmask))
+ return true;
+ }
+ } else {
+ if ($isipv6 === true)
+ $interface_list_ips = get_configured_ipv6_addresses();
+ else
+ $interface_list_ips = get_configured_ip_addresses();
+
+ foreach($interface_list_ips as $if => $ilips) {
+ /* Also ignore CARP interfaces, it'll be checked below */
+ if (($ignore_if == $if) || preg_match('/_vip[0-9]/', $if))
+ continue;
+ if (strcasecmp($ipaddr, $ilips) == 0)
return true;
- }
+ }
+ }
+
+ $interface_list_vips = get_configured_vips_list(true);
+ foreach ($interface_list_vips as $id => $vip) {
+ if ($ignore_if == "vip_{$id}")
+ continue;
+ if (strcasecmp($ipaddr, $vip['ipaddr']) == 0)
+ return true;
+ }
+
+ if ($check_localip) {
+ if (is_array($config['pptpd']) && !empty($config['pptpd']['localip']) && (strcasecmp($ipaddr, $config['pptpd']['localip']) == 0))
+ return true;
+
+ if (!is_array($config['l2tp']) && !empty($config['l2tp']['localip']) && (strcasecmp($ipaddr, $config['l2tp']['localip']) == 0))
+ return true;
+ }
+
+ return false;
}
/****f* pfsense-utils/pfSense_handle_custom_code
@@ -2443,11 +2509,11 @@ function is_ipaddr_configured($ipaddr) {
* globs the directory and includes the files
*/
function pfSense_handle_custom_code($src_dir) {
- // Allow extending of the nat edit page and include custom input validation
+ // Allow extending of the nat edit page and include custom input validation
if(is_dir("$src_dir")) {
$cf = glob($src_dir . "/*.inc");
foreach($cf as $nf) {
- if($nf == "." || $nf == "..")
+ if($nf == "." || $nf == "..")
continue;
// Include the extra handler
include("$nf");
@@ -2475,14 +2541,10 @@ function get_locale_list() {
function return_hex_ipv4($ipv4) {
if(!is_ipaddrv4($ipv4))
return(false);
-
+
/* we need the hex form of the interface IPv4 address */
$ip4arr = explode(".", $ipv4);
- $hexwanv4 = "";
- foreach($ip4arr as $octet)
- $hexwanv4 .= sprintf("%02x", $octet);
-
- return($hexwanv4);
+ return (sprintf("%02x%02x%02x%02x", $ip4arr[0], $ip4arr[1], $ip4arr[2], $ip4arr[3]));
}
function convert_ipv6_to_128bit($ipv6) {
@@ -2548,24 +2610,24 @@ function calculate_ipv6_delegation_length($if) {
function huawei_rssi_to_string($rssi) {
$dbm = array();
$i = 0;
- $dbstart = -51;
- while($i < 31) {
- $dbm[$i] = $dbstart - ($i * 2);
+ $dbstart = -113;
+ while($i < 32) {
+ $dbm[$i] = $dbstart + ($i * 2);
$i++;
}
$percent = round(($rssi / 31) * 100);
- $string = "rssi:8 level:{$dbm[$rssi]}dBm percent:{$percent}%";
+ $string = "rssi:{$rssi} level:{$dbm[$rssi]}dBm percent:{$percent}%";
return $string;
}
function huawei_mode_to_string($mode, $submode) {
$modes[0] = "None";
- $modes[1] = "AMPS";
+ $modes[1] = "AMPS";
$modes[2] = "CDMA";
$modes[3] = "GSM/GPRS";
$modes[4] = "HDR";
$modes[5] = "WCDMA";
- $modes[6] = "GPS";
+ $modes[6] = "GPS";
$submodes[0] = "No Service";
$submodes[1] = "GSM";
@@ -2583,7 +2645,7 @@ function huawei_mode_to_string($mode, $submode) {
function huawei_service_to_string($state) {
$modes[0] = "No";
- $modes[1] = "Restricted";
+ $modes[1] = "Restricted";
$modes[2] = "Valid";
$modes[3] = "Restricted Regional";
$modes[4] = "Powersaving";
@@ -2593,7 +2655,7 @@ function huawei_service_to_string($state) {
function huawei_simstate_to_string($state) {
$modes[0] = "Invalid SIM/locked";
- $modes[1] = "Valid SIM";
+ $modes[1] = "Valid SIM";
$modes[2] = "Invalid SIM CS";
$modes[3] = "Invalid SIM PS";
$modes[4] = "Invalid SIM CS/PS";
@@ -2608,12 +2670,12 @@ function zte_rssi_to_string($rssi) {
function zte_mode_to_string($mode, $submode) {
$modes[0] = "No Service";
- $modes[1] = "Limited Service";
+ $modes[1] = "Limited Service";
$modes[2] = "GPRS";
$modes[3] = "GSM";
$modes[4] = "UMTS";
$modes[5] = "EDGE";
- $modes[6] = "HSDPA";
+ $modes[6] = "HSDPA";
$submodes[0] = "CS_ONLY";
$submodes[1] = "PS_ONLY";
@@ -2625,7 +2687,7 @@ function zte_mode_to_string($mode, $submode) {
function zte_service_to_string($state) {
$modes[0] = "Initializing";
- $modes[1] = "Network Lock error";
+ $modes[1] = "Network Lock error";
$modes[2] = "Network Locked";
$modes[3] = "Unlocked or correct MCC/MNC";
$string = "{$modes[$state]} Service";
@@ -2634,10 +2696,40 @@ function zte_service_to_string($state) {
function zte_simstate_to_string($state) {
$modes[0] = "No action";
- $modes[1] = "Network lock";
+ $modes[1] = "Network lock";
$modes[2] = "(U)SIM card lock";
$modes[3] = "Network Lock and (U)SIM card Lock";
$string = "{$modes[$state]} State";
return $string;
}
+
+function get_configured_pppoe_server_interfaces() {
+ global $config;
+ $iflist = array();
+ if (is_array($config['pppoes']['pppoe'])) {
+ foreach($config['pppoes']['pppoe'] as $pppoe) {
+ if ($pppoe['mode'] == "server") {
+ $int = "poes". $pppoe['pppoeid'];
+ $iflist[$int] = strtoupper($int);
+ }
+ }
+ }
+ return $iflist;
+}
+
+function get_pppoes_child_interfaces($ifpattern) {
+ $if_arr = array();
+ if($ifpattern == "")
+ return;
+
+ exec("ifconfig", $out, $ret);
+ foreach($out as $line) {
+ if(preg_match("/^({$ifpattern}[0-9]+):/i", $line, $match)) {
+ $if_arr[] = $match[1];
+ }
+ }
+ return $if_arr;
+
+}
+
?>
diff --git a/etc/inc/pkg-utils.inc b/etc/inc/pkg-utils.inc
index d667c12..a7e8cc0 100644
--- a/etc/inc/pkg-utils.inc
+++ b/etc/inc/pkg-utils.inc
@@ -168,6 +168,24 @@ function get_pkg_id($pkg_name) {
return -1;
}
+/****f* pkg-utils/get_pkg_internal_name
+ * NAME
+ * get_pkg_internal_name - Find a package's internal name (e.g. squid3 internal name is squid)
+ * INPUTS
+ * $package - array of package data from config
+ * RESULT
+ * string - internal name (if defined) or default to package name
+ ******/
+function get_pkg_internal_name($package) {
+ if (isset($package['internal_name']) && ($package['internal_name'] != "")) {
+ /* e.g. name is Ipguard-dev, internal name is ipguard */
+ $pkg_internal_name = $package['internal_name'];
+ } else {
+ $pkg_internal_name = $package['name'];
+ }
+ return $pkg_internal_name;
+}
+
/****f* pkg-utils/get_pkg_info
* NAME
* get_pkg_info - Retrieve package information from pfsense.com.
@@ -240,7 +258,7 @@ function resync_all_package_configs($show_message = false) {
echo " " . $package['name'];
get_pkg_depends($package['name'], "all");
if($g['booting'] != true)
- stop_service($package['name']);
+ stop_service(get_pkg_internal_name($package));
sync_package($idx, true, true);
if($pkg_interface == "console")
echo "\n" . gettext("Syncing packages:");
@@ -356,10 +374,9 @@ function uninstall_package($pkg_name) {
}
}
- stop_service($pkg_name);
-
$id = get_pkg_id($pkg_name);
if ($id >= 0) {
+ stop_service(get_pkg_internal_name($config['installedpackages']['package'][$id]));
$pkg_depends =& $config['installedpackages']['package'][$id]['depends_on_package_pbi'];
$static_output .= "Removing package...\n";
update_output_window($static_output);
@@ -423,9 +440,9 @@ function sync_package($pkg_name, $sync_depends = true, $show_message = false) {
if(empty($config['installedpackages']['package'][$pkg_id]))
return; // No package belongs to the pkg_id passed to this function.
}
- if (is_array($config['installedpackages']['package'][$pkg_id]))
+ if (is_array($config['installedpackages']['package'][$pkg_id]))
$package =& $config['installedpackages']['package'][$pkg_id];
- else
+ else
return; /* empty package tag */
if(!file_exists("/usr/local/pkg/" . $package['configurationfile'])) {
log_error(sprintf(gettext("The %s package is missing its configuration file and must be reinstalled."), $package['name']));
@@ -570,7 +587,7 @@ function pkg_fetch_recursive($pkgname, $filename, $dependlevel = 0, $base_url =
return true;
}
-function install_package($package, $pkg_info = "") {
+function install_package($package, $pkg_info = "", $force_install = false) {
global $g, $config, $static_output, $pkg_interface;
/* safe side. Write config below will send to ro again. */
@@ -587,6 +604,24 @@ function install_package($package, $pkg_info = "") {
return -1;
}
}
+ if (!$force_install) {
+ $compatible = true;
+ $version = rtrim(file_get_contents("/etc/version"));
+
+ if (isset($pkg_info['required_version']))
+ $compatible = (pfs_version_compare("", $version, $pkg_info['required_version']) >= 0);
+ if (isset($pkg_info['maximum_version']))
+ $compatible = $compatible && (pfs_version_compare("", $version, $pkg_info['maximum_version']) <= 0);
+
+ if (!$compatible) {
+ log_error(sprintf(gettext('Package %s is not supported on this version.'), $pkg_info['name']));
+ $static_output .= sprintf(gettext("Package %s is not supported on this version."), $pkg_info['name']);
+ update_status($static_output);
+
+ conf_mount_ro();
+ return -1;
+ }
+ }
pkg_debug(gettext("Beginning package installation.") . "\n");
log_error(sprintf(gettext('Beginning package installation for %s .'), $pkg_info['name']));
$static_output .= sprintf(gettext("Beginning package installation for %s ."), $pkg_info['name']);
@@ -777,7 +812,7 @@ function install_package_xml($pkg) {
system("/bin/chmod {$pkg_chmod} {$prefix}{$filename}");
}
$static_output = $static_orig;
- update_output_window($static_output);
+ update_output_window($static_output);
}
$static_output .= gettext("done.") . "\n";
update_output_window($static_output);
@@ -1106,7 +1141,7 @@ function delete_package_xml($pkg) {
if($pkg_config['include_file'] <> "") {
$static_output .= gettext("Removing package instructions...");
update_output_window($static_output);
- pkg_debug(sprintf(gettext("Remove '%s'"), $pkg_config['include_file']) . "\n");
+ pkg_debug(sprintf(gettext("Remove '%s'"), $pkg_config['include_file']) . "\n");
unlink_if_exists("/usr/local/pkg/" . $pkg_config['include_file']);
$static_output .= gettext("done.") . "\n";
update_output_window($static_output);
@@ -1228,31 +1263,29 @@ function pkg_reinstall_all() {
global $g, $config;
@unlink('/conf/needs_package_sync');
- $pkg_id = 0;
- $todo = array();
- if (is_array($config['installedpackages']['package']))
+ if (is_array($config['installedpackages']['package'])) {
+ echo "One moment please, reinstalling packages...\n";
+ echo " >>> Trying to fetch package info...";
+ $pkg_info = get_pkg_info();
+ if ($pkg_info) {
+ echo " Done.\n";
+ } else {
+ $xmlrpc_base_url = isset($config['system']['altpkgrepo']['enable']) ? $config['system']['altpkgrepo']['xmlrpcbaseurl'] : $g['xmlrpcbaseurl'];
+ echo "\n" . sprintf(gettext(' >>> Unable to communicate with %1$s. Please verify DNS and interface configuration, and that %2$s has functional Internet connectivity.'), $xmlrpc_base_url, $g['product_name']) . "\n";
+ return;
+ }
+ $todo = array();
foreach($config['installedpackages']['package'] as $package)
$todo[] = array('name' => $package['name'], 'version' => $package['version']);
- echo "One moment please, reinstalling packages...\n";
- echo " >>> Trying to fetch package info...";
- $pkg_info = get_pkg_info();
- if ($pkg_info) {
- echo " Done.\n";
- } else {
- $xmlrpc_base_url = isset($config['system']['altpkgrepo']['enable']) ? $config['system']['altpkgrepo']['xmlrpcbaseurl'] : $g['xmlrpcbaseurl'];
- echo "\n" . sprintf(gettext(' >>> Unable to communicate with %1$s. Please verify DNS and interface configuration, and that %2$s has functional Internet connectivity.'), $xmlrpc_base_url, $g['product_name']) . "\n";
- return;
- }
- if(is_array($todo)) {
foreach($todo as $pkgtodo) {
$static_output = "";
if($pkgtodo['name']) {
uninstall_package($pkgtodo['name']);
install_package($pkgtodo['name']);
- $pkg_id++;
}
}
- }
+ } else
+ echo "No packages are installed.";
}
function stop_packages() {
@@ -1281,8 +1314,9 @@ function stop_packages() {
if (is_array($config['installedpackages']['package'])) {
foreach($config['installedpackages']['package'] as $package) {
echo " Stopping package {$package['name']}...";
- stop_service($package['name']);
- unset($rcfiles[RCFILEPREFIX . $package['name'] . ".sh"]);
+ $internal_name = get_pkg_internal_name($package);
+ stop_service($internal_name);
+ unset($rcfiles[RCFILEPREFIX . strtolower($internal_name) . ".sh"]);
echo "done.\n";
}
}
@@ -1299,4 +1333,4 @@ function stop_packages() {
}
}
-?>
+?> \ No newline at end of file
diff --git a/etc/inc/priv.defs.inc b/etc/inc/priv.defs.inc
index 537971f..ce246d9 100644
--- a/etc/inc/priv.defs.inc
+++ b/etc/inc/priv.defs.inc
@@ -702,7 +702,7 @@ $priv_list['page-services-captiveportal-editallowedhostnames'] = array();
$priv_list['page-services-captiveportal-editallowedhostnames']['name'] = gettext("WebCfg - Services: Captive portal: Edit Allowed IPs page");
$priv_list['page-services-captiveportal-editallowedhostnames']['descr'] = gettext("Allow access to the 'Services: Captive portal: Edit Allowed IPs' page.");
$priv_list['page-services-captiveportal-editallowedhostnames']['match'] = array();
-$priv_list['page-services-captiveportal-editallowedhostnames']['match'][] = "services_captiveportal_hostname_edit.php*";
+$priv_list['page-services-captiveportal-editallowedhostnames']['match'][] = "services_captiveportal_ip_edit.php*";
$priv_list['page-services-captiveportal-allowedips'] = array();
$priv_list['page-services-captiveportal-allowedips']['name'] = gettext("WebCfg - Services: Captive portal: Allowed IPs page");
@@ -728,6 +728,18 @@ $priv_list['page-services-captiveportal-editmacaddresses']['descr'] = gettext("A
$priv_list['page-services-captiveportal-editmacaddresses']['match'] = array();
$priv_list['page-services-captiveportal-editmacaddresses']['match'][] = "services_captiveportal_mac_edit.php*";
+$priv_list['page-services-captiveportal-macaddresses'] = array();
+$priv_list['page-services-captiveportal-macaddresses']['name'] = gettext("WebCfg - Services: Captive portal: Allowed Hostnames page");
+$priv_list['page-services-captiveportal-macaddresses']['descr'] = gettext("Allow access to the 'Services: Captive portal: Allowed Hostnames' page.");
+$priv_list['page-services-captiveportal-macaddresses']['match'] = array();
+$priv_list['page-services-captiveportal-macaddresses']['match'][] = "services_captiveportal_hostname.php*";
+
+$priv_list['page-services-captiveportal-editmacaddresses'] = array();
+$priv_list['page-services-captiveportal-editmacaddresses']['name'] = gettext("WebCfg - Services: Captive portal: Edit Allowed Hostnames page");
+$priv_list['page-services-captiveportal-editmacaddresses']['descr'] = gettext("Allow access to the 'Services: Captive portal: Allowed Hostnames' page.");
+$priv_list['page-services-captiveportal-editmacaddresses']['match'] = array();
+$priv_list['page-services-captiveportal-editmacaddresses']['match'][] = "services_captiveportal_hostname_edit.php*";
+
$priv_list['page-services-captiveportal-vouchers'] = array();
$priv_list['page-services-captiveportal-vouchers']['name'] = gettext("WebCfg - Services: Captive portal Vouchers page");
$priv_list['page-services-captiveportal-vouchers']['descr'] = gettext("Allow access to the 'Services: Captive portal Vouchers' page.");
@@ -1121,8 +1133,8 @@ $priv_list['page-system-usermanager-passwordmg']['match'] = array();
$priv_list['page-system-usermanager-passwordmg']['match'][] = "system_usermanager_passwordmg.php*";
$priv_list['page-system-usermanager-settings'] = array();
-$priv_list['page-system-usermanager-settings']['name'] = gettext("WebCfg - System: User manager: settings page");
-$priv_list['page-system-usermanager-settings']['descr'] = gettext("Allow access to the 'System: User manager: settings' page.");
+$priv_list['page-system-usermanager-settings']['name'] = gettext("WebCfg - System: User Manager: settings page");
+$priv_list['page-system-usermanager-settings']['descr'] = gettext("Allow access to the 'System: User Manager: settings' page.");
$priv_list['page-system-usermanager-settings']['match'] = array();
$priv_list['page-system-usermanager-settings']['match'][] = "system_usermanager_settings.php*";
diff --git a/etc/inc/priv/user.priv.inc b/etc/inc/priv/user.priv.inc
index 7c943cd..0b94688 100644
--- a/etc/inc/priv/user.priv.inc
+++ b/etc/inc/priv/user.priv.inc
@@ -2,6 +2,10 @@
global $priv_list;
+$priv_list['user-services-captiveportal-login'] = array();
+$priv_list['user-services-captiveportal-login']['name'] = gettext("User - Services - Captive portal login");
+$priv_list['user-services-captiveportal-login']['descr'] = gettext("Indicates whether the user is able to login on the captive portal.");
+
$priv_list['page-help-all'] = array();
$priv_list['page-help-all']['name'] = "WebCfg - Help pages";
$priv_list['page-help-all']['descr'] = "Show all items on help menu";
@@ -67,4 +71,4 @@ $priv_list['user-pppoe-dialin'] = array();
$priv_list['user-pppoe-dialin']['name'] = "User - VPN - PPPOE Dialin";
$priv_list['user-pppoe-dialin']['descr'] = "Indicates whether the user is allowed to dial in via PPPOE";
-?> \ No newline at end of file
+?>
diff --git a/etc/inc/radius.inc b/etc/inc/radius.inc
index 5f0a5ea..24d15b6 100644
--- a/etc/inc/radius.inc
+++ b/etc/inc/radius.inc
@@ -43,12 +43,12 @@
* Adding of VENDOR Bay Networks (Nortel)
* Adding of VENDOR Nomadix
* Adding of VENDOR WISPr (Wi-Fi Alliance)
- * Adding of VENDOR ChilliSpot (bandwidth-attributes only)
+ * Adding of VENDOR ChilliSpot (bandwidth-attributes only)
*/
/*
- pfSense_MODULE: auth
+ pfSense_MODULE: auth
*/
require_once("PEAR.inc");
@@ -296,21 +296,23 @@ class Auth_RADIUS extends PEAR {
*/
function putStandardAttributes()
{
- global $g;
+ global $config, $cpzone;
- if (!function_exists("getNasIp"))
- $ipaddr = "0.0.0.0";
- else
- $ipaddr = getNasIP();
+ if (!function_exists("getNasIp")) {
+ $ipaddr = "0.0.0.0";
+ } else {
+ $ipaddr = getNasIP();
+ }
// Add support for sending NAS-IP-Address, set this explicitly as an ip_addr
$this->putAttribute(RADIUS_NAS_IP_ADDRESS, $ipaddr, "addr");
// Add support for sending NAS-Identifier
- $nasId = "";
- exec("/bin/hostname", $nasId);
- if(!$nasId[0])
- $nasId[0] = "{$g['product_name']}";
- $this->putAttribute(RADIUS_NAS_IDENTIFIER, $nasId[0]);
+ if (empty($config["captiveportal"][$cpzone]["radiusnasid"])) {
+ $nasId = php_uname("n");
+ } else {
+ $nasId = $config["captiveportal"][$cpzone]["radiusnasid"];
+ }
+ $this->putAttribute(RADIUS_NAS_IDENTIFIER, $nasId);
}
/**
@@ -556,7 +558,7 @@ class Auth_RADIUS extends PEAR {
}
}
- if ($vendor == 1584) {
+ elseif ($vendor == 1584) {
switch ($attrv) {
case 102:
@@ -565,7 +567,7 @@ class Auth_RADIUS extends PEAR {
}
}
- if ($vendor == 3309) { /* RADIUS_VENDOR_NOMADIX */
+ elseif ($vendor == 3309) { /* RADIUS_VENDOR_NOMADIX */
switch ($attrv) {
case 1: /* RADIUS_NOMADIX_BW_UP */
@@ -592,58 +594,90 @@ class Auth_RADIUS extends PEAR {
}
}
- if ($vendor == 14122) { /* RADIUS_VENDOR_WISPr Wi-Fi Alliance */
-
- switch ($attrv) {
- case 1: /* WISPr-Location-ID */
- $this->attributes['location_id'] = radius_cvt_string($datav);
- break;
- case 2: /* WISPr-Location-Name */
- $this->attributes['location_name'] = radius_cvt_string($datav);
- break;
- case 3: /* WISPr-Logoff-URL */
- $this->attributes['url_logoff'] = radius_cvt_string($datav);
- break;
- case 4: /* WISPr-Redirection-URL */
- $this->attributes['url_redirection'] = radius_cvt_string($datav);
- break;
- case 5: /* WISPr-Bandwidth-Min-Up */
- $this->attributes['bw_up_min'] = radius_cvt_int($datav);
- break;
- case 6: /* WISPr-Bandwidth-Min-Down */
- $this->attributes['bw_down_min'] = radius_cvt_int($datav);
- break;
- case 7: /* WISPr-Bandwidth-Max-Up */
- $this->attributes['bw_up'] = radius_cvt_int($datav);
- break;
- case 8: /* WISPr-Bandwidth-Max-Down */
- $this->attributes['bw_down'] = radius_cvt_int($datav);
- break;
- case 9: /* WISPr-Session-Terminate-Time */
- $this->attributes['session_terminate_time'] = radius_cvt_string($datav);
- break;
- case 10: /* WISPr-Session-Terminate-End-Of-Day */
- $this->attributes['session_terminate_endofday'] = radius_cvt_int($datav);
- break;
- case 11: /* WISPr-Billing-Class-Of-Service */
- $this->attributes['billing_class_of_service'] = radius_cvt_string($datav);
- break;
- }
- }
-
- if ($vendor == 14559) { /* RADIUS_VENDOR_ChilliSpot */
- switch ($attrv) {
- case 4: /* ChilliSpot-Bandwidth-Max-Up */
- $this->attributes['bw_up'] = radius_cvt_int($datav);
- break;
- case 5: /* ChilliSpot-Bandwidth-Max-Down */
- $this->attributes['bw_down'] = radius_cvt_int($datav);
- break;
- }
- }
+ elseif ($vendor == 14122) { /* RADIUS_VENDOR_WISPr Wi-Fi Alliance */
+
+ switch ($attrv) {
+ case 1: /* WISPr-Location-ID */
+ $this->attributes['location_id'] = radius_cvt_string($datav);
+ break;
+ case 2: /* WISPr-Location-Name */
+ $this->attributes['location_name'] = radius_cvt_string($datav);
+ break;
+ case 3: /* WISPr-Logoff-URL */
+ $this->attributes['url_logoff'] = radius_cvt_string($datav);
+ break;
+ case 4: /* WISPr-Redirection-URL */
+ $this->attributes['url_redirection'] = radius_cvt_string($datav);
+ break;
+ case 5: /* WISPr-Bandwidth-Min-Up */
+ $this->attributes['bw_up_min'] = radius_cvt_int($datav);
+ break;
+ case 6: /* WISPr-Bandwidth-Min-Down */
+ $this->attributes['bw_down_min'] = radius_cvt_int($datav);
+ break;
+ case 7: /* WISPr-Bandwidth-Max-Up */
+ $this->attributes['bw_up'] = radius_cvt_int($datav);
+ break;
+ case 8: /* WISPr-Bandwidth-Max-Down */
+ $this->attributes['bw_down'] = radius_cvt_int($datav);
+ break;
+ case 9: /* WISPr-Session-Terminate-Time */
+ $this->attributes['session_terminate_time'] = radius_cvt_string($datav);
+ break;
+ case 10: /* WISPr-Session-Terminate-End-Of-Day */
+ $this->attributes['session_terminate_endofday'] = radius_cvt_int($datav);
+ break;
+ case 11: /* WISPr-Billing-Class-Of-Service */
+ $this->attributes['billing_class_of_service'] = radius_cvt_string($datav);
+ break;
+ }
+ }
+
+ elseif ($vendor == 14559) { /* RADIUS_VENDOR_ChilliSpot */
+ switch ($attrv) {
+ case 4: /* ChilliSpot-Bandwidth-Max-Up */
+ $this->attributes['bw_up'] = radius_cvt_int($datav);
+ break;
+ case 5: /* ChilliSpot-Bandwidth-Max-Down */
+ $this->attributes['bw_down'] = radius_cvt_int($datav);
+ break;
+ }
+ }
+
+ elseif ($vendor == 8744) { /* Colubris / HP MSM wireless */
+ //documented at http://bizsupport1.austin.hp.com/bc/docs/support/SupportManual/c02704528/c02704528.pdf pg 15-67
+ if ($attrv == 0) { /* Colubris AV-Pair */
+ $datav = explode('=', $datav);
+ switch ($datav[0]) {
+ case 'max-input-rate':
+ // "Controls the data rate [kbps] at which traffic can be transferred from the user to the [router]."
+ $this->attributes['bw_up'] = radius_cvt_int($datav[1]);
+ break;
+ case 'max-output-rate':
+ //"Controls the data rate [kbps] at which traffic can be transferred from the [router] to the user."
+ $this->attributes['bw_down'] = radius_cvt_int($datav[1]);
+ break;
+ case 'max-input-octets':
+ $this->attributes['maxbytesup'] = radius_cvt_int($datav[1]);
+ break;
+ case 'max-output-octets':
+ $this->attributes['maxbytesdown'] = radius_cvt_int($datav[1]);
+ break;
+ case 'welcome-url':
+ $this->attributes['url_redirection'] = radius_cvt_string($datav[1]);
+ break;
+ case 'goodbye-url':
+ $this->attributes['url_logoff'] = radius_cvt_string($datav[1]);
+ break;
+ }
+ }
+ }
break;
+ case 85: /* Acct-Interim-Interval: RFC 2869 */
+ $this->attributes['interim_interval'] = radius_cvt_int($datav[1]);
+ break;
}
}
@@ -1061,13 +1095,14 @@ class Auth_RADIUS_Acct extends Auth_RADIUS
}
$this->putAttribute(RADIUS_ACCT_STATUS_TYPE, $this->status_type);
//if (isset($this->session_time) && $this->status_type == RADIUS_STOP) {
- if (isset($this->session_time)) {
+ if (isset($this->session_time)) {
$this->putAttribute(RADIUS_ACCT_SESSION_TIME, $this->session_time);
}
if (isset($this->authentic)) {
$this->putAttribute(RADIUS_ACCT_AUTHENTIC, $this->authentic);
}
+ $this->putStandardAttributes();
}
}
@@ -1126,4 +1161,38 @@ class Auth_RADIUS_Acct_Update extends Auth_RADIUS_Acct
var $status_type = RADIUS_UPDATE;
}
+/**
+ * class Auth_RADIUS_Acct_On
+ *
+ * Class for sending Accounting-On updates
+ *
+ * @package Auth_RADIUS
+ */
+class Auth_RADIUS_Acct_On extends Auth_RADIUS_Acct
+{
+ /**
+ * Defines the type of the accounting request.
+ * It is set to RADIUS_ACCOUNTING_ON by default in this class.
+ * @var integer
+ */
+ var $status_type = RADIUS_ACCOUNTING_ON;
+}
+
+/**
+ * class Auth_RADIUS_Acct_Off
+ *
+ * Class for sending Accounting-Off updates
+ *
+ * @package Auth_RADIUS
+ */
+class Auth_RADIUS_Acct_Off extends Auth_RADIUS_Acct
+{
+ /**
+ * Defines the type of the accounting request.
+ * It is set to RADIUS_ACCOUNTING_OFF by default in this class.
+ * @var integer
+ */
+ var $status_type = RADIUS_ACCOUNTING_OFF;
+}
+
?>
diff --git a/etc/inc/rrd.inc b/etc/inc/rrd.inc
index 31b4b6d..2566b8d 100644
--- a/etc/inc/rrd.inc
+++ b/etc/inc/rrd.inc
@@ -78,6 +78,10 @@ function restore_rrd() {
}
unlink($xml_file);
}
+ /* 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'] == "pfSense") && !isset($config['system']['use_mfs_tmpvar'])) {
+ unlink_if_exists("{$g['cf_conf_path']}/rrd.tgz");
+ }
return true;
}
return false;
@@ -104,7 +108,7 @@ function migrate_rrd_format($rrdoldxml, $rrdnewxml) {
$numrranew = count($rrdnewxml['rra']);
$numdsnew = count($rrdnewxml['ds']);
log_error(sprintf(gettext('Import RRD has %1$s DS values and %2$s RRA databases, new format RRD has %3$s DS values and %4$s RRA databases'), $numdsold, $numrraold, $numdsnew ,$numrranew));
-
+
/* add data sources not found in the old array from the new array */
$i = 0;
foreach($rrdnewxml['ds'] as $ds) {
@@ -194,7 +198,7 @@ function migrate_rrd_format($rrdoldxml, $rrdnewxml) {
function enable_rrd_graphing() {
global $config, $g, $altq_list_queues;
- if($g['booting'])
+ if($g['booting'])
echo gettext("Generating RRD graphs...");
$rrddbpath = "/var/db/rrd/";
@@ -213,7 +217,6 @@ function enable_rrd_graphing() {
$vpnusers = "-vpnusers.rrd";
$captiveportalconcurrent = "-concurrent.rrd";
$captiveportalloggedin = "-loggedin.rrd";
- $captiveportaltotalusers = "-totalusers.rrd";
$rrdtool = "/usr/bin/nice -n20 /usr/local/bin/rrdtool";
$netstat = "/usr/bin/netstat";
@@ -271,15 +274,16 @@ function enable_rrd_graphing() {
chown($rrddbpath, "nobody");
if ($g['booting']) {
- if ($g['platform'] != "pfSense") {
- restore_rrd();
- }
+ restore_rrd();
}
/* db update script */
$rrdupdatesh = "#!/bin/sh\n";
$rrdupdatesh .= "\n";
$rrdupdatesh .= "export TERM=dumb\n";
+ $rrdupdatesh .= "\n";
+ $rrdupdatesh .= 'echo $$ > ' . $g['varrun_path'] . '/updaterrd.sh.pid';
+ $rrdupdatesh .= "\n";
$rrdupdatesh .= "counter=1\n";
$rrdupdatesh .= "while [ \"\$counter\" -ne 0 ]\n";
$rrdupdatesh .= "do\n";
@@ -321,6 +325,7 @@ function enable_rrd_graphing() {
$rrdcreate .= "RRA:AVERAGE:0.5:720:3000 ";
create_new_rrd($rrdcreate);
+ unset($rrdcreate);
}
/* enter UNKNOWN values in the RRD so it knows we rebooted. */
@@ -353,6 +358,7 @@ function enable_rrd_graphing() {
$rrdcreate .= "RRA:AVERAGE:0.5:720:3000 ";
create_new_rrd($rrdcreate);
+ unset($rrdcreate);
}
/* enter UNKNOWN values in the RRD so it knows we rebooted. */
@@ -379,8 +385,9 @@ function enable_rrd_graphing() {
$rrdcreate .= "RRA:AVERAGE:0.5:5:1000 ";
$rrdcreate .= "RRA:AVERAGE:0.5:60:1000 ";
$rrdcreate .= "RRA:AVERAGE:0.5:720:3000 ";
-
+
create_new_rrd($rrdcreate);
+ unset($rrdcreate);
}
/* enter UNKNOWN values in the RRD so it knows we rebooted. */
@@ -403,8 +410,9 @@ function enable_rrd_graphing() {
$rrdcreate .= "RRA:AVERAGE:0.5:5:1000 ";
$rrdcreate .= "RRA:AVERAGE:0.5:60:1000 ";
$rrdcreate .= "RRA:AVERAGE:0.5:720:3000 ";
-
+
create_new_rrd($rrdcreate);
+ unset($rrdcreate);
}
/* enter UNKNOWN values in the RRD so it knows we rebooted. */
@@ -470,6 +478,7 @@ function enable_rrd_graphing() {
$rrdcreate .= "RRA:AVERAGE:0.5:720:3000 ";
create_new_rrd($rrdcreate);
+ unset($rrdcreate);
}
if (!file_exists("$rrddbpath$ifname$queuesdrop")) {
@@ -486,6 +495,7 @@ function enable_rrd_graphing() {
$rrdcreate .= "RRA:AVERAGE:0.5:720:3000 ";
create_new_rrd($rrdcreate);
+ unset($rrdcreate);
}
if($g['booting']) {
@@ -552,6 +562,7 @@ function enable_rrd_graphing() {
$rrdcreate .= "RRA:AVERAGE:0.5:60:1000 ";
$rrdcreate .= "RRA:AVERAGE:0.5:720:3000 ";
create_new_rrd($rrdcreate);
+ unset($rrdcreate);
}
/* enter UNKNOWN values in the RRD so it knows we rebooted. */
@@ -585,6 +596,7 @@ function enable_rrd_graphing() {
$rrdcreate .= "RRA:AVERAGE:0.5:720:3000 ";
create_new_rrd($rrdcreate);
+ unset($rrdcreate);
}
/* enter UNKNOWN values in the RRD so it knows we rebooted. */
@@ -619,6 +631,7 @@ function enable_rrd_graphing() {
$rrdcreate .= "RRA:AVERAGE:0.5:720:3000 ";
create_new_rrd($rrdcreate);
+ unset($rrdcreate);
}
/* enter UNKNOWN values in the RRD so it knows we rebooted. */
@@ -656,6 +669,7 @@ function enable_rrd_graphing() {
$rrdcreate .= "RRA:MAX:0.5:720:3000";
create_new_rrd($rrdcreate);
+ unset($rrdcreate);
}
/* enter UNKNOWN values in the RRD so it knows we rebooted. */
@@ -668,7 +682,7 @@ function enable_rrd_graphing() {
$rrdupdatesh .= " $awk '{getline active;getline inactive;getline free;getline cache;getline wire;printf ";
$rrdupdatesh .= "((active/$0) * 100)\":\"((inactive/$0) * 100)\":\"((free/$0) * 100)\":\"((cache/$0) * 100)\":\"(wire/$0 * 100)}'`\n";
$rrdupdatesh .= "$rrdtool update $rrddbpath$ifname$mem N:\${MEM}\n";
-
+
/* End Memory statistics */
/* SPAMD, set up the spamd rrd file */
@@ -693,6 +707,7 @@ function enable_rrd_graphing() {
$rrdcreate .= "RRA:MAX:0.5:720:3000 ";
create_new_rrd($rrdcreate);
+ unset($rrdcreate);
}
$rrdupdatesh .= "\n";
@@ -704,77 +719,85 @@ function enable_rrd_graphing() {
/* End System statistics */
/* Captive Portal statistics, set up the rrd file */
- if(isset($config['captiveportal']['enable'])) {
- $ifname= "captiveportal";
- if (!file_exists("$rrddbpath$ifname$captiveportalconcurrent")) {
- $rrdcreate = "$rrdtool create $rrddbpath$ifname$captiveportalconcurrent --step $rrdcaptiveportalinterval ";
- $rrdcreate .= "DS:concurrentusers:GAUGE:$captiveportalvalid:0:10000 ";
- $rrdcreate .= "RRA:AVERAGE:0.5:1:1000 ";
- $rrdcreate .= "RRA:AVERAGE:0.5:5:1000 ";
- $rrdcreate .= "RRA:AVERAGE:0.5:60:1000 ";
- $rrdcreate .= "RRA:AVERAGE:0.5:720:3000 ";
- $rrdcreate .= "RRA:MIN:0.5:1:1000 ";
- $rrdcreate .= "RRA:MIN:0.5:5:1000 ";
- $rrdcreate .= "RRA:MIN:0.5:60:1000 ";
- $rrdcreate .= "RRA:MIN:0.5:720:3000 ";
- $rrdcreate .= "RRA:MAX:0.5:1:1000 ";
- $rrdcreate .= "RRA:MAX:0.5:5:1000 ";
- $rrdcreate .= "RRA:MAX:0.5:60:1000 ";
- $rrdcreate .= "RRA:MAX:0.5:720:3000 ";
- $rrdcreate .= "RRA:LAST:0.5:1:1000 ";
- $rrdcreate .= "RRA:LAST:0.5:5:1000 ";
- $rrdcreate .= "RRA:LAST:0.5:60:1000 ";
- $rrdcreate .= "RRA:LAST:0.5:720:3000 ";
+ if(is_array($config['captiveportal'])) {
+ foreach ($config['captiveportal'] as $cpkey => $cp) {
+ if (!isset($cp['enable']))
+ continue;
+
+ $ifname= "captiveportal";
+ $concurrent_filename = $rrddbpath . $ifname . '-' . $cpkey . $captiveportalconcurrent;
+ if (!file_exists("$concurrent_filename")) {
+ $rrdcreate = "$rrdtool create $concurrent_filename --step $rrdcaptiveportalinterval ";
+ $rrdcreate .= "DS:concurrentusers:GAUGE:$captiveportalvalid:0:10000 ";
+ $rrdcreate .= "RRA:AVERAGE:0.5:1:1000 ";
+ $rrdcreate .= "RRA:AVERAGE:0.5:5:1000 ";
+ $rrdcreate .= "RRA:AVERAGE:0.5:60:1000 ";
+ $rrdcreate .= "RRA:AVERAGE:0.5:720:3000 ";
+ $rrdcreate .= "RRA:MIN:0.5:1:1000 ";
+ $rrdcreate .= "RRA:MIN:0.5:5:1000 ";
+ $rrdcreate .= "RRA:MIN:0.5:60:1000 ";
+ $rrdcreate .= "RRA:MIN:0.5:720:3000 ";
+ $rrdcreate .= "RRA:MAX:0.5:1:1000 ";
+ $rrdcreate .= "RRA:MAX:0.5:5:1000 ";
+ $rrdcreate .= "RRA:MAX:0.5:60:1000 ";
+ $rrdcreate .= "RRA:MAX:0.5:720:3000 ";
+ $rrdcreate .= "RRA:LAST:0.5:1:1000 ";
+ $rrdcreate .= "RRA:LAST:0.5:5:1000 ";
+ $rrdcreate .= "RRA:LAST:0.5:60:1000 ";
+ $rrdcreate .= "RRA:LAST:0.5:720:3000 ";
- create_new_rrd($rrdcreate);
- }
+ create_new_rrd($rrdcreate);
+ unset($rrdcreate);
+ }
- /* enter UNKNOWN values in the RRD so it knows we rebooted. */
- if($g['booting']) {
- mwexec("$rrdtool update $rrddbpath$ifname$captiveportalconcurrent N:U");
- }
-
- /* the Captive Portal stats gathering function. */
- $rrdupdatesh .= "\n";
- $rrdupdatesh .= "# polling Captive Portal for number of concurrent users\n";
- $rrdupdatesh .= "CP=`$php -q $captiveportal_gather concurrent`\n";
- $rrdupdatesh .= "$rrdtool update $rrddbpath$ifname$captiveportalconcurrent \${CP}\n";
-
- $ifname= "captiveportal";
- if (!file_exists("$rrddbpath$ifname$captiveportalloggedin")) {
- $rrdcreate = "$rrdtool create $rrddbpath$ifname$captiveportalloggedin --step $rrdcaptiveportalinterval ";
- $rrdcreate .= "DS:loggedinusers:GAUGE:$captiveportalvalid:0:10000 ";
- $rrdcreate .= "RRA:AVERAGE:0.5:1:1000 ";
- $rrdcreate .= "RRA:AVERAGE:0.5:5:1000 ";
- $rrdcreate .= "RRA:AVERAGE:0.5:60:1000 ";
- $rrdcreate .= "RRA:AVERAGE:0.5:720:3000 ";
- $rrdcreate .= "RRA:MIN:0.5:1:1000 ";
- $rrdcreate .= "RRA:MIN:0.5:5:1000 ";
- $rrdcreate .= "RRA:MIN:0.5:60:1000 ";
- $rrdcreate .= "RRA:MIN:0.5:720:3000 ";
- $rrdcreate .= "RRA:MAX:0.5:1:1000 ";
- $rrdcreate .= "RRA:MAX:0.5:5:1000 ";
- $rrdcreate .= "RRA:MAX:0.5:60:1000 ";
- $rrdcreate .= "RRA:MAX:0.5:720:3000 ";
- $rrdcreate .= "RRA:LAST:0.5:1:1000 ";
- $rrdcreate .= "RRA:LAST:0.5:5:1000 ";
- $rrdcreate .= "RRA:LAST:0.5:60:1000 ";
- $rrdcreate .= "RRA:LAST:0.5:720:3000 ";
+ /* enter UNKNOWN values in the RRD so it knows we rebooted. */
+ if($g['booting']) {
+ mwexec("$rrdtool update $concurrent_filename N:U");
+ }
- create_new_rrd($rrdcreate);
- }
+ /* the Captive Portal stats gathering function. */
+ $rrdupdatesh .= "\n";
+ $rrdupdatesh .= "# polling Captive Portal for number of concurrent users\n";
+ $rrdupdatesh .= "CP=`$php -q $captiveportal_gather '$cpkey' $concurrent`\n";
+ $rrdupdatesh .= "$rrdtool update $concurrent_filename \${CP}\n";
+
+ $loggedin_filename = $rrddbpath . $ifname . '-' . $cpkey . $captiveportalloggedin;
+ if (!file_exists("$loggedin_filename")) {
+ $rrdcreate = "$rrdtool create $loggedin_filename --step $rrdcaptiveportalinterval ";
+ $rrdcreate .= "DS:loggedinusers:GAUGE:$captiveportalvalid:0:10000 ";
+ $rrdcreate .= "RRA:AVERAGE:0.5:1:1000 ";
+ $rrdcreate .= "RRA:AVERAGE:0.5:5:1000 ";
+ $rrdcreate .= "RRA:AVERAGE:0.5:60:1000 ";
+ $rrdcreate .= "RRA:AVERAGE:0.5:720:3000 ";
+ $rrdcreate .= "RRA:MIN:0.5:1:1000 ";
+ $rrdcreate .= "RRA:MIN:0.5:5:1000 ";
+ $rrdcreate .= "RRA:MIN:0.5:60:1000 ";
+ $rrdcreate .= "RRA:MIN:0.5:720:3000 ";
+ $rrdcreate .= "RRA:MAX:0.5:1:1000 ";
+ $rrdcreate .= "RRA:MAX:0.5:5:1000 ";
+ $rrdcreate .= "RRA:MAX:0.5:60:1000 ";
+ $rrdcreate .= "RRA:MAX:0.5:720:3000 ";
+ $rrdcreate .= "RRA:LAST:0.5:1:1000 ";
+ $rrdcreate .= "RRA:LAST:0.5:5:1000 ";
+ $rrdcreate .= "RRA:LAST:0.5:60:1000 ";
+ $rrdcreate .= "RRA:LAST:0.5:720:3000 ";
- /* enter UNKNOWN values in the RRD so it knows we rebooted. */
- if($g['booting']) {
- mwexec("$rrdtool update $rrddbpath$ifname$captiveportalloggedin N:U");
- }
+ create_new_rrd($rrdcreate);
+ unset($rrdcreate);
+ }
- /* the Captive Portal stats gathering function. */
- $rrdupdatesh .= "\n";
- $rrdupdatesh .= "# polling Captive Portal for number of logged in users\n";
- $rrdupdatesh .= "CP=`$php -q $captiveportal_gather loggedin`\n";
- $rrdupdatesh .= "$rrdtool update $rrddbpath$ifname$captiveportalloggedin \${CP}\n";
+ /* enter UNKNOWN values in the RRD so it knows we rebooted. */
+ if($g['booting']) {
+ mwexec("$rrdtool update $loggedin_filename N:U");
+ }
+
+ /* the Captive Portal stats gathering function. */
+ $rrdupdatesh .= "\n";
+ $rrdupdatesh .= "# polling Captive Portal for number of logged in users\n";
+ $rrdupdatesh .= "CP=`$php -q $captiveportal_gather $cpkey loggedin`\n";
+ $rrdupdatesh .= "$rrdtool update $loggedin_filename \${CP}\n";
+ }
}
$rrdupdatesh .= "sleep 60\n";
@@ -786,6 +809,8 @@ function enable_rrd_graphing() {
fwrite($fd, "$rrdupdatesh");
fclose($fd);
+ unset($rrdupdatesh);
+
/* kill off traffic collectors */
kill_traffic_collector();
@@ -802,14 +827,15 @@ function enable_rrd_graphing() {
chown($database, "nobody");
}
- if($g['booting'])
+ if($g['booting'])
echo gettext("done.") . "\n";
-
+
}
function kill_traffic_collector() {
- mwexec("killall rrdtool", true);
- mwexec("/bin/pkill -a -f updaterrd.sh", true);
+ global $g;
+
+ killbypid("{$g['varrun_path']}/updaterrd.sh.pid");
}
?>
diff --git a/etc/inc/service-utils.inc b/etc/inc/service-utils.inc
index 0b0ddd9..f920252 100644
--- a/etc/inc/service-utils.inc
+++ b/etc/inc/service-utils.inc
@@ -37,6 +37,12 @@
pfSense_BUILDER_BINARIES: /bin/pgrep /bin/sh /usr/bin/killall
pfSense_MODULE: utils
*/
+require_once("globals.inc");
+require_once("captiveportal.inc");
+require_once("openvpn.inc");
+require_once("ipsec.inc");
+require_once("vpn.inc");
+require_once("vslb.inc");
define("RCFILEPREFIX", "/usr/local/etc/rc.d/");
function write_rcfile($params) {
@@ -173,9 +179,8 @@ function restart_service($name) {
function is_pid_running($pidfile) {
if (!file_exists($pidfile))
return false;
- $running = shell_exec("/bin/pgrep -F {$pidfile} 2>/dev/null");
- return (!empty($running));
+ return (isvalidpid($pidfile));
}
function is_dhcp_running($interface) {
@@ -192,6 +197,17 @@ function restart_service_if_running($service) {
return;
}
+function is_service_enabled($service_name) {
+ global $config;
+ if ($service_name == "")
+ return false;
+ if (isset($config['installedpackages'][$service_name]['config'][0]['enable']) &&
+ ((empty($config['installedpackages'][$service_name]['config'][0]['enable'])) ||
+ ($config['installedpackages'][$service_name]['config'][0]['enable'] === 'off')))
+ return false;
+ return true;
+}
+
function is_service_running($service, $ps = "") {
global $config;
@@ -409,19 +425,20 @@ function get_service_status_icon($service, $withtext = true, $smallicon = false)
$output = "";
if(get_service_status($service)) {
$statustext = gettext("Running");
- $output .= '<td class="listr"><center>' . "\n";
+ $output .= '<td class="listr" align="center">' . "\n";
$output .= "<img style=\"vertical-align:middle\" title=\"" . sprintf(gettext("%s Service is"),$service["name"]) . " {$statustext}\" src=\"/themes/" . $g["theme"] . "/images/icons/";
$output .= ($smallicon) ? "icon_pass.gif" : "icon_service_running.gif";
- $output .= "\">";
+ $output .= "\" alt=\"status\" />";
if ($withtext)
$output .= "&nbsp;&nbsp;" . $statustext;
$output .= "</td>\n";
} else {
- $statustext = gettext("Stopped");
- $output .= '<td class="listbg"><center>' . "\n";
+ $service_enabled = is_service_enabled($service['name']);
+ $statustext = ($service_enabled) ? gettext("Stopped") : gettext("Disabled");
+ $output .= '<td class="listbg" align="center">' . "\n";
$output .= "<img style=\"vertical-align:middle\" title=\"" . sprintf(gettext("%s Service is"),$service["name"]) . " {$statustext}\" src=\"/themes/" . $g["theme"] . "/images/icons/";
$output .= ($smallicon) ? "icon_block.gif" : "icon_service_stopped.gif";
- $output .= "\">";
+ $output .= "\" alt=\"status\" />";
if ($withtext)
$output .= "&nbsp;&nbsp;" . "<font color=\"white\">{$statustext}</font>";
$output .= "</td>\n";
@@ -436,40 +453,208 @@ function get_service_control_links($service, $addname = false) {
if(get_service_status($service)) {
switch ($service['name']) {
case "openvpn":
- $output .= "<a href='status_services.php?mode=restartservice&service={$service['name']}&vpnmode={$service['mode']}&id={$service['vpnid']}'>";
+ $output .= "<a href='status_services.php?mode=restartservice&amp;service={$service['name']}&amp;vpnmode={$service['mode']}&amp;id={$service['vpnid']}'>";
break;
case "captiveportal":
- $output .= "<a href='status_services.php?mode=restartservice&service={$service['name']}&zone={$service['zone']}'>";
+ $output .= "<a href='status_services.php?mode=restartservice&amp;service={$service['name']}&amp;zone={$service['zone']}'>";
break;
default:
- $output .= "<a href='status_services.php?mode=restartservice&service={$service['name']}'>";
+ $output .= "<a href='status_services.php?mode=restartservice&amp;service={$service['name']}'>";
}
- $output .= "<img style=\"vertical-align:middle\" title='" . sprintf(gettext("Restart %sService"),$stitle) . "' border='0' src='./themes/".$g['theme']."/images/icons/icon_service_restart.gif'></a>\n";
+ $output .= "<img style=\"vertical-align:middle\" title='" . sprintf(gettext("Restart %sService"),$stitle) . "' border='0' src='./themes/".$g['theme']."/images/icons/icon_service_restart.gif' alt='restart' /></a>\n";
switch ($service['name']) {
case "openvpn":
- $output .= "<a href='status_services.php?mode=stopservice&service={$service['name']}&vpnmode={$service['mode']}&id={$service['vpnid']}'>";
+ $output .= "<a href='status_services.php?mode=stopservice&amp;service={$service['name']}&amp;vpnmode={$service['mode']}&amp;id={$service['vpnid']}'>";
break;
case "captiveportal":
- $output .= "<a href='status_services.php?mode=stopservice&service={$service['name']}&zone={$service['zone']}'>";
+ $output .= "<a href='status_services.php?mode=stopservice&amp;service={$service['name']}&amp;zone={$service['zone']}'>";
break;
default:
- $output .= "<a href='status_services.php?mode=stopservice&service={$service['name']}'>";
+ $output .= "<a href='status_services.php?mode=stopservice&amp;service={$service['name']}'>";
}
- $output .= "<img style=\"vertical-align:middle\" title='" . sprintf(gettext("Stop %sService"),$stitle) . "' border='0' src='./themes/".$g['theme']."/images/icons/icon_service_stop.gif'>";
+ $output .= "<img style=\"vertical-align:middle\" title='" . sprintf(gettext("Stop %sService"),$stitle) . "' border='0' src='./themes/".$g['theme']."/images/icons/icon_service_stop.gif' alt='stop' />";
$output .= "</a>";
} else {
+ $service_enabled = is_service_enabled($service['name']);
switch ($service['name']) {
case "openvpn":
- $output .= "<a href='status_services.php?mode=startservice&service={$service['name']}&vpnmode={$service['mode']}&id={$service['vpnid']}'>";
+ $output .= "<a href='status_services.php?mode=startservice&amp;service={$service['name']}&amp;vpnmode={$service['mode']}&amp;id={$service['vpnid']}'>";
break;
case "captiveportal":
- $output .= "<a href='status_services.php?mode=startservice&service={$service['name']}&zone={$service['zone']}'>";
+ $output .= "<a href='status_services.php?mode=startservice&amp;service={$service['name']}&amp;zone={$service['zone']}'>";
break;
default:
- $output .= "<a href='status_services.php?mode=startservice&service={$service['name']}'>";
+ if ($service_enabled)
+ $output .= "<a href='status_services.php?mode=startservice&amp;service={$service['name']}'>";
}
- $output .= "<img style=\"vertical-align:middle\" title='" . sprintf(gettext("Start %sService"),$stitle) . "' border='0' src='./themes/".$g['theme']."/images/icons/icon_service_start.gif'></a>\n";
+ if ($service_enabled)
+ $output .= "<img style=\"vertical-align:middle\" title='" . sprintf(gettext("Start %sService"),$stitle) . "' border='0' src='./themes/".$g['theme']."/images/icons/icon_service_start.gif' alt='start' /></a>\n";
}
return $output;
}
-?> \ No newline at end of file
+
+function service_control_start($name, $extras) {
+ global $g;
+ switch($name) {
+ case 'radvd':
+ services_radvd_configure();
+ break;
+ case 'captiveportal':
+ $zone = $extras['zone'];
+ captiveportal_init_webgui_zonename($zone);
+ break;
+ case 'ntpd':
+ case 'openntpd':
+ system_ntp_configure();
+ break;
+ case 'bsnmpd':
+ services_snmpd_configure();
+ break;
+ case 'dnsmasq':
+ services_dnsmasq_configure();
+ break;
+ case 'dhcpd':
+ services_dhcpd_configure();
+ break;
+ case 'igmpproxy':
+ services_igmpproxy_configure();
+ break;
+ case 'miniupnpd':
+ upnp_action('start');
+ break;
+ case 'racoon':
+ vpn_ipsec_force_reload();
+ break;
+ case 'openvpn':
+ $vpnmode = $extras['vpnmode'];
+ if (($vpnmode == "server") || ($vpnmode == "client")) {
+ $id = $extras['id'];
+ $configfile = "{$g['varetc_path']}/openvpn/{$vpnmode}{$id}.conf";
+ if (file_exists($configfile))
+ openvpn_restart_by_vpnid($vpnmode, $id);
+ }
+ break;
+ case 'relayd':
+ relayd_configure();
+ break;
+ default:
+ start_service($name);
+ break;
+ }
+ return sprintf(gettext("%s has been started."),htmlspecialchars($name));
+}
+function service_control_stop($name, $extras) {
+ global $g;
+ switch($name) {
+ case 'radvd':
+ killbypid("{$g['varrun_path']}/radvd.pid");
+ break;
+ case 'captiveportal':
+ $zone = $extras['zone'];
+ killbypid("{$g['varrun_path']}/lighty-{$zone}-CaptivePortal.pid");
+ killbypid("{$g['varrun_path']}/lighty-{$zone}-CaptivePortal-SSL.pid");
+ break;
+ case 'ntpd':
+ killbyname("ntpd");
+ break;
+ case 'openntpd':
+ killbyname("openntpd");
+ break;
+ case 'bsnmpd':
+ killbypid("{$g['varrun_path']}/snmpd.pid");
+ break;
+ case 'choparp':
+ killbyname("choparp");
+ break;
+ case 'dhcpd':
+ killbyname("dhcpd");
+ break;
+ case 'dhcrelay':
+ killbypid("{$g['varrun_path']}/dhcrelay.pid");
+ break;
+ case 'dnsmasq':
+ killbypid("{$g['varrun_path']}/dnsmasq.pid");
+ break;
+ case 'igmpproxy':
+ killbyname("igmpproxy");
+ break;
+ case 'miniupnpd':
+ upnp_action('stop');
+ break;
+ case 'sshd':
+ killbyname("sshd");
+ break;
+ case 'racoon':
+ exec("killall -9 racoon");
+ break;
+ case 'openvpn':
+ $vpnmode = $extras['vpnmode'];
+ if (($vpnmode == "server") or ($vpnmode == "client")) {
+ $id = $extras['id'];
+ $pidfile = "{$g['varrun_path']}/openvpn_{$vpnmode}{$id}.pid";
+ killbypid($pidfile);
+ }
+ break;
+ case 'relayd':
+ mwexec('pkill relayd');
+ break;
+ default:
+ stop_service($name);
+ break;
+ }
+ return sprintf(gettext("%s has been stopped."), htmlspecialchars($name));
+}
+function service_control_restart($name, $extras) {
+ global $g;
+ switch($name) {
+ case 'radvd':
+ services_radvd_configure();
+ break;
+ case 'captiveportal':
+ $zone = $extras['zone'];
+ killbypid("{$g['varrun_path']}/lighty-{$zone}-CaptivePortal.pid");
+ killbypid("{$g['varrun_path']}/lighty-{$zone}-CaptivePortal-SSL.pid");
+ captiveportal_init_webgui_zonename($zone);
+ break;
+ case 'ntpd':
+ case 'openntpd':
+ system_ntp_configure();
+ break;
+ case 'bsnmpd':
+ services_snmpd_configure();
+ break;
+ case 'dnsmasq':
+ services_dnsmasq_configure();
+ break;
+ case 'dhcpd':
+ services_dhcpd_configure();
+ break;
+ case 'igmpproxy':
+ services_igmpproxy_configure();
+ break;
+ case 'miniupnpd':
+ upnp_action('restart');
+ break;
+ case 'racoon':
+ vpn_ipsec_force_reload();
+ break;
+ case 'openvpn':
+ $vpnmode = $extras['vpnmode'];
+ if ($vpnmode == "server" || $vpnmode == "client") {
+ $id = $extras['id'];
+ $configfile = "{$g['varetc_path']}/openvpn/{$vpnmode}{$id}.conf";
+ if (file_exists($configfile))
+ openvpn_restart_by_vpnid($vpnmode, $id);
+ }
+ break;
+ case 'relayd':
+ relayd_configure(true);
+ break;
+ default:
+ restart_service($name);
+ break;
+ }
+ return sprintf(gettext("%s has been restarted."),htmlspecialchars($name));
+}
+
+?>
diff --git a/etc/inc/services.inc b/etc/inc/services.inc
index d5c6b3a..8b8a6ff 100644
--- a/etc/inc/services.inc
+++ b/etc/inc/services.inc
@@ -1,12 +1,11 @@
<?php
-/* $Id$ */
/*
services.inc
part of the pfSense project (http://www.pfsense.com)
originally part of m0n0wall (http://m0n0.ch/wall)
Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
- Copyright (C) 2010 Ermal Lu�i
+ Copyright (C) 2010 Ermal Luci
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -35,11 +34,14 @@
pfSense_BUILDER_BINARIES: /usr/bin/killall /bin/pgrep /bin/sh /usr/local/sbin/dhcpd /usr/local/sbin/igmpproxy
pfSense_BUILDER_BINARIES: /sbin/ifconfig /usr/sbin/arp /sbin/ifconfig /usr/local/sbin/dnsmasq
pfSense_BUILDER_BINARIES: /usr/sbin/bsnmpd /sbin/route
- pfSense_BUILDER_BINARIES: /usr/local/sbin/miniupnpd /usr/sbin/radvd /usr/local/sbin/unbound
+ pfSense_BUILDER_BINARIES: /usr/local/sbin/miniupnpd /usr/sbin/radvd
pfSense_BUILDER_BINARIES: /usr/local/sbin/dhcleases6
pfSense_MODULE: utils
*/
+define('DYNDNS_PROVIDER_VALUES', 'dnsomatic dyndns dyndns-static dyndns-custom dhs dyns easydns noip noip-free ods zoneedit loopia freedns dnsexit opendns namecheap he-net he-net-tunnelbroker selfhost route53 custom');
+define('DYNDNS_PROVIDER_DESCRIPTIONS', 'DNS-O-Matic,DynDNS (dynamic),DynDNS (static),DynDNS (custom),DHS,DyNS,easyDNS,No-IP,No-IP (free),ODS.org,ZoneEdit,Loopia,freeDNS,DNSexit,OpenDNS,Namecheap,HE.net,HE.net Tunnelbroker,SelfHost,Route 53,Custom');
+
/* implement ipv6 route advertising deamon */
function services_radvd_configure() {
global $config, $g;
@@ -55,62 +57,64 @@ function services_radvd_configure() {
if (!is_array($config['dhcpdv6']))
$config['dhcpdv6'] = array();
- $dhcpdv6cfg = $config['dhcpdv6'];
$Iflist = get_configured_interface_list();
+ $Iflist = array_merge($Iflist, get_configured_pppoe_server_interfaces());
+ $carplist = get_configured_carp_interface_list();
$radvdconf = "# Automatically Generated, do not edit\n";
/* Process all links which need the router advertise daemon */
- $radvdnum = 0;
$radvdifs = array();
/* handle manually configured DHCP6 server settings first */
- foreach ($dhcpdv6cfg as $dhcpv6if => $dhcpv6ifconf) {
- if(!isset($config['interfaces'][$dhcpv6if]['enable']))
+ foreach ($config['dhcpdv6'] as $dhcpv6if => $dhcpv6ifconf) {
+ if (!is_array($config['interfaces'][$dhcpv6if]))
+ continue;
+ if (!isset($config['interfaces'][$dhcpv6if]['enable']))
continue;
- if(!isset($dhcpv6ifconf['ramode']))
+ if (!isset($dhcpv6ifconf['ramode']))
$dhcpv6ifconf['ramode'] = $dhcpv6ifconf['mode'];
/* are router advertisements enabled? */
- if($dhcpv6ifconf['ramode'] == "disabled")
+ if ($dhcpv6ifconf['ramode'] == "disabled")
continue;
- if(!isset($dhcpv6ifconf['rapriority']))
+ if (!isset($dhcpv6ifconf['rapriority']))
$dhcpv6ifconf['rapriority'] = "medium";
/* always start with the real parent, we override with the carp if later */
- $realif = get_real_interface($dhcpv6if);
$carpif = false;
/* check if we need to listen on a CARP interface */
- $carplist = get_configured_carp_interface_list();
- if($dhcpv6ifconf['rainterface'] <> "") {
- if($carplist[$dhcpv6ifconf['rainterface']] <> "") {
- $realif = $dhcpv6ifconf['rainterface'];
+ if (!empty($dhcpv6ifconf['rainterface'])) {
+ if (!empty($carplist[$dhcpv6ifconf['rainterface']])) {
+ $dhcpv6if = $dhcpv6ifconf['rainterface'];
$carpif = true;
}
}
- $ifcfgipv6 = get_interface_ipv6($dhcpv6if);
- if(!is_ipaddrv6($ifcfgipv6))
+ $realif = get_real_interface($dhcpv6if);
+ if (in_array($realif, $radvdifs))
continue;
+ $radvdifs[] = $realif;
- if(in_array($realif, $radvdifs))
+ $ifcfgipv6 = get_interface_ipv6($dhcpv6if);
+ if (!is_ipaddrv6($ifcfgipv6))
continue;
$ifcfgsnv6 = get_interface_subnetv6($dhcpv6if);
$subnetv6 = gen_subnetv6($ifcfgipv6, $ifcfgsnv6);
- $subnetmaskv6 = gen_subnet_mask($ifcfgsnv6);
- $radvdifs[] = $realif;
- $radvdifs[] = get_real_interface($realif);
-
$radvdconf .= "# Generated for DHCPv6 Server $dhcpv6if\n";
$radvdconf .= "interface {$realif} {\n";
$radvdconf .= "\tAdvSendAdvert on;\n";
$radvdconf .= "\tMinRtrAdvInterval 5;\n";
$radvdconf .= "\tMaxRtrAdvInterval 20;\n";
- $radvdconf .= "\tAdvLinkMTU 1280;\n";
+ $mtu = get_interface_mtu($realif);
+ if (is_numeric($mtu))
+ $radvdconf .= "\tAdvLinkMTU {$mtu};\n";
+ else
+ $radvdconf .= "\tAdvLinkMTU 1280;\n";
// $radvdconf .= "\tDeprecatePrefix on;\n";
switch($dhcpv6ifconf['rapriority']) {
case "low":
@@ -161,7 +165,7 @@ function services_radvd_configure() {
}
$radvdconf .= "\t};\n";
- if($carpif == true) {
+ if($carpif === true) {
$radvdconf .= "\troute ::/0 {\n";
$radvdconf .= "\t\tRemoveRoute off;\n";
$radvdconf .= "\t};\n";
@@ -173,31 +177,33 @@ function services_radvd_configure() {
/* add DNS servers */
$dnslist = array();
- if(!empty($dhcpv6ifconf['dnsserver'][0])) {
- foreach($dhcpv6ifconf['dnsserver'] as $server) {
- if(is_ipaddrv6($server))
+ if (isset($dhcpv6ifconf['rasamednsasdhcp6']) && is_array($dhcpv6ifconf['dnsserver']) && !empty($dhcpv6ifconf['dnsserver'])) {
+ foreach($dhcpv6ifconf['dnsserver'] as $server)
+ if (is_ipaddrv6($server))
+ $dnslist[] = $server;
+ } elseif (!isset($dhcpv6ifconf['rasamednsasdhcp6']) && isset($dhcpv6ifconf['radnsserver']) && is_array($dhcpv6ifconf['radnsserver'])) {
+ foreach($dhcpv6ifconf['radnsserver'] as $server)
+ if (is_ipaddrv6($server))
$dnslist[] = $server;
- }
} elseif (isset($config['dnsmasq']['enable'])) {
$dnslist[] = get_interface_ipv6($realif);
- } elseif (!empty($config['system']['dnsserver'][0])) {
+ } elseif (is_array($config['system']['dnsserver']) && !empty($config['system']['dnsserver'])) {
foreach($config['system']['dnsserver'] as $server) {
- if(is_ipaddrv6($server))
+ if (is_ipaddrv6($server))
$dnslist[] = $server;
}
}
- if(count($dnslist) > 0) {
+ if (count($dnslist) > 0) {
$dnsstring = implode(" ", $dnslist);
- if($dnsstring <> "")
+ if ($dnsstring <> "")
$radvdconf .= "\tRDNSS {$dnsstring} { };\n";
}
- if($dhcpv6ifconf['domain'] <> "") {
+ if (!empty($dhcpv6ifconf['domain'])) {
$radvdconf .= "\tDNSSL {$dhcpv6ifconf['domain']} { };\n";
- } elseif ($config['system']['domain'] <> "") {
+ } elseif (!empty($config['system']['domain'])) {
$radvdconf .= "\tDNSSL {$config['system']['domain']} { };\n";
}
$radvdconf .= "};\n";
- $radvdnum++;
}
/* handle DHCP-PD prefixes and 6RD dynamic interfaces */
@@ -218,22 +224,28 @@ function services_radvd_configure() {
$ifcfgsnv6 = get_interface_subnetv6($if);
$subnetv6 = gen_subnetv6($ifcfgipv6, $ifcfgsnv6);
- $subnetmaskv6 = gen_subnet_mask($ifcfgsnv6);
$trackif = $config['interfaces'][$if]['track6-interface'];
+ if (empty($config['interfaces'][$trackif]))
+ continue;
$radvdifs[] = $realif;
$autotype = $config['interfaces'][$trackif]['ipaddrv6'];
- log_error("configuring RA on {$if} for type {$autotype} radvd subnet {$subnetv6}/{$ifcfgsnv6}");
+ if ($g['debug'])
+ log_error("configuring RA on {$if} for type {$autotype} radvd subnet {$subnetv6}/{$ifcfgsnv6}");
$dnslist = array();
- if(is_ipaddrv6($subnetv6)) {
+ if(is_ipaddrv6($ifcfgipv6)) {
$radvdconf .= "# Generated config for {$autotype} delegation from {$trackif} on {$if}\n";
$radvdconf .= "interface {$realif} {\n";
$radvdconf .= "\tAdvSendAdvert on;\n";
$radvdconf .= "\tMinRtrAdvInterval 3;\n";
$radvdconf .= "\tMaxRtrAdvInterval 10;\n";
- $radvdconf .= "\tAdvLinkMTU 1280;\n";
+ $mtu = get_interface_mtu($realif);
+ if (is_numeric($mtu))
+ $radvdconf .= "\tAdvLinkMTU {$mtu};\n";
+ else
+ $radvdconf .= "\tAdvLinkMTU 1280;\n";
$radvdconf .= "\tAdvOtherConfigFlag on;\n";
$radvdconf .= "\t\tprefix {$subnetv6}/{$ifcfgsnv6} {\n";
$radvdconf .= "\t\tAdvOnLink on;\n";
@@ -244,79 +256,83 @@ function services_radvd_configure() {
/* add DNS servers */
$dnslist = array();
if (isset($config['dnsmasq']['enable'])) {
- $dnslist[] = $ifcfgipv6;
- } elseif (!empty($config['system']['dnsserver'][0])) {
+ $dnslist[] = $ifcfgipv6;
+ } elseif (is_array($config['system']['dnsserver']) && !empty($config['system']['dnsserver'])) {
foreach($config['system']['dnsserver'] as $server) {
if(is_ipaddrv6($server))
$dnslist[] = $server;
}
}
- if(count($dnslist) > 0) {
+ if (count($dnslist) > 0) {
$dnsstring = implode(" ", $dnslist);
- if($dnsstring <> "")
+ if (!empty($dnsstring))
$radvdconf .= "\tRDNSS {$dnsstring} { };\n";
}
- if ($config['system']['domain'] <> "") {
+ if (!empty($config['system']['domain'])) {
$radvdconf .= "\tDNSSL {$config['system']['domain']} { };\n";
}
$radvdconf .= "};\n";
- $radvdnum++;
}
}
/* write radvd.conf */
- if (!@file_put_contents("{$g['varetc_path']}/radvd.conf", $radvdconf))
- printf("Error: cannot open radvd.conf in services_radvd_configure().\n");
+ if (!@file_put_contents("{$g['varetc_path']}/radvd.conf", $radvdconf)) {
+ log_error("Error: cannot open radvd.conf in services_radvd_configure().\n");
+ if ($g['booting'])
+ printf("Error: cannot open radvd.conf in services_radvd_configure().\n");
+ }
unset($radvdconf);
- if(count($radvdifs) > 0) {
- if(is_process_running("radvd")) {
- mwexec("killall -1 radvd");
- } else {
- mwexec("/usr/local/sbin/radvd -C {$g['varetc_path']}/radvd.conf -m syslog");
- }
+ if (count($radvdifs) > 0) {
+ if (isvalidpid("{$g['varrun_path']}/radvd.pid"))
+ sigkillbypid("{$g['varrun_path']}/radvd.pid", "HUP");
+ else
+ mwexec("/usr/local/sbin/radvd -p {$g['varrun_path']}/radvd.pid -C {$g['varetc_path']}/radvd.conf -m syslog");
} else {
/* we need to shut down the radvd cleanly, it will send out the prefix
* information with a lifetime of 0 to notify clients of a (possible) new prefix */
- if(is_process_running("radvd")) {
+ if (isvalidpid("{$g['varrun_path']}/radvd.pid")) {
log_error("Shutting down Router Advertisment daemon cleanly");
- mwexec("killall radvd");
+ killbypid("{$g['varrun_path']}/radvd.pid");
+ @unlink("{$g['varrun_path']}/radvd.pid");
}
}
return 0;
}
-function services_dhcpd_configure() {
+function services_dhcpd_configure($family = "all") {
global $config, $g;
/* configure DHCPD chroot once */
$fd = fopen("{$g['tmp_path']}/dhcpd.sh","w");
- $status = `mount | grep "{$g['dhcpd_chroot_path']}/dev"`;
- fwrite($fd, "mkdir -p {$g['dhcpd_chroot_path']}\n");
- fwrite($fd, "mkdir -p {$g['dhcpd_chroot_path']}/dev\n");
- fwrite($fd, "mkdir -p {$g['dhcpd_chroot_path']}/etc\n");
- fwrite($fd, "mkdir -p {$g['dhcpd_chroot_path']}/usr/local/sbin\n");
- fwrite($fd, "mkdir -p {$g['dhcpd_chroot_path']}/var/db\n");
- fwrite($fd, "mkdir -p {$g['dhcpd_chroot_path']}/var/run\n");
- fwrite($fd, "mkdir -p {$g['dhcpd_chroot_path']}/usr\n");
- fwrite($fd, "mkdir -p {$g['dhcpd_chroot_path']}/lib\n");
- fwrite($fd, "mkdir -p {$g['dhcpd_chroot_path']}/run\n");
- fwrite($fd, "chown -R dhcpd:_dhcp {$g['dhcpd_chroot_path']}/*\n");
- fwrite($fd, "cp /lib/libc.so.* {$g['dhcpd_chroot_path']}/lib/\n");
- fwrite($fd, "cp /usr/local/sbin/dhcpd {$g['dhcpd_chroot_path']}/usr/local/sbin/\n");
- fwrite($fd, "chmod a+rx {$g['dhcpd_chroot_path']}/usr/local/sbin/dhcpd\n");
-
- if(!trim($status))
- fwrite($fd, "mount -t devfs devfs {$g['dhcpd_chroot_path']}/dev\n");
+ fwrite($fd, "/bin/mkdir -p {$g['dhcpd_chroot_path']}\n");
+ fwrite($fd, "/bin/mkdir -p {$g['dhcpd_chroot_path']}/dev\n");
+ fwrite($fd, "/bin/mkdir -p {$g['dhcpd_chroot_path']}/etc\n");
+ fwrite($fd, "/bin/mkdir -p {$g['dhcpd_chroot_path']}/usr/local/sbin\n");
+ fwrite($fd, "/bin/mkdir -p {$g['dhcpd_chroot_path']}/var/db\n");
+ fwrite($fd, "/bin/mkdir -p {$g['dhcpd_chroot_path']}/var/run\n");
+ fwrite($fd, "/bin/mkdir -p {$g['dhcpd_chroot_path']}/usr\n");
+ fwrite($fd, "/bin/mkdir -p {$g['dhcpd_chroot_path']}/lib\n");
+ fwrite($fd, "/bin/mkdir -p {$g['dhcpd_chroot_path']}/run\n");
+ fwrite($fd, "/usr/sbin/chown -R dhcpd:_dhcp {$g['dhcpd_chroot_path']}/*\n");
+ fwrite($fd, "/bin/cp /lib/libc.so.* {$g['dhcpd_chroot_path']}/lib/\n");
+ fwrite($fd, "/bin/cp /usr/local/sbin/dhcpd {$g['dhcpd_chroot_path']}/usr/local/sbin/\n");
+ fwrite($fd, "/bin/chmod a+rx {$g['dhcpd_chroot_path']}/usr/local/sbin/dhcpd\n");
+
+ $status = `/sbin/mount | /usr/bin/grep -v grep | /usr/bin/grep "{$g['dhcpd_chroot_path']}/dev"`;
+ if (!trim($status))
+ fwrite($fd, "/sbin/mount -t devfs devfs {$g['dhcpd_chroot_path']}/dev\n");
fclose($fd);
mwexec("/bin/sh {$g['tmp_path']}/dhcpd.sh");
- services_dhcpdv4_configure();
- services_dhcpdv6_configure();
- services_radvd_configure();
- return;
-
+ if ($family == "all" || $family == "inet")
+ services_dhcpdv4_configure();
+ if ($family == "all" || $family == "inet6") {
+ services_dhcpdv6_configure();
+ services_radvd_configure();
+ }
}
+
function services_dhcpdv4_configure() {
global $config, $g;
@@ -329,9 +345,10 @@ function services_dhcpdv4_configure() {
}
/* kill any running dhcpd */
- if(is_process_running("dhcpd")) {
+ if (isvalidpid("{$g['dhcpd_chroot_path']}{$g['varrun_path']}/dhcpd.pid"))
killbypid("{$g['dhcpd_chroot_path']}{$g['varrun_path']}/dhcpd.pid");
- }
+ else
+ mwexec("/usr/bin/killall dhcpd", true);
/* DHCP enabled on any interfaces? */
if (!is_dhcp_server_enabled())
@@ -344,18 +361,20 @@ function services_dhcpdv4_configure() {
$is_olsr_enabled = true;
if ($g['booting']) {
- if ($g['platform'] != "pfSense") {
- /* restore the leases, if we have them */
- if (file_exists("{$g['cf_conf_path']}/dhcpleases.tgz")) {
- $dhcprestore = "";
- $dhcpreturn = "";
- exec("cd /;LANG=C /usr/bin/tar -xzf {$g['cf_conf_path']}/dhcpleases.tgz 2>&1", $dhcprestore, $dhcpreturn);
- $dhcprestore = implode(" ", $dhcprestore);
- if($dhcpreturn <> 0) {
- log_error(sprintf(gettext('DHCP leases restore failed exited with %1$s, the error is: %2$s%3$s'), $dhcpreturn, $dhcprestore, "\n"));
- }
+ /* restore the leases, if we have them */
+ if (file_exists("{$g['cf_conf_path']}/dhcpleases.tgz")) {
+ $dhcprestore = "";
+ $dhcpreturn = "";
+ exec("cd /;LANG=C /usr/bin/tar -xzf {$g['cf_conf_path']}/dhcpleases.tgz 2>&1", $dhcprestore, $dhcpreturn);
+ $dhcprestore = implode(" ", $dhcprestore);
+ if($dhcpreturn <> 0) {
+ log_error(sprintf(gettext('DHCP leases restore failed exited with %1$s, the error is: %2$s%3$s'), $dhcpreturn, $dhcprestore, "\n"));
}
}
+ /* 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'] == "pfSense") && !isset($config['system']['use_mfs_tmpvar'])) {
+ unlink_if_exists("{$g['cf_conf_path']}/dhcpleases.tgz");
+ }
}
$syscfg = $config['system'];
@@ -369,13 +388,6 @@ function services_dhcpdv4_configure() {
else
sleep(1);
- /* write dhcpd.conf */
- $fd = fopen("{$g['dhcpd_chroot_path']}/etc/dhcpd.conf", "w");
- if (!$fd) {
- printf(gettext("Error: cannot open dhcpd.conf in services_dhcpdv4_configure().%s"), "\n");
- return 1;
- }
-
$custoptions = "";
foreach ($dhcpdcfg as $dhcpif => $dhcpifconf) {
if(is_array($dhcpifconf['numberoptions']) && is_array($dhcpifconf['numberoptions']['item'])) {
@@ -608,14 +620,13 @@ EOPP;
$pdnscfg .= " option domain-search \"" . join("\",\"", preg_split("/[ ;]+/", $poolconf['domainsearchlist'])) . "\";\n";
}
- if (isset($poolconf['ddnsupdate']) && ($poolconf['domainsearchlist'] != $dhcpifconf['domainsearchlist'])) {
- if($poolconf['ddnsdomain'] <> "") {
+ if (isset($poolconf['ddnsupdate'])) {
+ if (($poolconf['ddnsdomain'] <> "") && ($poolconf['ddnsdomain'] != $dhcpifconf['ddnsdomain']))
$pdnscfg .= " ddns-domainname \"{$poolconf['ddnsdomain']}\";\n";
- }
$pdnscfg .= " ddns-update-style interim;\n";
}
- if (is_array($poolconf['dnsserver']) && ($poolconf['dnsserver'][0]) && ($poolconf['dnsserver'][0] != $poolconf['dnsserver'][0])) {
+ if (is_array($poolconf['dnsserver']) && ($poolconf['dnsserver'][0]) && ($poolconf['dnsserver'][0] != $dhcpifconf['dnsserver'][0])) {
$pdnscfg .= " option domain-name-servers " . join(",", $poolconf['dnsserver']) . ";\n";
}
$dhcpdconf .= "{$pdnscfg}";
@@ -629,13 +640,13 @@ EOPP;
$dhcpdconf .= " max-lease-time {$poolconf['maxleasetime']};\n";
// netbios-name*
- if (is_array($poolconf['winsserver']) && $poolconf['winsserver'][0] && ($poolconf['winsserver'][0] != $poolconf['winsserver'][0])) {
+ if (is_array($poolconf['winsserver']) && $poolconf['winsserver'][0] && ($poolconf['winsserver'][0] != $dhcpifconf['winsserver'][0])) {
$dhcpdconf .= " option netbios-name-servers " . join(",", $poolconf['winsserver']) . ";\n";
$dhcpdconf .= " option netbios-node-type 8;\n";
}
// ntp-servers
- if (is_array($poolconf['ntpserver']) && $poolconf['ntpserver'][0] && ($poolconf['ntpserver'][0] != $poolconf['ntpserver'][0]))
+ if (is_array($poolconf['ntpserver']) && $poolconf['ntpserver'][0] && ($poolconf['ntpserver'][0] != $dhcpifconf['ntpserver'][0]))
$dhcpdconf .= " option ntp-servers " . join(",", $poolconf['ntpserver']) . ";\n";
// tftp-server-name
@@ -755,6 +766,52 @@ EOD;
if ($sm['rootpath'])
$dhcpdconf .= " option root-path \"{$sm['rootpath']}\";\n";
+ if ($sm['gateway'] && ($sm['gateway'] != $dhcpifconf['gateway']))
+ $dhcpdconf .= " option routers {$sm['gateway']};\n";
+
+ $smdnscfg = "";
+
+ if ($sm['domain'] && ($sm['domain'] != $dhcpifconf['domain'])) {
+ $smdnscfg .= " option domain-name \"{$sm['domain']}\";\n";
+ }
+
+ if(!empty($sm['domainsearchlist']) && ($sm['domainsearchlist'] != $dhcpifconf['domainsearchlist'])) {
+ $smdnscfg .= " option domain-search \"" . join("\",\"", preg_split("/[ ;]+/", $sm['domainsearchlist'])) . "\";\n";
+ }
+
+ if (isset($sm['ddnsupdate'])) {
+ if (($sm['ddnsdomain'] <> "") && ($sm['ddnsdomain'] != $dhcpifconf['ddnsdomain']))
+ $pdnscfg .= " ddns-domainname \"{$sm['ddnsdomain']}\";\n";
+ $pdnscfg .= " ddns-update-style interim;\n";
+ }
+
+ if (is_array($sm['dnsserver']) && ($sm['dnsserver'][0]) && ($sm['dnsserver'][0] != $dhcpifconf['dnsserver'][0])) {
+ $smdnscfg .= " option domain-name-servers " . join(",", $sm['dnsserver']) . ";\n";
+ }
+ $dhcpdconf .= "{$smdnscfg}";
+
+ // default-lease-time
+ if ($sm['defaultleasetime'] && ($sm['defaultleasetime'] != $dhcpifconf['defaultleasetime']))
+ $dhcpdconf .= " default-lease-time {$sm['defaultleasetime']};\n";
+
+ // max-lease-time
+ if ($sm['maxleasetime'] && ($sm['maxleasetime'] != $dhcpifconf['maxleasetime']))
+ $dhcpdconf .= " max-lease-time {$sm['maxleasetime']};\n";
+
+ // netbios-name*
+ if (is_array($sm['winsserver']) && $sm['winsserver'][0] && ($sm['winsserver'][0] != $dhcpifconf['winsserver'][0])) {
+ $dhcpdconf .= " option netbios-name-servers " . join(",", $sm['winsserver']) . ";\n";
+ $dhcpdconf .= " option netbios-node-type 8;\n";
+ }
+
+ // ntp-servers
+ if (is_array($sm['ntpserver']) && $sm['ntpserver'][0] && ($sm['ntpserver'][0] != $dhcpifconf['ntpserver'][0]))
+ $dhcpdconf .= " option ntp-servers " . join(",", $sm['ntpserver']) . ";\n";
+
+ // tftp-server-name
+ if (!empty($sm['tftp']) && ($sm['tftp'] != $dhcpifconf['tftp']))
+ $dhcpdconf .= " option tftp-server-name \"{$sm['tftp']}\";\n";
+
$dhcpdconf .= "}\n";
$i++;
}
@@ -763,23 +820,26 @@ EOD;
$dhcpdifs[] = get_real_interface($dhcpif);
}
- fwrite($fd, $dhcpdconf);
- fclose($fd);
+ /* write dhcpd.conf */
+ if (!@file_put_contents("{$g['dhcpd_chroot_path']}/etc/dhcpd.conf", $dhcpdconf)) {
+ printf(gettext("Error: cannot open dhcpd.conf in services_dhcpdv4_configure().%s"), "\n");
+ unset($dhcpdconf);
+ return 1;
+ }
unset($dhcpdconf);
/* create an empty leases database */
- touch("{$g['dhcpd_chroot_path']}/var/db/dhcpd.leases");
-
+ if (!file_exists("{$g['dhcpd_chroot_path']}/var/db/dhcpd.leases"))
+ @touch("{$g['dhcpd_chroot_path']}/var/db/dhcpd.leases");
/* fire up dhcpd in a chroot */
- if(count($dhcpdifs) > 0) {
+ if (count($dhcpdifs) > 0) {
mwexec("/usr/local/sbin/dhcpd -user dhcpd -group _dhcp -chroot {$g['dhcpd_chroot_path']} -cf /etc/dhcpd.conf -pf {$g['varrun_path']}/dhcpd.pid " .
join(" ", $dhcpdifs));
}
- if ($g['booting']) {
+ if ($g['booting'])
print "done.\n";
- }
return 0;
}
@@ -796,10 +856,10 @@ function services_dhcpdv6_configure() {
}
/* kill any running dhcpd */
- if(is_process_running("dhcpd")) {
+ if (isvalidpid("{$g['dhcpd_chroot_path']}{$g['varrun_path']}/dhcpdv6.pid"))
killbypid("{$g['dhcpd_chroot_path']}{$g['varrun_path']}/dhcpdv6.pid");
+ if (isvalidpid("{$g['varrun_path']}/dhcpleases6.pid"))
killbypid("{$g['varrun_path']}/dhcpleases6.pid");
- }
/* DHCP enabled on any interfaces? */
if (!is_dhcpv6_server_enabled())
@@ -825,6 +885,8 @@ function services_dhcpdv6_configure() {
$config['dhcpdv6'] = array();
$dhcpdv6cfg = $config['dhcpdv6'];
$Iflist = get_configured_interface_list();
+ $Iflist = array_merge($Iflist, get_configured_pppoe_server_interfaces());
+
if ($g['booting'])
echo "Starting DHCPv6 service...";
@@ -832,13 +894,13 @@ function services_dhcpdv6_configure() {
sleep(1);
/* we add a fake entry for interfaces that are set to track6 another WAN */
- foreach($Iflist as $ifname) {
- $realif = get_real_interface($ifname);
- $ifcfgipv6 = find_interface_ipv6($realif);
- if(!is_ipaddrv6($ifcfgipv6))
- continue;
- $ifcfgipv6 = Net_IPv6::getNetmask($ifcfgipv6, 64);
- if($config['interfaces'][$ifname]['track6-interface'] <> "") {
+ foreach ($Iflist as $ifname) {
+ if (!empty($config['interfaces'][$ifname]['track6-interface'])) {
+ $realif = get_real_interface($ifname);
+ $ifcfgipv6 = get_interface_ipv6($ifname);
+ if(!is_ipaddrv6($ifcfgipv6))
+ continue;
+ $ifcfgipv6 = Net_IPv6::getNetmask($ifcfgipv6, 64);
$trackifname = $config['interfaces'][$ifname]['track6-interface'];
$trackcfg = $config['interfaces'][$trackifname];
$pdlen = calculate_ipv6_delegation_length($trackifname);
@@ -847,6 +909,7 @@ function services_dhcpdv6_configure() {
$dhcpdv6cfg[$ifname]['enable'] = true;
/* range */
$ifcfgipv6arr[7] = "1000";
+ $dhcpdv6cfg[$ifname]['range'] = array();
$dhcpdv6cfg[$ifname]['range']['from'] = Net_IPv6::compress(implode(":", $ifcfgipv6arr));
$ifcfgipv6arr[7] = "2000";
$dhcpdv6cfg[$ifname]['range']['to'] = Net_IPv6::compress(implode(":", $ifcfgipv6arr));;
@@ -855,6 +918,7 @@ function services_dhcpdv6_configure() {
$pdlenmax = $pdlen;
$pdlenhalf = $pdlenmax -1;
$pdlenmin = (64 - ceil($pdlenhalf / 4));
+ $dhcpdv6cfg[$ifname]['prefixrange'] = array();
$dhcpdv6cfg[$ifname]['prefixrange']['prefixlength'] = $pdlenmin;
/* set the delegation start to half the current address block */
@@ -871,13 +935,6 @@ function services_dhcpdv6_configure() {
}
}
- /* write dhcpdv6.conf */
- $fdv6 = fopen("{$g['dhcpd_chroot_path']}/etc/dhcpdv6.conf", "w");
- if (! $fdv6) {
- printf("Error: cannot open dhcpdv6.conf in services_dhcpdv6_configure().\n");
- return 1;
- }
-
$custoptionsv6 = "";
foreach ($dhcpdv6cfg as $dhcpv6if => $dhcpv6ifconf) {
if(is_array($dhcpv6ifconf['numberoptions']) && is_array($dhcpv6ifconf['numberoptions']['item'])) {
@@ -911,66 +968,6 @@ EOD;
$dhcpdv6ifs = array();
- /* loop through and determine if we need to setup
- * failover peer "bleh" entries
- */
- $dhcpv6num = 0;
- foreach ($dhcpdv6cfg as $dhcpv6if => $dhcpv6ifconf) {
-
- if (!isset($dhcpv6ifconf['enable']))
- continue;
-
- if($dhcpv6ifconf['failover_peerip'] <> "") {
- $intv6 = guess_interface_from_ip($dhcpv6ifconf['failover_peerip']);
- $intipv6 = find_interface_ipv6($intv6);
- $real_dhcpv6if = convert_friendly_interface_to_real_interface_name($dhcpv6if);
- /*
- * yep, failover peer is defined.
- * does it match up to a defined vip?
- */
- $skew = 110;
- $a_vip = &$config['virtualip']['vip'];
- if(is_array($a_vip)) {
- foreach ($a_vip as $vipent) {
- if($intv6 == $real_dhcpv6if) {
- /* this is the interface! */
- if(is_numeric($vipent['advskew']) && ($vipent['advskew'] < "20"))
- $skew = 0;
- }
- }
- } else {
- log_error("Warning! DHCPv6 Failover setup and no CARP virtual IPv6's defined!");
- }
- if($skew > 10) {
- $typev6 = "secondary";
- $dhcpdv6conf_pri = "mclt 600;\n";
- $my_portv6 = "520";
- $peer_portv6 = "519";
- } else {
- $my_portv6 = "519";
- $peer_portv6 = "520";
- $typev6 = "primary";
- $dhcpdv6conf_pri = "split 128;\n";
- $dhcpdv6conf_pri .= " mclt 600;\n";
- }
- $dhcpdv6conf .= <<<EOPP
-failover peer "dhcpv6{$dhcpv6num}" {
- {$typev6};
- address {$intipv6};
- port {$my_portv6};
- peer address {$dhcpv6ifconf['failover_peerip']};
- peer port {$peer_portv6};
- max-response-delay 10;
- max-unacked-updates 10;
- {$dhcpdv6conf_pri}
- load balance max seconds 3;
-}
-
-EOPP;
- $dhcpv6num++;
- }
- }
-
$dhcpv6num = 0;
foreach ($dhcpdv6cfg as $dhcpv6if => $dhcpv6ifconf) {
@@ -981,7 +978,6 @@ EOPP;
$ifcfgipv6 = get_interface_ipv6($dhcpv6if);
$ifcfgsnv6 = get_interface_subnetv6($dhcpv6if);
$subnetv6 = gen_subnetv6($ifcfgipv6, $ifcfgsnv6);
- $subnetmaskv6 = gen_subnet_mask($ifcfgsnv6);
if($is_olsr_enabled == true)
if($dhcpv6ifconf['netmask'])
@@ -1006,7 +1002,7 @@ EOPP;
if (is_array($dhcpv6ifconf['dnsserver']) && ($dhcpv6ifconf['dnsserver'][0])) {
$dnscfgv6 .= " option dhcp6.name-servers " . join(",", $dhcpv6ifconf['dnsserver']) . ";";
- } else if (isset($config['dnsmasq']['enable'])) {
+ } else if ((isset($config['dnsmasq']['enable'])) && (is_ipaddrv6($ifcfgipv6))) {
$dnscfgv6 .= " option dhcp6.name-servers {$ifcfgipv6};";
} else if (is_array($syscfg['dnsserver']) && ($syscfg['dnsserver'][0])) {
$dns_arrv6 = array();
@@ -1019,8 +1015,12 @@ EOPP;
$dnscfgv6 .= " option dhcp6.name-servers " . join(",", $dns_arrv6) . ";";
}
- $subnet6 = Net_IPv6::compress(gen_subnetv6($ifcfgipv6, $ifcfgsnv6));
- $dhcpdv6conf .= "subnet6 {$subnet6}/{$ifcfgsnv6} {\n";
+ if(is_ipaddrv6($ifcfgipv6)) {
+ $dhcpdv6conf .= "subnet6 {$subnetv6}/{$ifcfgsnv6} {\n";
+ } else {
+ $subnet6 = gen_subnetv6($dhcpv6ifconf['range']['from'], "64");
+ $dhcpdv6conf .= "subnet6 {$subnet6}/64 {\n";
+ }
if($dhcpv6ifconf['failover_peerip'] <> "")
$dhcpdv6conf .= " deny dynamic bootp clients;\n";
@@ -1028,11 +1028,6 @@ EOPP;
if (isset($dhcpv6ifconf['denyunknown']))
$dhcpdv6conf .= " deny unknown-clients;\n";
- if($dhcpv6ifconf['failover_peerip'] <> "") {
- $dhcpdv6conf .= " failover peer \"dhcpv6{$dhcpv6num}\";\n";
- $dhcpv6num++;
- }
-
$dhcpdv6conf .= <<<EOD
range6 {$dhcpv6ifconf['range']['from']} {$dhcpv6ifconf['range']['to']};
$dnscfgv6
@@ -1089,18 +1084,14 @@ EOD;
}
if ($dhcpv6ifconf['rootpath'] <> "") {
$dhcpdv6conf .= " option root-path \"{$dhcpv6ifconf['rootpath']}\";\n";
- }
- }
-
- $dhcpdv6conf .= <<<EOD
-}
+ }
+ }
-EOD;
+ $dhcpdv6conf .= "}\n";
/* add static mappings */
/* Needs to use DUID */
if (is_array($dhcpv6ifconf['staticmap'])) {
-
$i = 0;
foreach ($dhcpv6ifconf['staticmap'] as $sm) {
$dhcpdv6conf .= <<<EOD
@@ -1128,34 +1119,45 @@ EOD;
}
if($config['dhcpdv6'][$dhcpv6if]['ramode'] <> "unmanaged") {
- $realif = escapeshellcmd(get_real_interface($dhcpv6if));
- $dhcpdv6ifs[] = $realif;
- exec("/sbin/ifconfig {$realif} |awk '/ether/ {print $2}'", $mac);
- $v6address = generate_ipv6_from_mac($mac[0]);
- /* Create link local address for bridges */
- if(stristr("$realif", "bridge")) {
- mwexec("/sbin/ifconfig {$realif} inet6 {$v6address}");
+ if(preg_match("/poes/si", $dhcpv6if)) {
+ /* magic here */
+ $dhcpdv6ifs = array_merge($dhcpdv6ifs, get_pppoes_child_interfaces($dhcpv6if));
+ } else {
+ $realif = get_real_interface($dhcpv6if);
+ if (stristr("$realif", "bridge")) {
+ $mac = get_interface_mac($realif);
+ $v6address = generate_ipv6_from_mac($mac);
+ /* Create link local address for bridges */
+ mwexec("/sbin/ifconfig {$realif} inet6 {$v6address}");
+ }
+ $realif = escapeshellcmd($realif);
+ $dhcpdv6ifs[] = $realif;
}
}
}
- fwrite($fdv6, $dhcpdv6conf);
- fclose($fdv6);
+ /* write dhcpdv6.conf */
+ if (!@file_put_contents("{$g['dhcpd_chroot_path']}/etc/dhcpdv6.conf", $dhcpdv6conf)) {
+ log_error("Error: cannot open {$g['dhcpd_chroot_path']}/etc/dhcpdv6.conf in services_dhcpdv6_configure().\n");
+ if ($g['booting'])
+ printf("Error: cannot open {$g['dhcpd_chroot_path']}/etc/dhcpdv6.conf in services_dhcpdv6_configure().\n");
+ unset($dhcpdv6conf);
+ return 1;
+ }
unset($dhcpdv6conf);
/* create an empty leases v6 database */
- touch("{$g['dhcpd_chroot_path']}/var/db/dhcpd6.leases");
+ if (!file_exists("{$g['dhcpd_chroot_path']}/var/db/dhcpd6.leases"))
+ @touch("{$g['dhcpd_chroot_path']}/var/db/dhcpd6.leases");
/* fire up dhcpd in a chroot */
- if(count($dhcpdv6ifs) > 0) {
+ if (count($dhcpdv6ifs) > 0) {
mwexec("/usr/local/sbin/dhcpd -6 -user dhcpd -group _dhcp -chroot {$g['dhcpd_chroot_path']} -cf /etc/dhcpdv6.conf -pf {$g['varrun_path']}/dhcpdv6.pid " .
join(" ", $dhcpdv6ifs));
mwexec("/usr/local/sbin/dhcpleases6 -c \"/usr/local/bin/php -f /usr/local/sbin/prefixes.php|/bin/sh\" -l {$g['dhcpd_chroot_path']}/var/db/dhcpd6.leases");
}
-
- if ($g['booting']) {
+ if ($g['booting'])
print gettext("done.") . "\n";
- }
return 0;
}
@@ -1211,7 +1213,8 @@ EOD;
fclose($igmpfl);
unset($igmpconf);
- mwexec("/usr/local/sbin/igmpproxy -c {$g['tmp_path']}/igmpproxy.conf");
+ /* NOTE: -d 4 means everything LOG_WARNING and smaller */
+ mwexec("/usr/local/sbin/igmpproxy -d 4 -c {$g['tmp_path']}/igmpproxy.conf");
log_error(gettext("Started IGMP proxy service."));
return 0;
@@ -1288,12 +1291,20 @@ function services_dhcrelay_configure() {
array_shift($route_str);
$route_arr = array();
foreach($route_str as $routeline) {
- $items = preg_split("/[ ]+/i", $routeline);
- if (ip_in_subnet($srvip, $items[0])) {
+ $items = preg_split("/[ ]+/i", $routeline);
+ if (is_subnetv4($items[0])) {
+ $subnet = $items[0];
+ } elseif (is_ipaddrv4($items[0])) {
+ $subnet = "{$items[0]}/32";
+ } else {
+ // Not a subnet or IP address, skip to the next line.
+ continue;
+ }
+ if (ip_in_subnet($srvip, $subnet)) {
$destif = trim($items[6]);
break;
}
- }
+ }
}
if (!isset($destif)) {
@@ -1472,11 +1483,12 @@ function services_dyndns_configure_client($conf) {
$dnsPort = NULL,
$dnsUpdateURL = "{$conf['updateurl']}",
$forceUpdate = $conf['force'],
- $dnsZoneID=$conf['zoneid'],
- $dnsTTL=$conf['ttl'],
+ $dnsZoneID=$conf['zoneid'],
+ $dnsTTL=$conf['ttl'],
$dnsResultMatch = "{$conf['resultmatch']}",
$dnsRequestIf = "{$conf['requestif']}",
- $dnsID = "{$conf['id']}");
+ $dnsID = "{$conf['id']}",
+ $dnsVerboseLog = $conf['verboselog']);
}
function services_dyndns_configure($int = "") {
@@ -1493,15 +1505,10 @@ function services_dyndns_configure($int = "") {
echo gettext("Starting DynDNS clients...");
foreach ($dyndnscfg as $dyndns) {
- $failovergroup = interface_gateway_group_member($int);
- if (!empty($int) && $int == $dyndns['interface']) {
+ if ((empty($int)) || ($int == $dyndns['interface']) || (is_array($gwgroups[$dyndns['interface']]))) {
+ $dyndns['verboselog'] = isset($dyndns['verboselog']);
services_dyndns_configure_client($dyndns);
sleep(1);
- } elseif (is_array($gwgroups[$dyndns['interface']])){
- services_dyndns_configure_client($dyndns);
- sleep(1);
- } else {
- continue;
}
}
@@ -1512,6 +1519,30 @@ function services_dyndns_configure($int = "") {
return 0;
}
+function dyndnsCheckIP($int) {
+ global $config;
+ $ip_address = get_interface_ip($int);
+ if (is_private_ip($ip_address)) {
+ $gateways_status = return_gateways_status(true);
+ // If the gateway for this interface is down, then the external check cannot work.
+ // Avoid the long wait for the external check to timeout.
+ if (stristr($gateways_status[$config['interfaces'][$int]['gateway']]['status'],"down"))
+ return "down";
+ $hosttocheck = "checkip.dyndns.org";
+ $checkip = gethostbyname($hosttocheck);
+ $ip_ch = curl_init("http://{$checkip}");
+ curl_setopt($ip_ch, CURLOPT_RETURNTRANSFER, 1);
+ curl_setopt($ip_ch, CURLOPT_SSL_VERIFYPEER, FALSE);
+ curl_setopt($ip_ch, CURLOPT_INTERFACE, $ip_address);
+ $ip_result_page = curl_exec($ip_ch);
+ curl_close($ip_ch);
+ $ip_result_decoded = urldecode($ip_result_page);
+ preg_match('=Current IP Address: (.*)</body>=siU', $ip_result_decoded, $matches);
+ $ip_address = trim($matches[1]);
+ }
+ return $ip_address;
+}
+
function services_dnsmasq_configure() {
global $config, $g;
$return = 0;
@@ -1545,7 +1576,22 @@ function services_dnsmasq_configure() {
/* Setup forwarded domains */
if (isset($config['dnsmasq']['domainoverrides']) && is_array($config['dnsmasq']['domainoverrides'])) {
foreach($config['dnsmasq']['domainoverrides'] as $override) {
- $args .= ' --server=/' . $override['domain'] . '/' . $override['ip'];
+ if ($override['ip'] == "!")
+ $override[ip] = "";
+ $args .= ' --server=/' . $override['domain'] . '/' . $override['ip'];
+ }
+ }
+
+ /* If selected, then forward reverse lookups for private IPv4 addresses to nowhere. */
+ if (isset($config['dnsmasq']['no_private_reverse'])) {
+ /* Note: Carrier Grade NAT (CGN) addresses 100.64.0.0/10 are intentionally not here. */
+ /* End-users should not be aware of CGN addresses, so reverse lookups for these should not happen. */
+ /* Just the pfSense WAN might get a CGN address from an ISP. */
+ $args .= " --server=/10.in-addr.arpa/ ";
+ $args .= " --server=/168.192.in-addr.arpa/ ";
+ /* Unfortunately the 172.16.0.0/12 range does not map nicely to the in-addr.arpa scheme. */
+ for ($subnet_num = 16; $subnet_num < 32; $subnet_num++) {
+ $args .= " --server=/" . $subnet_num . ".172.in-addr.arpa/ ";
}
}
@@ -1561,6 +1607,14 @@ function services_dnsmasq_configure() {
if(!isset($config['system']['webgui']['nodnsrebindcheck']))
$dns_rebind = "--rebind-localhost-ok --stop-dns-rebind";
+ if (isset($config['dnsmasq']['strict_order'])) {
+ $args .= " --strict-order ";
+ }
+
+ if (isset($config['dnsmasq']['domain_needed'])) {
+ $args .= " --domain-needed ";
+ }
+
if ($config['dnsmasq']['custom_options']) {
foreach (preg_split('/\s+/', $config['dnsmasq']['custom_options']) as $c)
$args .= " --$c";
@@ -1582,52 +1636,6 @@ function services_dnsmasq_configure() {
return $return;
}
-function services_unbound_configure() {
- global $config, $g;
- $return = 0;
-
- if(isset($config['system']['developerspew'])) {
- $mt = microtime();
- echo "services_unbound_configure() being called $mt\n";
- }
-
- /* kill any running unbound */
- sigkillbypid("{$g['varrun_path']}/unbound.pid", "TERM");
-
- if (isset($config['unbound']['enable'])) {
-
- if ($g['booting'])
- echo "Starting Unbound DNS...";
- else
- sleep(1);
-
- /* Setup Unbound DHCP Chroot environment */
- $fd = fopen("{$g['tmp_path']}/unbound.sh","w");
- $status = `/sbin/mount | /usr/bin/grep "{$g['unbound_chroot_path']}/dev"`;
- fwrite($fd, "mkdir -p {$g['unbound_chroot_path']}\n");
- fwrite($fd, "mkdir -p {$g['unbound_chroot_path']}/dev\n");
- fwrite($fd, "mkdir -p {$g['unbound_chroot_path']}/etc\n");
- if(!trim($status))
- fwrite($fd, "mount -t devfs devfs {$g['unbound_chroot_path']}/dev\n");
- fclose($fd);
- mwexec("/bin/sh {$g['tmp_path']}/unbound.sh");
-
- /* generate Unbound config file */
- if(unbound_generate_config()!=0) {
- log_error("Problem generating Unbound configuration.");
- $return = 1;
- }
-
- /* run Unbound */
- mwexec("/usr/local/sbin/unbound -c {$g['unbound_chroot_path']}/etc/unbound.conf");
-
- if ($g['booting'])
- echo "done.\n";
- }
-
- return $return;
-}
-
function services_snmpd_configure() {
global $config, $g;
if(isset($config['system']['developerspew'])) {
@@ -1683,10 +1691,18 @@ trap := "{$config['snmpd']['trapstring']}"
EOD;
}
+ $version = trim(file_get_contents('/etc/version'));
+ $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") .
+ " {$version} {$platform} " . php_uname("s") .
+ " " . php_uname("r") . " " . php_uname("m");
$snmpdconf .= <<<EOD
system := 1 # pfSense
%snmpd
+sysDescr = "{$sysDescr}"
begemotSnmpdDebugDumpPdus = 2
begemotSnmpdDebugSyslogPri = 7
begemotSnmpdCommunityString.0.1 = $(read)
@@ -2034,7 +2050,7 @@ function install_cron_job($command, $active=false, $minute="0", $hour="*", $mont
} else {
if(($is_installed == true) && ($x > 0)) {
unset($config['cron']['item'][$x]);
- write_config(sprintf(gettext("Remvoed cron job for %s"), $command));
+ write_config(sprintf(gettext("Removed cron job for %s"), $command));
}
}
configure_cron();
diff --git a/etc/inc/shaper.inc b/etc/inc/shaper.inc
index 1635df1..20550e0 100644
--- a/etc/inc/shaper.inc
+++ b/etc/inc/shaper.inc
@@ -1,6 +1,6 @@
<?php
/*
- Copyright (C) 2008 Ermal Lu�i
+ Copyright (C) 2008 Ermal Luçi
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -313,14 +313,14 @@ class altq_root_queue {
}
function validate_input($data, &$input_errors) {
-
+
$reqdfields[] = "bandwidth";
$reqdfieldsn[] = gettext("Bandwidth");
$reqdfields[] = "bandwidthtype";
$reqdfieldsn[] = gettext("Bandwidthtype");
-
+
shaper_do_input_validation($data, $reqdfields, $reqdfieldsn, $input_errors);
-
+
if ($data['bandwidth'] && (!is_numeric($data['bandwidth'])))
$input_errors[] = gettext("Bandwidth must be an integer.");
if ($data['bandwidth'] < 0)
@@ -378,7 +378,7 @@ class altq_root_queue {
$cflink['queue'] = array();
foreach ($this->queues as $q) {
$cflink['queue'][$q->GetQname()] = array();
- $q->copy_queue($interface, &$cflink['queue'][$q->GetQname()]);
+ $q->copy_queue($interface, $cflink['queue'][$q->GetQname()]);
}
}
}
@@ -482,7 +482,7 @@ class altq_root_queue {
function build_tree() {
global $shaperIFlist;
- $tree = " <li><a href=\"firewall_shaper.php?interface=".$this->GetInterface()."&queue=". $this->GetInterface()."&action=show";
+ $tree = " <li><a href=\"firewall_shaper.php?interface=".$this->GetInterface()."&amp;queue=". $this->GetInterface()."&amp;action=show";
$tree .= "\">" . $shaperIFlist[$this->GetInterface()] . "</a>";
if (is_array($this->queues)) {
$tree .= "<ul>";
@@ -494,7 +494,7 @@ class altq_root_queue {
$tree .= "</li>";
return $tree;
}
-
+
function delete_queue() {
foreach ($this->queues as $q) {
$this->SetAvailableBandwidth($this->GetAvailableBandwidth() + $q->GetAvailableBandwidth());
@@ -563,6 +563,7 @@ class altq_root_queue {
function build_javascript() {
$javascript = "<script type=\"text/javascript\">";
+ $javascript .= "//<![CDATA[\n";
$javascript .= "function mySuspend() {";
$javascript .= "if (document.layers && document.layers['shaperarea'] != null) ";
$javascript .= "document.layers['shaperarea'].visibility = 'hidden'; ";
@@ -576,11 +577,12 @@ class altq_root_queue {
$javascript .= "else if (document.all) ";
$javascript .= "document.all['shaperarea'].style.visibility = 'visible';";
$javascript .= "}";
+ $javascript .= "//]]>";
$javascript .= "</script>";
return $javascript;
}
-
+
function build_shortform() {
global $g;
@@ -588,7 +590,7 @@ class altq_root_queue {
if ($altq)
$scheduler = ": " . $altq->GetScheduler();
$form = "<tr><td width=\"20%\" class=\"vtable\">";
- $form .= "<a href=\"firewall_shaper.php?interface=" . $this->GetInterface() . "&queue=". $this->GetInterface()."&action=show\">". $shaperIFlist[$this->GetInterface()] .": ".$scheduler."</a>";
+ $form .= "<a href=\"firewall_shaper.php?interface=" . $this->GetInterface() . "&amp;queue=". $this->GetInterface()."&amp;action=show\">". $shaperIFlist[$this->GetInterface()] .": ".$scheduler."</a>";
$form .= "</td></tr>";
$form .= "<tr>";
$form .= "<td width=\"50%\" class=\"vncellreq\">";
@@ -596,101 +598,101 @@ class altq_root_queue {
$form .= "</td><td width=\"50%\"></td></tr>";
$form .= "<tr><td width=\"20%\" class=\"vncellreq\">";
$form .= "<a href=\"firewall_shaper_queues.php?interface=";
- $form .= $this->GetInterface() . "&queue=";
- $form .= $this->GetQname() . "&action=delete\">";
+ $form .= $this->GetInterface() . "&amp;queue=";
+ $form .= $this->GetQname() . "&amp;action=delete\">";
$form .= "<img src=\"";
$form .= "./themes/".$g['theme']."/images/icons/icon_x.gif\"";
- $form .= " width=\"17\" height=\"17\" border=\"0\" title=\"Disable shaper on interface\">";
+ $form .= " width=\"17\" height=\"17\" border=\"0\" title=\"Disable shaper on interface\" alt=\"disable\" />";
$form .= "<span>Disable shaper on interface</span></a></td></tr>";
return $form;
}
/*
- * For requesting the parameters of the root queue
+ * For requesting the parameters of the root queues
* to the user like the traffic wizard does.
*/
function build_form() {
- $form = "<tr><td valign=\"center\" class=\"vncellreq\"><br>";
+ $form = "<tr><td valign=\"middle\" class=\"vncellreq\"><br/>";
$form .= gettext("Enable/Disable");
$form .= "<br/></td><td class=\"vncellreq\">";
$form .= " <input type=\"checkbox\" id=\"enabled\" name=\"enabled\" value=\"on\"";
if ($this->GetEnabled() == "on")
- $form .= " CHECKED";
- $form .= " ><span class=\"vexpl\"> " . gettext("Enable/disable discipline and its children") . "</span>";
+ $form .= " checked=\"checked\"";
+ $form .= " /><span class=\"vexpl\"> " . gettext("Enable/disable discipline and its children") . "</span>";
$form .= "</td></tr>";
- $form .= "<tr><td valign=\"center\" class=\"vncellreq\"><br><span class=\"vexpl\">" . gettext("Name") . "</span></td>";
+ $form .= "<tr><td valign=\"middle\" class=\"vncellreq\"><br/><span class=\"vexpl\">" . gettext("Name") . "</span></td>";
$form .= "<td class=\"vncellreq\">";
$form .= "<strong>".$this->GetQname()."</strong>";
$form .= "</td></tr>";
- $form .= "<tr><td valign=\"center\" class=\"vncellreq\">" . gettext("Scheduler Type ");
+ $form .= "<tr><td valign=\"middle\" class=\"vncellreq\">" . gettext("Scheduler Type ");
$form .= "</td>";
$form .= "<td class=\"vncellreq\">";
$form .= "<select id=\"scheduler\" name=\"scheduler\" class=\"formselect\">";
$form .= "<option value=\"HFSC\"";
if ($this->GetScheduler() == "HFSC")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">HFSC</option>";
$form .= "<option value=\"CBQ\"";
if ($this->GetScheduler() == "CBQ")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">CBQ</option>";
$form .= "<option value=\"FAIRQ\"";
if ($this->GetScheduler() == "FAIRQ")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">FAIRQ</option>";
$form .= "<option value=\"PRIQ\"";
if ($this->GetScheduler() == "PRIQ")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">PRIQ</option>";
$form .= "</select>";
- $form .= "<br> <span class=\"vexpl\">";
+ $form .= "<br/> <span class=\"vexpl\">";
$form .= gettext("NOTE: Changing this changes all child queues!");
$form .= gettext(" Beware you can lose information.");
$form .= "</span>";
$form .= "</td></tr>";
- $form .= "<tr><td valign=\"center\" class=\"vncellreq\">" . gettext("Bandwidth");
+ $form .= "<tr><td valign=\"middle\" class=\"vncellreq\">" . gettext("Bandwidth");
$form .= "</td><td class=\"vncellreq\">";
$form .= "<input type=\"text\" id=\"bandwidth\" name=\"bandwidth\" value=\"";
- $form .= $this->GetBandwidth() . "\">";
+ $form .= $this->GetBandwidth() . "\" />";
$form .= "<select id=\"bandwidthtype\" name=\"bandwidthtype\" class=\"formselect\">";
$form .= "<option value=\"Kb\"";
if ($this->GetBwscale() == "Kb")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">Kbit/s</option>";
$form .= "<option value=\"Mb\"";
if ($this->GetBwscale() == "Mb")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">Mbit/s</option>";
$form .= "<option value=\"Gb\"";
if ($this->GetBwscale() == "Gb")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">Gbit/s</option>";
$form .= "<option value=\"b\"";
if ($this->GetBwscale() == "b")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">Bit/s</option>";
$form .= "</select>";
$form .= "</td></tr>";
- $form .= "<tr><td valign=\"center\" class=\"vncellreq\">Queue Limit</td>";
+ $form .= "<tr><td valign=\"middle\" class=\"vncellreq\">Queue Limit</td>";
$form .= "<td class=\"vncellreq\">";
$form .= "<input type=\"text\" id=\"qlimit\" name=\"qlimit\" value=\"";
$form .= $this->GetQlimit();
- $form .= "\">";
+ $form .= "\" />";
$form .= "</td></tr>";
- $form .= "<tr><td valign=\"center\" class=\"vncellreq\">TBR Size</td>";
+ $form .= "<tr><td valign=\"middle\" class=\"vncellreq\">TBR Size</td>";
$form .= "<td class=\"vncellreq\">";
$form .= "<br /><input type=\"text\" id=\"tbrconfig\" name=\"tbrconfig\" value=\"";
$form .= $this->GetTbrConfig();
- $form .= "\">";
- $form .= "<br> <span class=\"vexpl\">";
+ $form .= "\" />";
+ $form .= "<br/> <span class=\"vexpl\">";
$form .= gettext("Adjusts the size, in bytes, of the token bucket regulator. "
. "If not specified, heuristics based on the interface "
. "bandwidth are used to determine the size.");
$form .= "</span></td></tr>";
$form .= "<input type=\"hidden\" id=\"interface\" name=\"interface\"";
- $form .= " value=\"" . $this->GetInterface() . "\">";
- $form .= "<input type=\"hidden\" id=\"name\" name=\"name\" value=\"".$this->GetQname()."\" >";
+ $form .= " value=\"" . $this->GetInterface() . "\" />";
+ $form .= "<input type=\"hidden\" id=\"name\" name=\"name\" value=\"".$this->GetQname()."\" />";
return $form;
@@ -699,7 +701,7 @@ class altq_root_queue {
function update_altq_queue_data(&$data) {
$this->ReadConfig($data);
}
-
+
/*
* Should call on each of it queues and subqueues
* the same function much like build_rules();
@@ -872,6 +874,7 @@ class priq_queue {
function build_javascript() {
$javascript = "<script type=\"text/javascript\">";
+ $javascript .= "//<![CDATA[\n";
$javascript .= "function mySuspend() { \n";
$javascript .= "if (document.layers && document.layers['shaperarea'] != null)\n";
$javascript .= "document.layers['shaperarea'].visibility = 'hidden';\n";
@@ -885,11 +888,12 @@ class priq_queue {
$javascript .= "else if (document.all)\n";
$javascript .= "document.all['shaperarea'].style.visibility = 'visible';\n";
$javascript .= "}\n";
+ $javascript .= "//]]>";
$javascript .= "</script>";
-
+
return $javascript;
}
-
+
function &add_queue($interface, &$qname, &$path, &$input_errors) { return; }
/*
@@ -928,7 +932,7 @@ class priq_queue {
}
function &get_queue_list(&$qlist) {
-
+
$qlist[$this->GetQname()] = & $this;
if (is_array($this->subqueues)) {
foreach ($this->subqueues as $queue)
@@ -941,7 +945,7 @@ class priq_queue {
cleanup_queue_from_rules($this->GetQname());
unset_object_by_reference($this->GetLink());
}
-
+
function delete_all() {
if (count($this->subqueues)) {
foreach ($this->subqueues as $q) {
@@ -957,11 +961,11 @@ class priq_queue {
if ($qname == $this->GetQname())
return $this;
}
-
+
function find_parentqueue($interface, $qname) { return; }
-
+
function validate_input($data, &$input_errors) {
-
+
$reqdfields[] = "name";
$reqdfieldsn[] = gettext("Name");
shaper_do_input_validation($data, $reqdfields, $reqdfieldsn, $input_errors);
@@ -986,7 +990,8 @@ class priq_queue {
$input_errors[] = gettext("Queue names must be alphanumeric and _ or - only.");
if (!empty($data['name']) && !preg_match("/^[a-zA-Z0-9_-]*$/", $data['name']))
$input_errors[] = gettext("Queue names must be alphanumeric and _ or - only.");
- if (!empty($data['default']) && altq_get_default_queue($data['interface']))
+ $default = $this->GetDefault();
+ if (!empty($data['default']) && altq_get_default_queue($data['interface']) && empty($default))
$input_errors[] = gettext("Only one default queue per interface is allowed.");
}
@@ -1038,7 +1043,7 @@ class priq_queue {
}
function build_tree() {
- $tree = " <li><a href=\"firewall_shaper.php?interface=". $this->GetInterface()."&queue=". $this->GetQname()."&action=show";
+ $tree = " <li><a href=\"firewall_shaper.php?interface=". $this->GetInterface()."&amp;queue=". $this->GetQname()."&amp;action=show";
$tree .= "\" ";
$tmpvalue = $this->GetDefault();
if (!empty($tmpvalue))
@@ -1059,7 +1064,7 @@ class priq_queue {
return $tree;
}
-
+
/* Should return something like:
* queue $qname on $qinterface bandwidth ....
*/
@@ -1117,74 +1122,74 @@ class priq_queue {
* need to update it.
*/
function build_form() {
- $form = "<tr><td valign=\"center\" class=\"vncellreq\"><br>";
+ $form = "<tr><td valign=\"middle\" class=\"vncellreq\"><br/>";
$form .= gettext("Enable/Disable");
$form .= "<br/></td><td class=\"vncellreq\">";
$form .= " <input type=\"checkbox\" id=\"enabled\" name=\"enabled\" value=\"on\"";
if ($this->GetEnabled() == "on")
- $form .= " CHECKED";
- $form .= " ><span class=\"vexpl\"> " . gettext("Enable/Disable queue and its children") . "</span>";
+ $form .= " checked=\"checked\"";
+ $form .= " /><span class=\"vexpl\"> " . gettext("Enable/Disable queue and its children") . "</span>";
$form .= "</td></tr>";
$form .= "<tr>";
- $form .= "<td width=\"22%\" valign=\"center\" class=\"vncellreq\">";
+ $form .= "<td width=\"22%\" valign=\"middle\" class=\"vncellreq\">";
$form .= gettext("Queue Name") . "</td><td width=\"78%\" class=\"vtable\">";
$form .= "<input name=\"newname\" type=\"text\" id=\"newname\" class=\"formfld unknown\" size=\"15\" maxlength=\"15\" value=\"";
$form .= htmlspecialchars($this->GetQname());
- $form .= "\">";
+ $form .= "\" />";
$form .= "<input name=\"name\" type=\"hidden\" id=\"name\" class=\"formfld unknown\" size=\"15\" maxlength=\"15\" value=\"";
$form .= htmlspecialchars($this->GetQname());
- $form .= "\">";
+ $form .= "\" />";
$form .= "<br /> <span class=\"vexpl\">" . gettext("Enter the name of the queue here. Do not use spaces and limit the size to 15 characters.");
$form .= "</span><br /></td>";
$form .= "</tr><tr>";
- $form .= "<td width=\"22%\" valign=\"center\" class=\"vncellreq\">" . gettext("Priority") . "</td>";
+ $form .= "<td width=\"22%\" valign=\"middle\" class=\"vncellreq\">" . gettext("Priority") . "</td>";
$form .= "<td width=\"78%\" class=\"vtable\"> <input name=\"priority\" type=\"text\" id=\"priority\" size=\"5\" value=\"";
$form .= htmlspecialchars($this->GetQpriority());
- $form .= "\">";
- $form .= "<br> <span class=\"vexpl\">" . gettext("For hfsc, the range is 0 to 7. The default is 1. Hfsc queues with a higher priority are preferred in the case of overload.") . "</span></td>";
+ $form .= "\" />";
+ $form .= "<br/> <span class=\"vexpl\">" . gettext("For hfsc, the range is 0 to 7. The default is 1. Hfsc queues with a higher priority are preferred in the case of overload.") . "</span></td>";
$form .= "</tr>";
$form .= "<tr>";
- $form .= "<td width=\"22%\" valign=\"center\" class=\"vncellreq\">" . gettext("Queue limit") . "</td>";
+ $form .= "<td width=\"22%\" valign=\"middle\" class=\"vncellreq\">" . gettext("Queue limit") . "</td>";
$form .= "<td width=\"78%\" class=\"vtable\"> <input name=\"qlimit\" type=\"text\" id=\"qlimit\" size=\"8\" value=\"";
$form .= htmlspecialchars($this->GetQlimit());
- $form .= "\">";
- $form .= "<br> <span class=\"vexpl\">" . gettext("Queue limit in packets per second.");
- $form .= "</span></td>";
+ $form .= "\" />";
+ $form .= "<br/> <span class=\"vexpl\">" . gettext("Queue limit in packets per second.");
+ $form .= "</span></td></tr>";
$form .= "<tr>";
- $form .= "<td width=\"22%\" valign=\"center\" class=\"vncell\">" . gettext("Scheduler options") . "</td>";
+ $form .= "<td width=\"22%\" valign=\"middle\" class=\"vncell\">" . gettext("Scheduler options") . "</td>";
$form .= "<td width=\"78%\" class=\"vtable\">";
if (empty($this->subqueues)) {
if ($this->GetDefault()) {
- $form .= "<input type=\"checkbox\" id=\"default\" CHECKED name=\"default\" value=\"default\"";
- $form .= "> " . gettext("Default queue") . "<br>";
+ $form .= "<input type=\"checkbox\" id=\"default\" checked=\"checked\" name=\"default\" value=\"default\"";
+ $form .= " /> " . gettext("Default queue") . "<br/>";
} else {
$form .= "<input type=\"checkbox\" id=\"default\" name=\"default\" value=\"default\"";
- $form .= "> " . gettext("Default queue") . "<br>";
+ $form .= " /> " . gettext("Default queue") . "<br/>";
}
}
$form .= "<input type=\"checkbox\" id=\"red\" name=\"red\" value=\"red\" ";
$tmpvalue = $this->GetRed();
if(!empty($tmpvalue))
- $form .= " CHECKED";
- $form .= "> <a target=\"_new\" href=\"http://www.openbsd.org/faq/pf/queueing.html#red\">" . gettext("Random Early Detection") . "</a><br>";
+ $form .= " checked=\"checked\"";
+ $form .= " /> <a target=\"_new\" href=\"http://www.openbsd.org/faq/pf/queueing.html#red\">" . gettext("Random Early Detection") . "</a><br/>";
$form .= "<input type=\"checkbox\" id=\"rio\" name=\"rio\" value=\"rio\"";
$tmpvalue = $this->GetRio();
if(!empty($tmpvalue))
- $form .= " CHECKED";
- $form .= "> <a target=\"_new\" href=\"http://www.openbsd.org/faq/pf/queueing.html#rio\">" . gettext("Random Early Detection In and Out") . "</a><br>";
+ $form .= " checked=\"checked\"";
+ $form .= " /> <a target=\"_new\" href=\"http://www.openbsd.org/faq/pf/queueing.html#rio\">" . gettext("Random Early Detection In and Out") . "</a><br/>";
$form .= "<input type=\"checkbox\" id=\"ecn\" name=\"ecn\" value=\"ecn\"";
$tmpvalue = $this->GetEcn();
if(!empty($tmpvalue))
- $form .= " CHECKED";
- $form .= "> <a target=\"_new\" href=\"http://www.openbsd.org/faq/pf/queueing.html#ecn\">" . gettext("Explicit Congestion Notification") . "</a><br>";
- $form .= "<span class=\"vexpl\"><br>" . gettext("Select options for this queue");
- $form .= "</tr><tr>";
+ $form .= " checked=\"checked\"";
+ $form .= " /> <a target=\"_new\" href=\"http://www.openbsd.org/faq/pf/queueing.html#ecn\">" . gettext("Explicit Congestion Notification") . "</a><br/>";
+ $form .= "<span class=\"vexpl\"><br/>" . gettext("Select options for this queue");
+ $form .= "</span></td></tr><tr>";
$form .= "<td width=\"22%\" class=\"vncellreq\">" . gettext("Description") . "</td>";
$form .= "<td width=\"78%\" class=\"vtable\">";
- $form .= "<input type=\"text\" name=\"description\" size=\"50%\" class=\"formfld unknown\" value=\"" . $this->GetDescription() . "\" >";
+ $form .= "<input type=\"text\" name=\"description\" size=\"40\" class=\"formfld unknown\" value=\"" . $this->GetDescription() . "\" />";
$form .= "</td></tr>";
$form .= "<input type=\"hidden\" name=\"interface\" id=\"interface\"";
- $form .= " value=\"".$this->GetInterface()."\">";
+ $form .= " value=\"".$this->GetInterface()."\" />";
return $form;
}
@@ -1193,12 +1198,12 @@ class priq_queue {
/* XXX: Hacks in site. Mostly layer violations! */
global $g, $altq_list_queues;
global $shaperIFlist;
-
+
$altq =& $altq_list_queues[$this->GetInterface()];
if ($altq)
$scheduler = ": " . $altq->GetScheduler();
$form = "<tr><td width=\"20%\" class=\"vtable\">";
- $form .= "<a href=\"firewall_shaper.php?interface=" . $this->GetInterface() . "&queue=" . $this->GetQname()."&action=show\">". $shaperIFlist[$this->GetInterface()] .$scheduler."</a>";
+ $form .= "<a href=\"firewall_shaper.php?interface=" . $this->GetInterface() . "&amp;queue=" . $this->GetQname()."&amp;action=show\">". $shaperIFlist[$this->GetInterface()] .$scheduler."</a>";
$form .= "</td></tr>";
/*
* XXX: Hack in sight maybe fix with a class that wraps all
@@ -1208,22 +1213,21 @@ class priq_queue {
$form .= "<td width=\"50%\" class=\"vncellreq\">";
$form .= gettext("Bandwidth:") . " " . $this->GetBandwidth().$this->GetBwscale();
$form .= "</td><td width=\"50%\"></td></tr>";
- $form .= "<tr><td width=\"20%\" class=\"vncellreq\">";
$tmpvalue = $this->GetQpriority();
if (!empty($tmpvalue))
- $form .= gettext("Priority: on") . " </td></tr>";
+ $form .= "<tr><td width=\"20%\" class=\"vncellreq\">" .gettext("Priority: on") . " </td></tr>";
$tmpvalue = $this->GetDefault();
if (!empty($tmpvalue))
$form .= "<tr><td class=\"vncellreq\">" . gettext("Default: on") . " </td></tr>";
$form .= "<tr><td width=\"20%\" class=\"vncellreq\">";
$form .= "<a href=\"firewall_shaper_queues.php?interface=";
- $form .= $this->GetInterface() . "&queue=";
- $form .= $this->GetQname() . "&action=delete\">";
+ $form .= $this->GetInterface() . "&amp;queue=";
+ $form .= $this->GetQname() . "&amp;action=delete\">";
$form .= "<img src=\"";
$form .= "./themes/".$g['theme']."/images/icons/icon_x.gif\"";
- $form .= " width=\"17\" height=\"17\" border=\"0\" title=\"" . gettext("Delete queue from interface") . "\">";
+ $form .= " width=\"17\" height=\"17\" border=\"0\" title=\"" . gettext("Delete queue from interface") . "\" alt=\"delete\" />";
$form .= "<span>" . gettext("Delete queue from interface") . "</span></a></td></tr>";
-
+
return $form;
}
@@ -1406,7 +1410,7 @@ class hfsc_queue extends priq_queue {
array_pop($path);
}
}
-
+
return $q;
}
@@ -1538,17 +1542,17 @@ class hfsc_queue extends priq_queue {
return $result;
}
}
-
+
function validate_input($data, &$input_errors) {
parent::validate_input($data, $input_errors);
-
+
$reqdfields[] = "bandwidth";
$reqdfieldsn[] = gettext("Bandwidth");
$reqdfields[] = "bandwidthtype";
$reqdfieldsn[] = gettext("Bandwidthtype");
shaper_do_input_validation($data, $reqdfields, $reqdfieldsn, $input_errors);
-
+
if (isset($data['linkshare3']) && $data['linkshare3'] <> "") {
if ($data['bandwidth'] && (!is_numeric($data['bandwidth'])))
$input_errors[] = gettext("Bandwidth must be an integer.");
@@ -1696,7 +1700,7 @@ class hfsc_queue extends priq_queue {
}
function build_tree() {
- $tree = " <li><a href=\"firewall_shaper.php?interface=" . $this->GetInterface() ."&queue=" . $this->GetQname()."&action=show";
+ $tree = " <li><a href=\"firewall_shaper.php?interface=" . $this->GetInterface() ."&amp;queue=" . $this->GetQname()."&amp;action=show";
$tree .= "\" ";
$tmpvalue = $this->GetDefault();
if (!empty($tmpvalue))
@@ -1721,7 +1725,7 @@ class hfsc_queue extends priq_queue {
$pfq_rule .= " on ".get_real_interface($this->GetInterface());
if ($this->GetBandwidth() && $this->GetBwscale())
$pfq_rule .= " bandwidth ".trim($this->GetBandwidth()).$this->GetBwscale();
-
+
$tmpvalue = $this->GetQlimit();
if (!empty($tmpvalue))
$pfq_rule .= " qlimit " . $this->GetQlimit();
@@ -1732,7 +1736,7 @@ class hfsc_queue extends priq_queue {
$comma = 1;
$pfq_rule .= " red ";
}
-
+
$tmpvalue = $this->GetRio();
if (!empty($tmpvalue)) {
if ($comma)
@@ -1800,13 +1804,14 @@ class hfsc_queue extends priq_queue {
}
$pfq_rule .= " \n";
-
+
return $pfq_rule;
}
function build_javascript() {
$javascript = parent::build_javascript();
$javascript .= "<script type=\"text/javascript\">";
+ $javascript .= "//<![CDATA[\n";
$javascript .= "function enable_realtime(enable_over) { \n";
$javascript .= "if (document.iform.realtime.checked || enable_over) { \n";
$javascript .= "document.iform.realtime1.disabled = 0;\n";
@@ -1839,8 +1844,9 @@ class hfsc_queue extends priq_queue {
$javascript .= "document.iform.upperlimit2.disabled = 1;\n";
$javascript .= "document.iform.upperlimit3.disabled = 1;\n";
$javascript .= " } \n";
-
+
$javascript .= "} \n";
+ $javascript .= "//]]>";
$javascript .= "</script>";
return $javascript;
@@ -1849,102 +1855,102 @@ class hfsc_queue extends priq_queue {
function build_form() {
$form = parent::build_form();
$form .= "<tr>";
- $form .= "<td valign=\"center\" class=\"vncellreq\">" . gettext("Bandwidth") . "</td>";
+ $form .= "<td valign=\"middle\" class=\"vncellreq\">" . gettext("Bandwidth") . "</td>";
$form .= "<td class=\"vtable\"> <input name=\"bandwidth\" id=\"bandwidth\" class=\"formfld unknown\" value=\"";
$form .= htmlspecialchars($this->GetBandwidth());
- $form .= "\">";
+ $form .= "\" />";
$form .= "<select name=\"bandwidthtype\" id=\"bandwidthtype\" class=\"formselect\">";
$form .= "<option value=\"Gb\"";
if ($this->GetBwscale() == "Gb")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">" . gettext("Gbit/s") . "</option>";
$form .= "<option value=\"Mb\"";
if ($this->GetBwscale() == "Mb")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">" . gettext("Mbit/s") . "</option>";
$form .= "<option value=\"Kb\"";
if ($this->GetBwscale() == "Kb")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">" . gettext("Kbit/s") . "</option>";
$form .= "<option value=\"b\"";
if ($this->GetBwscale() == "b")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">" . gettext("Bit/s") . "</option>";
$form .= "<option value=\"%\"";
if ($this->GetBwscale() == "%")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">%</option>";
- $form .= "</select> <br>";
+ $form .= "</select> <br/>";
$form .= "<span class=\"vexpl\">" . gettext("Choose the amount of bandwidth for this queue");
$form .= "</span></td></tr>";
$form .= "<tr>";
- $form .= "<td width=\"22%\" valign=\"center\" class=\"vncellreq\">" . gettext("Service Curve (sc)") . "</td>";
+ $form .= "<td width=\"22%\" valign=\"middle\" class=\"vncellreq\">" . gettext("Service Curve (sc)") . "</td>";
$form .= "<td width=\"78%\" class=\"vtable\">";
$form .= "<table>";
$form .= "<tr><td>&nbsp;</td><td><center>m1</center></td><td><center>d</center></td><td><center><b>m2</b></center></td></tr>";
$form .= "<tr><td><input type=\"checkbox\" id=\"upperlimit\" name=\"upperlimit\"";
if($this->GetUpperlimit()<> "")
- $form .= " CHECKED ";
- $form .= "onChange=\"enable_upperlimit()\"> " . gettext("Upperlimit:") . "</td><td><input size=\"6\" value=\"";
+ $form .= " checked=\"checked\" ";
+ $form .= "onchange=\"enable_upperlimit()\" /> " . gettext("Upperlimit:") . "</td><td><input size=\"6\" value=\"";
$form .= htmlspecialchars($this->GetU_m1());
$form .= "\" id=\"upperlimit1\" name=\"upperlimit1\" ";
if ($this->GetUpperlimit() == "")
- $form .= " disabled";
- $form .= "></td><td><input size=\"6\" value=\"";
+ $form .= " disabled=\"disabled\"";
+ $form .= " /></td><td><input size=\"6\" value=\"";
$form .= htmlspecialchars($this->GetU_d());
$form .= "\" id=\"upperlimi2\" name=\"upperlimit2\" ";
if ($this->GetUpperlimit() == "")
- $form .= " disabled";
- $form .= "></td><td><input size=\"6\" value=\"";
+ $form .= " disabled=\"disabled\"";
+ $form .= " /></td><td><input size=\"6\" value=\"";
$form .= htmlspecialchars($this->GetU_m2());
$form .= "\" id=\"upperlimit3\" name=\"upperlimit3\" ";
if ($this->GetUpperlimit() == "")
- $form .= " disabled";
- $form .= "></td><td>" . gettext("The maximum allowed bandwidth for the queue.") . "</td></tr>";
+ $form .= " disabled=\"disabled\"";
+ $form .= " /></td><td>" . gettext("The maximum allowed bandwidth for the queue.") . "</td></tr>";
$form .= "<tr><td><input type=\"checkbox\" id=\"realtime\" name=\"realtime\"";
if($this->GetRealtime() <> "")
- $form .= " CHECKED ";
- $form .= "onChange=\"enable_realtime()\"> " . gettext("Real time:") . "</td><td><input size=\"6\" value=\"";
+ $form .= " checked=\"checked\" ";
+ $form .= "onchange=\"enable_realtime()\" /> " . gettext("Real time:") . "</td><td><input size=\"6\" value=\"";
$form .= htmlspecialchars($this->GetR_m1());
$form .= "\" id=\"realtime1\" name=\"realtime1\" ";
if ($this->GetRealtime() == "")
- $form .= " disabled";
- $form .= "></td><td><input size=\"6\" value=\"";
+ $form .= " disabled=\"disabled\"";
+ $form .= " /></td><td><input size=\"6\" value=\"";
$form .= htmlspecialchars($this->GetR_d());
$form .= "\" id=\"realtime2\" name=\"realtime2\" ";
if ($this->GetRealtime() == "")
- $form .= " disabled";
- $form .= "></td><td><input size=\"6\" value=\"";
+ $form .= " disabled=\"disabled\"";
+ $form .= " /></td><td><input size=\"6\" value=\"";
$form .= htmlspecialchars($this->GetR_m2());
$form .= "\" id=\"realtime3\" name=\"realtime3\" ";
if ($this->GetRealtime() == "")
- $form .= " disabled";
- $form .= "></td><td>" . gettext("The minimum required bandwidth for the queue.") . "</td></tr>";
- $form .= "<tr><td><input type=\"checkbox\" id=\"linkshare\" id=\"linkshare\" name=\"linkshare\"";
+ $form .= " disabled=\"disabled\"";
+ $form .= " /></td><td>" . gettext("The minimum required bandwidth for the queue.") . "</td></tr>";
+ $form .= "<tr><td><input type=\"checkbox\" id=\"linkshare\" name=\"linkshare\"";
if($this->GetLinkshare() <> "")
- $form .= " CHECKED ";
- $form .= "onChange=\"enable_linkshare()\"> " . gettext("Link share:") . "</td><td><input size=\"6\" value=\"";
+ $form .= " checked=\"checked\" ";
+ $form .= "onchange=\"enable_linkshare()\" /> " . gettext("Link share:") . "</td><td><input size=\"6\" value=\"";
$form .= htmlspecialchars($this->GetL_m1());
$form .= "\" id=\"linkshare1\" name=\"linkshare1\" ";
if ($this->GetLinkshare() == "")
- $form .= " disabled";
- $form .= "></td><td><input size=\"6\" value=\"";
+ $form .= " disabled=\"disabled\"";
+ $form .= " /></td><td><input size=\"6\" value=\"";
$form .= htmlspecialchars($this->GetL_d());
$form .= "\" id=\"linkshare2\" name=\"linkshare2\" ";
if ($this->GetLinkshare() == "")
- $form .= " disabled";
- $form .= "></td><td><input size=\"6\" value=\"";
+ $form .= " disabled=\"disabled\"";
+ $form .= " /></td><td><input size=\"6\" value=\"";
$form .= htmlspecialchars($this->GetL_m2());
$form .= "\" id=\"linkshare3\" name=\"linkshare3\" ";
if ($this->GetLinkshare() == "")
- $form .= " disabled";
- $form .= "></td><td>" . gettext("The bandwidth share of a backlogged queue - this overrides priority.") . "</td></tr>";
- $form .= "</table><br>";
+ $form .= " disabled=\"disabled\"";
+ $form .= " /></td><td>" . gettext("The bandwidth share of a backlogged queue - this overrides priority.") . "</td></tr>";
+ $form .= "</table><br/>";
$form .= gettext("The format for service curve specifications is (m1, d, m2). m2 controls "
. "the bandwidth assigned to the queue. m1 and d are optional and can be "
. "used to control the initial bandwidth assignment. For the first d milliseconds the queue gets the bandwidth given as m1, afterwards the value "
. "given in m2.");
- $form .= "</span></td>";
+ $form .= "</td>";
$form .= "</tr>";
return $form;
@@ -2151,7 +2157,7 @@ class cbq_queue extends priq_queue {
}
}
}
-
+
/*
* Should search even its children
*/
@@ -2184,10 +2190,10 @@ class cbq_queue extends priq_queue {
}
unset_object_by_reference($this->GetLink());
}
-
+
function validate_input($data, &$input_errors) {
parent::validate_input($data, $input_errors);
-
+
if ($data['priority'] > 7)
$input_errors[] = gettext("Priority must be an integer between 1 and 7.");
$reqdfields[] = "bandwidth";
@@ -2196,7 +2202,7 @@ class cbq_queue extends priq_queue {
$reqdfieldsn[] = gettext("Bandwidthtype");
shaper_do_input_validation($data, $reqdfields, $reqdfieldsn, $input_errors);
-
+
if ($data['bandwidth'] && !is_numeric($data['bandwidth']))
$input_errors[] = gettext("Bandwidth must be an integer.");
@@ -2231,13 +2237,13 @@ class cbq_queue extends priq_queue {
else
$this->SetBorrow("");
}
-
+
function build_javascript() {
return parent::build_javascript();
}
function build_tree() {
- $tree = " <li><a href=\"firewall_shaper.php?interface=" . $this->GetInterface()."&queue=" . $this->GetQname()."&action=show";
+ $tree = " <li><a href=\"firewall_shaper.php?interface=" . $this->GetInterface()."&amp;queue=" . $this->GetQname()."&amp;action=show";
$tree .= "\" ";
$tmpvalue = trim($this->GetDefault());
if (!empty($tmpvalue))
@@ -2253,7 +2259,7 @@ class cbq_queue extends priq_queue {
$tree .= "</li>";
return $tree;
}
-
+
/* Even this should take children into consideration */
function build_rules(&$default = false) {
$pfq_rule = "queue ". $this->qname;
@@ -2326,40 +2332,40 @@ class cbq_queue extends priq_queue {
function build_form() {
$form = parent::build_form();
$form .= "<tr>";
- $form .= "<td valign=\"center\" class=\"vncellreq\">" . gettext("Bandwidth") . "</td>";
+ $form .= "<td valign=\"middle\" class=\"vncellreq\">" . gettext("Bandwidth") . "</td>";
$form .= "<td class=\"vtable\"> <input name=\"bandwidth\" id=\"bandwidth\" class=\"formfld unknown\" value=\"";
if ($this->GetBandwidth() > 0)
$form .= htmlspecialchars($this->GetBandwidth());
- $form .= "\">";
+ $form .= "\" />";
$form .= "<select name=\"bandwidthtype\" id=\"bandwidthtype\" class=\"formselect\">";
$form .= "<option value=\"Gb\"";
if ($this->GetBwscale() == "Gb")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">" . gettext("Gbit/s") . "</option>";
$form .= "<option value=\"Mb\"";
if ($this->GetBwscale() == "Mb")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">" . gettext("Mbit/s") . "</option>";
$form .= "<option value=\"Kb\"";
if ($this->GetBwscale() == "Kb")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">" . gettext("Kbit/s") . "</option>";
$form .= "<option value=\"b\"";
if ($this->GetBwscale() == "b")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">" . gettext("Bit/s") . "</option>";
$form .= "<option value=\"%\"";
if ($this->GetBwscale() == "%")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">%</option>";
- $form .= "</select> <br>";
+ $form .= "</select> <br/>";
$form .= "<span class=\"vexpl\">" . gettext("Choose the amount of bandwidth for this queue");
$form .= "</span></td></tr>";
$form .= "<tr><td class=\"vncellreq\">" . gettext("Scheduler specific options") . "</td>";
$form .= "<td class=\"vtable\"><input type=\"checkbox\" id=\"borrow\" name=\"borrow\"";
if($this->GetBorrow() == "on")
- $form .= " CHECKED ";
- $form .= "> " . gettext("Borrow from other queues when available") . "<br></td></tr>";
+ $form .= " checked=\"checked\" ";
+ $form .= " /> " . gettext("Borrow from other queues when available") . "<br/></td></tr>";
return $form;
}
@@ -2443,7 +2449,7 @@ class fairq_queue extends priq_queue {
$cflink['buckets'] = $this->GetBuckets();
$cflink['hogs'] = $this->GetHogs();
}
-
+
/*
* Should search even its children
*/
@@ -2459,10 +2465,10 @@ class fairq_queue extends priq_queue {
cleanup_queue_from_rules($this->GetQname());
unset_object_by_reference($this->GetLink());
}
-
+
function validate_input($data, &$input_errors) {
parent::validate_input($data, $input_errors);
-
+
if ($data['priority'] > 255)
$input_errors[] = gettext("Priority must be an integer between 1 and 255.");
$reqdfields[] = "bandwidth";
@@ -2471,7 +2477,7 @@ class fairq_queue extends priq_queue {
$reqdfieldsn[] = gettext("Bandwidthtype");
shaper_do_input_validation($data, $reqdfields, $reqdfieldsn, $input_errors);
-
+
if ($data['bandwidth'] && !is_numeric($data['bandwidth']))
$input_errors[] = gettext("Bandwidth must be an integer.");
@@ -2498,7 +2504,7 @@ class fairq_queue extends priq_queue {
$input_errors[] = "The sum of children bandwidth exceeds that of the parent.";
*/
}
-
+
function ReadConfig(&$q) {
parent::ReadConfig($q);
if (!empty($q['buckets']))
@@ -2510,14 +2516,14 @@ class fairq_queue extends priq_queue {
else
$this->SetHogs("");
}
-
+
function build_javascript() {
return parent::build_javascript();
}
function build_tree() {
$tree = " <li><a href=\"firewall_shaper.php?interface=" .
- $this->GetInterface()."&queue=" . $this->GetQname()."&action=show";
+ $this->GetInterface()."&amp;queue=" . $this->GetQname()."&amp;action=show";
$tree .= "\" ";
$tmpvalue = trim($this->GetDefault());
if (!empty($tmpvalue))
@@ -2526,7 +2532,7 @@ class fairq_queue extends priq_queue {
$tree .= "</li>";
return $tree;
}
-
+
/* Even this should take children into consideration */
function build_rules(&$default = false) {
$pfq_rule = "queue ". $this->qname;
@@ -2592,33 +2598,33 @@ class fairq_queue extends priq_queue {
function build_form() {
$form = parent::build_form();
$form .= "<tr>";
- $form .= "<td valign=\"center\" class=\"vncellreq\">" . gettext("Bandwidth") . "</td>";
+ $form .= "<td valign=\"middle\" class=\"vncellreq\">" . gettext("Bandwidth") . "</td>";
$form .= "<td class=\"vtable\"> <input name=\"bandwidth\" id=\"bandwidth\" class=\"formfld unknown\" value=\"";
if ($this->GetBandwidth() > 0)
$form .= htmlspecialchars($this->GetBandwidth());
- $form .= "\">";
+ $form .= "\" />";
$form .= "<select name=\"bandwidthtype\" id=\"bandwidthtype\" class=\"formselect\">";
$form .= "<option value=\"Gb\"";
if ($this->GetBwscale() == "Gb")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">" . gettext("Gbit/s") . "</option>";
$form .= "<option value=\"Mb\"";
if ($this->GetBwscale() == "Mb")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">" . gettext("Mbit/s") . "</option>";
$form .= "<option value=\"Kb\"";
if ($this->GetBwscale() == "Kb")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">" . gettext("Kbit/s") . "</option>";
$form .= "<option value=\"b\"";
if ($this->GetBwscale() == "b")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">" . gettext("Bit/s") . "</option>";
$form .= "<option value=\"%\"";
if ($this->GetBwscale() == "%")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">%</option>";
- $form .= "</select> <br>";
+ $form .= "</select> <br/>";
$form .= "<span class=\"vexpl\">" . gettext("Choose the amount of bandwidth for this queue");
$form .= "</span></td></tr>";
$form .= "<tr><td class=\"vncellreq\">" . gettext("Scheduler specific options") . "</td>";
@@ -2627,12 +2633,12 @@ class fairq_queue extends priq_queue {
$tmpvalue = trim($this->GetBuckets());
if(!empty($tmpvalue))
$form .= $this->GetBuckets();
- $form .= "\"> " . gettext("Number of buckets available.") . "<br></td></tr>";
+ $form .= "\" /> " . gettext("Number of buckets available.") . "<br/></td></tr>";
$form .= "<tr><td class=\"vtable\"><input id=\"hogs\" name=\"hogs\" value=\"";
$tmpvalue = trim($this->GetHogs());
if(!empty($tmpvalue))
$form .= $this->GetHogs();
- $form .= "\"> " . gettext("Bandwidth limit for hosts to not saturate link.") . "<br></td></tr>";
+ $form .= "\" /> " . gettext("Bandwidth limit for hosts to not saturate link.") . "<br/></td></tr>";
$form .= "</table></td></tr>";
return $form;
}
@@ -2791,7 +2797,7 @@ class dummynet_class {
$reqdfieldsn[] = gettext("Bandwidthtype");
$reqdfields[] = "newname";
$reqdfieldsn[] = gettext("Name");
-
+
shaper_do_input_validation($data, $reqdfields, $reqdfieldsn, $input_errors);
if ($data['plr'] && ((!is_numeric($data['plr'])) ||
@@ -2844,7 +2850,7 @@ class dnpipe_class extends dummynet_class {
if (!is_array($this->subqueues))
$this->subqueues = array();
-
+
$q =& new dnqueue_class();
$q->SetLink($path);
$q->SetEnabled("on");
@@ -2873,7 +2879,7 @@ class dnpipe_class extends dummynet_class {
}
return $qlist;
}
-
+
/*
* Should search even its children
*/
@@ -2978,7 +2984,7 @@ class dnpipe_class extends dummynet_class {
}
function build_tree() {
- $tree = " <li><a href=\"firewall_shaper_vinterface.php?pipe=" . $this->GetQname() ."&queue=".$this->GetQname() ."&action=show\">";
+ $tree = " <li><a href=\"firewall_shaper_vinterface.php?pipe=" . $this->GetQname() ."&amp;queue=".$this->GetQname() ."&amp;action=show\">";
$tree .= $this->GetQname() . "</a>";
if (is_array($this->subqueues)) {
$tree .= "<ul>";
@@ -2988,7 +2994,7 @@ class dnpipe_class extends dummynet_class {
$tree .= "</ul>";
}
$tree .= "</li>";
-
+
return $tree;
}
@@ -3085,7 +3091,8 @@ class dnpipe_class extends dummynet_class {
$bwopt .= "<option value='{$bwidx}'>{$bw}</option>";
$javasr = <<<EOD
-<script text='type/javascript'>
+<script type='text/javascript'>
+//<![CDATA[
var addBwRowTo = (function() {
return (function (tableId) {
var d, tbody, tr, td;
@@ -3093,17 +3100,17 @@ var addBwRowTo = (function() {
tbody = d.getElementById(tableId).getElementsByTagName("tbody").item(0);
tr = d.createElement("tr");
td = d.createElement("td");
- td.innerHTML="<INPUT type='hidden' value='" + totalrows +"' name='bandwidth_row-" + totalrows + "'></input><input size='10' type='text' class='formfld unknown' name='bandwidth" + totalrows + "' id='bandwidth" + totalrows + "'></input> ";
+ td.innerHTML="<input type='hidden' value='" + totalrows +"' name='bandwidth_row-" + totalrows + "' /><input size='10' type='text' class='formfld unknown' name='bandwidth" + totalrows + "' id='bandwidth" + totalrows + "' />";
tr.appendChild(td);
td = d.createElement("td");
- td.innerHTML="<INPUT type='hidden' value='" + totalrows +"' name='bwtype_row-" + totalrows + "'></input><select class='formselect' name='bwtype" + totalrows + "'>{$bwopt}</select>";
+ td.innerHTML="<input type='hidden' value='" + totalrows +"' name='bwtype_row-" + totalrows + "' /><select class='formselect' name='bwtype" + totalrows + "'>{$bwopt}</select>";
tr.appendChild(td);
td = d.createElement("td");
- td.innerHTML="<INPUT type='hidden' value='" + totalrows +"' name='bwsched_row-" + totalrows + "'></input><select class='formselect' name='bwsched" + totalrows + "'>{$schedules}</select>";
+ td.innerHTML="<input type='hidden' value='" + totalrows +"' name='bwsched_row-" + totalrows + "' /><select class='formselect' name='bwsched" + totalrows + "'>{$schedules}</select>";
tr.appendChild(td);
td = d.createElement("td");
td.rowSpan = "1";
- td.innerHTML = '<a onclick="removeBwRow(this); return false;" href="#"><img border="0" src="/themes/{$g['theme']}/images/icons/icon_x.gif" /></a>';
+ td.innerHTML = '<a onclick="removeBwRow(this); return false;" href="#"><img border="0" src="/themes/{$g['theme']}/images/icons/icon_x.gif" alt="remove" /></a>';
tr.appendChild(td);
tbody.appendChild(tr);
totalrows++;
@@ -3119,6 +3126,7 @@ function removeBwRow(el) {
el.parentNode.removeChild(el);
}
}
+//]]>
</script>
EOD;
@@ -3139,26 +3147,26 @@ EOD;
}
}
- $form = "<tr><td valign=\"center\" class=\"vncellreq\"><br>";
+ $form = "<tr><td valign=\"middle\" class=\"vncellreq\"><br/>";
$form .= gettext("Enable");
$form .= "</td><td class=\"vncellreq\">";
$form .= " <input type=\"checkbox\" id=\"enabled\" name=\"enabled\" value=\"on\"";
if ($this->GetEnabled() == "on")
- $form .= " CHECKED";
- $form .= " ><span class=\"vexpl\"> " . gettext("Enable limiter and its children") . "</span>";
+ $form .= " checked=\"checked\"";
+ $form .= " /><span class=\"vexpl\"> " . gettext("Enable limiter and its children") . "</span>";
$form .= "</td></tr>";
- $form .= "<tr><td valign=\"center\" class=\"vncellreq\"><br><span class=\"vexpl\">" . gettext("Name") . "</span></td>";
+ $form .= "<tr><td valign=\"middle\" class=\"vncellreq\"><br/><span class=\"vexpl\">" . gettext("Name") . "</span></td>";
$form .= "<td class=\"vncellreq\">";
$form .= "<input type=\"text\" id=\"newname\" name=\"newname\" value=\"";
- $form .= $this->GetQname()."\">";
+ $form .= $this->GetQname()."\" />";
$form .= "<input type=\"hidden\" id=\"name\" name=\"name\" value=\"";
- $form .= $this->GetQname()."\">";
+ $form .= $this->GetQname()."\" />";
if ($this->GetNumber() > 0) {
$form .= "<input type=\"hidden\" id=\"number\" name=\"number\" value=\"";
- $form .= $this->GetNumber()."\">";
+ $form .= $this->GetNumber()."\" />";
}
$form .= "</td></tr>";
- $form .= "<tr><td valign=\"center\" class=\"vncellreq\">" . gettext("Bandwidth");
+ $form .= "<tr><td valign=\"middle\" class=\"vncellreq\">" . gettext("Bandwidth");
$bandwidth = $this->GetBandwidth();
$form .= "</td><td class=\"vncellreq\">";
$form .= "<table id='maintable'>";
@@ -3171,13 +3179,13 @@ EOD;
if (is_array($bandwidth)) {
foreach ($bandwidth as $bwidx => $bw) {
$form .= "\n<tr><td width='40%'>";
- $form .= "<input class='formfld unknown' size='10' type=\"text\" id=\"bandwidth{$bwidx}\" name=\"bandwidth{$bwidx}\" value=\"{$bw['bw']}\">";
+ $form .= "<input class='formfld unknown' size='10' type=\"text\" id=\"bandwidth{$bwidx}\" name=\"bandwidth{$bwidx}\" value=\"{$bw['bw']}\" />";
$form .= "</td><td width='20%'>";
$form .= "<select id=\"bwtype{$bwidx}\" name=\"bwtype{$bwidx}\" class=\"formselect\">";
foreach (array("Kb" => "Kbit/s", "Mb" => "Mbit/s", "Gb" => "Gbit/s", "b" => "Bit/s") as $bwsidx => $bwscale) {
$form .= "<option value=\"{$bwsidx}\"";
if ($bw['bwscale'] == $bwsidx)
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">{$bwscale}</option>";
}
$form .= "</select>";
@@ -3186,97 +3194,97 @@ EOD;
foreach ($schedules as $schd) {
$selected = "";
if ($bw['bwsched'] == $schd)
- $selected = "selected";
+ $selected = "selected=\"selected\"";
$form .= "<option value='{$schd}' {$selected}>{$schd}</option>";
}
$form .= "</select>";
$form .= "</td><td width='5%' >";
- $form .= "<a onclick=\"removeBwRow(this); return false;\" href='#'><img border='0' src='/themes/{$g['theme']}/images/icons/icon_x.gif' /></a>";
+ $form .= "<a onclick=\"removeBwRow(this); return false;\" href='#'><img border='0' src='/themes/{$g['theme']}/images/icons/icon_x.gif' alt='remove' /></a>";
$form .= "</td></tr>";
}
}
$form .= "</tbody></table>";
$form .= "<a onclick=\"javascript:addBwRowTo('maintable'); return false;\" href='#'>";
- $form .= "<img border='0' src='/themes/{$g['theme']}/images/icons/icon_plus.gif' alt='' title='" . gettext("add another schedule") . "' /></a>";
+ $form .= "<img border='0' src='/themes/{$g['theme']}/images/icons/icon_plus.gif' alt='add' title='" . gettext("add another schedule") . "' /></a>";
$form .= "</td></tr>";
- $form .= "<tr><td valign=\"center\" class=\"vncellreq\">" . gettext("Mask") . "</td>";
+ $form .= "<tr><td valign=\"middle\" class=\"vncellreq\">" . gettext("Mask") . "</td>";
$form .= "<td class=\"vncellreq\">";
$form .= "<select name=\"mask\" class=\"formselect\">";
$form .= "<option value=\"none\"";
if ($this->GetMask() == "none")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">none</option>";
$form .= "<option value=\"srcaddress\"";
if ($this->GetMask() == "srcaddress")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">" . gettext("Source addresses") . "</option>";
$form .= "<option value=\"dstaddress\"";
if ($this->GetMask() == "dstaddress")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">" . gettext("Destination addresses") . "</option>";
$form .= "</select>";
- $form .= "&nbsp;<br>";
+ $form .= "&nbsp;<br/>";
$form .= "<span class=\"vexpl\">" . gettext("If 'source' or 'destination' is chosen, \n"
. "a dynamic pipe with the bandwidth, delay, packet loss and queue size given above will \n"
. "be created for each source/destination IP address encountered, \n"
. "respectively. This makes it possible to easily specify bandwidth \n"
. "limits per host.") . "</span>";
$form .= "</td></tr>";
- $form .= "<tr><td valign=\"center\" class=\"vncellreq\">" . gettext("Description") . "</td>";
+ $form .= "<tr><td valign=\"middle\" class=\"vncellreq\">" . gettext("Description") . "</td>";
$form .= "<td class=\"vncellreq\">";
- $form .= "<input type=\"text\" class=\"formfld unknown\" size=\"50%\" id=\"description\" name=\"description\" value=\"";
+ $form .= "<input type=\"text\" class=\"formfld unknown\" size=\"40\" id=\"description\" name=\"description\" value=\"";
$form .= $this->GetDescription();
- $form .= "\">";
- $form .= "<br> <span class=\"vexpl\">";
+ $form .= "\" />";
+ $form .= "<br/> <span class=\"vexpl\">";
$form .= gettext("You may enter a description here for your reference (not parsed).") . "</span>";
$form .= "</td></tr>";
- $form .= "<tr id=\"sprtable4\" name=\"sprtable4\">";
+ $form .= "<tr id=\"sprtable4\">";
$form .= "<td></td>";
$form .= "<td><div id=\"showadvancedboxspr\">";
- $form .= "<p><input type=\"button\" onClick=\"show_source_port_range()\"";
- $form .= " value=\"" . gettext("Show advanced options") . "\"></input></a>";
- $form .= "</div></td></tr>";
- $form .= "<tr style=\"display:none\" id=\"sprtable\" name=\"sprtable\">";
+ $form .= "<p><input type=\"button\" onclick=\"show_source_port_range()\"";
+ $form .= " value=\"" . gettext("Show advanced options") . "\" />";
+ $form .= "</p></div></td></tr>";
+ $form .= "<tr style=\"display:none\" id=\"sprtable\">";
- $form .= "<td valign=\"center\" class=\"vncellreq\">" . gettext("Delay") . "</td>";
- $form .= "<td valign=\"center\" class=\"vncellreq\">";
+ $form .= "<td valign=\"middle\" class=\"vncellreq\">" . gettext("Delay") . "</td>";
+ $form .= "<td valign=\"middle\" class=\"vncellreq\">";
$form .= "<input name=\"delay\" type=\"text\" id=\"delay\" size=\"5\" value=\"";
- $form .= $this->GetDelay() . "\">";
- $form .= "&nbsp;ms<br> <span class=\"vexpl\">" . gettext("Hint: in most cases, you "
- . "should specify 0 here (or leave the field empty)") . "</span>";
- $form .= "</td></tr><br/>";
- $form .= "<tr style=\"display:none\" id=\"sprtable1\" name=\"sprtable1\">";
- $form .= "<td valign=\"center\" class=\"vncellreq\">" . gettext("Packet loss rate") . "</td>";
- $form .= "<td valign=\"center\" class=\"vncellreq\">";
+ $form .= $this->GetDelay() . "\" />";
+ $form .= "&nbsp;ms<br/> <span class=\"vexpl\">" . gettext("Hint: in most cases, you "
+ . "should specify 0 here (or leave the field empty)") . "</span><br/>";
+ $form .= "</td></tr>";
+ $form .= "<tr style=\"display:none\" id=\"sprtable1\">";
+ $form .= "<td valign=\"middle\" class=\"vncellreq\">" . gettext("Packet loss rate") . "</td>";
+ $form .= "<td valign=\"middle\" class=\"vncellreq\">";
$form .= "<input name=\"plr\" type=\"text\" id=\"plr\" size=\"5\" value=\"";
- $form .= $this->GetPlr() . "\">";
- $form .= "&nbsp;<br> <span class=\"vexpl\">" . gettext("Hint: in most cases, you "
+ $form .= $this->GetPlr() . "\" />";
+ $form .= "&nbsp;<br/> <span class=\"vexpl\">" . gettext("Hint: in most cases, you "
. "should specify 0 here (or leave the field empty). "
. "A value of 0.001 means one packet in 1000 gets dropped") . "</span>";
$form .= "</td></tr>";
- $form .= "<tr style=\"display:none\" id=\"sprtable2\" name=\"sprtable2\">";
- $form .= "<td valign=\"center\" class=\"vncellreq\">" . gettext("Queue Size") . "</td>";
+ $form .= "<tr style=\"display:none\" id=\"sprtable2\">";
+ $form .= "<td valign=\"middle\" class=\"vncellreq\">" . gettext("Queue Size") . "</td>";
$form .= "<td class=\"vncellreq\">";
$form .= "<input type=\"text\" id=\"qlimit\" name=\"qlimit\" value=\"";
- $form .= $this->GetQlimit() . "\">";
- $form .= "&nbsp;slots<br>";
+ $form .= $this->GetQlimit() . "\" />";
+ $form .= "&nbsp;slots<br/>";
$form .= "<span class=\"vexpl\">" . gettext("Hint: in most cases, you "
. "should leave the field empty. All packets in this pipe are placed into a fixed-size queue first, "
. "then they are delayed by value specified in the Delay field, and then they "
. "are delivered to their destination.") . "</span>";
$form .= "</td></tr>";
- $form .= "<tr style=\"display:none\" id=\"sprtable5\" name=\"sprtable5\">";
- $form .= "<td valign=\"center\" class=\"vncellreq\">" . gettext("Bucket Size") . "</td>";
+ $form .= "<tr style=\"display:none\" id=\"sprtable5\">";
+ $form .= "<td valign=\"middle\" class=\"vncellreq\">" . gettext("Bucket Size") . "</td>";
$form .= "<td class=\"vncellreq\">";
$form .= "<input type=\"text\" id=\"buckets\" name=\"buckets\" value=\"";
- $form .= $this->GetBuckets() . "\">";
- $form .= "&nbsp;slots<br>";
+ $form .= $this->GetBuckets() . "\" />";
+ $form .= "&nbsp;slots<br/>";
$form .= "<span class=\"vexpl\">" . gettext("Hint: in most cases, you "
. "should leave the field empty. It increases the hash size set.");
- $form .= "</td></tr>";
+ $form .= "</span></td></tr>";
return $form;
-
+
}
function wconfig() {
@@ -3389,10 +3397,10 @@ class dnqueue_class extends dummynet_class {
function build_tree() {
$parent =& $this->GetParent();
- $tree = " <li><a href=\"firewall_shaper_vinterface.php?pipe=" . $parent->GetQname() ."&queue=" . $this->GetQname() ."&action=show\">";
+ $tree = " <li><a href=\"firewall_shaper_vinterface.php?pipe=" . $parent->GetQname() ."&amp;queue=" . $this->GetQname() ."&amp;action=show\">";
$tree .= $this->GetQname() . "</a>";
$tree .= "</li>";
-
+
return $tree;
}
@@ -3421,112 +3429,112 @@ class dnqueue_class extends dummynet_class {
default:
break;
}
- $pfq_rule .= "\n";
}
+ $pfq_rule .= "\n";
return $pfq_rule;
}
function build_form() {
- $form = "<tr><td valign=\"center\" class=\"vncellreq\"><br>";
+ $form = "<tr><td valign=\"middle\" class=\"vncellreq\"><br/>";
$form .= gettext("Enable/Disable");
$form .= "</td><td class=\"vncellreq\">";
$form .= " <input type=\"checkbox\" id=\"enabled\" name=\"enabled\" value=\"on\"";
if ($this->GetEnabled() == "on")
- $form .= " CHECKED";
- $form .= " ><span class=\"vexpl\"> " . gettext("Enable/Disable queue") . "</span>";
+ $form .= " checked=\"checked\"";
+ $form .= " /><span class=\"vexpl\"> " . gettext("Enable/Disable queue") . "</span>";
$form .= "</td></tr>";
- $form .= "<tr><td valign=\"center\" class=\"vncellreq\"><br><span class=\"vexpl\">" . gettext("Name") . "</span></td>";
+ $form .= "<tr><td valign=\"middle\" class=\"vncellreq\"><br/><span class=\"vexpl\">" . gettext("Name") . "</span></td>";
$form .= "<td class=\"vncellreq\">";
$form .= "<input type=\"text\" id=\"newname\" name=\"newname\" value=\"";
- $form .= $this->GetQname()."\">";
+ $form .= $this->GetQname()."\" />";
$form .= "<input type=\"hidden\" id=\"name\" name=\"name\" value=\"";
- $form .= $this->GetQname()."\">";
+ $form .= $this->GetQname()."\" />";
if ($this->GetNumber() > 0) {
$form .= "<input type=\"hidden\" id=\"number\" name=\"number\" value=\"";
- $form .= $this->GetNumber()."\">";
+ $form .= $this->GetNumber()."\" />";
}
$form .= "</td></tr>";
- $form .= "<tr><td valign=\"center\" class=\"vncellreq\">" . gettext("Mask") . "</td>";
+ $form .= "<tr><td valign=\"middle\" class=\"vncellreq\">" . gettext("Mask") . "</td>";
$form .= "<td class=\"vncellreq\">";
$form .= "<select name=\"mask\" class=\"formselect\">";
$form .= "<option value=\"none\"";
if ($this->GetMask() == "none")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">" . gettext("none") . "</option>";
$form .= "<option value=\"srcaddress\"";
if ($this->GetMask() == "srcaddress")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">" . gettext("Source addresses") . "</option>";
$form .= "<option value=\"dstaddress\"";
if ($this->GetMask() == "dstaddress")
- $form .= " selected=\"yes\"";
+ $form .= " selected=\"selected\"";
$form .= ">" . gettext("Destination addresses") . "</option>";
$form .= "</select>";
- $form .= "&nbsp;slots<br>";
+ $form .= "&nbsp;slots<br/>";
$form .= "<span class=\"vexpl\">" . gettext("If 'source' or 'destination' is chosen, \n"
. "a dynamic pipe with the bandwidth, delay, packet loss and queue size given above will \n"
. "be created for each source/destination IP address encountered, \n"
. "respectively. This makes it possible to easily specify bandwidth \n"
. "limits per host.") . "</span>";
$form .= "</td></tr>";
- $form .= "<tr><td valign=\"center\" class=\"vncellreq\">Description</td>";
+ $form .= "<tr><td valign=\"middle\" class=\"vncellreq\">" . gettext("Description") . "</td>";
$form .= "<td class=\"vncellreq\">";
- $form .= "<input type=\"text\" id=\"description\" class=\"formfld unknown\" size=\"50%\" name=\"description\" value=\"";
+ $form .= "<input type=\"text\" id=\"description\" class=\"formfld unknown\" size=\"40\" name=\"description\" value=\"";
$form .= $this->GetDescription();
- $form .= "\">";
- $form .= "<br> <span class=\"vexpl\">";
+ $form .= "\" />";
+ $form .= "<br/> <span class=\"vexpl\">";
$form .= gettext("You may enter a description here for your reference (not parsed).") . "</span>";
$form .= "</td></tr>";
- $form .= "<tr id=\"sprtable4\" name=\"sprtable4\">";
+ $form .= "<tr id=\"sprtable4\">";
$form .= "<td></td>";
$form .= "<td><div id=\"showadvancedboxspr\">";
- $form .= "<p><input type=\"button\" onClick=\"show_source_port_range()\"";
- $form .= " value=\"" . gettext("Show advanced options") . "\"></input></a>";
- $form .= "</div></td></tr>";
- $form .= "<tr style=\"display:none\" id=\"sprtable\" name=\"sprtable\">";
- $form .= "<td valign=\"center\" class=\"vncellreq\">" . gettext("Weight") . "</td>";
- $form .= "<td valign=\"center\" class=\"vncellreq\">";
+ $form .= "<p><input type=\"button\" onclick=\"show_source_port_range()\"";
+ $form .= " value=\"" . gettext("Show advanced options") . "\" />";
+ $form .= "</p></div></td></tr>";
+ $form .= "<tr style=\"display:none\" id=\"sprtable\">";
+ $form .= "<td valign=\"middle\" class=\"vncellreq\">" . gettext("Weight") . "</td>";
+ $form .= "<td valign=\"middle\" class=\"vncellreq\">";
$form .= "<input name=\"weight\" type=\"text\" id=\"weight\" size=\"5\" value=\"";
- $form .= $this->GetWeight() . "\">";
- $form .= "&nbsp;<br> <span class=\"vexpl\">" . gettext("Hint: For queues under the same parent "
+ $form .= $this->GetWeight() . "\" />";
+ $form .= "&nbsp;<br/> <span class=\"vexpl\">" . gettext("Hint: For queues under the same parent "
. "this specifies the share that a queue gets(values range from 1 to 100, you can leave it blank otherwise)") . "</span>";
$form .= "</td></tr>";
- $form .= "<tr style=\"display:none\" id=\"sprtable1\" name=\"sprtable1\">";
- $form .= "<td valign=\"center\" class=\"vncellreq\">" . gettext("Packet loss rate") . "</td>";
- $form .= "<td valign=\"center\" class=\"vncellreq\">";
+ $form .= "<tr style=\"display:none\" id=\"sprtable1\">";
+ $form .= "<td valign=\"middle\" class=\"vncellreq\">" . gettext("Packet loss rate") . "</td>";
+ $form .= "<td valign=\"middle\" class=\"vncellreq\">";
$form .= "<input name=\"plr\" type=\"text\" id=\"plr\" size=\"5\" value=\"";
- $form .= $this->GetPlr() . "\">";
- $form .= "&nbsp;<br> <span class=\"vexpl\">" . gettext("Hint: in most cases, you "
+ $form .= $this->GetPlr() . "\" />";
+ $form .= "&nbsp;<br/> <span class=\"vexpl\">" . gettext("Hint: in most cases, you "
. "should specify 0 here (or leave the field empty). "
. "A value of 0.001 means one packet in 1000 gets dropped") . "</span>";
$form .= "</td></tr>";
- $form .= "<tr style=\"display:none\" id=\"sprtable2\" name=\"sprtable2\">";
- $form .= "<td valign=\"center\" class=\"vncellreq\">" . gettext("Queue Size") . "</td>";
+ $form .= "<tr style=\"display:none\" id=\"sprtable2\">";
+ $form .= "<td valign=\"middle\" class=\"vncellreq\">" . gettext("Queue Size") . "</td>";
$form .= "<td class=\"vncellreq\">";
$form .= "<input type=\"text\" id=\"qlimit\" name=\"qlimit\" value=\"";
- $form .= $this->GetQlimit() . "\">";
- $form .= "&nbsp;slots<br>";
+ $form .= $this->GetQlimit() . "\" />";
+ $form .= "&nbsp;slots<br/>";
$form .= "<span class=\"vexpl\">" . gettext("Hint: in most cases, you "
. "should leave the field empty. All packets in this pipe are placed into a fixed-size queue first, "
. "then they are delayed by value specified in the Delay field, and then they "
. "are delivered to their destination.") . "</span>";
$form .= "</td></tr>";
- $form .= "<tr style=\"display:none\" id=\"sprtable5\" name=\"sprtable5\">";
- $form .= "<td valign=\"center\" class=\"vncellreq\">" . gettext("Bucket Size") . "</td>";
+ $form .= "<tr style=\"display:none\" id=\"sprtable5\">";
+ $form .= "<td valign=\"middle\" class=\"vncellreq\">" . gettext("Bucket Size") . "</td>";
$form .= "<td class=\"vncellreq\">";
$form .= "<input type=\"text\" id=\"buckets\" name=\"buckets\" value=\"";
- $form .= $this->GetBuckets() . "\">";
- $form .= "&nbsp;" . gettext("slots") . "<br>";
+ $form .= $this->GetBuckets() . "\" />";
+ $form .= "&nbsp;" . gettext("slots") . "<br/>";
$form .= "<span class=\"vexpl\">" . gettext("Hint: in most cases, you "
. "should leave the field empty. It increases the hash size set.");
- $form .= "</td></tr>";
+ $form .= "</span></td></tr>";
$form .= "<input type=\"hidden\" id=\"pipe\" name=\"pipe\"";
- $form .= " value=\"" . $this->GetPipe() . "\">";
+ $form .= " value=\"" . $this->GetPipe() . "\" />";
return $form;
-
+
}
function update_dn_data(&$data) {
@@ -3643,44 +3651,44 @@ class layer7 {
//Helps building the left tree
function build_tree() {
- $tree = " <li><a href=\"firewall_shaper_layer7.php?container=" . $this->GetRName() ."&action=show\">";
+ $tree = " <li><a href=\"firewall_shaper_layer7.php?container=" . $this->GetRName() ."&amp;action=show\">";
$tree .= $this->GetRName() . "</a>";
$tree .= "</li>";
-
+
return $tree;
}
function build_form() {
- $form = "<tr><td valign=\"center\" class=\"vncellreq\"><br>";
+ $form = "<tr><td valign=\"middle\" class=\"vncellreq\"><br/>";
$form .= gettext("Enable/Disable");
$form .= "</td><td class=\"vncellreq\">";
$form .= " <input type=\"checkbox\" id=\"enabled\" name=\"enabled\" value=\"on\" ";
if ($this->GetREnabled() == "on") {
- $form .= "checked = \"CHECKED\"";
+ $form .= "checked=\"checked\"";
}
- $form .= " ><span class=\"vexpl\"> " . gettext("Enable/Disable layer7 Container") . "</span>";
+ $form .= " /><span class=\"vexpl\"> " . gettext("Enable/Disable layer7 Container") . "</span>";
$form .= "</td></tr>";
- $form .= "<tr><td valign=\"center\" class=\"vncellreq\"><br><span class=\"vexpl\">" . gettext("Name") . "</span></td>";
+ $form .= "<tr><td valign=\"middle\" class=\"vncellreq\"><br/><span class=\"vexpl\">" . gettext("Name") . "</span></td>";
$form .= "<td class=\"vncellreq\">";
$form .= "<input type=\"text\" id=\"container\" name=\"container\" value=\"";
- $form .= $this->GetRName()."\">";
+ $form .= $this->GetRName()."\" />";
$form .= "</td></tr>";
- $form .= "<tr><td valign=\"center\" class=\"vncellreq\">" . gettext("Description") . "</td>";
+ $form .= "<tr><td valign=\"middle\" class=\"vncellreq\">" . gettext("Description") . "</td>";
$form .= "<td class=\"vncellreq\">";
- $form .= "<input type=\"text\" class=\"formfld unknown\" size=\"50%\" id=\"description\" name=\"description\" value=\"";
+ $form .= "<input type=\"text\" class=\"formfld unknown\" size=\"40\" id=\"description\" name=\"description\" value=\"";
$form .= $this->GetRDescription();
- $form .= "\">";
- $form .= "<br> <span class=\"vexpl\">";
+ $form .= "\" />";
+ $form .= "<br/> <span class=\"vexpl\">";
$form .= gettext("You may enter a description here for your reference (not parsed).") . "</span>";
$form .= "</td></tr>";
-
+
return $form;
}
//Write the setting to the $config array
function wconfig() {
global $config;
-
+
if(!is_array($config['l7shaper']['container'])) {
$config['l7shaper']['container'] = array();
}
@@ -3699,9 +3707,9 @@ class layer7 {
if(is_array($cflink['rules'])) {
unset($cflink['l7rules']);
}
-
+
$cflink['l7rules'] = array();
-
+
$i = 0;
foreach($this->rsets as $rulel7) {
$cflink['l7rules'][$i]['protocol'] = $rulel7->GetRProtocol();
@@ -3733,7 +3741,7 @@ class layer7 {
function validate_input($data, &$input_errors) {
$reqdfields[] = "container";
$reqdfieldsn[] = gettext("Name");
-
+
shaper_do_input_validation($data, $reqdfields, $reqdfieldsn, $input_errors);
if (!preg_match("/^[a-zA-Z0-9_-]+$/", $data['container']))
@@ -3819,9 +3827,9 @@ function get_divert_ports() {
function &get_l7c_reference_to_me_in_config(&$name) {
global $config;
-
+
$ptr = NULL;
-
+
if(is_array($config['l7shaper']['container'])) {
foreach($config['l7shaper']['container'] as $key => $value) {
if($value['name'] == $name)
@@ -3935,13 +3943,13 @@ function generate_protocols_array() {
function get_l7_unique_list() {
global $layer7_rules_list;
-
+
$l7list = array();
if(is_array($layer7_rules_list))
foreach($layer7_rules_list as $l7c)
if($l7c->GetREnabled())
$l7list[] = $l7c->GetRName();
-
+
return $l7list;
}
@@ -3957,15 +3965,15 @@ function cleanup_l7_from_rules(&$name) {
}
function get_dummynet_name_list() {
-
+
$dn_name_list =& get_unique_dnqueue_list();
$dn_name = array();
if(is_array($dn_name_list))
foreach($dn_name_list as $key => $value)
$dn_name[] = $key;
-
+
return $dn_name;
-
+
}
function get_altq_name_list() {
@@ -3974,7 +3982,7 @@ function get_altq_name_list() {
if(is_array($altq_name_list))
foreach($altq_name_list as $key => $aqobj)
$altq_name[] = $key;
-
+
return $altq_name;
}
@@ -4008,13 +4016,13 @@ function altq_check_default_queues() {
}
}
else $count++;;
-
+
return 0;
}
function &get_unique_queue_list() {
global $altq_list_queues;
-
+
$qlist = array();
if (is_array($altq_list_queues)) {
foreach ($altq_list_queues as $altq) {
@@ -4032,7 +4040,7 @@ function &get_unique_queue_list() {
function &get_unique_dnqueue_list() {
global $dummynet_pipe_list;
-
+
$qlist = array();
if (is_array($dummynet_pipe_list)) {
foreach ($dummynet_pipe_list as $dn) {
@@ -4065,7 +4073,7 @@ function unref_on_altq_queue_list($qname) {
function read_altq_config() {
global $altq_list_queues, $config;
$path = array();
-
+
if (!is_array($config['shaper']))
$config['shaper'] = array();
if (!is_array($config['shaper']['queue']))
@@ -4073,7 +4081,7 @@ function read_altq_config() {
$a_int = &$config['shaper']['queue'];
$altq_list_queues = array();
-
+
if (!is_array($config['shaper']['queue']))
return;
@@ -4111,7 +4119,7 @@ function read_dummynet_config() {
$a_int = &$config['dnshaper']['queue'];
$dummynet_pipe_list = array();
-
+
if (!is_array($config['dnshaper']['queue'])
|| !count($config['dnshaper']['queue']))
return;
@@ -4150,16 +4158,16 @@ function get_interface_list_to_show() {
} else {
if (!is_altq_capable(get_real_interface($shif)))
continue;
- $tree .= " <li><a href=\"firewall_shaper.php?interface=".$shif."&action=add\">".$shDescr."</a></li>";
+ $tree .= " <li><a href=\"firewall_shaper.php?interface=".$shif."&amp;action=add\">".$shDescr."</a></li>";
}
}
-
+
return $tree;
}
function filter_generate_altq_queues() {
global $altq_list_queues;
-
+
read_altq_config();
$altq_rules = "";
@@ -4230,9 +4238,9 @@ function dnpipe_find_nextnumber() {
function filter_generate_dummynet_rules() {
global $g, $dummynet_pipe_list;
-
+
read_dummynet_config();
-
+
if (!empty($dummynet_pipe_list)) {
if (!is_module_loaded("dummynet.ko")) {
mwexec("/sbin/kldload dummynet");
@@ -4258,14 +4266,14 @@ function build_iface_without_this_queue($iface, $qname) {
if ($altq)
$scheduler = ": " . $altq->GetScheduler();
$form = "<tr><td width=\"20%\" >";
- $form .= "<a href=\"firewall_shaper.php?interface=" . $iface . "&queue=" . $iface."&action=show\">". $shaperIFlist[$iface] . $scheduler."</a>";
+ $form .= "<a href=\"firewall_shaper.php?interface=" . $iface . "&amp;queue=" . $iface."&amp;action=show\">". $shaperIFlist[$iface] . $scheduler."</a>";
$form .= "</td></tr>";
$form .= "<tr><td width=\"100%\" class=\"vncellreq\">";
$form .= "<a href=\"firewall_shaper_queues.php?interface=";
- $form .= $iface . "&queue=". $qname . "&action=add\">";
+ $form .= $iface . "&amp;queue=". $qname . "&amp;action=add\">";
$form .= "<img src=\"";
$form .= "./themes/".$g['theme']."/images/icons/icon_plus.gif\"";
- $form .= " width=\"17\" height=\"17\" border=\"0\" title=\"Clone shaper/queue on this interface\">";
+ $form .= " width=\"17\" height=\"17\" border=\"0\" title=\"Clone shaper/queue on this interface\" alt=\"clone\" />";
$form .= gettext(" Clone shaper/queue on this interface") . "</a></td></tr>";
return $form;
@@ -4273,18 +4281,18 @@ function build_iface_without_this_queue($iface, $qname) {
}
-$default_shaper_msg = "<tr><td align=\"center\" width=\"80%\" >";
-$default_shaper_msg .= "<span class=\"vexpl\"><strong><p><b>" . sprintf(gettext("Welcome to the %s Traffic Shaper."), $g['product_name']) . "</b><br />";
+$default_shaper_msg = "<tr><td align=\"center\" width=\"80%\">";
+$default_shaper_msg .= "<span class=\"vexpl\"><strong><b>" . sprintf(gettext("Welcome to the %s Traffic Shaper."), $g['product_name']) . "</b><br />";
$default_shaper_msg .= gettext("The tree on the left helps you navigate through the queues <br />"
. "buttons at the bottom represent queue actions and are activated accordingly.");
-$default_shaper_msg .= " </p></strong></span>";
+$default_shaper_msg .= "</strong></span>";
$default_shaper_msg .= "</td></tr>";
-$dn_default_shaper_msg = "<tr><td align=\"center\" width=\"80%\" >";
-$dn_default_shaper_msg .= "<span class=\"vexpl\"><strong><p><b>" . sprintf(gettext("Welcome to the %s Traffic Shaper."), $g['product_name']) . "</b><br />";
+$dn_default_shaper_msg = "<tr><td align=\"center\" width=\"80%\">";
+$dn_default_shaper_msg .= "<span class=\"vexpl\"><strong><b>" . sprintf(gettext("Welcome to the %s Traffic Shaper."), $g['product_name']) . "</b><br />";
$dn_default_shaper_msg .= gettext("The tree on the left helps you navigate through the queues <br />"
. "buttons at the bottom represent queue actions and are activated accordingly.");
-$dn_default_shaper_msg .= " </p></strong></span>";
+$dn_default_shaper_msg .= "</strong></span>";
$dn_default_shaper_msg .= "</td></tr>";
?>
diff --git a/etc/inc/system.inc b/etc/inc/system.inc
index e846035..6299922 100644
--- a/etc/inc/system.inc
+++ b/etc/inc/system.inc
@@ -47,10 +47,16 @@ function activate_powerd() {
if(isset($config['system']['powerd_enable'])) {
if ($g["platform"] == "nanobsd")
exec("/sbin/kldload cpufreq");
- $mode = "hadp";
- if (!empty($config['system']['powerd_mode']))
- $mode = $config['system']['powerd_mode'];
- mwexec("/usr/sbin/powerd -b $mode -a $mode");
+
+ $ac_mode = "hadp";
+ if (!empty($config['system']['powerd_ac_mode']))
+ $ac_mode = $config['system']['powerd_ac_mode'];
+
+ $battery_mode = "hadp";
+ if (!empty($config['system']['powerd_battery_mode']))
+ $battery_mode = $config['system']['powerd_battery_mode'];
+
+ mwexec("/usr/sbin/powerd -b $battery_mode -a $ac_mode");
}
}
@@ -316,9 +322,11 @@ function system_dhcpleases_configure() {
/* Start the monitoring process for dynamic dhcpclients. */
if (isset($config['dnsmasq']['regdhcp'])) {
/* Make sure we do not error out */
- @touch("{$g['dhcpd_chroot_path']}/var/db/dhcpd.leases");
- if (file_exists("{$g['varrun_path']}/dhcpleases.pid"))
- sigkillbypid("{$g['varrun_path']}/dhcpleases.pid", "HUP");
+ mwexec("/bin/mkdir -p {$g['dhcpd_chroot_path']}/var/db");
+ if (!file_exists("{$g['dhcpd_chroot_path']}/var/db/dhcpd.leases"))
+ @touch("{$g['dhcpd_chroot_path']}/var/db/dhcpd.leases");
+ if (isvalidpid("{$g['varrun_path']}/dhcpleases.pid"))
+ sigkillbypid("{$g['varrun_path']}/dhcpleases.pid", "HUP");
else
mwexec("/usr/local/sbin/dhcpleases -l {$g['dhcpd_chroot_path']}/var/db/dhcpd.leases -d {$config['system']['domain']} -p {$g['varrun_path']}/dnsmasq.pid -h {$g['varetc_path']}/hosts");
} else {
@@ -363,38 +371,37 @@ function system_routing_configure($interface = "") {
$foundgwv6 = false;
/* tack on all the hard defined gateways as well */
if (is_array($config['gateways']['gateway_item'])) {
- mwexec("/bin/rm {$g['tmp_path']}/*_defaultgw", true);
+ mwexec("/bin/rm -f {$g['tmp_path']}/*_defaultgw {$g['tmp_path']}/*_defaultgwv6", true);
foreach ($config['gateways']['gateway_item'] as $gateway) {
- if (isset($gateway['defaultgw']) && ((is_ipaddrv4($gateway['gateway'])) || ($gateway['gateway'] == "dynamic"))) {
- if(strstr($gateway['gateway'], ":"))
- break;
- if ($gateway['gateway'] == "dynamic")
- $gateway['gateway'] = get_interface_gateway($gateway['interface']);
- $gatewayip = $gateway['gateway'];
- $interfacegw = $gateway['interface'];
- if (!empty($interfacegw)) {
- $defaultif = get_real_interface($gateway['interface']);
- if ($defaultif)
- @file_put_contents("{$g['tmp_path']}/{$defaultif}_defaultgw", $gatewayip);
+ if (isset($gateway['defaultgw'])) {
+ if ($gateway['ipprotocol'] != "inet6" && (is_ipaddrv4($gateway['gateway']) || $gateway['gateway'] == "dynamic")) {
+ if(strstr($gateway['gateway'], ":"))
+ continue;
+ if ($gateway['gateway'] == "dynamic")
+ $gateway['gateway'] = get_interface_gateway($gateway['interface']);
+ $gatewayip = $gateway['gateway'];
+ $interfacegw = $gateway['interface'];
+ if (!empty($gateway['interface'])) {
+ $defaultif = get_real_interface($gateway['interface']);
+ if ($defaultif)
+ @file_put_contents("{$g['tmp_path']}/{$defaultif}_defaultgw", $gateway['gateway']);
+ }
+ $foundgw = true;
+ } else if ($gateway['ipprotocol'] == "inet6" && (is_ipaddrv6($gateway['gateway']) || $gateway['gateway'] == "dynamic6")) {
+ if ($gateway['gateway'] == "dynamic6")
+ $gateway['gateway'] = get_interface_gateway_v6($gateway['interface']);
+ $gatewayipv6 = $gateway['gateway'];
+ $interfacegwv6 = $gateway['interface'];
+ if (!empty($gateway['interface'])) {
+ $defaultifv6 = get_real_interface($gateway['interface']);
+ if ($defaultifv6)
+ @file_put_contents("{$g['tmp_path']}/{$defaultifv6}_defaultgwv6", $gateway['gateway']);
+ }
+ $foundgwv6 = true;
}
- $foundgw = true;
- break;
}
- }
- foreach ($config['gateways']['gateway_item'] as $gateway) {
- if (isset($gateway['defaultgw']) && ((is_ipaddrv6($gateway['gateway'])) || ($gateway['gateway'] == "dynamic6"))) {
- if ($gateway['gateway'] == "dynamic6")
- $gateway['gateway'] = get_interface_gateway_v6($gateway['interface']);
- $gatewayipv6 = $gateway['gateway'];
- $interfacegwv6 = $gateway['interface'];
- if (!empty($interfacegwv6)) {
- $defaultifv6 = get_real_interface($gateway['interface']);
- if ($defaultifv6)
- @file_put_contents("{$g['tmp_path']}/{$defaultifv6}_defaultgwv6", $gatewayipv6);
- }
- $foundgwv6 = true;
+ if ($foundgw === true && $foundgwv6 === true)
break;
- }
}
}
if ($foundgw == false) {
@@ -411,7 +418,7 @@ function system_routing_configure($interface = "") {
}
$dont_add_route = false;
/* if OLSRD is enabled, allow WAN to house DHCP. */
- if($config['installedpackages']['olsrd']) {
+ if (is_array($config['installedpackages']['olsrd'])) {
foreach($config['installedpackages']['olsrd']['config'] as $olsrd) {
if(($olsrd['enabledyngw'] == "on") && ($olsrd['enable'] == "on")) {
$dont_add_route = true;
@@ -432,6 +439,7 @@ function system_routing_configure($interface = "") {
if (!empty($interface) && $interface != $interfacegwv6)
;
else if (($interfacegwv6 <> "bgpd") && (is_ipaddrv6($gatewayipv6))) {
+ $ifscope = "";
if(preg_match("/fe80::/i", $gatewayipv6))
$ifscope = "%{$defaultifv6}";
log_error("ROUTING: setting IPv6 default route to {$gatewayipv6}{$ifscope}");
@@ -453,6 +461,7 @@ function system_routing_configure($interface = "") {
if (!empty($interface) && $interface != $gateway['friendlyiface'])
continue;
+ /* XXX: This is a bit dangerous in case of routing daemons!? */
if(isset($rtent['disabled'])) {
mwexec("/sbin/route delete " . escapeshellarg($rtent['network']), true);
continue;
@@ -461,24 +470,29 @@ function system_routing_configure($interface = "") {
$gatewayip = $gateway['gateway'];
$interfacegw = $gateway['interface'];
- if(is_ipaddrv6($gatewayip)) {
- $inetfamily = "-inet6";
- } else {
- $inetfamily = "-inet";
- }
$blackhole = "";
- if(preg_match("/^Null/i", $rtent['gateway']))
+ if (!strcasecmp("Null", substr($rtent['gateway'], 0, 3)))
$blackhole = "-blackhole";
- if (is_ipaddr($gatewayip) && ((is_ipaddrv6($gatewayip) && is_subnetv6($rtent['network'])) || (is_ipaddrv4($gatewayip) && is_subnetv4($rtent['network'])))) {
- mwexec("/sbin/route change {$inetfamily} {$blackhole} " . escapeshellarg($rtent['network']) .
- " " . escapeshellarg($gatewayip));
- } else if (!empty($interfacegw) && ((is_ipaddrv6($gatewayip) && is_subnetv6($rtent['network'])) || (is_ipaddrv4($gatewayip) && is_subnetv4($rtent['network'])))) {
- mwexec("/sbin/route change {$inetfamily} {$blackhole} " . escapeshellarg($rtent['network']) .
- " -iface " . escapeshellarg($interfacegw));
+ if (is_subnetv6($rtent['network'])) {
+ if (is_ipaddrv6($gatewayip))
+ mwexec("/sbin/route change -inet6 {$blackhole} " . escapeshellarg($rtent['network']) .
+ " " . escapeshellarg($gatewayip));
+ else if (!empty($interfacegw))
+ mwexec("/sbin/route change -inet6 {$blackhole} " . escapeshellarg($rtent['network']) .
+ " -iface " . escapeshellarg($interfacegw));
+ } else if (is_subnetv4($rtent['network'])) {
+ if (is_ipaddrv4($gatewayip))
+ mwexec("/sbin/route change -inet {$blackhole} " . escapeshellarg($rtent['network']) .
+ " " . escapeshellarg($gatewayip));
+ else if (!empty($interfacegw))
+ mwexec("/sbin/route change -inet {$blackhole} " . escapeshellarg($rtent['network']) .
+ " -iface " . escapeshellarg($interfacegw));
}
}
+ unset($gateways_arr);
}
+ unset($static_routes);
return 0;
}
@@ -534,24 +548,24 @@ function system_syslogd_start() {
else
killbypid("{$g['varrun_path']}/syslog.pid");
- if(is_process_running("syslogd"))
+ if (is_process_running("syslogd"))
mwexec('/bin/pkill syslogd');
- if(is_process_running("fifolog_writer"))
+ if (is_process_running("fifolog_writer"))
mwexec('/bin/pkill fifolog_writer');
-
- // Define carious commands for logging
- $fifolog_create = "/usr/sbin/fifolog_create -s ";
- $fifolog_log = "|/usr/sbin/fifolog_writer ";
- $clog_create = "/usr/sbin/clog -i -s ";
- $clog_log = "%";
// Which logging type are we using this week??
- if(isset($config['system']['usefifolog'])) {
- $log_directive = $fifolog_log;
- $log_create_directive = $fifolog_create;
+ if (isset($config['system']['disablesyslogclog'])) {
+ $log_directive = "";
+ $log_create_directive = "/usr/bin/touch ";
+ $log_size = "";
+ } else if (isset($config['system']['usefifolog'])) {
+ $log_directive = "|/usr/sbin/fifolog_writer ";
+ $log_size = "10240";
+ $log_create_directive = "/usr/sbin/fifolog_create -s ";
} else { // Defaults to CLOG
- $log_directive = $clog_log;
- $log_create_directive = $clog_create;
+ $log_directive = "%";
+ $log_size = "10240";
+ $log_create_directive = "/usr/sbin/clog -i -s ";
}
if (isset($syslogcfg)) {
@@ -561,7 +575,7 @@ function system_syslogd_start() {
foreach($config['installedpackages']['package'] as $package) {
if($package['logging']) {
array_push($separatelogfacilities, $package['logging']['facilityname']);
- mwexec("{$log_create_directive} 10240 {$g['varlog_path']}/{$package['logging']['logfilename']}");
+ mwexec("{$log_create_directive} {$log_size} {$g['varlog_path']}/{$package['logging']['logfilename']}");
$syslogconf .= "!{$package['logging']['facilityname']}\n*.*\t\t\t\t\t\t {$log_directive}{$g['varlog_path']}/{$package['logging']['logfilename']}\n";
}
}
@@ -640,7 +654,7 @@ local0.* {$log_directive}{$g['varlog_path']}/filter.log
local3.* {$log_directive}{$g['varlog_path']}/vpn.log
local4.* {$log_directive}{$g['varlog_path']}/portalauth.log
local7.* {$log_directive}{$g['varlog_path']}/dhcpd.log
-*.notice;kern.debug;lpr.info;mail.crit; {$log_directive}{$g['varlog_path']}/system.log
+*.notice;kern.debug;lpr.info;mail.crit;daemon.none; {$log_directive}{$g['varlog_path']}/system.log
news.err;local0.none;local3.none;local4.none; {$log_directive}{$g['varlog_path']}/system.log
local7.none {$log_directive}{$g['varlog_path']}/system.log
security.* {$log_directive}{$g['varlog_path']}/system.log
@@ -688,10 +702,10 @@ EOD;
if (!is_dir("{$g['dhcpd_chroot_path']}/var/run"))
exec("/bin/mkdir -p {$g['dhcpd_chroot_path']}/var/run");
- $retval = mwexec_bg("/usr/sbin/syslogd -c -c -l {$g['dhcpd_chroot_path']}/var/run/log -f {$g['varetc_path']}/syslog.conf");
+ $retval = mwexec_bg("/usr/sbin/syslogd -s -c -c -l {$g['dhcpd_chroot_path']}/var/run/log -f {$g['varetc_path']}/syslog.conf");
} else {
- $retval = mwexec_bg("/usr/sbin/syslogd -c -c -l {$g['dhcpd_chroot_path']}/var/run/log");
+ $retval = mwexec_bg("/usr/sbin/syslogd -s -c -c -l {$g['dhcpd_chroot_path']}/var/run/log");
}
if ($g['booting'])
@@ -733,11 +747,6 @@ function system_webgui_start() {
if ($g['booting'])
echo gettext("Starting webConfigurator...");
- /* kill any running lighttpd */
- killbypid("{$g['varrun_path']}/lighty-webConfigurator.pid");
-
- sleep(1);
-
chdir($g['www_path']);
/* defaults */
@@ -764,8 +773,8 @@ function system_webgui_start() {
$cert = array();
$cert['refid'] = uniqid();
$cert['descr'] = gettext("webConfigurator default");
- mwexec("/usr/bin/openssl genrsa 1024 > {$g['tmp_path']}/ssl.key");
- mwexec("/usr/bin/openssl req -new -x509 -nodes -sha1 -days 2000 -key {$g['tmp_path']}/ssl.key > {$g['tmp_path']}/ssl.crt");
+ mwexec("/usr/local/bin/openssl genrsa 1024 > {$g['tmp_path']}/ssl.key");
+ mwexec("/usr/local/bin/openssl req -new -x509 -nodes -sha256 -days 2000 -key {$g['tmp_path']}/ssl.key > {$g['tmp_path']}/ssl.crt");
$crt = file_get_contents("{$g['tmp_path']}/ssl.crt");
$key = file_get_contents("{$g['tmp_path']}/ssl.key");
unlink("{$g['tmp_path']}/ssl.key");
@@ -791,6 +800,13 @@ function system_webgui_start() {
$crt, $key, $ca, "lighty-webConfigurator.pid", $portarg, "/usr/local/www/",
"cert.pem", "ca.pem");
+ /* kill any running lighttpd */
+ killbypid("{$g['varrun_path']}/lighty-webConfigurator.pid");
+
+ sleep(1);
+
+ @unlink("{$g['varrun_path']}/lighty-webConfigurator.pid");
+
/* attempt to start lighthttpd */
$res = mwexec("/usr/local/sbin/lighttpd -f {$g['varetc_path']}/lighty-webConfigurator.conf");
@@ -813,8 +829,6 @@ function system_generate_lighty_config($filename,
$document_root = "/usr/local/www/",
$cert_location = "cert.pem",
$ca_location = "ca.pem",
- $max_requests = "2",
- $fast_cgi_enable = true,
$captive_portal = false) {
global $config, $g;
@@ -827,127 +841,89 @@ function system_generate_lighty_config($filename,
echo "system_generate_lighty_config() being called $mt\n";
}
- if($captive_portal !== false) {
- $captiveportal = ",\"mod_rewrite\"";
+ if ($captive_portal !== false) {
+ $captiveportal = ",\"mod_rewrite\",\"mod_evasive\"";
$captive_portal_rewrite = "url.rewrite-once = ( \"(.*captiveportal.*)\" => \"$1\", \"(.*)\" => \"/index.php?zone={$captive_portal}&redirurl=$1\" )\n";
- $captive_portal_module = "";
$maxprocperip = $config['captiveportal'][$captive_portal]['maxprocperip'];
- if(empty($maxprocperip))
- $maxprocperip = 4;
+ if (empty($maxprocperip))
+ $maxprocperip = 10;
$captive_portal_mod_evasive = "evasive.max-conns-per-ip = {$maxprocperip}";
$server_upload_dirs = "server.upload-dirs = ( \"{$g['tmp_path']}/captiveportal/\" )\n";
exec("mkdir -p {$g['tmp_path']}/captiveportal");
exec("chmod a-w {$g['tmp_path']}/captiveportal");
$server_max_request_size = "server.max-request-size = 384";
+ $cgi_config = "";
} else {
- $captiveportal = "";
+ $captiveportal = ",\"mod_cgi\"";
$captive_portal_rewrite = "";
- $captive_portal_module = "";
$captive_portal_mod_evasive = "";
$server_upload_dirs = "server.upload-dirs = ( \"{$g['upload_path']}/\", \"{$g['tmp_path']}/\", \"/var/\" )\n";
$server_max_request_size = "server.max-request-size = 2097152";
+ $cgi_config = "cgi.assign = ( \".cgi\" => \"\" )";
}
- if($port <> "")
- $lighty_port = $port;
- else
+ if (empty($port))
$lighty_port = "80";
+ else
+ $lighty_port = $port;
$memory = get_memory();
- $avail = $memory[0];
+ $avail = $memory[1];
// Determine web GUI process settings and take into account low memory systems
- if($avail > 0 and $avail < 65) {
- $fast_cgi_enable = false;
- }
- if($avail > 64 and $avail < 256) {
- $max_procs = ($config['system']['webgui']['max_procs']) ? $config['system']['webgui']['max_procs'] : 1;
- }
- if($avail > 255 ) {
+ if ($avail < 255)
+ $max_procs = 1;
+ else
$max_procs = ($config['system']['webgui']['max_procs']) ? $config['system']['webgui']['max_procs'] : 2;
- }
// Ramp up captive portal max procs, assuming each PHP process can consume up to 64MB RAM
- if($captive_portal !== false) {
- if($avail > 107 and $avail < 256) {
+ if ($captive_portal !== false) {
+ if ($avail > 135 and $avail < 256) {
$max_procs += 1; // 2 worker processes
- }
- if($avail > 255 and $avail < 320) {
- $max_procs += 1; // 3 worker processes
- }
- if($avail > 319 and $avail < 384) {
- $max_procs += 2; // 4 worker processes
- }
- if($avail > 383 and $avail < 448) {
- $max_procs += 3; // 5 worker processes
- }
- if($avail > 447) {
+ } else if ($avail > 255 and $avail < 513) {
+ $max_procs += 2; // 3 worker processes
+ } else if ($avail > 512) {
$max_procs += 4; // 6 worker processes
}
- $bin_environment = <<<EOC
- "bin-environment" => (
- "PHP_FCGI_CHILDREN" => "0",
- "PHP_FCGI_MAX_REQUESTS" => "500"
- ),
-EOC;
+ if ($max_procs > 1)
+ $max_php_children = intval($max_procs/2);
+ else
+ $max_php_children = 1;
- } else if ($avail > 0 and $avail < 128) {
- $bin_environment = <<<EOC
- "bin-environment" => (
- "PHP_FCGI_CHILDREN" => "0",
- "PHP_FCGI_MAX_REQUESTS" => "2",
- ),
+ } else {
+ if ($avail < 78)
+ $max_php_children = 0;
+ else
+ $max_php_children = 1;
+ }
-EOC;
- } else
- $bin_environment = <<<EOC
- "bin-environment" => (
- "PHP_FCGI_CHILDREN" => "0",
- "PHP_FCGI_MAX_REQUESTS" => "500"
- ),
-EOC;
+ if ($captive_portal !== false)
+ $fast_cgi_path = "{$g['tmp_path']}/php-fastcgi-{$captive_portal}.socket";
+ else
+ $fast_cgi_path = "{$g['tmp_path']}/php-fastcgi.socket";
- if($fast_cgi_enable == true) {
- $module = "\"mod_fastcgi\", \"mod_cgi\"";
- if ($captive_portal !== false)
- $fast_cgi_path = "{$g['tmp_path']}/php-fastcgi-{$captive_portal}.socket";
- else
- $fast_cgi_path = "{$g['tmp_path']}/php-fastcgi.socket";
- $cgi_config = "";
- $fastcgi_config = <<<EOD
+ $fastcgi_config = <<<EOD
#### fastcgi module
## read fastcgi.txt for more info
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "{$fast_cgi_path}",
- "min-procs" => 0,
"max-procs" => {$max_procs},
-{$bin_environment}
+ "bin-environment" => (
+ "PHP_FCGI_CHILDREN" => "{$max_php_children}",
+ "PHP_FCGI_MAX_REQUESTS" => "500"
+ ),
"bin-path" => "/usr/local/bin/php"
)
)
)
-#### CGI module
-cgi.assign = ( ".cgi" => "" )
-
EOD;
- } else {
- $fastcgi_config = "";
- $module = "\"mod_cgi\"";
- $cgi_config = <<<EOD
-#### CGI module
-cgi.assign = ( ".php" => "/usr/local/bin/php",
- ".cgi" => "" )
-
-EOD;
- }
- $lighty_config = "";
- $lighty_config .= <<<EOD
+ $lighty_config = <<<EOD
#
# lighttpd configuration file
#
@@ -961,29 +937,10 @@ server.network-backend = "writev"
#server.use-ipv6 = "enable"
## modules to load
-server.modules = (
- {$captive_portal_module}
- "mod_access", "mod_accesslog", "mod_expire", "mod_compress", "mod_redirect",
- {$module}{$captiveportal}
+server.modules = ( "mod_access", "mod_expire", "mod_compress", "mod_redirect",
+ {$captiveportal}, "mod_fastcgi"
)
-## Unused modules
-# "mod_setenv",
-# "mod_rewrite",
-# "mod_ssi",
-# "mod_usertrack",
-# "mod_expire",
-# "mod_secdownload",
-# "mod_rrdtool",
-# "mod_auth",
-# "mod_status",
-# "mod_alias",
-# "mod_proxy",
-# "mod_simple_vhost",
-# "mod_evhost",
-# "mod_userdir",
-# "mod_cgi",
-
server.max-keep-alive-requests = 15
server.max-keep-alive-idle = 30
@@ -996,7 +953,7 @@ server.document-root = "{$document_root}"
server.max-write-idle = 999
## where to send error-messages to
-server.errorlog = "/var/log/lighttpd.error.log"
+server.errorlog-use-syslog="enable"
# files to check for if .../ is requested
server.indexfiles = ( "index.php", "index.html",
@@ -1058,9 +1015,6 @@ mimetype.assign = (
# Use the "Content-Type" extended attribute to obtain mime type if possible
#mimetypes.use-xattr = "enable"
-#### accesslog module
-#accesslog.filename = "/dev/null"
-
## deny access the file-extensions
#
# ~ is for backupfiles from vi, emacs, joe, ...
@@ -1097,7 +1051,7 @@ EOD;
#server.error-handler-404 = "/error-handler.php"
## to help the rc.scripts
-server.pid-file = "/var/run/{$pid_file}"
+server.pid-file = "{$g['varrun_path']}/{$pid_file}"
## virtual directory listings
server.dir-listing = "disable"
@@ -1322,34 +1276,27 @@ function system_ntp_configure($start_ntpd=true) {
}
/* open configuration for wrting or bail */
- $fd = fopen("{$g['varetc_path']}/ntpd.conf","w");
- if(!$fd) {
+ if (!@file_put_contents("{$g['varetc_path']}/ntpd.conf", $ntpcfg)) {
log_error("Could not open {$g['varetc_path']}/ntpd.conf for writing");
return;
}
- fwrite($fd, $ntpcfg);
-
- /* slurp! */
- fclose($fd);
/* At bootup we just want to write out the config. */
if (!$start_ntpd)
return;
/* if ntpd is running, kill it */
- while(is_process_running("ntpd")) {
- killbyname("ntpd");
+ while (isvalidpid("{$g['varrun_path']}/ntpd.pid")) {
+ killbypid("{$g['varrun_path']}/ntpd.pid");
}
+ @unlink("{$g['varrun_path']}/ntpd.pid");
/* if /var/empty does not exist, create it */
if(!is_dir("/var/empty"))
exec("/bin/mkdir -p /var/empty && chmod ug+rw /var/empty/.");
/* start opentpd, set time now and use /var/etc/ntpd.conf */
- $oldset = array();
- pcntl_sigprocmask(SIG_SETMASK, array(), $oldset);
- exec("/usr/local/bin/ntpd -g -c {$g['varetc_path']}/ntpd.conf");
- pcntl_sigprocmask(SIG_SETMASK, $oldset);
+ mwexec("/usr/local/bin/ntpd -g -c {$g['varetc_path']}/ntpd.conf -p {$g['varrun_path']}/ntpd.pid", false, true);
// Note that we are starting up
log_error("NTPD is starting up.");
@@ -1397,9 +1344,16 @@ function system_reboot_sync() {
}
function system_reboot_cleanup() {
+ global $config, $cpzone;
+
mwexec("/usr/local/bin/beep.sh stop");
require_once("captiveportal.inc");
- captiveportal_radius_stop_all();
+ if (is_array($config['captiveportal'])) {
+ foreach ($config['captiveportal'] as $cpzone=>$cp) {
+ captiveportal_radius_stop_all();
+ captiveportal_send_server_accounting(true);
+ }
+ }
require_once("voucher.inc");
voucher_save_db_to_config();
require_once("pkg-utils.inc");
@@ -1661,24 +1615,21 @@ function get_possible_listen_ips() {
return $listenips;
}
-/* Pick up IPv6 router advertisements on the interface */
-function pickup_ipv6_router_advertisement($interface) {
- global $g;
- $realif = get_real_interface($interface);
- exec("/sbin/rtsol -d {$realif} 2>&1", $out, $ret);
- if(!empty($out)) {
- foreach($out as $line) {
- if((stristr($line, "received")) && (!stristr($line, "unexpected"))) {
- $parts = explode(" ", $line);
- if(is_ipaddrv6($parts[3])) {
- log_error("Found IPv6 default gateway '{$parts[3]}' on interface {$realif} by RA.");
- file_put_contents("{$g['tmp_path']}/{$realif}_routerv6", "{$parts[3]}\n");
- file_put_contents("{$g['tmp_path']}/{$realif}_defaultgwv6", "{$parts[3]}\n");
- break;
+function get_possible_traffic_source_addresses() {
+ global $config;
+ $sourceips = get_possible_listen_ips();
+ foreach (array('server', 'client') as $mode) {
+ if (is_array($config['openvpn']["openvpn-{$mode}"])) {
+ foreach ($config['openvpn']["openvpn-{$mode}"] as $id => $setting) {
+ if (!isset($setting['disable'])) {
+ $vpn = array();
+ $vpn['value'] = 'ovpn' . substr($mode, 0, 1) . $setting['vpnid'];
+ $vpn['name'] = gettext("OpenVPN") . " ".$mode.": ".htmlspecialchars($setting['description']);
+ $sourceips[] = $vpn;
}
}
}
}
+ return $sourceips;
}
-
?>
diff --git a/etc/inc/unbound.inc b/etc/inc/unbound.inc
deleted file mode 100644
index 94e899b..0000000
--- a/etc/inc/unbound.inc
+++ /dev/null
@@ -1,521 +0,0 @@
-<?php
-/* $Id$ */
-/*
- unbound.inc
- part of the pfSense project (http://www.pfsense.com)
- Copyright (C) 2011 Warren Baker
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
- pfSense_BUILDER_BINARIES: /usr/local/sbin/unbound /usr/local/sbin/unbound-anchor
- pfSense_BUILDER_BINARIES: /usr/local/sbin/unbound-checkconf /usr/local/sbin/unbound-control
- pfSense_BUILDER_BINARIES: /usr/local/sbin/unbound-control-setup /usr/local/sbin/unbound-host
-*/
-
-
-/* Handle Domain overrides and DNS Rebinding domains */
-function unbound_add_domain_overrides($pvt=false) {
- global $config, $g;
-
- $domains = $config['unbound']['domainoverrides'];
-
- $sorted_domains = msort($domains, "domain");
- $result = array();
- foreach($sorted_domains as $domain) {
- $domain_key = current($domain);
- if(!isset($result[$domain_key])) {
- $result[$domain_key] = array();
- }
- $result[$domain_key][] = $domain['ip'];
- }
-
- // Domain overrides that have multiple entries need multiple stub-addr: added
- $domain_entries = "";
- foreach($result as $domain=>$ips) {
- if($pvt == true) {
- $domain_entries .= "private-domain: \"$domain\"\n";
- $domain_entries .= "domain-insecure: \"$domain\"\n";
- } else {
- $domain_entries .= "stub-zone:\n";
- $domain_entries .= "\tname: \"$domain\"\n";
- foreach($ips as $ip) {
- $domain_entries .= "\tstub-addr: $ip\n";
- }
- $domain_entries .= "\tstub-prime: no\n";
- }
- }
- if($pvt == true)
- return $domain_entries;
- else
- file_put_contents("{$g['unbound_chroot_path']}/etc/domainoverrides.conf", $domain_entries);
-}
-
-/* Optimize Unbound for environment */
-function unbound_optimization() {
- global $config;
-
- $optimization_settings = array();
-
- /* Set the number of threads equal to number of CPUs.
- * Use 1 to disable threading, if for some reason this sysctl fails.
- */
- $numprocs = intval(trim(`/sbin/sysctl kern.smp.cpus | /usr/bin/cut -d" " -f2`));
- if($numprocs > 0)
- $optimization['number_threads'] = "num-threads: {$numprocs}";
- else
- $optimization['number_threads'] = "num-threads: 1";
-
- /* Slabs to help reduce lock contention. */
- if ($numprocs > 4) {
- $optimization['msg_cache_slabs'] = "msg-cache-slabs: {$numprocs}";
- $optimization['rrset_cache_slabs'] = "rrset-cache-slabs: {$numprocs}";
- $optimization['infra_cache_slabs'] = "infra-cache-slabs: {$numprocs}";
- $optimization['key_cache_slabs'] = "key-cache-slabs: {$numprocs}";
- } else {
- $optimization['msg_cache_slabs'] = "msg-cache-slabs: 4";
- $optimization['rrset_cache_slabs'] = "rrset-cache-slabs: 4";
- $optimization['infra_cache_slabs'] = "infra-cache-slabs: 4";
- $optimization['key_cache_slabs'] = "key-cache-slabs: 4";
- }
-
- /* Memory usage default of 4MB */
- $optimization['msg_cache_size'] = "msg-cache-size: 4m";
- $optimization['rrset_cache_size'] = "rrset-cache-size: 8m";
-
- /* More outgoing connections per thread otherwise assign a default of 4096 for a single thread */
- if($numprocs > 0) {
- $or = (1024/$numprocs) - 50;
- $optimization['outgoing_range'] = "outgoing-range: {$or}";
- } else {
- $optimization['outgoing_range'] = "outgoing-range: {4096}";
- }
-
- /* Larger socket buffer for busy servers
- * Check that it is set to 4MB (by default the OS has it configured to 4MB)
- */
- foreach ($config['sysctl']['item'] as $tunable) {
- if ($tunable['tunable'] == 'kern.ipc.maxsockbuf') {
- $so = floor(($tunable['value']/1024/1024)-1);
- // Check to ensure that the number is not a negative
- if ($so > 0)
- $optimization['so_rcvbuf'] = "so-rcvbuf: {$so}m";
- else
- unset($optimization['so_rcvbuf']);
- }
- }
- /* Safety check in case kern.ipc.maxsockbuf is not available. */
- if(!isset($optimization['so_rcvbuf']))
- $optimization['so_rcvbuf'] = "#so-rcvbuf: 4m";
-
- return $optimization;
-}
-
-/* Fetch root name servers hints file */
-function unbound_fetch_root_hints_using_dig() {
- global $g;
-
- $hints = "{$g['unbound_chroot_path']}/etc/root.hints";
- if (@filesize($hints) == 0) {
- $returnvar = mwexec("/usr/bin/dig +tcp +nocmd +answer +time=1 +tries=1 +retry=1 @`/usr/bin/dig +nocmd +noall +answer +short +time=1 +tries=1 +retry=1 . NS | /usr/bin/head -1` . NS > {$hints}");
-
- if ($returnvar != 0) {
- mwexec("/bin/rm -f {$hints}");
- return false;
- } else
- return true;
- } else
- return true;
-}
-
-/* Fetch root name servers hints file */
-function unbound_fetch_root_hints() {
- global $g;
-
- $destination_file = "{$g['unbound_chroot_path']}/etc/root.hints";
- if (@filesize($destination_file) == 0 ) {
- $fout = fopen($destination_file, "w");
- $url = "ftp://ftp.internic.net/domain/named.cache";
-
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, '5');
- $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
- $data = curl_exec($ch);
- curl_close($ch);
-
- fwrite($fout, $data);
- fclose($fout);
-
- return ($http_code == 200) ? true : $http_code;
- } else
- return false;
-}
-
-/* Configure initial anchor to support DNSSEC */
-function unbound_anchor_setup() {
- global $g;
-
- $conf = <<<EOD
-. IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5
-EOD;
-
- file_put_contents("{$g['unbound_chroot_path']}/etc/root-trust-anchor", $conf);
- @chown("{$g['unbound_chroot_path']}/etc/root-trust-anchor", "unbound");
- @chgrp("{$g['unbound_chroot_path']}/etc/root-trust-anchor", "wheel");
- @chmod("{$g['unbound_chroot_path']}/etc/root-trust-anchor", 0600);
- mwexec("/usr/local/sbin/unbound-anchor -a {$g['unbound_chroot_path']}/etc/root-trust-anchor", true);
-}
-
-/* Setup Unbound Remote Control SSL keys */
-function unbound_keys_setup() {
- global $g;
-
- if (!file_exists("{$g['unbound_chroot_path']}/unbound_control.key")) {
- mwexec("/usr/local/sbin/unbound-control-setup -d {$g['unbound_chroot_path']}/etc");
- @chown("{$g['unbound_chroot_path']}/etc/unbound_*", "unbound");
- @chgrp("{$g['unbound_chroot_path']}/etc/unbound_*", "wheel");
- }
-}
-
-/* Generation of Unbound statistics */
-function unbound_statistics() {
- global $config;
-
- /* XXX To do - add RRD graphs */
- $stats = <<<EOF
-# Unbound Statistics
-statistics-interval: {$config['unbound']['stats_interval']}
-extended-statistics: yes
-statistics-cumulative: yes
-
-EOF;
-
- return $stats;
-}
-
-/* Generate Unbound configuration */
-function unbound_generate_config() {
- global $config, $g;
-
- $unboundcfg = $config['unbound'];
-
- /* Setup optimization */
- $optimization = unbound_optimization();
-
- /* Setup DNSSEC support */
- if(isset($unboundcfg['dnssec_status'])) {
- $module_config = "validator iterator";
- $anchor_file = "auto-trust-anchor-file: /etc/root-trust-anchor";
- } else
- $module_config = "iterator";
-
- /* Setup DNS Rebinding */
- if(!isset($config['system']['webgui']['nodnsrebindcheck'])) {
- // Private-addresses for DNS Rebinding
- $private_addr = <<<EOF
-# For DNS Rebinding prevention
-private-address: 10.0.0.0/8
-private-address: 172.16.0.0/12
-private-address: 192.168.0.0/16
-private-address: 192.254.0.0/16
-private-address: fd00::/8
-private-address: fe80::/10
-EOF;
- }
-
- /* Allow DNS Rebind for forwarded domains */
- if (isset($unboundcfg['domainoverrides']) && is_array($unboundcfg['domainoverrides'])) {
- if(!isset($config['system']['webgui']['nodnsrebindcheck'])) {
- $private_domains = "# Set private domains in case authoritative name server returns a Private IP address";
- $private_domains .= unbound_add_domain_overrides(true);
- }
- }
-
- /* Configure static Host entries */
- $host_entries = unbound_add_host_entries();
-
- /* Configure Domain Overrides */
- $domain_overrides = unbound_add_domain_overrides();
-
- /* Configure Unbound statistics */
- $statistics = unbound_statistics();
-
- /* Add custom Unbound options */
- if ($unboundcfg['custom_options']) {
- $custom_option = "# Unbound custom option";
- foreach (preg_split('/\s+/', $unboundcfg['custom_options']) as $ent)
- $custom_option .= $ent."\n";
- }
-
- $unboundconf = <<<EOD
-##########################
-# Unbound Configuration
-##########################
-
-##
-# Server configuration
-##
-server:
-chroot: {$g['unbound_chroot_path']}
-username: "unbound"
-directory: "{$g['unbound_chroot_path']}/etc"
-root-hints: "root.hints"
-pidfile: "/var/run/unbound.pid"
-use-syslog: yes
-port: 53
-verbosity: {$unboundcfg['loglevel']}
-harden-referral-path: no
-do-ip4: yes
-do-ip6: yes
-do-udp: yes
-do-tcp: yes
-do-daemonize: yes
-module-config: "{$module_config}"
-unwanted-reply-threshold: 0
-num-queries-per-thread: 1024
-jostle-timeout: 200
-infra-host-ttl: 900
-infra-lame-ttl: 900
-infra-cache-numhosts: 10000
-outgoing-num-tcp: 10
-incoming-num-tcp: 10
-edns-buffer-size: 4096
-cache-max-ttl: {$unboundcfg['cache_max_ttl']}
-cache-min-ttl: {$unboundcfg['cache_min_ttl']}
-harden-dnssec-stripped: yes
-{$optimization['number_threads']}
-{$optimization['msg_cache_slabs']}
-{$optimization['rrset_cache_slabs']}
-{$optimization['infra_cache_slabs']}
-{$optimization['key_cache_slabs']}
-{$optimization['msg_cache_size']}
-{$optimization['rrset_cache_size']}
-{$optimization['outgoing_range']}
-{$optimization['so_rcvbuf']}
-{$anchor_file}
-prefetch: {$unboundcfg['prefetch']}
-prefetch-key: {$unboundcfg['prefetch_key']}
-# Statistics
-{$statistics}
-# Interface IP(s) to bind to
-interface: 0.0.0.0
-interface: ::0
-
-# DNS Rebinding
-{$private_addr}
-{$private_domains}
-
-# Static host entries
-include: {$g['unbound_chroot_path']}/etc/host_entries.conf
-
-# Domain overrides
-include: {$g['unbound_chroot_path']}/etc/domainoverrides.conf
-
-{$custom_options}
-
-###
-# Remote Control Config
-###
-include: {$g['unbound_chroot_path']}/etc/remotecontrol.conf
-
-EOD;
-
- file_put_contents("{$g['unbound_chroot_path']}/etc/unbound.conf", $unboundconf);
-
- return 0;
-}
-
-function unbound_remote_control_setup() {
- global $g;
-
- if(!file_exists("{$g['unbound_chroot_path']}/etc/remotecontrol.conf")) {
- $remotcfg = <<<EOF
-remote-control:
-control-enable: yes
-control-interface: 127.0.0.1
-control-port: 953
-server-key-file: "{$g['unbound_chroot_path']}/etc/unbound_server.key"
-server-cert-file: "{$g['unbound_chroot_path']}/etc/unbound_server.pem"
-control-key-file: "{$g['unbound_chroot_path']}/etc/unbound_control.key"
-control-cert-file: "{$g['unbound_chroot_path']}/etc/unbound_control.pem"
-EOF;
-
- file_put_contents("{$g['unbound_chroot_path']}/etc/remotecontrol.conf", $remotcfg);
- }
-}
-
-function unbound_add_host_entries() {
- global $config, $g;
-
- /* XXX: break this out into a separate config file and make use of include */
- $syscfg = $config['system'];
- $dnscfg = $config['unbound'];
-
- $dns_entries = "local-zone: \"{$syscfg['domain']}\" transparent\n";
- // IPv4 entries
- $dns_entries .= "local-data-ptr: \"127.0.0.1 localhost\"\n";
- $dns_entries .= "local-data: \"localhost A 127.0.0.1\"\n";
- $dns_entries .= "local-data: \"localhost.{$syscfg['domain']} A 127.0.0.1\"\n";
- // IPv6 entries
- $dns_entries .= "local-data-ptr: \"::1 localhost\"\n";
- $dns_entries .= "local-data: \"localhost AAAA ::1\"\n";
- $dns_entries .= "local-data: \"localhost.{$syscfg['domain']} AAAA ::1\"\n";
-
- /*if ($config['interfaces']['lan']) {
- $cfgip = get_interface_ip("lan");
- if (is_ipaddr($cfgip)) {
- $unbound_entries .= "local-data-ptr: \"{$cfgip} {$syscfg['hostname']}.{$syscfg['domain']}\"\n";
- $unbound_entries .= "local-data: \"{$syscfg['hostname']}.{$syscfg['domain']} A {$cfgip}\"\n";
- $unbound_entries .= "local-data: \"{$syscfg['hostname']} A {$cfgip}\"\n";
- }
- } else {
- $sysiflist = get_configured_interface_list();
- foreach ($sysiflist as $sysif) {
- if (!interface_has_gateway($sysif)) {
- $cfgip = get_interface_ip($sysif);
- if (is_ipaddr($cfgip)) {
- $unbound_entries .= "local-data-ptr: \"{$cfgip} {$syscfg['hostname']}.{$syscfg['domain']}\"\n";
- $unbound_entries .= "local-data: \"{$syscfg['hostname']}.{$syscfg['domain']} A {$cfgip}\"\n";
- $unbound_entries .= "local-data: \"{$syscfg['hostname']} A {$cfgip}\"\n";
- break;
- }
- }
- }
- }*/
-
- /* Static Host entries */
- if (isset($dnscfg['hosts'])) {
- $hosts = $dnscfg['hosts'];
- $host_entries = "";
- $added_item = array();
- foreach ($hosts as $host) {
- $current_host = $host['host'];
- if ($host['host'] != "")
- $host['host'] = $host['host'].".";
- if(!$added_item[$current_host]) {
- $host_entries .= "local-data-ptr: \"{$host['ip']} {$host['host']}{$host['domain']}\"\n";
- if (is_ipaddrv6($host['ip']))
- $host_entries .= "local-data: \"{$host['host']}{$host['domain']} IN AAAA {$host['ip']}\"\n";
- else
- $host_entries .= "local-data: \"{$host['host']}{$host['domain']} IN A {$host['ip']}\"\n";
- if (!empty($host['descr']) && $dnscfg['txtsupport'] == 'on')
- $host_entries .= "local-data: '{$host['host']}{$host['domain']} TXT \"".addslashes($host['descr'])."\"'\n";
-
- // Do not add duplicate entries
- $added_item[$current_host] = true;
- }
- }
- $unbound_entries .= $host_entries;
- }
- // Static DHCP entries
- $host_entries = "";
- if (isset($dnscfg['regdhcpstatic']) && is_array($config['dhcpd'])) {
- foreach ($config['dhcpd'] as $dhcpif => $dhcpifconf)
- if(is_array($dhcpifconf['staticmap']) && isset($dhcpifconf['enable']))
- foreach ($dhcpifconf['staticmap'] as $host)
- if ($host['ipaddr'] && $host['hostname']) {
- $host_entries .= "local-data-ptr: \"{$host['ipaddr']} {$host['hostname']}.{$syscfg['domain']}\"\n";
- $host_entries .= "local-data: \"{$host['hostname']}.{$syscfg['domain']} IN A {$host['ipaddr']}\"\n";
- if (!empty($host['descr']) && $unboundcfg['txtsupport'] == 'on')
- $host_entries .= "local-data: '{$host['hostname']}.{$syscfg['domain']} TXT \"".addslashes($host['descr'])."\"'\n";
- }
- $unbound_entries .= $host_entries;
- }
-
- // Handle DHCPLeases added host entries
- $dhcplcfg = read_hosts();
- $host_entries = "";
- if(is_array($dhcplcfg)) {
- foreach($dhcplcfg as $key=>$host) {
- $host_entries .= "local-data-ptr: \"{$host['ipaddr']} {$host['fqdn']}\"\n";
- $host_entries .= "local-data: \"{$host['fqdn']} IN A {$host['ipaddr']}\"\n";
- if (!empty($host['name'])) {
- $host_entries .= "local-data-ptr: \"{$host['ipaddr']} {$host['name']}\"\n";
- $host_entries .= "local-data: \"{$host['name']} IN A {$host['ipaddr']}\"\n";
- }
- }
- $unbound_entries .= $host_entries;
- }
-
- /* Write out entries */
- file_put_contents("{$g['unbound_chroot_path']}/etc/host_entries.conf", $unbound_entries);
-}
-
-/* Read /etc/hosts */
-function read_hosts() {
-
- /* Open /etc/hosts and extract the only dhcpleases info
- * XXX - to convert to an unbound C library which reads /etc/hosts automatically
- */
- $etc_hosts = array();
- foreach (file('/etc/hosts') as $line) {
- $d = preg_split('/\s/', $line, -1, PREG_SPLIT_NO_EMPTY);
- if (empty($d) || substr(reset($d), 0, 1) == "#")
- continue;
- if ($d[3] == "#") {
- $ip = array_shift($d);
- $fqdn = array_shift($d);
- $name = array_shift($d);
- if ($fqdn != "empty") {
- if ($name != "empty")
- array_push($etc_hosts, array(ipaddr => "$ip", fqdn => "$fqdn", name => "$name"));
- else
- array_push($etc_hosts, array(ipaddr => "$ip", fqdn => "$fqdn"));
- }
- }
- }
- return $etc_hosts;
-}
-
-function unbound_setup() {
- global $config, $g;
-
- unbound_anchor_setup();
- unbound_remote_control_setup();
- unbound_keys_setup();
- unbound_fetch_root_hints();
- unbound_resync_config();
-}
-
-function unbound_acl_id_used($id) {
- global $config;
-
- if (is_array($config['installedpackages']['unboundacls']['config']))
- foreach ($config['installedpackages']['unboundacls']['config'] as & $acls)
- if ($id == $acls['aclid'])
- return true;
-
- return false;
-}
-
-function unbound_get_next_id() {
- $aclid = 0;
- while(unbound_acl_id_used($aclid))
- $aclid++;
- return $aclid;
-}
-
-?> \ No newline at end of file
diff --git a/etc/inc/upgrade_config.inc b/etc/inc/upgrade_config.inc
index 4ddb7f1..9181024 100644
--- a/etc/inc/upgrade_config.inc
+++ b/etc/inc/upgrade_config.inc
@@ -34,7 +34,7 @@ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
pfSense_MODULE: config
*/
-if(!function_exists("dump_rrd_to_xml"))
+if(!function_exists("dump_rrd_to_xml"))
require("rrd.inc");
/* Upgrade functions must be named:
@@ -700,7 +700,7 @@ function upgrade_040_to_041() {
$config['sysctl']['item'][18]['tunable'] = "net.inet.tcp.tso";
$config['sysctl']['item'][18]['descr'] = gettext("TCP Offload engine");
$config['sysctl']['item'][18]['value'] = "default";
-
+
$config['sysctl']['item'][19]['tunable'] = "net.inet.ip.portrange.first";
$config['sysctl']['item'][19]['descr'] = "Set the ephemeral port range starting port";
$config['sysctl']['item'][19]['value'] = "default";
@@ -748,7 +748,7 @@ function upgrade_042_to_043() {
$config['gateways']['gateway_item'][$i]['name'] = "GW_" . strtoupper($ifname);
/* add default gateway bit for wan on upgrade */
if($ifname == "wan") {
- $config['gateways']['gateway_item'][$i]['defaultgw'] = true;
+ $config['gateways']['gateway_item'][$i]['defaultgw'] = true;
}
if(is_ipaddr($config['interfaces'][$ifname]['use_rrd_gateway'])) {
$config['gateways']['gateway_item'][$i]['monitor'] = $config['interfaces'][$ifname]['use_rrd_gateway'];
@@ -800,7 +800,8 @@ function upgrade_043_to_044() {
/* We already added a gateway name for this IP */
$config['staticroutes']['route'][$idx]['gateway'] = "{$gwmap[$sroute['gateway']]}";
$found = true;
- }
+ }
+
if ($found == false) {
$gateway = array();
$gateway['name'] = "SROUTE{$i}";
@@ -834,7 +835,7 @@ function upgrade_044_to_045() {
}
}
$config['vlans']['vlan'][$i]['vlanif'] = "{$vlan_name}";
- $i++;
+ $i++;
}
}
}
@@ -842,7 +843,7 @@ function upgrade_044_to_045() {
function upgrade_045_to_046() {
global $config;
- /* Load up monitors that are in the default config for 2.0 but not in 1.2.3
+ /* Load up monitors that are in the default config for 2.0 but not in 1.2.3
thus wouldn't be in an upgraded config. */
$config['load_balancer']['monitor_type'] = array (
array ( 'name' => 'ICMP',
@@ -1284,13 +1285,13 @@ function upgrade_047_to_048() {
$tempdyn['username'] = $config['dyndns'][0]['username'];
$tempdyn['password'] = $config['dyndns'][0]['password'];
$tempdyn['host'] = $config['dyndns'][0]['host'];
- $tempdyn['mx'] = $config['dyndns'][0]['mx'];
+ $tempdyn['mx'] = $config['dyndns'][0]['mx'];
$tempdyn['interface'] = "wan";
$tempdyn['descr'] = sprintf(gettext("Upgraded Dyndns %s"), $tempdyn['type']);
$config['dyndnses']['dyndns'][] = $tempdyn;
}
unset($config['dyndns']);
- }
+ }
if (!empty($config['dnsupdate'])) {
$pconfig = $config['dnsupdate'][0];
if (!$pconfig['ttl'])
@@ -1737,8 +1738,8 @@ function upgrade_051_to_052() {
$assigned_if = substr($tmpstr, 3);
continue;
} else if (substr($tmpstr, 0, 5) == "local") {
- $localip = substr($tmpstr, 5);
- $client['ipaddr'] = str_replace("\n", "", $localip);
+ $localip = substr($tmpstr, 5);
+ $client['ipaddr'] = str_replace("\n", "", $localip);
} else
$cstmopts[] = $tmpcstmopt;
}
@@ -1837,14 +1838,14 @@ function upgrade_051_to_052() {
if (count($config['openvpn']['openvpn-server']) > 0 ||
count($config['openvpn']['openvpn-client']) > 0) {
$ovpnrule = array();
- $ovpnrule['type'] = "pass";
- $ovpnrule['interface'] = "openvpn";
- $ovpnrule['statetype'] = "keep state";
- $ovpnrule['source'] = array();
- $ovpnrule['destination'] = array();
- $ovpnrule['source']['any'] = true;
- $ovpnrule['destination']['any'] = true;
- $ovpnrule['descr'] = gettext("Auto added OpenVPN rule from config upgrade.");
+ $ovpnrule['type'] = "pass";
+ $ovpnrule['interface'] = "openvpn";
+ $ovpnrule['statetype'] = "keep state";
+ $ovpnrule['source'] = array();
+ $ovpnrule['destination'] = array();
+ $ovpnrule['source']['any'] = true;
+ $ovpnrule['destination']['any'] = true;
+ $ovpnrule['descr'] = gettext("Auto added OpenVPN rule from config upgrade.");
$config['filter']['rule'][] = $ovpnrule;
}
@@ -2048,8 +2049,7 @@ function upgrade_054_to_055() {
setup_gateways_monitor();
/* build a list of traffic and packets databases */
- $databases = array();
- exec("cd $rrddbpath;/usr/bin/find *-traffic.rrd *-packets.rrd", $databases);
+ $databases = return_dir_as_array($rrddbpath, '/-(traffic|packets)\.rrd$/');
rsort($databases);
foreach($databases as $database) {
$databasetmp = "{$database}.tmp";
@@ -2227,7 +2227,7 @@ function upgrade_059_to_060() {
$ca['caref'] = $issuer_crt['refid'];
}
}
-
+
/* Locate issuer for all certificates */
if (is_array($config['cert'])) {
foreach ($config['cert'] as & $cert) {
@@ -2311,15 +2311,15 @@ function upgrade_062_to_063() {
$config['theme'] = "pfsense_ng";
break;
}
-
+
}
function upgrade_063_to_064() {
global $config;
$j=0;
$ifcfg = &$config['interfaces'];
-
- if (is_array($config['ppps']['ppp']) && count($config['ppps']['ppp'])) {
+
+ if (is_array($config['ppps']['ppp']) && count($config['ppps']['ppp'])) {
foreach ($config['ppps']['ppp'] as $pppid => $ppp) {
$config['ppps']['ppp'][$pppid]['if'] = "ppp".$j;
$config['ppps']['ppp'][$pppid]['ptpid'] = $j;
@@ -2335,7 +2335,7 @@ function upgrade_063_to_064() {
unset($config['ppps']['ppp'][$pppid]['defaultgw']);
}
}
-
+
if (!is_array($config['ppps']['ppp']))
$config['ppps']['ppp'] = array();
$a_ppps = &$config['ppps']['ppp'];
@@ -2358,7 +2358,7 @@ function upgrade_063_to_064() {
$ppp['username'] = $ifinfo['pptp_username'];
$ppp['password'] = base64_encode($ifinfo['pptp_password']);
}
-
+
if (isset($ifinfo['provider']))
$ppp['provider'] = $ifinfo['provider'];
if (isset($ifinfo['ondemand']))
@@ -2384,7 +2384,7 @@ function upgrade_063_to_064() {
$ifcfg[$ifname]['if'] = $ifinfo['ipaddr'].$j;
$j++;
-
+
unset($ifcfg[$ifname]['pppoe_username']);
unset($ifcfg[$ifname]['pppoe_password']);
unset($ifcfg[$ifname]['provider']);
@@ -2398,9 +2398,9 @@ function upgrade_063_to_064() {
unset($ifcfg[$ifname]['local']);
unset($ifcfg[$ifname]['subnet']);
unset($ifcfg[$ifname]['remote']);
-
+
$a_ppps[] = $ppp;
-
+
}
}
}
@@ -2417,20 +2417,20 @@ function upgrade_065_to_066() {
$dhcrelaycfg =& $config['dhcrelay'];
- if (is_array($dhcrelaycfg)) {
- $dhcrelayifs = array();
+ if (is_array($dhcrelaycfg)) {
+ $dhcrelayifs = array();
$foundifs = false;
- /* DHCPRelay enabled on any interfaces? */
- foreach ($dhcrelaycfg as $dhcrelayif => $dhcrelayifconf) {
- if (isset($dhcrelayifconf['enable'])) {
+ /* DHCPRelay enabled on any interfaces? */
+ foreach ($dhcrelaycfg as $dhcrelayif => $dhcrelayifconf) {
+ if (isset($dhcrelayifconf['enable'])) {
$dhcrelayifs[] = $dhcrelayif;
unset($dhcrelaycfg['dhcrelayif']);
$foundifs = true;
}
- }
+ }
if ($foundifs == true)
$dhcrelaycfg['interface'] = implode(",", $dhcrelayifs);
- }
+ }
}
function upgrade_066_to_067() {
@@ -2452,7 +2452,7 @@ function upgrade_067_to_068() {
$config['pppoes']['pppoe'][] = $config['pppoe'][0];
if (is_array($config['pppoe']['user'])) {
- $username = array();
+ $username = array();
foreach ($config['pppoe']['user'] as $user) {
$usr = $user['name'] . ":" . base64_encode($user['password']);
if ($user['ip'])
@@ -2661,8 +2661,7 @@ function upgrade_080_to_081() {
$upstream = 125000000;
/* build a list of traffic and packets databases */
- $databases = array();
- exec("cd $rrddbpath;/usr/bin/find *-traffic.rrd *-packets.rrd", $databases);
+ $databases = return_dir_as_array($rrddbpath, '/-(traffic|packets)\.rrd$/');
rsort($databases);
foreach($databases as $database) {
$databasetmp = "{$database}.tmp";
@@ -2776,7 +2775,7 @@ function upgrade_084_to_085() {
foreach($gateways as $name => $gw) {
if(isset($gw['dynamic'])){
$oldname = strtoupper($config['interfaces'][$gw['friendlyiface']]['descr']);
- $oldnames[$oldname] = $name;
+ $oldnames[$oldname] = $name;
} else {
$oldnames[$name] = $name;
}
@@ -2861,14 +2860,14 @@ function upgrade_086_to_087() {
read_dummynet_config();
$dn_list = array();
- if (is_array($dummynet_pipe_list)) {
- foreach ($dummynet_pipe_list as $dn) {
- $tmplist =& $dn->get_queue_list();
- foreach ($tmplist as $qname => $link) {
- $dn_list[$link] = $qname;
- }
- }
- }
+ if (is_array($dummynet_pipe_list)) {
+ foreach ($dummynet_pipe_list as $dn) {
+ $tmplist =& $dn->get_queue_list();
+ foreach ($tmplist as $qname => $link) {
+ $dn_list[$link] = $qname;
+ }
+ }
+ }
foreach ($config['filter']['rule'] as $idx => $rule) {
if (!empty($rule['dnpipe'])) {
@@ -2890,48 +2889,49 @@ function upgrade_087_to_088() {
}
function upgrade_088_to_089() {
- global $config;
- if (!is_array($config['ca']))
- $config['ca'] = array();
- if (!is_array($config['cert']))
- $config['cert'] = array();
-
- /* migrate captive portal ssl to certifcate mngr */
- if (is_array($config['captiveportal'])) {
- foreach ($config['captiveportal'] as $id => &$setting) {
- if (isset($setting['httpslogin'])) {
- /* create cert entry */
- $cert = array();
- $cert['refid'] = uniqid();
- $cert['descr'] = "Captive Portal Cert - {$setting['zone']}";
- $cert['crt'] = $setting['certificate'];
- $cert['prv'] = $setting['private-key'];
-
- if (!empty($setting['cacertificate'])) {
- /* create ca entry */
- $ca = array();
- $ca['refid'] = uniqid();
- $ca['descr'] = "Captive Portal CA - {$setting['zone']}";
- $ca['crt'] = $setting['cacertificate'];
- $config['ca'][] = $ca;
-
- /* add ca reference to certificate */
- $cert['caref'] = $ca['refid'];
- }
-
- $config['cert'][] = $cert;
-
- /* create cert reference */
- $setting['certref'] = $cert['refid'];
-
- unset($setting['certificate']);
- unset($setting['private-key']);
- unset($setting['cacertificate']);
-
- }
- }
- }
+ global $config;
+ if (!is_array($config['ca']))
+ $config['ca'] = array();
+ if (!is_array($config['cert']))
+ $config['cert'] = array();
+
+ /* migrate captive portal ssl to certifcate mngr */
+ if (is_array($config['captiveportal'])) {
+ foreach ($config['captiveportal'] as $id => &$setting) {
+ if (isset($setting['httpslogin'])) {
+ /* create cert entry */
+ $cert = array();
+ $cert['refid'] = uniqid();
+ $cert['descr'] = "Captive Portal Cert - {$setting['zone']}";
+ $cert['crt'] = $setting['certificate'];
+ $cert['prv'] = $setting['private-key'];
+
+ if (!empty($setting['cacertificate'])) {
+ /* create ca entry */
+ $ca = array();
+ $ca['refid'] = uniqid();
+ $ca['descr'] = "Captive Portal CA - {$setting['zone']}";
+ $ca['crt'] = $setting['cacertificate'];
+ $config['ca'][] = $ca;
+
+ /* add ca reference to certificate */
+ $cert['caref'] = $ca['refid'];
+ }
+
+ $config['cert'][] = $cert;
+
+ /* create cert reference */
+ $setting['certref'] = $cert['refid'];
+
+ unset($setting['certificate']);
+ unset($setting['private-key']);
+ unset($setting['cacertificate']);
+
+ }
+ }
+ }
}
+
function upgrade_089_to_090() {
global $config;
if (is_array($config['load_balancer']['virtual_server']) && count($config['load_balancer']['virtual_server'])) {
@@ -2965,4 +2965,41 @@ function upgrade_090_to_091() {
}
}
}
+
+function upgrade_091_to_092() {
+ global $config;
+
+ if (is_array($config['nat']['advancedoutbound']) && is_array($config['nat']['advancedoutbound']['rule'])) {
+ $nat_rules = &$config['nat']['advancedoutbound']['rule'];
+ for ($i = 0; isset($nat_rules[$i]); $i++) {
+ if (empty($nat_rules[$i]['interface'])) {
+ $nat_rules[$i]['interface'] = 'wan';
+ }
+ }
+ }
+}
+
+function upgrade_092_to_093() {
+ global $g;
+
+ $suffixes = array("concurrent", "loggedin");
+
+ foreach ($suffixes as $suffix)
+ if (file_exists("{$g['vardb_path']}/rrd/captiveportal-{$suffix}.rrd"))
+ rename("{$g['vardb_path']}/rrd/captiveportal-{$suffix}.rrd",
+ "{$g['vardb_path']}/rrd/captiveportal-cpZone-{$suffix}.rrd");
+
+ enable_rrd_graphing();
+}
+
+function upgrade_093_to_094() {
+ global $config;
+
+ if (isset($config['system']['powerd_mode'])) {
+ $config['system']['powerd_ac_mode'] = $config['system']['powerd_mode'];
+ $config['system']['powerd_battery_mode'] = $config['system']['powerd_mode'];
+ unset($config['system']['powerd_mode']);
+ }
+}
+
?>
diff --git a/etc/inc/util.inc b/etc/inc/util.inc
index 81f2dc4..0cce818 100644
--- a/etc/inc/util.inc
+++ b/etc/inc/util.inc
@@ -41,11 +41,13 @@ function killbypid($pidfile) {
return sigkillbypid($pidfile, "TERM");
}
-function isvalidpid($pid) {
+function isvalidpid($pidfile) {
$output = "";
- exec("/bin/pgrep -nF {$pid}", $output, $retval);
-
- return (intval($retval) == 0);
+ if (file_exists($pidfile)) {
+ exec("/bin/pgrep -nF {$pidfile}", $output, $retval);
+ return (intval($retval) == 0);
+ }
+ return false;
}
function is_process_running($process) {
@@ -62,7 +64,7 @@ function isvalidproc($proc) {
/* sigkill a process by pid file */
/* return 1 for success and 0 for a failure */
function sigkillbypid($pidfile, $sig) {
- if (is_file($pidfile))
+ if (file_exists($pidfile))
return mwexec("/bin/pkill -{$sig} -F {$pidfile}", true);
return 0;
@@ -282,6 +284,7 @@ function gen_subnetv6($ipaddr, $bits) {
return "";
$address = Net_IPv6::getNetmask($ipaddr, $bits);
+ $address = Net_IPv6::compress($address);
return $address;
}
@@ -305,7 +308,7 @@ function gen_subnetv6_max($ipaddr, $bits) {
$inet_end = $inet_ip | ~$inet_mask;
- return(Net_IPv6::uncompress(inet_ntop($inet_end)));
+ return (inet_ntop($inet_end));
}
/* returns a subnet mask (long given a bit count) */
@@ -472,13 +475,14 @@ function is_ipaddr($ipaddr) {
/* returns true if $ipaddr is a valid IPv6 address */
function is_ipaddrv6($ipaddr) {
- $result = Net_IPv6::checkIPv6($ipaddr);
- return $result;
+ if (!is_string($ipaddr) || empty($ipaddr))
+ return false;
+ return Net_IPv6::checkIPv6($ipaddr);
}
/* returns true if $ipaddr is a valid dotted IPv4 address */
function is_ipaddrv4($ipaddr) {
- if (!is_string($ipaddr))
+ if (!is_string($ipaddr) || empty($ipaddr))
return false;
$ip_long = ip2long($ipaddr);
@@ -677,6 +681,22 @@ function is_valid_shaperbw($val) {
return (preg_match("/^(\d+(?:\.\d+)?)([MKG]?b|%)$/", $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
+ 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
+ return false;
+}
+
/* return the configured carp interface list */
function get_configured_carp_interface_list() {
global $config;
@@ -719,6 +739,20 @@ function get_configured_ip_aliases_list($returnfullentry = false) {
return $alias_list;
}
+/* return all configured aliases list (IP, carp, proxyarp and other) */
+function get_configured_vips_list() {
+ global $config;
+
+ $alias_list=array();
+
+ if(is_array($config['virtualip']['vip'])) {
+ $viparr = &$config['virtualip']['vip'];
+ foreach ($viparr as $vip)
+ $alias_list[] = array("ipaddr" => $vip['subnet'], "if" => $vip['interface']);
+ }
+
+ return $alias_list;
+}
/* comparison function for sorting by the order in which interfaces are normally created */
function compare_interface_friendly_names($a, $b) {
@@ -800,19 +834,35 @@ function get_configured_interface_with_descr($only_opt = false, $withdisabled =
*
*/
function get_configured_ip_addresses() {
- require_once("interfaces.inc");
+ global $config;
+
+ if (!function_exists('get_interface_ip'))
+ require_once("interfaces.inc");
$ip_array = array();
$interfaces = get_configured_interface_list();
- if(is_array($interfaces)) {
+ if (is_array($interfaces)) {
foreach($interfaces as $int) {
$ipaddr = get_interface_ip($int);
$ip_array[$int] = $ipaddr;
}
}
$interfaces = get_configured_carp_interface_list();
- if(is_array($interfaces))
+ if (is_array($interfaces))
foreach($interfaces as $int => $ipaddr)
$ip_array[$int] = $ipaddr;
+
+ /* pppoe server */
+ if (is_array($config['pppoes']) && is_array($config['pppoes']['pppoe'])) {
+ foreach($config['pppoes']['pppoe'] as $pppoe) {
+ if ($pppoe['mode'] == "server") {
+ if(is_ipaddr($pppoe['localip'])) {
+ $int = "pppoes". $pppoe['pppoeid'];
+ $ip_array[$int] = $pppoe['localip'];
+ }
+ }
+ }
+ }
+
return $ip_array;
}
@@ -1041,10 +1091,11 @@ function mwexec_bg($command, $clearsigmask = false) {
$oldset = array();
pcntl_sigprocmask(SIG_SETMASK, array(), $oldset);
}
- exec("nohup $command > /dev/null 2>&1 &");
+ $_gb = exec("/usr/bin/nohup $command > /dev/null 2>&1 &");
if ($clearsigmask) {
pcntl_sigprocmask(SIG_SETMASK, $oldset);
}
+ unset($_gb);
}
/* unlink a file, if it exists */
@@ -1121,7 +1172,7 @@ function alias_expand_urltable($name) {
return null;
}
-function subnet_size ($subnet) {
+function subnet_size($subnet) {
if (is_subnetv4($subnet)) {
list ($ip, $bits) = explode("/", $subnet);
return round(exp(log(2) * (32 - $bits)));
@@ -1135,7 +1186,7 @@ function subnet_size ($subnet) {
}
}
-function subnet_expand ($subnet) {
+function subnet_expand($subnet) {
if (is_subnetv4($subnet)) {
return subnetv4_expand($subnet);
} else if (is_subnetv6($subnet)) {
@@ -1145,7 +1196,7 @@ function subnet_expand ($subnet) {
}
}
-function subnetv4_expand ($subnet) {
+function subnetv4_expand($subnet) {
$result = array();
list ($ip, $bits) = explode("/", $subnet);
$net = ip2long($ip);
@@ -1177,6 +1228,16 @@ function check_subnets_overlap($subnet1, $bits1, $subnet2, $bits2) {
return ($sn1 == $sn2);
}
+/* find out whether two IPv6 subnets overlap */
+function check_subnetsv6_overlap($subnet1, $bits1, $subnet2, $bits2) {
+ $sub1_min = gen_subnetv6($subnet1, $bits1);
+ $sub1_max = gen_subnetv6_max($subnet1, $bits1);
+ $sub2_min = gen_subnetv6($subnet2, $bits2);
+ $sub2_max = gen_subnetv6_max($subnet2, $bits2);
+
+ return (is_inrange_v6($sub1_min, $sub2_min, $sub2_max) || is_inrange_v6($sub1_max, $sub2_min, $sub2_max) || is_inrange_v6($sub2_min, $sub1_min, $sub1_max));
+}
+
/* compare two IP addresses */
function ipcmp($a, $b) {
if (ip_less_than($a, $b))
@@ -1190,15 +1251,12 @@ function ipcmp($a, $b) {
/* return true if $addr is in $subnet, false if not */
function ip_in_subnet($addr,$subnet) {
if(is_ipaddrv6($addr)) {
- $result = Net_IPv6::IsInNetmask($addr, $subnet);
- if($result)
- return true;
- else
- return false;
+ return (Net_IPv6::isInNetmask($addr, $subnet));
+ } else { /* XXX: Maybe check for IPv4 */
+ list($ip, $mask) = explode('/', $subnet);
+ $mask = (0xffffffff << (32 - $mask)) & 0xffffffff;
+ return ((ip2long($addr) & $mask) == (ip2long($ip) & $mask));
}
- list($ip, $mask) = explode('/', $subnet);
- $mask = (0xffffffff << (32 - $mask)) & 0xffffffff;
- return ((ip2long($addr) & $mask) == (ip2long($ip) & $mask));
}
/* verify (and remove) the digital signature on a file - returns 0 if OK */
@@ -1300,23 +1358,24 @@ function update_filter_reload_status($text) {
file_put_contents("{$g['varrun_path']}/filter_reload_status", $text);
}
-/****f* util/return_dir_as_array
+/****** util/return_dir_as_array
* NAME
* return_dir_as_array - Return a directory's contents as an array.
* INPUTS
- * $dir - string containing the path to the desired directory.
+ * $dir - string containing the path to the desired directory.
+ * $filter_regex - string containing a regular expression to filter file names. Default empty.
* RESULT
* $dir_array - array containing the directory's contents. This array will be empty if the path specified is invalid.
******/
-function return_dir_as_array($dir) {
+function return_dir_as_array($dir, $filter_regex = '') {
$dir_array = array();
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
- $canadd = 0;
- if($file == ".") $canadd = 1;
- if($file == "..") $canadd = 1;
- if($canadd == 0)
+ if (($file == ".") || ($file == ".."))
+ continue;
+
+ if (empty($filter_regex) || preg_match($filter_regex, $file))
array_push($dir_array, $file);
}
closedir($dh);
@@ -1438,19 +1497,11 @@ function set_sysctl($values) {
* [0]real and [1]available
*/
function get_memory() {
- $matches = "";
- if(file_exists("/var/log/dmesg.boot"))
- $mem = `cat /var/log/dmesg.boot | grep memory`;
- else
- $mem = `dmesg -a | grep memory`;
- if (preg_match_all("/avail memory.* \((.*)MB\)/", $mem, $matches))
- return array($matches[1][0], $matches[1][0]);
- if(!$real && !$avail) {
- $real = trim(`sysctl hw.physmem | cut -d' ' -f2`);
- $avail = trim(`sysctl hw.realmem | cut -d' ' -f2`);
- /* convert from bytes to megabytes */
- return array(($real/1048576),($avail/1048576));
- }
+
+ $real = trim(`sysctl -n hw.physmem`, " \n");
+ $avail = trim(`sysctl -n hw.realmem`, " \n");
+ /* convert from bytes to megabytes */
+ return array(($real/1048576),($avail/1048576));
}
function mute_kernel_msgs() {
@@ -1774,26 +1825,29 @@ function explode_assoc($delimiter, $string) {
function get_staticroutes($returnsubnetsonly = false) {
global $config;
- require_once('filter.inc');
- $allstaticroutes = array();
- $allsubnets = array();
/* Bail if there are no routes, but return an array always so callers don't have to check. */
if (!is_array($config['staticroutes']['route']))
return array();
+ $allstaticroutes = array();
+ $allsubnets = array();
/* Loop through routes and expand aliases as we find them. */
foreach ($config['staticroutes']['route'] as $route) {
if (is_alias($route['network'])) {
+ if (!function_exists('filter_expand_alias_array'))
+ require_once('filter.inc');
$subnets = filter_expand_alias_array($route['network']);
foreach ($subnets as $net) {
- if (is_ipaddrv4($net))
- $net .= "/32";
- if (is_ipaddrv6($net) && !is_subnetv6($net))
- $net .= "/128";
- /* This must be a hostname, we can't use it. */
- if (!is_subnet($net))
- continue;
+ if (!is_subnet($net)) {
+ if (is_ipaddrv4($net))
+ $net .= "/32";
+ else if (is_ipaddrv6($net))
+ $net .= "/128";
+ /* This must be a hostname, we can't use it. */
+ else
+ continue;
+ }
$temproute = $route;
$temproute['network'] = $net;
$allstaticroutes[] = $temproute;
@@ -1804,11 +1858,10 @@ function get_staticroutes($returnsubnetsonly = false) {
$allsubnets[] = $route['network'];
}
}
- if ($returnsubnetsonly) {
+ if ($returnsubnetsonly)
return $allsubnets;
- } else {
+ else
return $allstaticroutes;
- }
}
/****f* util/get_alias_list
@@ -1881,7 +1934,7 @@ function get_current_theme() {
* If this device is an apple ipod/iphone
* switch the theme to one that works with it.
*/
- $lowres_ua = array("iPhone", "iPod", "iPad", "Android", "BlackBerry", "Opera Mini", "Opera Mobi", "PlayBook");
+ $lowres_ua = array("iPhone", "iPod", "iPad", "Android", "BlackBerry", "Opera Mini", "Opera Mobi", "PlayBook", "IEMobile");
foreach($lowres_ua as $useragent)
if(strstr($_SERVER['HTTP_USER_AGENT'], $useragent))
$theme = (empty($g['theme_lowres']) && (is_dir($g["www_path"].'/themes/'.$g['theme_lowres']))) ? "pfsense" : $g['theme_lowres'];
diff --git a/etc/inc/voucher.inc b/etc/inc/voucher.inc
index 3a8c0bc..5b392bb 100644
--- a/etc/inc/voucher.inc
+++ b/etc/inc/voucher.inc
@@ -40,9 +40,9 @@ if(!function_exists('captiveportal_syslog'))
function xmlrpc_sync_voucher_expire($vouchers, $syncip, $port, $password, $username) {
global $g, $config, $cpzone;
require_once("xmlrpc.inc");
- if($port == "443")
+ if ($port == "443")
$url = "https://{$syncip}";
- else
+ else
$url = "http://{$syncip}";
/* Construct code that is run on remote machine */
@@ -50,8 +50,8 @@ function xmlrpc_sync_voucher_expire($vouchers, $syncip, $port, $password, $usern
$execcmd = <<<EOF
require_once('/etc/inc/captiveportal.inc');
require_once('/etc/inc/voucher.inc');
- \$cpzone = $cpzone;
- voucher_expire(\$vouchers);
+ \$cpzone = "$cpzone";
+ voucher_expire("$vouchers");
EOF;
@@ -85,22 +85,25 @@ EOF;
return $toreturn;
}
-function xmlrpc_sync_voucher_disconnect($dbent, $syncip, $port, $password, $username, $term_cause = "1", $stop_time = null) {
+function xmlrpc_sync_voucher_disconnect($dbent, $syncip, $port, $password, $username, $term_cause = 1, $stop_time = null) {
global $g, $config, $cpzone;
require_once("xmlrpc.inc");
- if($port == "443")
+ if ($port == "443")
$url = "https://{$syncip}";
- else
+ else
$url = "http://{$syncip}";
/* Construct code that is run on remote machine */
+ $dbent_str = serialize($dbent);
+ $tmp_stop_time = (isset($stop_time)) ? $stop_time : "null";
$method = 'pfsense.exec_php';
$execcmd = <<<EOF
require_once('/etc/inc/captiveportal.inc');
require_once('/etc/inc/voucher.inc');
- \$cpzone = $cpzone;
+ \$cpzone = "$cpzone";
\$radiusservers = captiveportal_get_radius_servers();
- captiveportal_disconnect(\$dbent, \$radiusservers, \$term_cause, \$stop_time);
+ \$dbent = unserialize("$dbent_str");
+ captiveportal_disconnect(\$dbent, \$radiusservers, $term_cause, $tmp_stop_time);
EOF;
@@ -137,20 +140,21 @@ EOF;
function xmlrpc_sync_used_voucher($voucher_received, $syncip, $port, $password, $username) {
global $g, $config, $cpzone;
require_once("xmlrpc.inc");
- if($port == "443")
+ if ($port == "443")
$url = "https://{$syncip}";
- else
+ else
$url = "http://{$syncip}";
/* Construct code that is run on remote machine */
$method = 'pfsense.exec_php';
$execcmd = <<<EOF
require_once('/etc/inc/voucher.inc');
- \$cpzone = $cpzone;
- \$timeleft = voucher_auth({$voucher_received});
+ \$cpzone = "$cpzone";
+ \$timeleft = voucher_auth("$voucher_received");
\$toreturn = array();
\$toreturn['timeleft'] = \$timeleft;
- \$toreturn['voucher']['roll'] = \$config['voucher'][$cpzone]['roll'];
+ \$toreturn['voucher'] = array();
+ \$toreturn['voucher']['roll'] = \$config['voucher'][\$cpzone]['roll'];
EOF;
@@ -179,6 +183,8 @@ EOF;
log_error("CaptivePortalVoucherSync XMLRPC reload data success with {$url}:{$port} (pfsense.exec_php).");
}
$toreturn = XML_RPC_Decode($resp->value());
+ if (!is_array($config['voucher']))
+ $config['voucher'] = array();
if (is_array($toreturn['voucher']) && (count($toreturn['voucher'][$cpzone]['roll']) <> count($config['voucher'][$cpzone]['roll']))) {
$config['voucher'][$cpzone]['roll'] = $toreturn['voucher']['roll'];
write_config("Captive Portal Voucher database synchronized with {$url}");
@@ -191,8 +197,6 @@ EOF;
function voucher_expire($voucher_received) {
global $g, $config, $cpzone;
- $voucherlck = lock("voucher{$cpzone}", LOCK_EX);
-
// XMLRPC Call over to the master Voucher node
if(!empty($config['voucher'][$cpzone]['vouchersyncdbip'])) {
$syncip = $config['voucher'][$cpzone]['vouchersyncdbip'];
@@ -202,6 +206,8 @@ function voucher_expire($voucher_received) {
xmlrpc_sync_voucher_expire($voucher_received, $syncip, $syncport, $syncpass, $vouchersyncusername);
}
+ $voucherlck = lock("voucher{$cpzone}", LOCK_EX);
+
// read rolls into assoc array with rollid as key and minutes as value
$tickets_per_roll = array();
$minutes_per_roll = array();
@@ -215,9 +221,7 @@ function voucher_expire($voucher_received) {
// split into an array. Useful for multiple vouchers given
$a_vouchers_received = preg_split("/[\t\n\r ]+/s", $voucher_received);
$active_dirty = false;
-
- $cpdb = captiveportal_read_db(false, 4); /* Indexed by Voucher */
- $unsetindexes[] = array();
+ $unsetindexes = array();
// go through all received vouchers, check their valid and extract
// Roll# and Ticket# using the external readvoucher binary
@@ -250,11 +254,10 @@ function voucher_expire($voucher_received) {
captiveportal_syslog("{$voucher} ({$roll}/{$nr}) forced to expire");
/* Check if this voucher has any active sessions */
- if (isset($cpdb[$voucher])) {
- $cpentry = $cpdb[$voucher];
+ $cpentry = captiveportal_read_db("WHERE username = '{$voucher}'");
+ if (!empty($cpentry)) {
captiveportal_disconnect($cpentry,null,13);
captiveportal_logportalauth($cpentry[4],$cpentry[3],$cpentry[2],"FORCLY TERMINATING VOUCHER {$voucher} SESSION");
- unset($cpdb[$voucher]);
$unsetindexes[] = $cpentry[5];
}
} else
@@ -289,7 +292,7 @@ function voucher_expire($voucher_received) {
/* Write database */
if (!empty($unsetindexes))
- captiveportal_write_db($cpdb, false, $unsetindexes);
+ captiveportal_remove_entries($unsetindexes);
return true;
}
@@ -307,8 +310,6 @@ function voucher_auth($voucher_received, $test = 0) {
if (!isset($config['voucher'][$cpzone]['enable']))
return 0;
- $voucherlck = lock("voucher{$cpzone}", LOCK_EX);
-
// XMLRPC Call over to the master Voucher node
if(!empty($config['voucher'][$cpzone]['vouchersyncdbip'])) {
$syncip = $config['voucher'][$cpzone]['vouchersyncdbip'];
@@ -318,6 +319,8 @@ function voucher_auth($voucher_received, $test = 0) {
$remote_time_used = xmlrpc_sync_used_voucher($voucher_received, $syncip, $syncport, $syncpass, $vouchersyncusername);
}
+ $voucherlck = lock("voucher{$cpzone}", LOCK_EX);
+
// read rolls into assoc array with rollid as key and minutes as value
$tickets_per_roll = array();
$minutes_per_roll = array();
@@ -673,6 +676,9 @@ function voucher_save_db_to_config_zone() {
if (!isset($config['voucher'][$cpzone]['enable']))
return; // no vouchers or don't want to save DB's
+ if (!is_array($config['voucher'][$cpzone]['roll']))
+ return;
+
$voucherlck = lock("voucher{$cpzone}", LOCK_EX);
// walk all active rolls and save runtime DB's to flash
diff --git a/etc/inc/vpn.inc b/etc/inc/vpn.inc
index 55c56e8..d43c069 100644
--- a/etc/inc/vpn.inc
+++ b/etc/inc/vpn.inc
@@ -145,7 +145,6 @@ function vpn_ipsec_configure($ipchg = false)
$ipsecpinghosts = "";
/* step through each phase1 entry */
- $ipsecpinghosts = "";
foreach ($a_phase1 as $ph1ent) {
if (isset($ph1ent['disabled']))
continue;
@@ -190,7 +189,6 @@ function vpn_ipsec_configure($ipchg = false)
if ($ikeid != $ph1ent['ikeid'])
continue;
- $ph2ent['localid']['mode'] = $ph2ent['mode'];
/* add an ipsec pinghosts entry */
if ($ph2ent['pinghost']) {
if (!is_array($iflist))
@@ -200,7 +198,7 @@ function vpn_ipsec_configure($ipchg = false)
$interface_ip = get_interface_ipv6($ifent);
if(!is_ipaddrv6($interface_ip))
continue;
- $local_subnet = ipsec_idinfo_to_cidr($ph2ent['localid'], true);
+ $local_subnet = ipsec_idinfo_to_cidr($ph2ent['localid'], true, $ph2ent['mode']);
if (ip_in_subnet($interface_ip, $local_subnet)) {
$srcip = $interface_ip;
break;
@@ -209,7 +207,7 @@ function vpn_ipsec_configure($ipchg = false)
$interface_ip = get_interface_ip($ifent);
if(!is_ipaddrv4($interface_ip))
continue;
- $local_subnet = ipsec_idinfo_to_cidr($ph2ent['localid'], true);
+ $local_subnet = ipsec_idinfo_to_cidr($ph2ent['localid'], true, $ph2ent['mode']);
if ($local_subnet == "0.0.0.0/0" || ip_in_subnet($interface_ip, $local_subnet)) {
$srcip = $interface_ip;
break;
@@ -226,10 +224,10 @@ function vpn_ipsec_configure($ipchg = false)
$ipsecpinghosts[] = "{$srcip}|{$dstip}|3|||||{$family}|\n";
}
}
- @file_put_contents("{$g['vardb_path']}/ipsecpinghosts", $ipsecpinghosts);
- unset($ipsecpinghosts);
}
}
+ @file_put_contents("{$g['vardb_path']}/ipsecpinghosts", $ipsecpinghosts);
+ unset($ipsecpinghosts);
}
/* generate CA certificates files */
@@ -362,7 +360,7 @@ function vpn_ipsec_configure($ipchg = false)
if (!isset($ph2ent['mobile']))
continue;
- $localid = ipsec_idinfo_to_cidr($ph2ent['localid'],true);
+ $localid = ipsec_idinfo_to_cidr($ph2ent['localid'], true, $ph2ent['mode']);
if ($net_list)
$net_list .= ", ";
@@ -419,6 +417,8 @@ function vpn_ipsec_configure($ipchg = false)
$sed = "\$authmodes=array(";
$firstsed = 0;
foreach ($authcfgs as $authcfg) {
+ if ($authcfg == "system")
+ $authcfg = "Local Database";
if ($firstsed > 0)
$sed .= ",";
$firstsed = 1;
@@ -669,8 +669,7 @@ EOD;
if (($ph2ent['mode'] == 'tunnel') or ($ph2ent['mode'] == 'tunnel6')) {
$localid_type = $ph2ent['localid']['type'];
- $ph2ent['localid']['mode'] = $ph2ent['mode'];
- $localid_data = ipsec_idinfo_to_cidr($ph2ent['localid']);
+ $localid_data = ipsec_idinfo_to_cidr($ph2ent['localid'], false, $ph2ent['mode']);
/* Do not print localid in some cases, such as a pure-psk or psk/xauth single phase2 mobile tunnel */
if (($localid_type == "none") ||
(($ph1ent['authentication_method'] == "xauth_psk_server") ||
@@ -683,13 +682,13 @@ EOD;
$localid_type = "subnet";
}
// Don't let an empty subnet into racoon.conf, it can cause parse errors. Ticket #2201.
- if (!is_ipaddr($localid_data) && !is_subnet($localid_data)) {
+ if (!is_ipaddr($localid_data) && !is_subnet($localid_data) && ($localid_data != "0.0.0.0/0")) {
log_error("Invalid IPsec Phase 2 \"{$ph2ent['descr']}\" - {$ph2ent['localid']['type']} has no subnet.");
continue;
}
$localid_spec = "{$localid_type} {$localid_data} any";
if (!empty($ph2ent['natlocalid'])) {
- $natlocalid_data = ipsec_idinfo_to_cidr($ph2ent['natlocalid']);
+ $natlocalid_data = ipsec_idinfo_to_cidr($ph2ent['natlocalid'], false, $ph2ent['mode']);
if ($ph2ent['natlocalid']['type'] != "address") {
if (is_subnet($natlocalid_data))
$localid_spec .= " nat subnet {$natlocalid_data} any";
@@ -705,7 +704,7 @@ EOD;
if ($remoteid_type != "address")
$remoteid_type = "subnet";
- $remoteid_data = ipsec_idinfo_to_cidr($ph2ent['remoteid']);
+ $remoteid_data = ipsec_idinfo_to_cidr($ph2ent['remoteid'], false, $ph2ent['mode']);
$remoteid_spec = $remoteid_type." ".$remoteid_data." any";
} else
$remoteid_spec = "anonymous";
@@ -866,9 +865,8 @@ EOD;
if(!is_ipaddr($rgip))
continue;
- $ph2ent['localid']['mode'] = $ph2ent['mode'];
- $localid = ipsec_idinfo_to_cidr($ph2ent['localid'],true);
- $remoteid = ipsec_idinfo_to_cidr($ph2ent['remoteid'],true);
+ $localid = ipsec_idinfo_to_cidr($ph2ent['localid'], true, $ph2ent['mode']);
+ $remoteid = ipsec_idinfo_to_cidr($ph2ent['remoteid'], true, $ph2ent['mode']);
if(($ph2ent['mode'] == "tunnel") or ($ph2ent['mode'] == 'tunnel6')) {
// Error will be logged above, no need to log this twice. #2201
@@ -884,7 +882,7 @@ EOD;
"{$ph2ent['protocol']}/tunnel/{$ep}-{$rgip}/unique;\n";
if (!empty($ph2ent['natlocalid'])) {
- $natlocalid = ipsec_idinfo_to_cidr($ph2ent['natlocalid'],true);
+ $natlocalid = ipsec_idinfo_to_cidr($ph2ent['natlocalid'], true, $ph2ent['mode']);
$spdconf .= "spdadd {$family} {$remoteid} {$natlocalid} any -P in ipsec " .
"{$ph2ent['protocol']}/tunnel/{$rgip}-{$ep}/unique;\n";
$natfilterrules = true;
@@ -975,9 +973,14 @@ EOD;
file_put_contents("{$g['varetc_path']}/ipsec/filterdns-ipsec.hosts", $hostnames);
unset($hostnames);
+ if (isvalidpid("{$g['varrun_path']}/filterdns-ipsec.pid"))
+ sigkillbypid("{$g['varrun_path']}/filterdns-ipsec.pid", "HUP");
+ else {
+ mwexec("/usr/local/sbin/filterdns -p {$g['varrun_path']}/filterdns-ipsec.pid -i {$interval} -c {$g['varetc_path']}/ipsec/filterdns-ipsec.hosts -d 1");
+ }
+ } else {
killbypid("{$g['varrun_path']}/filterdns-ipsec.pid");
- sleep(1);
- mwexec("/usr/local/sbin/filterdns -p {$g['varrun_path']}/filterdns-ipsec.pid -i {$interval} -c {$g['varetc_path']}/ipsec/filterdns-ipsec.hosts -d 1");
+ @unlink("{$g['varrun_path']}/filterdns-ipsec.pid");
}
vpn_ipsec_failover_configure();
@@ -995,12 +998,25 @@ EOD;
* For all other occasions the normal vpn_ipsec_configure()
* will gracefully reload the settings without restarting
*/
-function vpn_ipsec_force_reload() {
- global $config;
- global $g;
+function vpn_ipsec_force_reload($interface = "") {
+ global $g, $config;
$ipseccfg = $config['ipsec'];
+ if (!empty($interface) && is_array($ipseccfg['phase1'])) {
+ $found = false;
+ foreach ($ipseccfg['phase1'] as $ipsec) {
+ if (!isset($ipsec['disabled']) && ($ipsec['interface'] == $interface)) {
+ $found = true;
+ break;
+ }
+ }
+ if (!$found) {
+ log_error(sprintf(gettext("Ignoring IPsec racoon daemon reload since there are no tunnels on interface %s"), $interface));
+ return;
+ }
+ }
+
/* send a SIGKILL to be sure */
killbypid("{$g['varrun_path']}/racoon.pid");
@@ -1729,6 +1745,62 @@ function vpn_ipsec_refresh_policies() {
}
}
+/* remove SPD polices */
+function remove_tunnel_spd_policy($phase1,$phase2) {
+ global $config;
+ global $g;
+
+ if (!$phase1 || !$phase2)
+ return false;
+
+ if (isset($phase1['mobile']))
+ return false;
+
+ $spdconf = "";
+ $ep = ipsec_get_phase1_src($phase1);
+ $gw = trim($phase1['remote-gateway']);
+ $sad_arr = ipsec_dump_sad();
+ $remote_subnet = ipsec_idinfo_to_cidr($phase2['remoteid'], false, $phase2['mode']);
+
+ if (!empty($phase2['natlocalid']))
+ $local_subnet = ipsec_idinfo_to_cidr($phase2['natlocalid'], false, $phase2['mode']);
+ else
+ $local_subnet = ipsec_idinfo_to_cidr($phase2['localid'], false, $phase2['mode']);
+
+ if ($phase2['mode'] == "tunnel6")
+ $family = "-6";
+ else
+ $family = "-4";
+
+ $spdconf .= "spddelete {$family} {$local_subnet} " .
+ "{$remote_subnet} any -P out ipsec " .
+ "{$phase2['protocol']}/tunnel/{$ep}-" .
+ "{$gw}/unique;\n";
+
+ $spdconf .= "spddelete {$family} {$remote_subnet} " .
+ "{$local_subnet} any -P in ipsec " .
+ "{$phase2['protocol']}/tunnel/{$gw}-" .
+ "{$ep}/unique;\n";
+
+ /* zap any existing SA entries */
+ foreach($sad_arr as $sad) {
+ if(($sad['dst'] == $ep) && ($sad['src'] == $gw))
+ $spdconf .= "delete {$family} {$ep} {$gw} {$phase2['protocol']} 0x{$sad['spi']};\n";
+ if(($sad['src'] == $ep) && ($sad['dst'] == $_gw))
+ $spdconf .= "delete {$family} {$gw} {$ep} {$phase2['protocol']} 0x{$sad['spi']};\n";
+ }
+
+ log_error(sprintf(gettext("Removing SPDs from tunnel gw '%1\$s'. Local Subnet '%2\$s' and Remote Subnet '%3\$s'. Reloading policy"),$phase1['remote-gateway'],$local_subnet,$remote_subnet));
+
+ $now = time();
+ $spdfile = tempnam("{$g['tmp_path']}", "spd.conf.reload.{$now}.");
+ /* generate temporary spd.conf */
+ @file_put_contents($spdfile, $spdconf);
+ unset($spdconf);
+
+ return true;
+}
+
/* reloads the tunnel configuration for a tunnel item
* Will remove and add SPD polices */
function reload_tunnel_spd_policy($phase1, $phase2, $old_phase1, $old_phase2) {
@@ -1746,17 +1818,15 @@ function reload_tunnel_spd_policy($phase1, $phase2, $old_phase1, $old_phase2) {
$sad_arr = ipsec_dump_sad();
$ep = ipsec_get_phase1_src($phase1);
- $phase2['localid']['mode'] = $phase2['mode'];
- $local_subnet = ipsec_idinfo_to_cidr($phase2['localid']);
- $remote_subnet = ipsec_idinfo_to_cidr($phase2['remoteid']);
+ $local_subnet = ipsec_idinfo_to_cidr($phase2['localid'], false, $phase2['mode']);
+ $remote_subnet = ipsec_idinfo_to_cidr($phase2['remoteid'], false, $phase2['mode']);
/* make sure we pass the oldtunnel array with a IP for the remote gw */
$old_gw = trim($old_phase1['remote-gateway']);
$old_ep = ipsec_get_phase1_src($old_phase1);
- $old_phase2['localid']['mode'] = $old_phase2['mode'];
- $old_local_subnet = ipsec_idinfo_to_cidr($old_phase2['localid']);
- $old_remote_subnet = ipsec_idinfo_to_cidr($old_phase2['remoteid']);
+ $old_local_subnet = ipsec_idinfo_to_cidr($old_phase2['localid'], false, $old_phase2['mode']);
+ $old_remote_subnet = ipsec_idinfo_to_cidr($old_phase2['remoteid'], false, $old_phase2['mode']);
/* see if this tunnel has a hostname for the remote-gateway, and if so,
* try to resolve it now and add it to the list for filterdns */
@@ -1800,7 +1870,7 @@ function reload_tunnel_spd_policy($phase1, $phase2, $old_phase1, $old_phase2) {
"{$old_phase2['protocol']}/tunnel/{$old_ep}-" .
"{$old_gw}/unique;\n";
if (!empty($old_phase2['natlocalid']))
- $old_local_subnet = ipsec_idinfo_to_cidr($old_phase2['natlocalid']);
+ $old_local_subnet = ipsec_idinfo_to_cidr($old_phase2['natlocalid'], false, $old_phase2['mode']);
$spdconf .= "spddelete {$family} {$old_remote_subnet} " .
"{$old_local_subnet} any -P in ipsec " .
"{$old_phase2['protocol']}/tunnel/{$old_gw}-" .
@@ -1840,7 +1910,7 @@ function reload_tunnel_spd_policy($phase1, $phase2, $old_phase1, $old_phase2) {
"{$rgip}/unique;\n";
if (!empty($phase2['natlocalid']))
- $local_subnet = ipsec_idinfo_to_cidr($phase2['natlocalid']);
+ $local_subnet = ipsec_idinfo_to_cidr($phase2['natlocalid'], false, $phase2['mode']);
$spdconf .= "spdadd {$family} {$remote_subnet} " .
"{$local_subnet} any -P in ipsec " .
"{$phase2['protocol']}/tunnel/{$rgip}-" .
diff --git a/etc/inc/vslb.inc b/etc/inc/vslb.inc
index 1aed862..8620a1d 100644
--- a/etc/inc/vslb.inc
+++ b/etc/inc/vslb.inc
@@ -350,7 +350,7 @@ function relayd_configure($kill_first=false) {
/* sitedown MUST use the same port as the primary pool - sucks, but it's a relayd thing */
if (isset($vs_a[$i]['sitedown']) && strlen($vs_a[$i]['sitedown']) > 0)
- $conf .= " forward to <{$vs_a[$i]['sitedown']}> port {$dest_port} {$check_a[$pools[$vs_a[$i]['poolname']]['monitor']]} \n";
+ $conf .= " forward to <{$vs_a[$i]['sitedown']}> port {$dest_port} {$check_a[$pools[$vs_a[$i]['sitedown']]['monitor']]} \n";
$conf .= "}\n";
}
diff --git a/etc/inc/wizardapp.inc b/etc/inc/wizardapp.inc
index 8cd53e1..94b7a1b 100644
--- a/etc/inc/wizardapp.inc
+++ b/etc/inc/wizardapp.inc
@@ -31,6 +31,17 @@
$gamesplist = array();
+$gamesplist['arma2'] = array();
+ /* ARMA 2 */
+ $gamesplist['arma2'][] = array('arma2', 'udp', '2302', '2310', 'both');
+
+$gamesplist['battlenet'] = array();
+ /* Blizzard Publishing games */
+ $gamesplist['battlenet'][] = array('Battle.NET-game1-tcp', 'tcp', '6112', '6119', 'both'); //diablo, diablo2, starcraft, warcraft 2, warcraft 3
+ $gamesplist['battlenet'][] = array('Battle.NET-game1-udp', 'udp', '6112', '6119', 'both'); //diablo, diablo2, starcraft, warcraft 2
+ $gamesplist['battlenet'][] = array('Battle.NET-diablo2', 'tcp', '4000', '4000', 'both'); //diablo2
+ $gamesplist['battlenet'][] = array('Battle.NET-game2', 'tcp', '1119', '1119', 'both'); //diablo3, starcraft 2
+
$gamesplist['battlefield2'] = array();
/* Battlefield 2 */
$gamesplist['battlefield2'][] = array('BF2-1500-4999', 'udp', '1500', '4999', 'both');
@@ -42,61 +53,75 @@ $gamesplist['battlefield2'] = array();
$gamesplist['battlefield2'][] = array('BF2-29900-29901-TCP', 'tcp', '29900', '29901', 'both');
$gamesplist['battlefield2'][] = array('BF2-27900', 'udp', '27900', '27900', 'both');
$gamesplist['battlefield2'][] = array('BF2-55123-55125', 'udp', '55123', '55125', 'both');
+
+$gamesplist['battlefield3'] = array();
+ /* Battlefield 3 */
+ $gamesplist['battlefield3'][] = array('BF3-1', 'tcp', '9988', '9988', 'both');
+ $gamesplist['battlefield3'][] = array('BF3-2', 'tcp', '20000', '20100', 'both');
+ $gamesplist['battlefield3'][] = array('BF3-3', 'tcp', '22990', '22990', 'both');
+ $gamesplist['battlefield3'][] = array('BF3-4', 'tcp', '17502', '17502', 'both');
+ $gamesplist['battlefield3'][] = array('BF3-5', 'tcp', '42127', '42127', 'both');
+ $gamesplist['battlefield3'][] = array('BF3-6', 'udp', '3659', '3659', 'both');
+ $gamesplist['battlefield3'][] = array('BF3-7', 'udp', '14000', '14016', 'both');
+ $gamesplist['battlefield3'][] = array('BF3-8', 'udp', '22990', '23006', 'both');
+ $gamesplist['battlefield3'][] = array('BF3-9', 'udp', '25200', '25300', 'both');
+
+$gamesplist['battlefieldbc2'] = array();
+ /* Battlefield Bad Company 2 */
+ $gamesplist['battlefieldbc2'][] = array('BFBC2-1', 'tcp', '18390', '18390', 'both');
+ $gamesplist['battlefieldbc2'][] = array('BFBC2-2', 'tcp', '18395', '18395', 'both');
+ $gamesplist['battlefieldbc2'][] = array('BFBC2-3', 'udp', '18395', '18395', 'both');
+ $gamesplist['battlefieldbc2'][] = array('BFBC2-4', 'tcp', '13505', '13505', 'both');
+
+$gamesplist['borderlands'] = array();
+ /* Borderlands */
+ $gamesplist['borderlands'][] = array('Borderlands-udp', 'udp', '7777', '7777', 'both');
+ $gamesplist['borderlands'][] = array('Borderlands-tcp', 'tcp', '7777', '7777', 'both');
+
+$gamesplist['callofduty'] = array();
+ /* Call Of Duty */
+ $gamesplist['callofduty'][] = array('CallOfDuty1', 'tcp', '28960', '28960', 'both');
+ $gamesplist['callofduty'][] = array('CallOfDuty2', 'udp', '28960', '28960', 'both');
$gamesplist['counterstrike'] = array();
/* counter strike */
- $gamesplist['counterstrike'][] = array('Titan', 'udp', '6003', '6003', 'both');
- $gamesplist['counterstrike'][] = array('Authentication', 'udp', '7002', '7002', 'both');
- $gamesplist['counterstrike'][] = array('Client', 'udp', '6003', '6003', 'both');
- $gamesplist['counterstrike'][] = array('Masterserver', 'udp', '27010', '27010', 'both');
- $gamesplist['counterstrike'][] = array('Mod-Server', 'udp', '27011', '27011', 'both');
- $gamesplist['counterstrike'][] = array('Chat', 'udp', '27012', '27012', 'both');
- $gamesplist['counterstrike'][] = array('HL-Serverport1', 'udp', '27013', '27013', 'both');
- $gamesplist['counterstrike'][] = array('HL-Serverport2', 'udp', '27014', '27014', 'both');
- $gamesplist['counterstrike'][] = array('HL-Serverport', 'udp', '27015', '27015', 'both');
+ $gamesplist['counterstrike'][] = array('CS-Titan', 'udp', '6003', '6003', 'both');
+ $gamesplist['counterstrike'][] = array('CS-Authentication', 'udp', '7002', '7002', 'both');
+ $gamesplist['counterstrike'][] = array('CS-Client', 'udp', '6003', '6003', 'both');
+ $gamesplist['counterstrike'][] = array('CS-Masterserver', 'udp', '27010', '27010', 'both');
+ $gamesplist['counterstrike'][] = array('CS-Mod-Server', 'udp', '27011', '27011', 'both');
+ $gamesplist['counterstrike'][] = array('CS-Chat', 'udp', '27012', '27012', 'both');
+ $gamesplist['counterstrike'][] = array('CS-HL-Serverport1', 'udp', '27013', '27013', 'both');
+ $gamesplist['counterstrike'][] = array('CS-HL-Serverport2', 'udp', '27014', '27014', 'both');
+ $gamesplist['counterstrike'][] = array('CS-HL-Serverport', 'udp', '27015', '27015', 'both');
+
+$gamesplist['crysis2'] = array();
+ /* Crysis 2 */
+ $gamesplist['crysis2'][] = array('Crysis2', 'udp', '64100', '64100', 'both');
$gamesplist['deltaforce'] = array();
/* delta force */
$gamesplist['deltaforce'][] = array('Delta1', 'udp', '17478', '17488', 'both');
-$gamesplist['quakeiii'] = array();
- /* quake3 */
- $gamesplist['quakeiii'][] = array('quakeiii', 'udp', '27910', '27919', 'both');
-
-$gamesplist['tigerwoods2004ps2'] = array();
- /* tiger woods 2004 ps2 */
- $gamesplist['tigerwoods2004ps2'][] = array('Outbound2Player', 'udp', '3658', '3658', 'both');
- $gamesplist['tigerwoods2004ps2'][] = array('Outbound2Player2', 'udp', '6000', '6000', 'both');
- $gamesplist['tigerwoods2004ps2'][] = array('Outbound2EA', 'tcp', '10300', '10301', 'both');
-
-$gamesplist['callofduty'] = array();
- $gamesplist['callofduty'][] = array('CallOfDuty1', 'tcp', '28960', '28960', 'both');
- $gamesplist['callofduty'][] = array('CallOfDuty2', 'udp', '28960', '28960', 'both');
-
-$gamesplist['planetside'] = array();
- /* PlanetSide */
- $gamesplist['planetside'][] = array('PlanetSide', 'tcp', '7000', '7000', 'both');
- $gamesplist['planetside'][] = array('PlanetSide', 'tcp', '7080', '7080', 'both');
- $gamesplist['planetside'][] = array('PlanetSide2', 'udp', '3016', '3021', 'both');
- $gamesplist['planetside'][] = array('PlanetSide2', 'udp', '45000', '45010', 'both');
- $gamesplist['planetside'][] = array('PlanetSide2', 'udp', '30000', '30500', 'both');
-
-$gamesplist['halo2'] = array();
- /* Halo2 + XBOX Live */
- $gamesplist['halo2'][] = array('Halo2-1', 'udp', '88', '88', 'both');
- $gamesplist['halo2'][] = array('Halo2-2', 'udp', '3074', '3074', 'both');
- $gamesplist['halo2'][] = array('Halo2-3', 'tcp', '3074', '3074', 'both');
-
-$gamesplist['unrealtournament'] = array();
- /* Unreal Tournament */
- $gamesplist['unrealtournament'][] = array('ur1', 'udp', '7777', '7787', 'both');
- $gamesplist['unrealtournament'][] = array('ur2', 'tcp', '7777', '7787', 'both');
+$gamesplist['dirt3'] = array();
+ /* ARMA 2 */
+ $gamesplist['dirt3'][] = array('Dirt3-1', 'tcp', '2300', '2400', 'both');
+ $gamesplist['dirt3'][] = array('Dirt3-2', 'udp', '2300', '2400', 'both');
+ $gamesplist['dirt3'][] = array('Dirt3-3', 'udp', '6073', '6073', 'both');
+ $gamesplist['dirt3'][] = array('Dirt3-4', 'tcp', '47624', '47624', 'both');
$gamesplist['doom3'] = array();
/* doom3 */
$gamesplist['doom3'][] = array('DOOM3-1', 'udp', '27650', '27650', 'both');
$gamesplist['doom3'][] = array('DOOM3-2', 'udp', '27666', '27666', 'both');
+$gamesplist['eveonline'] = array();
+ /* EVE Online */
+ $gamesplist['eveonline'][] = array('EVEOnline-tcp', 'tcp', '26000', '26000', 'both');
+ $gamesplist['eveonline'][] = array('EVEOnline-udp', 'udp', '26000', '26000', 'both');
+ $gamesplist['eveonline'][] = array('EVEOnline-alternate-tcp', 'tcp', '3724', '3724', 'both');
+ $gamesplist['eveonline'][] = array('EVEOnline-alternate-udp', 'udp', '3724', '3724', 'both');
+
$gamesplist['empireearth'] = array();
/* empire earth */
$gamesplist['empireearth'][] = array('EmpireEarth-1', 'tcp', '33335', '33336', 'both');
@@ -122,11 +147,19 @@ $gamesplist['farcry'] = array();
$gamesplist['farcry'][] = array('FarCry-1', 'tcp', '49001', '49002', 'both');
$gamesplist['farcry'][] = array('FarCry-2', 'udp', '49001', '49002', 'both');
-$gamesplist['halflife2'] = array();
- /* halflife 2 */
- $gamesplist['halflife2'][] = array('HL2-1', 'tcp', '27020', '27050', 'both');
- $gamesplist['halflife2'][] = array('HL2-2', 'udp', '1200', '1200', 'both');
- $gamesplist['halflife2'][] = array('HL2-3', 'udp', '27000', '27015', 'both');
+$gamesplist['farcry2'] = array();
+ /* FarCry 2*/
+ $gamesplist['farcry2'][] = array('FarCry2-tcp', 'tcp', '9000', '9004', 'both');
+ $gamesplist['farcry2'][] = array('FarCry2-udp', 'udp', '9000', '9004', 'both');
+
+$gamesplist['farcry3'] = array();
+ /* FarCry 3*/
+ $gamesplist['farcry3'][] = array('FarCry3-game', 'udp', '9000', '9000', 'both');
+ $gamesplist['farcry3'][] = array('FarCry3-punkbuster', 'udp', '10009', '10009', 'both');
+
+$gamesplist['gunzonline'] = array();
+ /* GunZ Online */
+ $gamesplist['gunzonline'][] = array('GunZOnline', 'udp', '7700', '7700', 'both');
$gamesplist['halflife'] = array();
/* halflife */
@@ -134,9 +167,17 @@ $gamesplist['halflife'] = array();
$gamesplist['halflife'][] = array('HL-2', 'udp', '27650', '27650', 'both');
$gamesplist['halflife'][] = array('HL-3', 'udp', '27666', '27666', 'both');
-$gamesplist['wolfet'] = array();
- /* wolfenstein enemy territory */
- $gamesplist['wolfet'][] = array('WolfET-1', 'tcp', '27960', '27960', 'both');
+$gamesplist['halo2'] = array();
+ /* Halo2 + XBOX Live */
+ $gamesplist['halo2'][] = array('Halo2-1', 'udp', '88', '88', 'both');
+ $gamesplist['halo2'][] = array('Halo2-2', 'udp', '3074', '3074', 'both');
+ $gamesplist['halo2'][] = array('Halo2-3', 'tcp', '3074', '3074', 'both');
+
+$gamesplist['leagueoflegends'] = array();
+ /* League of Legends */
+ $gamesplist['leagueoflegends'][] = array('LeagueofLegends-1', 'udp', '5000', '5500', 'both');
+ $gamesplist['leagueoflegends'][] = array('LeagueofLegends-2', 'tcp', '2099', '2099', 'both');
+ $gamesplist['leagueoflegends'][] = array('LeagueofLegends-3', 'tcp', '5222', '5223', 'both');
$gamesplist['lineage2'] = array();
/* Lineage II */
@@ -144,20 +185,102 @@ $gamesplist['lineage2'] = array();
$gamesplist['lineage2'][] = array('Lineage2-2106', 'tcp', '2106', '2106', 'both');
$gamesplist['lineage2'][] = array('Lineage2-7777', 'tcp', '7777', '7777', 'both');
-$gamesplist['battlenet'] = array();
- /* Blizzard Publishing games */
- $gamesplist['battlenet'][] = array('Battle.NET', 'tcp', '6112', '6119', 'both');
- $gamesplist['battlenet'][] = array('Battle.NET-2', 'tcp', '1119', '1119', 'both');
+$gamesplist['mechwarrioronline'] = array();
+ /* MechWarrior: Online */
+ $gamesplist['mechwarrioronline'][] = array('MechWarriorOnline-tcp1', 'tcp', '45461', '45461', 'both');
+ $gamesplist['mechwarrioronline'][] = array('MechWarriorOnline-tcp2', 'tcp', '45464', '45464', 'both');
+ $gamesplist['mechwarrioronline'][] = array('MechWarriorOnline-game', 'udp', '21000', '30000', 'both'); // 9000 ports
+
+$gamesplist['minecraft'] = array();
+ /* Minecraft */
+ $gamesplist['minecraft'][] = array('Minecraft-tcp', 'tcp', '25565', '25565', 'both');
+ $gamesplist['minecraft'][] = array('Minecraft-udp', 'udp', '25565', '25565', 'both');
+
+$gamesplist['operationflashpoint-dr'] = array();
+ /* Operation Flashpoint: Dragon Rising */
+ $gamesplist['operationflashpoint-dr'][] = array('operationflashpoint-dr-game', 'udp', '9105', '9105', 'both');
+
+$gamesplist['planetside'] = array();
+ /* PlanetSide */
+ $gamesplist['planetside'][] = array('PlanetSide', 'tcp', '7000', '7000', 'both');
+ $gamesplist['planetside'][] = array('PlanetSide', 'tcp', '7080', '7080', 'both');
+ $gamesplist['planetside'][] = array('PlanetSide2', 'udp', '3016', '3021', 'both');
+ $gamesplist['planetside'][] = array('PlanetSide2', 'udp', '45000', '45010', 'both');
+ $gamesplist['planetside'][] = array('PlanetSide2', 'udp', '30000', '30500', 'both');
+
+$gamesplist['planetside2'] = array();
+ /* PlanetSide 2 */
+ $gamesplist['planetside2'][] = array('PlanetSide2-game', 'udp', '20040', '20199', 'both');
+ $gamesplist['planetside2'][] = array('PlanetSide2-voice', 'udp', '5062', '5062', 'both');
+
+$gamesplist['playstation3'] = array();
+ /* PlayStation 2 */
+ $gamesplist['playstation3'][] = array('PS3-pshome1', 'tcp', '3478', '3480', 'both');
+ $gamesplist['playstation3'][] = array('PS3-pshome2', 'tcp', '8080', '8080', 'both');
+ $gamesplist['playstation3'][] = array('PS3-tcp1', 'tcp', '5223', '5223', 'both');
+ $gamesplist['playstation3'][] = array('PS3-tcp2', 'tcp', '10070', '10080', 'both');
+ $gamesplist['playstation3'][] = array('PS3-udp1', 'udp', '3478', '3479', 'both');
+ $gamesplist['playstation3'][] = array('PS3-udp2', 'udp', '3658', '3658', 'both');
+ $gamesplist['playstation3'][] = array('PS3-udp3', 'udp', '10070', '10070', 'both');
+ $gamesplist['playstation3'][] = array('PS3-remoteplay', 'tcp', '9293', '9293', 'both');
+
+$gamesplist['quakeiii'] = array();
+ /* quake3 */
+ $gamesplist['quakeiii'][] = array('quakeiii', 'udp', '27910', '27919', 'both');
+
+$gamesplist['quakeiv'] = array();
+ /* quake4 */
+ $gamesplist['quakeiv'][] = array('quakeiv-server-udp', 'udp', '27650', '27650', 'both');
+ $gamesplist['quakeiv'][] = array('quakeiv-server-tcp', 'tcp', '27650', '27650', 'both');
+ $gamesplist['quakeiv'][] = array('quakeiv-client-udp', 'udp', '28004', '28004', 'both');
+ $gamesplist['quakeiv'][] = array('quakeiv-client-tcp', 'tcp', '28004', '28004', 'both');
+
+$gamesplist['starwarstor'] = array();
+ /* quake3 */
+ $gamesplist['starwarstor'][] = array('StarWarsTOR-1', 'tcp', '8995', '8995', 'both');
+ $gamesplist['starwarstor'][] = array('StarWarsTOR-2', 'tcp', '12000', '12999', 'both');
+ $gamesplist['starwarstor'][] = array('StarWarsTOR-2', 'tcp', '20000', '30000', 'both');
+
+$gamesplist['steam'] = array();
+ /* Steam Games */
+ $gamesplist['steam'][] = array('steam-game-udp', 'udp', '27000', '27030', 'both'); //america's army 3, cs:s, cs:go, HL2, COD: Black Ops, COD: Black Ops 2, Natural Selection 2
+ $gamesplist['steam'][] = array('steam-game-tcp', 'tcp', '27000', '27030', 'both'); //america's army 3, cs:s, cs:go, HL2, COD: Black Ops, COD: Black Ops 2, Natural Selection 2
+ $gamesplist['steam'][] = array('steam-hltv', 'udp', '27015', '27030', 'both');
+ $gamesplist['steam'][] = array('steam-1', 'udp', '4380', '4380', 'both');
+ $gamesplist['steam'][] = array('steam-2', 'udp', '1200', '1200', 'both');
+ $gamesplist['steam'][] = array('steam-voice', 'udp', '3478', '3480', 'both');
+ //NOTE: steam downloads, probably don't want this in the game que
+ //$gamesplist['steam'][] = array('steam-downloads', 'tcp', '27014', '27050', 'both');
+
+$gamesplist['tigerwoods2004ps2'] = array();
+ /* tiger woods 2004 ps2 */
+ $gamesplist['tigerwoods2004ps2'][] = array('TigerWoods2004-Player', 'udp', '3658', '3658', 'both');
+ $gamesplist['tigerwoods2004ps2'][] = array('TigerWoods2004-Player2', 'udp', '6000', '6000', 'both');
+ $gamesplist['tigerwoods2004ps2'][] = array('TigerWoods2004-EA', 'tcp', '10300', '10301', 'both');
+
+$gamesplist['tribesascend'] = array();
+ /* Tribes Ascend */
+ $gamesplist['tribesascend'][] = array('tribesascend-tcp', 'tcp', '9000', '9001', 'both');
+ $gamesplist['tribesascend'][] = array('tribesascend-udp', 'udp', '9002', '9999', 'both');
+
+$gamesplist['unrealtournament'] = array();
+ /* Unreal Tournament */
+ $gamesplist['unrealtournament'][] = array('UT-game-udp', 'udp', '7777', '7787', 'both');
+ $gamesplist['unrealtournament'][] = array('UT-game-tcp', 'tcp', '7777', '7787', 'both');
+ $gamesplist['unrealtournament'][] = array('UT-voice', 'udp', '3783', '3783', 'both');
+
+$gamesplist['wolfet'] = array();
+ /* wolfenstein enemy territory */
+ $gamesplist['wolfet'][] = array('WolfET-1', 'tcp', '27960', '27960', 'both');
$gamesplist['wow'] = array();
+ /* World of Warcraft */
$gamesplist['wow'][] = array('WoW', 'tcp', '3724', '3724', 'both');
-
-$gamesplist['gunzonline'] = array();
- /* GunZ Online */
- $gamesplist['gunzonline'][] = array('GunZOnline', 'udp', '7700', '7700', 'both');
+ $gamesplist['wow'][] = array('WoW-voice', 'udp', '1119', '1119', 'both');
+ $gamesplist['wow'][] = array('WoW-voice', 'udp', '3724', '3724', 'both');
$gamesplist['xbox360'] = array();
- /* XBox360 */
+ /* XBox360 and Games for Windows Live*/
$gamesplist['xbox360'][] = array('xbox360-1', 'udp', '88', '88', 'both');
$gamesplist['xbox360'][] = array('xbox360-2', 'udp', '3074', '3074', 'both');
$gamesplist['xbox360'][] = array('xbox360-3', 'tcp', '3074', '3074', 'both');
diff --git a/etc/inc/xmlrpc_client.inc b/etc/inc/xmlrpc_client.inc
index b0f93a6..cc91f6d 100644
--- a/etc/inc/xmlrpc_client.inc
+++ b/etc/inc/xmlrpc_client.inc
@@ -1493,13 +1493,15 @@ class XML_RPC_Message extends XML_RPC_Base
if (!xml_parse($parser_resource, $data, sizeof($data))) {
// thanks to Peter Kocks <peter.kocks@baygate.com>
if (xml_get_current_line_number($parser_resource) == 1) {
- $errstr = gettext("XML error at line 1, check URL");
+ /* We already error on this in the GUI, no need to log it and cause a PHP error. */
+ //$errstr = gettext("XML error at line 1, check URL");
} else {
$errstr = sprintf('XML error: %s at line %d',
xml_error_string(xml_get_error_code($parser_resource)),
xml_get_current_line_number($parser_resource));
}
- error_log($errstr);
+ if (!empty($errstr))
+ error_log($errstr);
$r = new XML_RPC_Response(0, $XML_RPC_err['invalid_return'],
$XML_RPC_str['invalid_return']);
xml_parser_free($parser_resource);
diff --git a/etc/master.passwd b/etc/master.passwd
index d521beb..8c82243 100644
--- a/etc/master.passwd
+++ b/etc/master.passwd
@@ -26,4 +26,3 @@ uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/local/libexec/uucp
pop:*:68:6::0:0:Post Office Owner:/nonexistent:/usr/sbin/nologin
_ntp:*:123:123::0:0:NTP daemon:/var/empty:/sbin/nologin
_relayd:*:913:913::0:0:Relay Daemon:/var/empty:/usr/sbin/nologin
-unbound:*:59:1::0:0:unbound dns resolver:/nonexistent:/usr/sbin/nologin
diff --git a/etc/passwd b/etc/passwd
index 94fc831..7dbbbd6 100644
--- a/etc/passwd
+++ b/etc/passwd
@@ -23,4 +23,3 @@ dhcpd:*:1002:1002:DHCP Daemon:/nonexistent:/sbin/nologin
admin:*:0:0:Admin User:/home/admin:/bin/sh
_ntp:*:123:123:NTP daemon:/var/empty:/sbin/nologin
_relayd:*:913:913:Relay Daemon:/var/empty:/usr/sbin/nologin
-unbound:*:59:1::0:0:unbound dns resolver:/nonexistent:/usr/sbin/nologin
diff --git a/etc/pfSense.obsoletedfiles b/etc/pfSense.obsoletedfiles
index d2ce3c1..fae8d74 100644
--- a/etc/pfSense.obsoletedfiles
+++ b/etc/pfSense.obsoletedfiles
@@ -1,6 +1,7 @@
/etc/rc.parse-isc-dhcpd
/etc/rc.linkup.sh
/etc/phpshellsessions/cvssync
+/etc/inc/cmd_chain.inc
/etc/inc/regdomain.inc
/etc/inc/sysctl.inc
/usr/local/www/diag_showbogons.php
@@ -12,6 +13,7 @@
/usr/local/www/interfaces_wlan.inc
/usr/local/www/ifstats.cgi
/usr/local/www/easyrule.inc
+/usr/local/www/exec_raw.php
/etc/rc.initial_firmware_update
/usr/local/www/javascript/index/sajax.js
/usr/local/www/sajax/index.sajax.php
@@ -50,3 +52,6 @@
/usr/local/pkg/routed/routed.inc
/usr/local/pkg/routed/routed.xml
/usr/local/pkg/carp.xml
+/usr/local/www/javascript/diag_backup/diag_backup.js
+/usr/local/www/progress.php
+/usr/local/www/upload_progress.php
diff --git a/etc/phpshellsessions/disablecarp b/etc/phpshellsessions/disablecarp
new file mode 100644
index 0000000..5868158
--- /dev/null
+++ b/etc/phpshellsessions/disablecarp
@@ -0,0 +1,17 @@
+! echo "Disabling CARP..."
+require_once("config.inc");
+require_once("interfaces.inc");
+require_once("util.inc");
+
+mwexec("/sbin/sysctl net.inet.carp.allow=0");
+if(is_array($config['virtualip']['vip'])) {
+ $viparr = &$config['virtualip']['vip'];
+ foreach ($viparr as $vip) {
+ switch ($vip['mode']) {
+ case "carp":
+ interface_vip_bring_down($vip);
+ sleep(1);
+ break;
+ }
+ }
+}
diff --git a/etc/phpshellsessions/enablecarp b/etc/phpshellsessions/enablecarp
new file mode 100644
index 0000000..b10e15e
--- /dev/null
+++ b/etc/phpshellsessions/enablecarp
@@ -0,0 +1,22 @@
+! echo "Enabling CARP..."
+require_once("config.inc");
+require_once("interfaces.inc");
+require_once("util.inc");
+
+if(is_array($config['virtualip']['vip'])) {
+ $viparr = &$config['virtualip']['vip'];
+ foreach ($viparr as $vip) {
+ switch ($vip['mode']) {
+ case "carp":
+ interface_carp_configure($vip);
+ sleep(1);
+ break;
+ case "ipalias":
+ if (strstr($vip['interface'], "_vip"))
+ interface_ipalias_configure($vip);
+ break;
+ }
+ }
+}
+interfaces_carp_setup();
+mwexec("/sbin/sysctl net.inet.carp.allow=1");
diff --git a/etc/phpshellsessions/gitsync b/etc/phpshellsessions/gitsync
index b0bc9b0..e69e654 100644
--- a/etc/phpshellsessions/gitsync
+++ b/etc/phpshellsessions/gitsync
@@ -12,7 +12,7 @@ require_once("rrd.inc");
require_once("pfsense-utils.inc");
$GIT_PKG = "git"; // Either "git" or the full package URL
-$GIT_REPO = "git://github.com/bsdperimeter/pfsense.git";
+$GIT_REPO = "git://github.com/pfsense/pfsense.git";
$DEFAULT_BRANCH = "master";
$CODIR = "/root/pfsense/";
$GITSYNC_MERGE = "/root/.gitsync_merge";
@@ -71,15 +71,36 @@ unlink_if_exists("/tmp/config.cache");
conf_mount_rw();
if(!file_exists("/usr/local/bin/git")) {
- echo "Cannot find git, fetching...";
- if (($g['platform'] == "nanobsd") || ($g['platform'] == "embedded")) {
- $pkgtmpdir = "/usr/bin/env PKG_TMPDIR=/root/ ";
- $pkgstagingdir = "/root/tmp";
- if (!is_dir($pkgstagingdir))
- mkdir($pkgstagingdir);
- $pkgstaging = "-t {$pkgstagingdir}/instmp.XXXXXX";
+ echo "Cannot find git, fetching...\n";
+ require_once("config.inc");
+ require_once("util.inc");
+ require_once("pkg-utils.inc");
+
+ echo "Trying to fetch package info...";
+ $pkg_info = get_pkg_info();
+ if ($pkg_info) {
+ echo " Done.\n";
+ } else {
+ $xmlrpc_base_url = isset($config['system']['altpkgrepo']['enable']) ? $config['system']['altpkgrepo']['xmlrpcbaseurl'] : $g['xmlrpcbaseurl'];
+ echo "\n" . sprintf(gettext(' >>> Unable to communicate with %1$s. Please verify DNS and interface configuration, and that %2$s has functional Internet connectivity.'), $xmlrpc_base_url, $g['product_name']) . "\n";
+ return;
+ }
+ if (empty($pkg_info["git"])) {
+ echo "Can't locate git package in pfSense repo. Using FreeBSD pkg repo..";
+
+ if (($g['platform'] == "nanobsd") || ($g['platform'] == "embedded")) {
+ $pkgtmpdir = "/usr/bin/env PKG_TMPDIR=/root/ ";
+ $pkgstagingdir = "/root/tmp";
+ if (!is_dir($pkgstagingdir))
+ mkdir($pkgstagingdir);
+ $pkgstaging = "-t {$pkgstagingdir}/instmp.XXXXXX";
+ }
+ system("{$pkgtmpdir}/usr/sbin/pkg_add {$pkgstaging} -r {$GIT_PKG}");
+
+ } else {
+ install_package("git", $pkg_info["git"], true);
+ echo "Done.\n";
}
- system("{$pkgtmpdir}/usr/sbin/pkg_add {$pkgstaging} -r {$GIT_PKG}");
}
# Remove mainline if exists (older)
diff --git a/etc/phpshellsessions/installpkg b/etc/phpshellsessions/installpkg
new file mode 100644
index 0000000..15343df
--- /dev/null
+++ b/etc/phpshellsessions/installpkg
@@ -0,0 +1,39 @@
+require_once("config.inc");
+require_once("util.inc");
+require_once("pkg-utils.inc");
+
+global $g, $config, $argv, $command_split;
+
+if(is_array($command_split))
+ $args = array_slice($command_split, 2);
+else
+ $args = array_slice($argv, 3);
+
+$pkg_name = $args[0];
+$install_type = empty($args[1]) ? "normal" : $args[1];
+
+echo "Installing package \"{$pkg_name}\"...\n";
+
+echo "Trying to fetch package info...";
+$pkg_info = get_pkg_info();
+if ($pkg_info) {
+ echo " Done.\n";
+} else {
+ $xmlrpc_base_url = isset($config['system']['altpkgrepo']['enable']) ? $config['system']['altpkgrepo']['xmlrpcbaseurl'] : $g['xmlrpcbaseurl'];
+ echo "\n" . sprintf(gettext(' >>> Unable to communicate with %1$s. Please verify DNS and interface configuration, and that %2$s has functional Internet connectivity.'), $xmlrpc_base_url, $g['product_name']) . "\n";
+ return;
+}
+
+$static_output = "";
+$pkg_interface = "console";
+
+if (empty($pkg_info[$pkg_name]))
+ echo "\nPackage not found.\n";
+elseif ($install_type == "normal")
+ install_package($pkg_name, $pkg_info[$pkg_name], true);
+elseif ($install_type == "xmlonly")
+ install_package_xml($pkg_name);
+else
+ echo "Invalid install type. Valid values are: normal, xmlonly.\n";
+
+echo "\nDone.\n";
diff --git a/etc/phpshellsessions/listpkg b/etc/phpshellsessions/listpkg
new file mode 100644
index 0000000..9c13b45
--- /dev/null
+++ b/etc/phpshellsessions/listpkg
@@ -0,0 +1,15 @@
+require_once("config.inc");
+require_once("util.inc");
+
+global $g, $config;
+
+echo "Installed packages:\n";
+
+foreach($config['installedpackages']['package'] as $package) {
+ $name = str_pad("{$package['name']}-{$package['version']}", 30);
+ $descr = $package['descr'];
+ $line = "{$name} {$descr}";
+ if (strlen($line) > 80)
+ $line = substr($line, 0, 77) . "...";
+ echo "{$line}\n";
+}
diff --git a/etc/phpshellsessions/removeshaper b/etc/phpshellsessions/removeshaper
new file mode 100644
index 0000000..2a221cd
--- /dev/null
+++ b/etc/phpshellsessions/removeshaper
@@ -0,0 +1,24 @@
+require("config.inc");
+require_once("functions.inc");
+require_once("filter.inc");
+require_once("shaper.inc");
+require_once("rrd.inc");
+
+/* Much of this borrowed from firewall_shaper.php */
+
+echo gettext("Removing shaper settings...\n");
+
+unset($config['shaper']['queue']);
+unset($queue);
+unset($altq);
+
+foreach ($config['filter']['rule'] as $key => $rule) {
+ if (isset($rule['wizard']) && $rule['wizard'] == "yes")
+ unset($config['filter']['rule'][$key]);
+}
+if (write_config()) {
+ echo gettext("Shaper Successfully Removed.\n");
+} else {
+ echo gettext("Unable to write config.xml (Access Denied?)\n");
+}
+filter_configure(); \ No newline at end of file
diff --git a/etc/phpshellsessions/svc b/etc/phpshellsessions/svc
new file mode 100644
index 0000000..5770c02
--- /dev/null
+++ b/etc/phpshellsessions/svc
@@ -0,0 +1,83 @@
+require_once("config.inc");
+require_once("util.inc");
+require_once("service-utils.inc");
+
+function usage() {
+ echo "Usage: playback svc <action> <service name> [service-specific options]\n\n";
+ echo "Examples:\n";
+ echo "playback svc stop dhcpd\n";
+ echo "playback svc restart openvpn client 2\n";
+ echo "playback svc stop captiveportal zone1\n";
+ echo "\n";
+}
+
+global $g, $config, $argv, $command_split;
+
+if(is_array($command_split))
+ $args = array_slice($command_split, 2);
+else
+ $args = array_slice($argv, 3);
+
+if (empty($args[0])) {
+ usage();
+}
+
+$extras = array();
+
+// start, stop, restart
+$action = $args[0];
+
+// dhcpd, openvpn, etc.
+$svc_name = $args[1];
+
+// Handle servive-specific options.
+switch ($svc_name) {
+ case "openvpn":
+ if (in_array($args[2], array("server", "client"))) {
+ $extras['vpnmode'] = $args[2];
+ } else {
+ echo "Invalid OpenVPN mode (server, client)\n";
+ return;
+ }
+ if (is_numeric($args[3])) {
+ $extras['id'] = $args[3];
+ } else {
+ echo "Invalid OpenVPN ID, must be numeric\n";
+ return;
+ }
+ $vpnsvc = find_service_by_openvpn_vpnid($extras['id']);
+ if (empty($vpnsvc)) {
+ echo "No OpenVPN client or server found with that ID.\n";
+ return;
+ }
+ break;
+ case "captiveportal":
+ if (is_validaliasname($args[2])) {
+ $extras['zone'] = $args[2];
+ } else {
+ echo "Invalid Captive Portal Zone.\n";
+ return;
+ }
+ $cpzone = find_service_by_cp_zone($extras['zone']);
+ if (empty($cpzone)) {
+ echo "No Captive Portal Zone found with that name.\n";
+ return;
+ }
+ break;
+}
+
+echo "Attempting to issue {$action} to {$svc_name} service...\n";
+
+switch ($action) {
+ case "restart":
+ $savemsg = service_control_restart($svc_name, $extras);
+ break;
+ case "start":
+ $savemsg = service_control_start($svc_name, $extras);
+ break;
+ case "stop":
+ $savemsg = service_control_stop($svc_name, $extras);
+ break;
+}
+
+echo "\n{$savemsg}\n";
diff --git a/etc/phpshellsessions/uninstallpkg b/etc/phpshellsessions/uninstallpkg
new file mode 100644
index 0000000..484ccc8
--- /dev/null
+++ b/etc/phpshellsessions/uninstallpkg
@@ -0,0 +1,35 @@
+require_once("config.inc");
+require_once("util.inc");
+require_once("pkg-utils.inc");
+
+global $g, $config, $argv, $command_split;
+
+if(is_array($command_split))
+ $args = array_slice($command_split, 2);
+else
+ $args = array_slice($argv, 3);
+
+$pkg_name = $args[0];
+$remove_type = empty($args[1]) ? "normal" : $args[1];
+$pkg_info = array();
+
+echo "Removing package \"{$pkg_name}\"...\n";
+
+foreach($config['installedpackages']['package'] as $package) {
+ if ($pkg_name == $package['name'])
+ $pkg_info = $package;
+}
+
+$static_output = "";
+$pkg_interface = "console";
+
+if (empty($pkg_info))
+ echo "\nPackage not installed.\n";
+elseif ($remove_type == "normal")
+ uninstall_package($pkg_name);
+elseif ($remove_type == "xmlonly")
+ delete_package_xml($pkg_name);
+else
+ echo "Invalid removal type. Valid values are: normal, xmlonly.\n";
+
+echo "\nDone.\n"; \ No newline at end of file
diff --git a/etc/rc b/etc/rc
index 2903a4b..70996d8 100755
--- a/etc/rc
+++ b/etc/rc
@@ -31,6 +31,37 @@ if [ "$PLATFORM" = "pfSense" ]; then
/etc/rc.dumpon
fi
+if [ -e /root/force_fsck ]; then
+ echo "Forcing filesystem check..."
+ /sbin/fsck -fy -t ufs /
+ if [ "$PLATFORM" = "nanobsd" ]; then
+ /sbin/fsck -fy -t ufs /cf
+ fi
+fi
+
+if [ -e /root/TRIM_set -o -e /root/TRIM_unset ]; then
+ TUNEFS_STATUS=`/sbin/tunefs -p / 2>&1 | /usr/bin/grep trim: | /usr/bin/awk '{print $4;}'`
+ if [ -e /root/TRIM_set ] && [ "${TUNEFS_STATUS}" = "disabled" ]; then
+ echo "Enabling TRIM support"
+ /sbin/tunefs -t enable /
+ if [ "$PLATFORM" = "nanobsd" ]; then
+ /sbin/tunefs -t enable /cf
+ fi
+ echo "Rebooting in 5 seconds after enabling TRIM..."
+ sleep 5
+ /sbin/reboot
+ elif [ -e /root/TRIM_unset ] && [ "${TUNEFS_STATUS}" = "enabled" ]; then
+ echo "Disabling TRIM support"
+ /sbin/tunefs -t disable /
+ if [ "$PLATFORM" = "nanobsd" ]; then
+ /sbin/tunefs -t disable /cf
+ fi
+ echo "Rebooting in 5 seconds after disabling TRIM..."
+ sleep 5
+ /sbin/reboot
+ fi
+fi
+
# Mount memory file system if it exists
echo "Mounting filesystems..."
@@ -44,27 +75,17 @@ if [ "$PLATFORM" = "pfSense" ]; then
fi
fi
-if [ "$PLATFORM" = "cdrom" ]; then
+if [ "${PLATFORM}" = "cdrom" ]; then
/etc/rc.cdrom
-fi
-
-if [ "$PLATFORM" = "embedded" ]; then
- export PKG_TMPDIR=/root/
- /etc/rc.embedded
-fi
-
-if [ "$PLATFORM" = "nanobsd" ]; then
- export PKG_TMPDIR=/root/
- /etc/rc.embedded
-fi
-
-# Mount /. If it fails run a fsck.
-if [ ! "$PLATFORM" = "cdrom" ] ; then
+else
+ # Mount /. If it fails run a fsck.
if [ "$PLATFORM" = "nanobsd" ]; then
+ export PKG_TMPDIR=/root/
/sbin/mount -uw / || (/sbin/fsck -fy; /sbin/mount -uw /)
else
/sbin/mount -a || (/sbin/fsck -fy; /sbin/mount -a)
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
@@ -74,8 +95,27 @@ if [ ! "$PLATFORM" = "cdrom" ] ; then
/bin/ln -s /cf/conf /conf
fi
fi
+
+ if [ ! "$PLATFORM" = "jail" ]; then
+ # Check to see if a compact flash mountpoint exists
+ # If it fails to mount then run a fsck -fy
+ if grep -q cf /etc/fstab; then
+ /sbin/mount -w /cf 2>/dev/null
+ /sbin/mount -uw /cf || \
+ (/sbin/umount /cf; /sbin/fsck -fy /cf; /sbin/mount -w /cf)
+ fi
+ fi
+
+ USE_MFS_TMPVAR=`/usr/bin/grep -c use_mfs_tmpvar /cf/conf/config.xml`
+ if [ "${PLATFORM}" = "nanobsd" ] || [ "${PLATFORM}" = "embedded" ] || [ ${USE_MFS_TMPVAR} -gt 0 ]; then
+ /etc/rc.embedded
+ fi
fi
+/bin/rm -f /root/force_fsck
+/bin/rm -f /root/TRIM_set
+/bin/rm -f /root/TRIM_unset
+
# Disable APM on ATA drives. Leaving this on will kill drives long-term, especially laptop drives, by generating excessive Load Cycles.
if [ -f /etc/rc.disable_hdd_apm ]; then
/etc/rc.disable_hdd_apm
@@ -88,16 +128,6 @@ if [ "$CDDEVICE" != "" ]; then
cdcontrol -f /dev/"$CDDEVICE" eject
fi
-if [ ! "$PLATFORM" = "jail" ]; then
- # Check to see if a compact flash mountpoint exists
- # If it fails to mount then run a fsck -fy
- if grep -q cf /etc/fstab; then
- /sbin/mount -w /cf 2>/dev/null
- /sbin/mount -uw /cf || \
- (/sbin/umount /cf; /sbin/fsck -fy /cf; /sbin/mount -w /cf)
- fi
-fi
-
# sync pw database after mount.
rm -f /etc/spwd.db.tmp
/usr/sbin/pwd_mkdb -d /etc/ /etc/master.passwd
@@ -106,7 +136,7 @@ product=`/usr/bin/grep product_name /etc/inc/globals.inc | /usr/bin/cut -d'"' -f
hideplatform=`/usr/bin/grep hideplatform /etc/inc/globals.inc | /usr/bin/wc -l`
varrunpath=`/usr/bin/grep varrun_path /etc/inc/globals.inc | /usr/bin/cut -d'"' -f4`
-if [ "$PLATFORM" = "pfSense" ]; then
+if [ "$PLATFORM" = "pfSense" ] && [ ${USE_MFS_TMPVAR} -eq 0 ]; then
/sbin/mdmfs -S -M -s 4m md $varrunpath
fi
@@ -132,7 +162,7 @@ if [ "$PLATFORM" = "cdrom" ] ; then
# do nothing for cdrom platform
elif [ "$PLATFORM" = "embedded" ] ; then
# do nothing for embedded platform
-elif [ "$PLATFORM" = "nanobsd" ] ; then
+elif [ "$PLATFORM" = "nanobsd" ] || [ ${USE_MFS_TMPVAR} -gt 0 ]; then
# Ensure that old-style PKG packages can be persistent across reboots
/bin/mkdir -p /root/var/db/pkg
/bin/rm -rf /var/db/pkg
@@ -147,6 +177,14 @@ else
SWAPDEVICE=`/bin/cat /etc/fstab | /usr/bin/grep swap | /usr/bin/cut -f1`
/sbin/swapon -a 2>/dev/null >/dev/null
/etc/rc.savecore
+
+ if [ -d /root/var/db/pkg ]; then
+ # User must have just disabled RAM disks, move these back into place.
+ /bin/mkdir -p /var/db/pkg
+ /bin/mv /root/var/db/pkg /var/db/pkg
+ /bin/mkdir -p /var/db/pbi
+ /bin/mv /root/var/db/pkg /var/db/pbi
+ fi
fi
if [ "$PLATFORM" = "cdrom" ] ; then
@@ -176,6 +214,7 @@ fi
# Cleanup configuration files from previous instance
/bin/rm -rf /var/etc/*
+/bin/rm -rf /var/tmp/*
echo -n "Creating symlinks..."
# Make sure symlink is correct on embedded
diff --git a/etc/rc.bootup b/etc/rc.bootup
index b8bf0e3..f74bfdf 100755
--- a/etc/rc.bootup
+++ b/etc/rc.bootup
@@ -126,7 +126,7 @@ echo ".";
/* get system memory amount */
$memory = get_memory();
-$avail = $memory[0];
+$avail = $memory[1];
echo " done.\n";
conf_mount_rw();
@@ -241,6 +241,9 @@ system_hosts_generate();
/* configure loopback interface */
interfaces_loopback_configure();
+/* start syslogd */
+system_syslogd_start();
+
echo "Starting Secure Shell Services...";
mwexec_bg("/etc/sshd");
echo "done.\n";
@@ -273,9 +276,6 @@ echo "done.\n";
/* generate resolv.conf */
system_resolvconf_generate();
-/* start syslogd */
-system_syslogd_start();
-
/* setup altq + pf */
filter_configure_sync();
@@ -313,6 +313,9 @@ system_routing_configure();
/* enable routing */
system_routing_enable();
+/* start dnsmasq service */
+services_dnsmasq_configure();
+
/* Do an initial time sync */
echo "Starting NTP time client...";
/* At bootup this will just write the config, ntpd will launch from ntpdate_sync_once.sh */
@@ -329,9 +332,6 @@ system_console_configure();
/* start DHCP service */
services_dhcpd_configure();
-/* start dnsmasq service */
-services_dnsmasq_configure();
-
/* start dhcpleases dhpcp hosts leases program */
system_dhcpleases_configure();
@@ -373,10 +373,6 @@ auto_login();
/* load graphing functions */
enable_rrd_graphing();
-/* startup routed if needed */
-include_once("/usr/local/pkg/routed.inc");
-setup_routed();
-
/* enable watchdog if supported */
enable_watchdog();
@@ -426,12 +422,9 @@ if(file_exists('/conf/needs_package_sync')) {
@unlink('/conf/needs_package_sync');
}
-/* If syslogd is forwarding to an IPv6 server, give it a kick since otherwise syslogd
- won't forward to a v6 server. See #2370 (https://redmine.pfsense.org/issues/2370). */
-
-if (is_ipaddrv6($config['syslog']['remoteserver']) || is_ipaddrv6($config['syslog']['remoteserver2']) || is_ipaddrv6($config['syslog']['remoteserver3'])) {
- system_syslogd_start();
-}
+/* 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 */
+system_syslogd_start();
/* done */
unset($g['booting']);
diff --git a/etc/rc.disable_hdd_apm b/etc/rc.disable_hdd_apm
index 58f3734..e9b3ba5 100755
--- a/etc/rc.disable_hdd_apm
+++ b/etc/rc.disable_hdd_apm
@@ -2,6 +2,9 @@
ATAIDLE=/usr/local/sbin/ataidle
for i in /dev/ad?; do
+ if [ ! -e ${i} ]; then
+ continue;
+ fi
SUPPORTED=`${ATAIDLE} ${i} | grep "APM Supported" | awk '{print $3;}'`
if [ "${SUPPORTED}" = "yes" ] ; then
echo Disabling APM on $i
diff --git a/etc/rc.embedded b/etc/rc.embedded
index ada4558..b4c60fb 100755
--- a/etc/rc.embedded
+++ b/etc/rc.embedded
@@ -4,31 +4,31 @@
# For pfSense
# Size of /tmp
-tmpsize="40m"
+USE_MFS_TMP_SIZE=`/usr/bin/grep use_mfs_tmp_size /cf/conf/config.xml | /usr/bin/cut -f2 -d'>' | /usr/bin/cut -f1 -d'<'`
+if [ ! -z ${USE_MFS_TMP_SIZE} ] && [ ${USE_MFS_TMP_SIZE} -gt 0 ]; then
+ tmpsize="${USE_MFS_TMP_SIZE}m"
+else
+ tmpsize="40m"
+fi
# Size of /var
-varsize="60m"
+USE_MFS_VAR_SIZE=`/usr/bin/grep use_mfs_var_size /cf/conf/config.xml | /usr/bin/cut -f2 -d'>' | /usr/bin/cut -f1 -d'<'`
+if [ ! -z ${USE_MFS_VAR_SIZE} ] && [ ${USE_MFS_VAR_SIZE} -gt 0 ]; then
+ varsize="${USE_MFS_VAR_SIZE}m"
+else
+ varsize="60m"
+fi
# Run some initialization routines
[ -f /etc/rc.d/uzip ] && /etc/rc.d/uzip start
-echo -n "Setting up embedded specific environment..."
-# Initialize MFS for /tmp. Partly taken from /etc/rc.d/var
-if (/bin/mkdir -p /tmp/.diskless 2> /dev/null); then
- rmdir /tmp/.diskless
-else
- mdmfs -S -M -s ${tmpsize} md /tmp
-fi
-# Initialize MFS for /var. Partly taken from /etc/rc.d/var
-if (/bin/mkdir -p /var/.diskless 2> /dev/null); then
- rmdir /var/.diskless
-else
- mdmfs -S -M -s ${varsize} md /var
-fi
+echo -n "Setting up memory disks..."
+mdmfs -S -M -s ${tmpsize} md /tmp
+mdmfs -S -M -s ${varsize} md /var
# Create some needed directories
/bin/mkdir -p /var/db
# Ensure vi's recover directory is present
/bin/mkdir -p /var/tmp/vi.recover/
-echo " done." \ No newline at end of file
+echo " done."
diff --git a/etc/rc.filter_synchronize b/etc/rc.filter_synchronize
index 781d9d8..f641212 100755
--- a/etc/rc.filter_synchronize
+++ b/etc/rc.filter_synchronize
@@ -93,46 +93,47 @@ function carp_check_version($url, $username, $password, $port = 80, $method = 'p
if(file_exists("{$g['varrun_path']}/booting") || $g['booting'])
return;
- $params = array(
- XML_RPC_encode($password)
- );
-
- $numberofruns = 0;
- while ($numberofruns < 2) {
- $msg = new XML_RPC_Message($method, $params);
- $cli = new XML_RPC_Client('/xmlrpc.php', $url, $port);
- $cli->setCredentials($username, $password);
- if($numberofruns > 0)
- $cli->setDebug(1);
- /* send our XMLRPC message and timeout after 240 seconds */
- $resp = $cli->send($msg, "240");
- if(!is_object($resp)) {
- $error = "A communications error occured while attempting XMLRPC sync with username {$username} {$url}:{$port}.";
- } elseif($resp->faultCode()) {
- $error = "An error code was received while attempting XMLRPC sync with username {$username} {$url}:{$port} - Code " . $resp->faultCode() . ": " . $resp->faultString();
- } else {
- $parsed_response = XML_RPC_decode($resp->value());
- if(!is_array($parsed_response)) {
- if (trim($parsed_response) == "Authentication failed") {
- $error = "An authentication failure occurred while trying to access {$url}:{$port} ({$method}).";
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- exit;
- }
- } else {
- if (!isset($parsed_response['config_version']) ||
- $parsed_response['config_version'] < $config['version']) {
- update_filter_reload_status("The other member is on older configuration version of {$g['product_name']}. Sync will not be done to prevent problems!");
- log_error("The other member is on older configuration version of {$g['product_name']}. Sync will not be done to prevent problems!");
- return false;
- } else
- return true;
+ $params = array(
+ XML_RPC_encode($password)
+ );
+
+ $numberofruns = 0;
+ while ($numberofruns < 2) {
+ $msg = new XML_RPC_Message($method, $params);
+ $cli = new XML_RPC_Client('/xmlrpc.php', $url, $port);
+ $cli->setCredentials($username, $password);
+ if($numberofruns > 0)
+ $cli->setDebug(1);
+ /* send our XMLRPC message and timeout after 240 seconds */
+ $resp = $cli->send($msg, "240");
+ if(!is_object($resp)) {
+ $error = "A communications error occured while attempting XMLRPC sync with username {$username} {$url}:{$port}.";
+ } elseif($resp->faultCode()) {
+ $error = "An error code was received while attempting XMLRPC sync with username {$username} {$url}:{$port} - Code " . $resp->faultCode() . ": " . $resp->faultString();
+ } else {
+ $parsed_response = XML_RPC_decode($resp->value());
+ if(!is_array($parsed_response)) {
+ if (trim($parsed_response) == "Authentication failed") {
+ $error = "An authentication failure occurred while trying to access {$url}:{$port} ({$method}).";
+ log_error($error);
+ file_notice("sync_settings", $error, "Settings Sync", "");
+ exit;
}
+ } else {
+ if (!isset($parsed_response['config_version']) ||
+ $parsed_response['config_version'] < $config['version']) {
+ update_filter_reload_status("The other member is on older configuration version of {$g['product_name']}. Sync will not be done to prevent problems!");
+ log_error("The other member is on older configuration version of {$g['product_name']}. Sync will not be done to prevent problems!");
+ return false;
+ } else
+ return true;
}
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- $numberofruns++;
}
+ log_error($error);
+ file_notice("sync_settings", $error, "Settings Sync", "");
+ $numberofruns++;
+ }
+
return false;
}
@@ -253,7 +254,7 @@ function carp_sync_xml($url, $username, $password, $sections, $port = 80, $metho
file_notice("sync_settings", $error, "Settings Sync", "");
} else {
$parsed_response = XML_RPC_decode($resp->value());
- if(!is_array($parsed_response) && trim($parsed_repsonse) == "Authentication failed") {
+ if(!is_array($parsed_response) && trim($parsed_response) == "Authentication failed") {
$error = "An authentication failure occurred while trying to access {$url}:{$port} ($method).";
log_error($error);
file_notice("sync_settings", $error, "Settings Sync", "");
@@ -278,150 +279,153 @@ if (is_array($config['hasync'])) {
if (empty($hasync['synchronizetoip'])) {
log_error("Config sync not being done because of missing sync IP (this is normal on secondary systems).");
+ exit;
+ }
+
+ /*
+ * 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'];
+ if ($hasync['synchronizerules'] != "") {
+ if (!is_array($config['filter']))
+ $config['filter'] = array();
+ $sections[] = 'filter';
+ }
+ if ($hasync['synchronizenat'] != "") {
+ if (!is_array($config['nat']))
+ $config['nat'] = array();
+ $sections[] = 'nat';
+ }
+ if ($hasync['synchronizealiases'] != "") {
+ if (!is_array($config['aliases']))
+ $config['aliases'] = array();
+ $sections[] = 'aliases';
+ }
+ if ($hasync['synchronizedhcpd'] != "" and is_array($config['dhcpd']))
+ $sections[] = 'dhcpd';
+ if ($hasync['synchronizewol'] != "") {
+ if (!is_array($config['wol']))
+ $config['wol'] = array();
+ $sections[] = 'wol';
+ }
+ if ($hasync['synchronizetrafficshaper'] != "" and is_array($config['shaper']))
+ $sections[] = 'shaper';
+ if ($hasync['synchronizetrafficshaperlimiter'] != "" and is_array($config['dnshaper']))
+ $sections[] = 'dnshaper';
+ if ($hasync['synchronizetrafficshaperlayer7'] != "" and is_array($config['l7shaper']))
+ $sections[] = 'l7shaper';
+ if ($hasync['synchronizestaticroutes'] != "") {
+ if (!is_array($config['staticroutes']))
+ $config['staticroutes'] = array();
+ if (!is_array($config['staticroutes']['route']))
+ $config['staticroutes']['route'] = array();
+ $sections[] = 'staticroutes';
+ if (!is_array($config['gateways']))
+ $config['gateways'] = array();
+ $sections[] = 'gateways';
+ }
+ if ($hasync['synchronizevirtualip'] != "") {
+ if (!is_array($config['virtualip']))
+ $config['virtualip'] = array();
+ $sections[] = 'virtualip';
+ }
+ if ($hasync['synchronizelb'] != "") {
+ if (!is_array($config['load_balancer']))
+ $config['load_balancer'] = array();
+ $sections[] = 'load_balancer';
+ }
+ if ($hasync['synchronizeipsec'] != "") {
+ if (!is_array($config['ipsec']))
+ $config['ipsec'] = array();
+ $sections[] = 'ipsec';
+ }
+ if ($hasync['synchronizeopenvpn'] != "") {
+ if (!is_array($config['openvpn']))
+ $config['openvpn'] = array();
+ $sections[] = 'openvpn';
+ }
+ if ($hasync['synchronizecerts'] != "" || $hasync['synchronizeopenvpn'] != "") {
+ if (!is_array($config['cert']))
+ $config['cert'] = array();
+ $sections[] = 'cert';
+
+ if (!is_array($config['ca']))
+ $config['ca'] = array();
+ $sections[] = 'ca';
+
+ if (!is_array($config['crl']))
+ $config['crl'] = array();
+ $sections[] = 'crl';
+ }
+ if ($hasync['synchronizeusers'] != "") {
+ $sections[] = 'user';
+ $sections[] = 'group';
+ }
+ if ($hasync['synchronizednsforwarder'] != "" and is_array($config['dnsmasq']))
+ $sections[] = 'dnsmasq';
+ if ($hasync['synchronizeschedules'] != "" || $hasync['synchronizerules'] != "") {
+ if (!is_array($config['schedules']))
+ $config['schedules'] = array();
+ $sections[] = 'schedules';
+ }
+ if ($hasync['synchronizecaptiveportal'] != "" and is_array($config['captiveportal']))
+ $sections[] = 'captiveportal';
+ if ($hasync['synchronizecaptiveportal'] != "" and is_array($config['vouchers']))
+ $sections[] = 'vouchers';
+
+ if (count($sections) <= 0) {
+ log_error("Nothing has been configured to be synched. Skipping....");
+ exit;
+ }
+
+ if (empty($hasync['username']))
+ $username = "admin";
+ else
+ $username = $hasync['username'];
+
+ if (!carp_check_version($synchronizetoip, $username, $hasync['password'], $port))
+ exit;
+
+ update_filter_reload_status("Signaling CARP reload signal...");
+ carp_sync_xml($synchronizetoip, $username, $hasync['password'], $sections, $port);
+ $cli = new XML_RPC_Client('/xmlrpc.php', $synchronizetoip, $port);
+ $params = array(
+ XML_RPC_encode($hasync['password'])
+ );
+
+ $msg = new XML_RPC_Message('pfsense.filter_configure', $params);
+ $cli->setCredentials($username, $hasync['password']);
+ $resp = $cli->send($msg, "900");
+
+ if (!is_object($resp)) {
+ $error = "A communications error occured while attempting Filter sync with username {$username} {$synchronizetoip}:{$port}.";
+ log_error($error);
+ file_notice("sync_settings", $error, "Settings Sync", "");
+ } elseif($resp->faultCode()) {
+ $error = "An error code was received while attempting Filter sync with username {$username} {$synchronizetoip}:{$port} - Code " . $resp->faultCode() . ": " . $resp->faultString();
+ log_error($error);
+ file_notice("sync_settings", $error, "Settings Sync", "");
} else {
- /*
- * 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'];
- if ($hasync['synchronizerules'] != "") {
- if (!is_array($config['filter']))
- $config['filter'] = array();
- $sections[] = 'filter';
- }
- if ($hasync['synchronizenat'] != "") {
- if (!is_array($config['nat']))
- $config['nat'] = array();
- $sections[] = 'nat';
- }
- if ($hasync['synchronizealiases'] != "") {
- if (!is_array($config['aliases']))
- $config['aliases'] = array();
- $sections[] = 'aliases';
- }
- if ($hasync['synchronizedhcpd'] != "" and is_array($config['dhcpd']))
- $sections[] = 'dhcpd';
- if ($hasync['synchronizewol'] != "") {
- if (!is_array($config['wol']))
- $config['wol'] = array();
- $sections[] = 'wol';
- }
- if ($hasync['synchronizetrafficshaper'] != "" and is_array($config['shaper'])) {
- $sections[] = 'shaper';
- }
- if ($hasync['synchronizetrafficshaperlimiter'] != "" and is_array($config['dnshaper'])) {
- $sections[] = 'dnshaper';
- }
- if ($hasync['synchronizetrafficshaperlayer7'] != "" and is_array($config['l7shaper'])) {
- $sections[] = 'l7shaper';
- }
- if ($hasync['synchronizestaticroutes'] != "") {
- if (!is_array($config['staticroutes']))
- $config['staticroutes'] = array();
- if (!is_array($config['staticroutes']['route']))
- $config['staticroutes']['route'] = array();
- $sections[] = 'staticroutes';
- if (!is_array($config['gateways']))
- $config['gateways'] = array();
- $sections[] = 'gateways';
- }
- if ($hasync['synchronizevirtualip'] != "") {
- if (!is_array($config['virtualip']))
- $config['virtualip'] = array();
- $sections[] = 'virtualip';
- }
- if ($hasync['synchronizelb'] != "") {
- if (!is_array($config['load_balancer']))
- $config['load_balancer'] = array();
- $sections[] = 'load_balancer';
- }
- if ($hasync['synchronizeipsec'] != "") {
- if (!is_array($config['ipsec']))
- $config['ipsec'] = array();
- $sections[] = 'ipsec';
- }
- if ($hasync['synchronizeopenvpn'] != "") {
- if (!is_array($config['openvpn']))
- $config['openvpn'] = array();
- $sections[] = 'openvpn';
- }
- if ($hasync['synchronizecerts'] != "" || $hasync['synchronizeopenvpn'] != "") {
- if (!is_array($config['cert']))
- $config['cert'] = array();
- $sections[] = 'cert';
-
- if (!is_array($config['ca']))
- $config['ca'] = array();
- $sections[] = 'ca';
-
- if (!is_array($config['crl']))
- $config['crl'] = array();
- $sections[] = 'crl';
- }
- if ($hasync['synchronizeusers'] != "") {
- $sections[] = 'user';
- $sections[] = 'group';
- }
- if ($hasync['synchronizednsforwarder'] != "" and is_array($config['dnsmasq']))
- $sections[] = 'dnsmasq';
- if ($hasync['synchronizeschedules'] != "") {
- if (!is_array($config['schedules']))
- $config['schedules'] = array();
- $sections[] = 'schedules';
- }
- if ($hasync['synchronizecaptiveportal'] != "" and is_array($config['captiveportal']))
- $sections[] = 'captiveportal';
- if ($hasync['synchronizecaptiveportal'] != "" and is_array($config['vouchers']))
- $sections[] = 'vouchers';
- if (count($sections) > 0) {
- if (empty($hasync['username']))
- $username = "admin";
- else
- $username = $hasync['username'];
-
- if (carp_check_version($synchronizetoip, $username, $hasync['password'], $port)) {
- update_filter_reload_status("Signaling CARP reload signal...");
- carp_sync_xml($synchronizetoip, $username, $hasync['password'], $sections, $port);
- $cli = new XML_RPC_Client('/xmlrpc.php', $synchronizetoip, $port);
- $params = array(
- XML_RPC_encode($hasync['password'])
- );
-
- $msg = new XML_RPC_Message('pfsense.filter_configure', $params);
- $cli->setCredentials($username, $hasync['password']);
- $resp = $cli->send($msg, "900");
-
- if(!is_object($resp)) {
- $error = "A communications error occured while attempting Filter sync with username {$username} {$synchronizetoip}:{$port}.";
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- } elseif($resp->faultCode()) {
- $error = "An error code was received while attempting Filter sync with username {$username} {$synchronizetoip}:{$port} - Code " . $resp->faultCode() . ": " . $resp->faultString();
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- } else {
- log_error("Filter sync successfully completed with {$synchronizetoip}:{$port}.");
- $numberofruns = 3;
- }
- }
- }
- }
+ log_error("Filter sync successfully completed with {$synchronizetoip}:{$port}.");
+ $numberofruns = 3;
+ }
}
?>
diff --git a/etc/rc.initial b/etc/rc.initial
index 155faab..1f9f1e2 100755
--- a/etc/rc.initial
+++ b/etc/rc.initial
@@ -134,12 +134,9 @@ case ${opmode} in
/usr/local/sbin/pftop
;;
10)
- /usr/sbin/tcpdump -n -e -ttt -i pflog0
+ /usr/sbin/tcpdump -s 256 -v -S -l -n -e -ttt -i pflog0
;;
-11)
- /etc/rc.restart_webgui
- ;;
-111)
+11 | 111)
/usr/bin/killall -9 php; /usr/bin/killall -9 lighttpd; /etc/rc.restart_webgui
;;
12)
diff --git a/etc/rc.initial.password b/etc/rc.initial.password
index 6b8c78f..65676f9 100755
--- a/etc/rc.initial.password
+++ b/etc/rc.initial.password
@@ -58,6 +58,9 @@ The webConfigurator admin password and privileges will be reset to the default (
$admin_user['scope'] = "system";
$admin_user['priv'] = array("user-shell-access");
+ if (isset($admin_user['disabled']))
+ unset($admin_user['disabled']);
+
local_user_set_password($admin_user, strtolower($g['product_name']));
local_user_set($admin_user);
write_config(gettext("password changed from console menu"));
diff --git a/etc/rc.initial.setlanip b/etc/rc.initial.setlanip
index e062e6e..14213b5 100755
--- a/etc/rc.initial.setlanip
+++ b/etc/rc.initial.setlanip
@@ -197,28 +197,35 @@ function add_gateway_to_config($interface, $gatewayip, $inet_type) {
if ($dry_run) {
print_r($a_gateways);
}
- $new_name = next_unused_gateway_name($interface);
+ $new_name = '';
$is_default = true;
foreach ($a_gateways as $item) {
if ($item['ipprotocol'] === $inet_type) {
- $is_default = false;
- break;
+ if (isset($item['defaultgw']))
+ $is_default = false;
+ if (($item['interface'] === $interface) && ($item['gateway'] === $gatewayip))
+ $new_name = $item['name'];
}
}
- $item = array(
- "interface" => $interface,
- "gateway" => $gatewayip,
- "name" => $new_name,
- "weight" => 1,
- "ipprotocol" => $inet_type,
- "interval" => true,
- "descr" => "Interface $interface Gateway",
- "defaultgw" => $is_default
- );
- if ($dry_run) {
- print_r($item);
+ if ($new_name == '') {
+ $new_name = next_unused_gateway_name($interface);
+ $item = array(
+ "interface" => $interface,
+ "gateway" => $gatewayip,
+ "name" => $new_name,
+ "weight" => 1,
+ "ipprotocol" => $inet_type,
+ "interval" => true,
+ "descr" => "Interface $interface Gateway",
+ "defaultgw" => $is_default
+ );
+ if ($dry_run) {
+ print_r($item);
+ }
+ $a_gateways[] = $item;
}
- $a_gateways[] = $item;
+
+ return $new_name;
}
function console_configure_ip_address($version) {
@@ -251,7 +258,12 @@ function console_configure_ip_address($version) {
$upperifname, $label_IPvX) . "\n> ";
$intip = chop(fgets($fp));
$is_ipaddr = ($version === 6) ? is_ipaddrv6($intip) : is_ipaddrv4($intip);
- } while (!($is_ipaddr || $intip == ''));
+ if ($is_ipaddr && is_ipaddr_configured($intip, $interface, true)) {
+ $ip_conflict = true;
+ echo gettext("This IP address conflicts with another interface or a VIP") . "\n";
+ } else
+ $ip_conflict = false;
+ } while (($ip_conflict === true) || !($is_ipaddr || $intip == ''));
if ($intip != '') {
echo "\n" . sprintf(gettext("Subnet masks are entered as bit counts (as in CIDR notation) in %s."),
$g['product_name']) . "\n";
@@ -296,35 +308,35 @@ function console_configure_ip_address($version) {
if ($gwip != '') {
$inet_type = ($version === 6) ? "inet6" : "inet";
- add_gateway_to_config($interface, $gwip, $inet_type);
+ $gwname = add_gateway_to_config($interface, $gwip, $inet_type);
}
}
- $ifppp = console_get_interface_from_ppp(get_real_interface("wan"));
+ $ifppp = console_get_interface_from_ppp(get_real_interface($interface));
if (!empty($ifppp))
$ifaceassigned = $ifppp;
}
- return array($intip, $intbits, $gwip);
+ return array($intip, $intbits, $gwname);
}
-list($intip, $intbits, $gwip) = console_configure_ip_address(4);
-list($intip6, $intbits6, $gwip6) = console_configure_ip_address(6);
+list($intip, $intbits, $gwname) = console_configure_ip_address(4);
+list($intip6, $intbits6, $gwname6) = console_configure_ip_address(6);
if (!empty($ifaceassigned))
$config['interfaces'][$interface]['if'] = $ifaceassigned;
-$config['interfaces'][$interface]['ipaddr'] = $intip;
-$config['interfaces'][$interface]['subnet'] = $intbits;
-if ($intip6) {
- $config['interfaces'][$interface]['ipaddrv6'] = $intip6;
- $config['interfaces'][$interface]['subnetv6'] = $intbits6;
-}
-$config['interfaces'][$interface]['enable'] = true;
+$config['interfaces'][$interface]['ipaddr'] = $intip;
+$config['interfaces'][$interface]['subnet'] = $intbits;
+$config['interfaces'][$interface]['gateway'] = $gwname;
+$config['interfaces'][$interface]['ipaddrv6'] = $intip6;
+$config['interfaces'][$interface]['subnetv6'] = $intbits6;
+$config['interfaces'][$interface]['gatewayv6'] = $gwname6;
+$config['interfaces'][$interface]['enable'] = true;
function console_configure_dhcpd($version = 4) {
global $g, $config, $restart_dhcpd, $fp, $interface, $dry_run;
- $label_IPvX = ($version === 6) ? "IPv6" : "IPv4";
- $dhcpd = ($version === 6) ? "dhcpd6" : "dhcpd";
+ $label_IPvX = ($version === 6) ? "IPv6" : "IPv4";
+ $dhcpd = ($version === 6) ? "dhcpdv6" : "dhcpd";
if($g['services_dhcp_server_enable'])
$yn = prompt_for_enable_dhcp_server($version);
@@ -396,17 +408,17 @@ if($config['interfaces']['lan']) {
if($config['dhcpd'])
if($config['dhcpd']['wan'])
unset($config['dhcpd']['wan']);
- if($config['dhcpd6'])
- if($config['dhcpd6']['wan'])
- unset($config['dhcpd6']['wan']);
+ if($config['dhcpdv6'])
+ if($config['dhcpdv6']['wan'])
+ unset($config['dhcpdv6']['wan']);
}
if(!$config['interfaces']['lan']) {
unset($config['interfaces']['lan']);
if($config['dhcpd']['lan'])
unset($config['dhcpd']['lan']);
- if($config['dhcpd6']['lan'])
- unset($config['dhcpd6']['lan']);
+ if($config['dhcpdv6']['lan'])
+ unset($config['dhcpdv6']['lan']);
unset($config['shaper']);
unset($config['ezshaper']);
unset($config['nat']);
diff --git a/etc/rc.kill_states b/etc/rc.kill_states
new file mode 100755
index 0000000..d7e92d6
--- /dev/null
+++ b/etc/rc.kill_states
@@ -0,0 +1,72 @@
+#!/usr/local/bin/php -f
+<?php
+/*
+ rc.newwanip
+ Copyright (C) 2013 Renato Botelho (garga@pfsense.org)
+ part of pfSense (http://www.pfsense.com)
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* parse the configuration and include all functions used below */
+require_once("globals.inc");
+require_once("config.inc");
+require_once("interfaces.inc");
+require_once("util.inc");
+
+// Do not process while booting
+if($g['booting'])
+ exit;
+
+/* Interface address to cleanup states */
+$interface = str_replace("\n", "", $argv[1]);
+
+/* IP address to cleanup states */
+$local_ip = str_replace("\n", "", $argv[2]);
+
+if (empty($interface) || !does_interface_exist($interface)) {
+ log_error("rc.kill_states: Invalid interface '{$interface}'");
+ exit;
+}
+
+if (!empty($local_ip)) {
+ list($local_ip, $subnet_bits) = explode("/", $local_ip);
+
+ if (empty($subnet_bits))
+ $subnet_bits = "32";
+
+ if (!is_ipaddr($local_ip)) {
+ log_error("rc.kill_states: Invalid IP address '{$local_ip}'");
+ exit;
+ }
+}
+
+if (!isset($config['system']['kill_states'])) {
+ if (!empty($local_ip)) {
+ log_error("rc.kill_states: Removing states for IP {$local_ip}/{$subnet_bits}");
+ mwexec("/sbin/pfctl -k 0.0.0.0/0 -k {$local_ip}/{$subnet_bits}", true);
+ mwexec("/sbin/pfctl -k {$local_ip}/{$subnet_bits}", true);
+ mwexec("/sbin/pfctl -K {$local_ip}/{$subnet_bits}", true);
+ }
+ log_error("rc.kill_states: Removing states for interface {$interface}");
+ mwexec("/sbin/pfctl -i {$interface} -Fs", true);
+}
diff --git a/etc/rc.linkup b/etc/rc.linkup
index 23d7c9b..6283aa2 100755
--- a/etc/rc.linkup
+++ b/etc/rc.linkup
@@ -39,9 +39,24 @@ require_once("interfaces.inc");
function handle_argument_group($iface, $argument2) {
global $config;
+ if (!is_array($config['interfaces'][$iface]))
+ return;
+
$ipaddr = $config['interfaces'][$iface]['ipaddr'];
- if (is_ipaddr($ipaddr) || empty($ipaddr)) {
- log_error("Hotplug event detected for {$iface} but ignoring since interface is configured with static IP ({$ipaddr})");
+ $ip6addr = $config['interfaces'][$iface]['ipaddrv6'];
+ $staticv4 = false;
+ if (empty($ipaddr))
+ $staticv4 = true;
+ else
+ $staticv4 = is_ipaddrv4($ipaddr);
+ $staticv6 = false;
+ if (empty($ip6addr))
+ $statcv6 = true;
+ else
+ $staticv6 = is_ipaddrv6($ip6addr);
+ if ($staticv4 === true && $staticv6 === true) {
+ $friendly = convert_friendly_interface_to_friendly_descr($iface);
+ log_error("Hotplug event detected for {$friendly}({$iface}) but ignoring since interface is configured with static IP ({$ipaddr} {$ip6addr})");
interfaces_staticarp_configure($iface);
$iface = get_real_interface($iface);
interfaces_bring_up($iface);
@@ -55,18 +70,12 @@ function handle_argument_group($iface, $argument2) {
interface_bring_down($iface);
break;
case "start":
+ case "up":
log_error("DEVD Ethernet attached event for {$iface}");
- interfaces_staticarp_configure($iface);
log_error("HOTPLUG: Configuring interface {$iface}");
// Do not try to readd to bridge otherwise em(4) has problems
interface_configure($iface, false, true);
break;
- case "up":
- log_error("DEVD Ethernet attached event for {$iface}");
- interfaces_staticarp_configure($iface);
- log_error("HOTPLUG: Configuring interface {$iface}");
- interface_configure($iface);
- break;
}
}
}
@@ -75,28 +84,24 @@ global $g;
if (file_exists("{$g['varrun_path']}/booting")) {
/* ignore all linkup events */
} else {
- foreach($_SERVER['argv'] as $argv) {
- switch($argv) {
- case "start":
- $action = "start";
- break;
- case "stop":
- $action = "stop";
- break;
- case "/etc/rc.linkup":
- break;
- default:
- $interface = convert_real_interface_to_friendly_interface_name($argv);
- if($interface == "") {
- unset($interface);
- }
- break;
- }
- if(($action) && ($interface)) {
- handle_argument_group($interface, $action);
- unset ($action, $interface);
- }
+ if ($argc < 3) {
+ log_error("HOTPLUG event: The number of required parameters not passed!");
+ exit;
+ }
+ $action = $argv[1];
+ switch($action) {
+ case "start":
+ case "stop":
+ break;
+ default:
+ log_error("HOTPLUG event: The action parameter passed is wrong($action) only start/stop/up/down are allowed!");
+ exit;
+ /* NOTREACHED */
+ break;
}
+ $interface = convert_real_interface_to_friendly_interface_name($argv[2]);
+ if (!empty($interface))
+ handle_argument_group($interface, $action);
}
?>
diff --git a/etc/rc.newwanip b/etc/rc.newwanip
index 4df5343..00c3ac3 100755
--- a/etc/rc.newwanip
+++ b/etc/rc.newwanip
@@ -1,34 +1,34 @@
#!/usr/local/bin/php -f
<?php
/*
- rc.newwanip
- Copyright (C) 2006 Scott Ullrich (sullrich@gmail.com)
- part of pfSense (http://www.pfsense.com)
-
- Originally part of m0n0wall (http://m0n0.ch)
- Copyright (C) 2003-2005 Manuel Kasper <mk@neon1.net>.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
+ rc.newwanip
+ Copyright (C) 2006 Scott Ullrich (sullrich@gmail.com)
+ part of pfSense (http://www.pfsense.com)
+
+ Originally part of m0n0wall (http://m0n0.ch)
+ Copyright (C) 2003-2005 Manuel Kasper <mk@neon1.net>.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
*/
/* parse the configuration and include all functions used below */
@@ -43,16 +43,16 @@ require_once("openvpn.inc");
require_once("rrd.inc");
// Do not process while booting
-if($g['booting'])
+if($g['booting'])
exit;
function restart_packages() {
- global $oldip, $curwanipi, $g;
+ global $oldip, $curwanip, $g;
/* restart packages */
system_ntp_configure(false);
mwexec_bg("/usr/local/sbin/ntpdate_sync_once.sh", true);
- log_error("{$g['product_name']} package system has detected an ip change $oldip -> $curwanip ... Restarting packages.");
+ log_error("{$g['product_name']} package system has detected an ip change $oldip -> $curwanip ... Restarting packages.");
send_event("service reload packages");
}
@@ -62,23 +62,23 @@ $argument = str_replace("\n", "", $argv[1]);
log_error("rc.newwanip: Informational is starting {$argument}.");
if(empty($argument)) {
- $curwanip = get_interface_ip();
- $interface = "wan";
- $interface_real = get_real_interface();
+ $curwanip = get_interface_ip();
+ $interface = "wan";
+ $interface_real = get_real_interface();
} else {
- $interface = convert_real_interface_to_friendly_interface_name($argument);
- $interface_real = $argument;
- $curwanip = find_interface_ip($interface_real, true);
- if($curwanip == "")
- $curwanip = get_interface_ip($interface);
+ $interface = convert_real_interface_to_friendly_interface_name($argument);
+ $interface_real = $argument;
+ $curwanip = find_interface_ip($interface_real, true);
+ if($curwanip == "")
+ $curwanip = get_interface_ip($interface);
}
log_error("rc.newwanip: on (IP address: {$curwanip}) (interface: {$interface}) (real interface: {$interface_real}).");
if($curwanip == "0.0.0.0" || !is_ipaddr($curwanip)) {
- log_error("rc.newwanip: Failed to update {$interface} IP, restarting...");
+ log_error("rc.newwanip: Failed to update {$interface} IP, restarting...");
send_event("interface reconfigure {$interface}");
- exit;
+ exit;
}
if (empty($interface)) {
@@ -125,11 +125,15 @@ if ($interface == "lan")
/* check tunneled IPv6 interface tracking */
switch($config['interfaces'][$interface]['ipaddrv6']) {
+ case "slaac":
+ case "dhcp6":
+ interface_dhcpv6_configure($interface, $config['interfaces'][$interface]);
+ break;
case "6to4":
- interface_6to4_configure($interface);
+ interface_6to4_configure($interface, $config['interfaces'][$interface]);
break;
case "6rd":
- interface_6rd_configure($interface);
+ interface_6rd_configure($interface, $config['interfaces'][$interface]);
break;
}
@@ -162,12 +166,12 @@ setup_gateways_monitor();
filter_configure();
if (is_ipaddr($oldip) && $curwanip == $oldip) {
- /* We need to force sync VPNs on such even when the IP is the same. Even with
- * the same IP the VPN software is unhappy with the IP disappearing, and we
+ /* We need to force sync VPNs on such even when the IP is the same. Even with
+ * the same IP the VPN software is unhappy with the IP disappearing, and we
* could be failing back in which case we need to switch IPs back anyhow. */
/* reconfigure IPsec tunnels */
- vpn_ipsec_force_reload();
+ vpn_ipsec_force_reload($interface);
/* start OpenVPN server & clients */
if (substr($interface_real, 0, 4) != "ovpn")
@@ -190,7 +194,7 @@ services_dnsupdate_process($interface);
services_dyndns_configure($interface);
/* reconfigure IPsec tunnels */
-vpn_ipsec_force_reload();
+vpn_ipsec_force_reload($interface);
/* start OpenVPN server & clients */
if (substr($interface_real, 0, 4) != "ovpn")
@@ -202,6 +206,9 @@ enable_rrd_graphing();
/* reload igmpproxy */
services_igmpproxy_configure();
+/* restart snmp */
+services_snmpd_configure();
+
restart_packages();
?>
diff --git a/etc/rc.newwanipv6 b/etc/rc.newwanipv6
index cc1927e..287ea6a 100755
--- a/etc/rc.newwanipv6
+++ b/etc/rc.newwanipv6
@@ -1,7 +1,7 @@
#!/usr/local/bin/php -f
<?php
/*
- rc.newwanip
+ rc.newwanipv6
Copyright (C) 2006 Scott Ullrich (sullrich@gmail.com)
part of pfSense (http://www.pfsense.com)
@@ -44,47 +44,69 @@ require_once("IPv6.inc");
require_once("services.inc");
require_once("rrd.inc");
-// Do not process while booting
-if($g['booting'])
- exit;
-
-
function restart_packages() {
- global $oldip, $curwanipv6, $g;
+ global $oldipv6, $curwanipv6, $g;
/* restart packages */
system_ntp_configure(false);
mwexec_bg("/usr/local/sbin/ntpdate_sync_once.sh", true);
- log_error("{$g['product_name']} package system has detected an ip change $oldip -> $curwanip ... Restarting packages.");
- mwexec_bg("/etc/rc.start_packages");
+ log_error("{$g['product_name']} package system has detected an ip change $oldipv6 -> $curwanipv6 ... Restarting packages.");
+ send_event("service reload packages");
}
-log_error("rc.newwanipv6: Informational is starting.");
-
/* Interface IP address has changed */
$argument = str_replace("\n", "", $argv[1]);
-if($argument != "")
- $interface = convert_real_interface_to_friendly_interface_name($argument);
-else
+log_error("rc.newwanipv6: Informational is starting {$argument}.");
+
+/* wait for the dhcp6c process to configure the LAN interface */
+sleep(5);
+
+if(empty($argument)) {
$interface = "wan";
+ $interface_real = get_real_interface($interface);
+ $curwanipv6 = get_interface_ipv6($interface, true);
+} else {
+ $interface_real = $argument;
+ $interface = convert_real_interface_to_friendly_interface_name($interface_real);
+ $curwanipv6 = get_interface_ipv6($interface, true);
+ $interface_realv6 = get_real_interface($interface, "inet6");
+}
-$interface_real = get_real_interface($interface);
-$curwanipv6 = get_interface_ipv6($interface_real);
+if (empty($interface)) {
+ filter_configure();
+ // restart_packages();
+ exit;
+}
-log_error("rc.newwanipv6: on (IP address: {$curwanipv6}) (interface: {$interface}) (real interface: {$interface_real}).");
+//Do not process while booting
+if($g['booting'] && $config['interfaces'][$interface]['ipaddrv6'] != "dhcp6")
+ exit;
-if($curwanipv6 == "" || !is_ipaddrv6($curwanipv6)) {
+if(empty($curwanipv6) || !is_ipaddrv6($curwanipv6)) {
log_error("rc.newwanipv6: Failed to update {$interface} IPv6, restarting...");
// send_event("interface reconfigure {$interface}");
exit;
}
-if (empty($interface)) {
- filter_configure();
- // restart_packages();
- exit;
+if (!empty($_ENV['new_domain_name_servers'])) {
+ $name_servers = explode(" ", $_ENV['new_domain_name_servers']);
+ $valid_ns = array();
+ foreach($name_servers as $ns) {
+ if(is_ipaddrv6(trim($ns)))
+ $valid_ns[] = trim($ns);
+ }
+
+ if(count($valid_ns > 0))
+ file_put_contents("{$g['varetc_path']}/nameserver_v6{$interface}", implode("\n", $valid_ns));
}
+if(!empty($_ENV['new_domain_name']))
+ file_put_contents("{$g['varetc_path']}/searchdomain_v6{$interface}", $_ENV['new_domain_name']);
+
+/* write current WAN IPv6 to file */
+file_put_contents("{$g['vardb_path']}/{$interface}_ipv6", $curwanipv6);
+
+log_error("rc.newwanipv6: on (IP address: {$curwanipv6}) (interface: {$interface}) (real interface: {$interface_realv6}).");
$oldipv6 = "";
if (file_exists("{$g['vardb_path']}/{$interface}_cacheipv6"))
@@ -94,28 +116,11 @@ $grouptmp = link_interface_to_group($interface);
if (!empty($grouptmp))
array_walk($grouptmp, 'interface_group_add_member');
+link_interface_to_track6($interface, "update");
+
/* regenerate resolv.conf if DNS overrides are allowed */
system_resolvconf_generate(true);
-/* write current WAN IPv6 to file */
-file_put_contents("{$g['vardb_path']}/{$interface}_ipv6", $curwanipv6);
-
-/* pickup ipv6 router advertisements */
-pickup_ipv6_router_advertisement($interface_real);
-sleep(3);
-
-/* check native IPv6 interface tracking */
-switch($config['interfaces'][$interface]['ipaddrv6']) {
- case "dhcp6":
- foreach($config['interfaces'] as $iftrackname => $iftrack) {
- if($iftrack['track6-interface'] == $interface) {
- log_error("interface {$iftrackname} depends on {$interface}, configuring");
- interface_track6_configure($iftrackname);
- }
- }
- break;
-}
-
/* reconfigure static routes (kernel may have deleted them) */
system_routing_configure($interface);
@@ -125,16 +130,19 @@ setup_gateways_monitor();
/* signal filter reload */
filter_configure();
-if (is_ipaddr($oldipv6) && $curwanipv6 == $oldipv6) {
- // Still need to sync VPNs on PPPoE and such, as even with the same IP the VPN software is unhappy with the IP disappearing.
- if (in_array($config['interfaces'][$interface]['ipaddrv6'], array('pppoe', 'pptp', 'ppp'))) {
- /* reconfigure IPsec tunnels */
- vpn_ipsec_force_reload();
+if (is_ipaddrv6($oldipv6)) {
+ if ($curwanipv6 == $oldipv6) {
+ // Still need to sync VPNs on PPPoE and such, as even with the same IP the VPN software is unhappy with the IP disappearing.
+ if (in_array($config['interfaces'][$interface]['ipaddrv6'], array('pppoe', 'pptp', 'ppp'))) {
+ /* reconfigure IPsec tunnels */
+ vpn_ipsec_force_reload($interface);
- /* start OpenVPN server & clients */
- openvpn_resync_all($interface);
- }
- exit;
+ /* start OpenVPN server & clients */
+ openvpn_resync_all($interface);
+ }
+ exit;
+ } else if (does_interface_exist($interface_realv6))
+ mwexec("/sbin/ifconfig {$interface_realv6} inet6 {$oldipv6} delete");
}
file_put_contents("{$g['vardb_path']}/{$interface}_cacheipv6", $curwanipv6);
@@ -146,7 +154,7 @@ services_dnsupdate_process($interface);
services_dyndns_configure($interface);
/* reconfigure IPsec tunnels */
-vpn_ipsec_force_reload();
+vpn_ipsec_force_reload($interface);
/* start OpenVPN server & clients */
if (substr($interface_real, 0, 4) != "ovpn")
@@ -160,6 +168,4 @@ services_igmpproxy_configure();
restart_packages();
-services_radvd_configure();
-
?>
diff --git a/etc/rc.php_ini_setup b/etc/rc.php_ini_setup
index 7a55b63..b6c2396 100755
--- a/etc/rc.php_ini_setup
+++ b/etc/rc.php_ini_setup
@@ -48,18 +48,9 @@ fi
# Calculate APC SHM size according
# to detected memory values
-if [ "$AVAILMEM" -lt "65" ]; then
- APCSHMEMSIZE="1M"
-fi
-if [ "$AVAILMEM" -lt "96" ]; then
- APCSHMEMSIZE="5M"
-fi
-if [ "$AVAILMEM" -le "128" ]; then
+if [ "$AVAILMEM" -gt "135" ]; then
APCSHMEMSIZE="10M"
fi
-if [ "$AVAILMEM" -gt "128" ]; then
- APCSHMEMSIZE="15M"
-fi
if [ "$AVAILMEM" -gt "256" ]; then
APCSHMEMSIZE="20M"
fi
@@ -70,7 +61,7 @@ if [ "$AVAILMEM" -gt "512" ]; then
APCSHMEMSIZE="30M"
fi
if [ "$AVAILMEM" -gt "784" ]; then
- APCSHMEMSIZE="35M"
+ APCSHMEMSIZE="50M"
fi
# Set upload directory
@@ -82,8 +73,10 @@ fi
# Define php modules. Do not add .so, it will
# be done automatically by the script below.
-PHPMODULES="apc"
-PHPMODULES="$PHPMODULES standard"
+PHPMODULES="standard"
+if [ "$AVAILMEM" -gt 135 ]; then
+ PHPMODULES="$PHPMODULES apc"
+fi
# Config read/write
PHPMODULES="$PHPMODULES xml libxml dom"
PHPMODULES="$PHPMODULES simplexml xmlreader xmlwriter"
diff --git a/etc/rc.prunecaptiveportal b/etc/rc.prunecaptiveportal
index 3a8620f..12b0bce 100755
--- a/etc/rc.prunecaptiveportal
+++ b/etc/rc.prunecaptiveportal
@@ -43,8 +43,13 @@ global $g;
$cpzone = str_replace("\n", "", $argv[1]);
if (file_exists("{$g['tmp_path']}/.rc.prunecaptiveportal.{$cpzone}.running")) {
- log_error("Skipping CP prunning process because previous/another instance is already running");
- return;
+ $stat = stat("{$g['tmp_path']}/.rc.prunecaptiveportal.{$cpzone}.running");
+ if (time() - $stat['mtime'] >= 120)
+ @unlink("{$g['tmp_path']}/.rc.prunecaptiveportal.{$cpzone}.running");
+ else {
+ log_error("Skipping CP prunning process because previous/another instance is already running");
+ return;
+ }
}
@file_put_contents("{$g['tmp_path']}/.rc.prunecaptiveportal.{$cpzone}.running", "");
diff --git a/etc/rc.reboot b/etc/rc.reboot
index 4bb28a1..afdc93c 100755
--- a/etc/rc.reboot
+++ b/etc/rc.reboot
@@ -14,7 +14,13 @@ sleep 1
PLATFORM=`cat /etc/platform`
if [ "$PLATFORM" = "pfSense" ]; then
rm -rf /tmp/*
-else
+fi
+
+USE_MFS_TMPVAR=`/usr/bin/grep -c use_mfs_tmpvar /cf/conf/config.xml`
+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}" != "pfSense" ] || [ ${USE_MFS_TMPVAR} -gt 0 ] || [ "${DISK_TYPE}" = "md" ]; then
/etc/rc.backup_rrd.sh
/etc/rc.backup_dhcpleases.sh
fi
diff --git a/etc/rc.shutdown b/etc/rc.shutdown
index c7e8b25..c63e5e5 100755
--- a/etc/rc.shutdown
+++ b/etc/rc.shutdown
@@ -25,7 +25,13 @@ export PATH
PLATFORM=`cat /etc/platform`
if [ "$PLATFORM" = "pfSense" ]; then
find -x /tmp/* -type f -exec rm -f {} \;
-else
+fi
+
+USE_MFS_TMPVAR=`/usr/bin/grep -c use_mfs_tmpvar /cf/conf/config.xml`
+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}" != "pfSense" ] || [ ${USE_MFS_TMPVAR} -gt 0 ] || [ "${DISK_TYPE}" = "md" ]; then
/etc/rc.backup_rrd.sh
/etc/rc.backup_dhcpleases.sh
fi
diff --git a/etc/rc.start_packages b/etc/rc.start_packages
index 15f62e1..3d30587 100755
--- a/etc/rc.start_packages
+++ b/etc/rc.start_packages
@@ -54,8 +54,9 @@ if (is_array($config['installedpackages']['package'])) {
foreach($config['installedpackages']['package'] as $package) {
echo " Starting package {$package['name']}...";
sync_package($package['name']);
- start_service($package['name']);
- unset($rcfiles[RCFILEPREFIX . $package['name'] . ".sh"]);
+ $internal_name = get_pkg_internal_name($package);
+ start_service($internal_name);
+ unset($rcfiles[RCFILEPREFIX . strtolower($internal_name) . ".sh"]);
echo "done.\n";
}
}
diff --git a/etc/rc.update_bogons.sh b/etc/rc.update_bogons.sh
index a721096..64b9075 100755
--- a/etc/rc.update_bogons.sh
+++ b/etc/rc.update_bogons.sh
@@ -4,10 +4,57 @@
# Part of the pfSense project
# www.pfsense.com
+# Global variables
+proc_error=""
+
+# Download and extract if necessary
+process_url() {
+ local file=$1
+ local url=$2
+ local filename=${url##*/}
+ local ext=${filename#*.}
+
+ /usr/bin/fetch -q -o $file "${url}"
+
+ if [ ! -f $file ]; then
+ echo "Could not download ${url}" | logger
+ proc_error="true"
+ fi
+
+ case "$ext" in
+ tar)
+ mv $file $file.tmp
+ /usr/bin/tar -xf $file.tmp -O > $file 2> /dev/null
+ ;;
+ tar.gz)
+ mv $file $file.tmp
+ /usr/bin/tar -xzf $file.tmp -O > $file 2> /dev/null
+ ;;
+ tgz)
+ mv $file $file.tmp
+ /usr/bin/tar -xzf $file.tmp -O > $file 2> /dev/null
+ ;;
+ tar.bz2)
+ mv $file $file.tmp
+ /usr/bin/tar -xjf $file.tmp -O > $file 2> /dev/null
+ ;;
+ *)
+ ;;
+ esac
+
+ if [ -f $file.tmp ]; then
+ rm $file.tmp
+ fi
+
+ if [ ! -f $file ]; then
+ echo "Could not extract ${filename}" | logger
+ proc_error="true"
+ fi
+}
+
echo "rc.update_bogons.sh is starting up." | logger
# Sleep for some time, unless an argument is specified.
-
if [ "$1" = "" ]; then
# Grab a random value
value=`od -A n -d -N2 /dev/random | awk '{ print $1 }'`
@@ -17,59 +64,86 @@ fi
echo "rc.update_bogons.sh is beginning the update cycle." | logger
-/usr/bin/fetch -q -o /tmp/bogons "http://files.pfsense.org/mirrors/bogon-bn-nonagg.txt"
-/usr/bin/fetch -q -o /tmp/bogonsv6 "http://files.pfsense.org/mirrors/fullbogons-ipv6.txt"
-if [ ! -f /tmp/bogons ]; then
- echo "Could not download http://files.pfsense.org/mirrors/bogon-bn-nonagg.txt" | logger
- dl_error="true"
-fi
-if [ ! -f /tmp/bogonsv6 ]; then
- echo "Could not download http://files.pfsense.org/mirrors/fullbogons-ipv6.txt" | logger
- dl_error="true"
+# Load custom bogon configuration
+if [ -f /var/etc/bogon_custom ]; then
+ . /var/etc/bogon_custom
fi
-if [ "$dl_error" != "" ];then
+# Set default values if not overriden
+v4url=${v4url:-"http://files.pfsense.org/lists/fullbogons-ipv4.txt"}
+v6url=${v6url:-"http://files.pfsense.org/lists/fullbogons-ipv6.txt"}
+v4urlcksum=${v4urlcksum:-"${v4url}.md5"}
+v6urlcksum=${v6urlcksum:-"${v6url}.md5"}
+
+process_url /tmp/bogons "${v4url}"
+process_url /tmp/bogonsv6 "${v6url}"
+
+if [ "$proc_error" != "" ]; then
# Relaunch and sleep
- sh /etc/rc.update_bogons.sh &
+ sh /etc/rc.update_bogons.sh &
exit
fi
-BOGON_V4_MD5=`/usr/bin/fetch -q -o - "http://files.pfsense.org/mirrors/bogon-bn-nonagg.txt.md5" | awk '{ print $4 }'`
-ON_DISK_V4_MD5=`md5 /tmp/bogons | awk '{ print $4 }'`
-BOGON_V6_MD5=`/usr/bin/fetch -q -o - "http://files.pfsense.org/mirrors/fullbogons-ipv6.txt.md5" | awk '{ print $4 }'`
-ON_DISK_V6_MD5=`md5 /tmp/bogonsv6 | awk '{ print $4 }'`
+BOGON_V4_CKSUM=`/usr/bin/fetch -q -o - "${v4urlcksum}" | awk '{ print $4 }'`
+ON_DISK_V4_CKSUM=`md5 /tmp/bogons | awk '{ print $4 }'`
+BOGON_V6_CKSUM=`/usr/bin/fetch -q -o - "${v6urlcksum}" | awk '{ print $4 }'`
+ON_DISK_V6_CKSUM=`md5 /tmp/bogonsv6 | awk '{ print $4 }'`
-if [ "$BOGON_V4_MD5" = "$ON_DISK_V4_MD5" ] || [ "$BOGON_V6_MD5" = "$ON_DISK_V6_MD5" ]; then
- # At least one of the downloaded MD5s matches, so mount RW
+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
-fi
-
-if [ "$BOGON_V4_MD5" = "$ON_DISK_V4_MD5" ]; then
- egrep -v "^192.168.0.0/16|^172.16.0.0/12|^10.0.0.0/8" /tmp/bogons > /etc/bogons
- RESULT=`/sbin/pfctl -t bogons -T replace -f /etc/bogons 2>&1`
- rm /tmp/bogons
- echo "Bogons V4 file downloaded: $RESULT" | logger
-else
- echo "Could not download http://files.pfsense.org/mirrors/bogon-bn-nonagg.txt.md5 (md5 mismatch)" | logger
- md5_error="true"
-fi
-
-if [ "$BOGON_V6_MD5" = "$ON_DISK_V6_MD5" ]; then
- egrep -v "^#" /tmp/bogonsv6 > /etc/bogonsv6
- RESULT=`/sbin/pfctl -t bogonsv6 -T replace -f /etc/bogonsv6 2>&1`
- rm /tmp/bogonsv6
- echo "Bogons V6 file downloaded: $RESULT" | logger
-else
- echo "Could not download http://files.pfsense.org/mirrors/fullbogons-ipv6.txt.md5 (md5 mismatch)" | logger
- md5_error="true"
-fi
+
+ ENTRIES_MAX=`pfctl -s memory | awk '/table-entries/ { print $4 }'`
+
+ if [ "$BOGON_V4_CKSUM" = "$ON_DISK_V4_CKSUM" ]; then
+ ENTRIES_TOT=`pfctl -vvsTables | awk '/Addresses/ {s+=$2}; END {print s}'`
+ ENTRIES_V4=`pfctl -vvsTables | awk '/-\tbogons$/ {getline; print $2}'`
+ LINES_V4=`wc -l /tmp/bogons | awk '{ print $1 }'`
+ if [ $ENTRIES_MAX -gt $((2*ENTRIES_TOT-${ENTRIES_V4:-0}+LINES_V4)) ]; then
+ egrep -v "^192.168.0.0/16|^172.16.0.0/12|^10.0.0.0/8" /tmp/bogons > /etc/bogons
+ RESULT=`/sbin/pfctl -t bogons -T replace -f /etc/bogons 2>&1`
+ echo "$RESULT" | awk '{ print "Bogons V4 file downloaded: " $0 }' | logger
+ else
+ echo "Not updating IPv4 bogons (increase table-entries limit)" | logger
+ fi
+ rm /tmp/bogons
+ else
+ echo "Could not download ${v4url} (checksum mismatch)" | logger
+ checksum_error="true"
+ fi
-if [ "$BOGON_V4_MD5" = "$ON_DISK_V4_MD5" ] || [ "$BOGON_V6_MD5" = "$ON_DISK_V6_MD5" ]; then
+ if [ "$BOGON_V6_CKSUM" = "$ON_DISK_V6_CKSUM" ]; then
+ BOGONS_V6_TABLE_COUNT=`pfctl -sTables | grep ^bogonsv6$ | wc -l | awk '{ print $1 }'`
+ ENTRIES_TOT=`pfctl -vvsTables | awk '/Addresses/ {s+=$2}; END {print s}'`
+ LINES_V6=`wc -l /tmp/bogonsv6 | awk '{ print $1 }'`
+ if [ $BOGONS_V6_TABLE_COUNT -gt 0 ]; then
+ ENTRIES_V6=`pfctl -vvsTables | awk '/-\tbogonsv6$/ {getline; print $2}'`
+ if [ $ENTRIES_MAX -gt $((2*ENTRIES_TOT-${ENTRIES_V6:-0}+LINES_V6)) ]; then
+ egrep -v "^fc00::/7" /tmp/bogonsv6 > /etc/bogonsv6
+ RESULT=`/sbin/pfctl -t bogonsv6 -T replace -f /etc/bogonsv6 2>&1`
+ echo "$RESULT" | awk '{ print "Bogons V6 file downloaded: " $0 }' | logger
+ else
+ echo "Not saving or updating IPv6 bogons (increase table-entries limit)" | logger
+ fi
+ else
+ if [ $ENTRIES_MAX -gt $((2*ENTRIES_TOT+LINES_V6)) ]; then
+ egrep -v "^fc00::/7" /tmp/bogonsv6 > /etc/bogonsv6
+ echo "Bogons V6 file downloaded but not updating IPv6 bogons table because IPv6 Allow is off" | logger
+ else
+ echo "Not saving IPv6 bogons table (IPv6 Allow is off and table-entries limit is potentially too low)" | logger
+ fi
+ fi
+ rm /tmp/bogonsv6
+ else
+ 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 [ "$md5_error" != "" ];then
+if [ "$checksum_error" != "" ]; then
# Relaunch and sleep
sh /etc/rc.update_bogons.sh &
exit
diff --git a/etc/skel/dot.tcshrc b/etc/skel/dot.tcshrc
index 97ca003..3c777d3 100644
--- a/etc/skel/dot.tcshrc
+++ b/etc/skel/dot.tcshrc
@@ -3,3 +3,19 @@ set autologout="0"
set autolist set color set colorcat
setenv CLICOLOR "true"
setenv LSCOLORS "exfxcxdxbxegedabagacad"
+if ($term == "xterm" || $term == "vt100" || $term == "vt102" || $term == "vt220" || $term !~ "con*") then
+ bindkey "\e[2~" overwrite-mode # Ins
+ bindkey "\e[3~" delete-char # Del
+
+ bindkey "\e[1~" beginning-of-line # Home vt
+ bindkey "\e[4~" end-of-line # End vt
+
+ bindkey "\eOH" beginning-of-line # Home vt220
+ bindkey "\eOF" end-of-line # End vt220
+
+ bindkey "\e[H" beginning-of-line # Home kvt
+ bindkey "\e[F" end-of-line # End kvt
+
+ bindkey "\e[7~" beginning-of-line # Home rxvt/konsole
+ bindkey "\e[8~" end-of-line # End rxvt/konsole
+endif \ No newline at end of file
diff --git a/etc/version b/etc/version
index a5b46a1..80d4228 100644
--- a/etc/version
+++ b/etc/version
@@ -1 +1 @@
-2.1-BETA0
+2.1-BETA1
diff --git a/root/.tcshrc b/root/.tcshrc
index 97ca003..3c777d3 100644
--- a/root/.tcshrc
+++ b/root/.tcshrc
@@ -3,3 +3,19 @@ set autologout="0"
set autolist set color set colorcat
setenv CLICOLOR "true"
setenv LSCOLORS "exfxcxdxbxegedabagacad"
+if ($term == "xterm" || $term == "vt100" || $term == "vt102" || $term == "vt220" || $term !~ "con*") then
+ bindkey "\e[2~" overwrite-mode # Ins
+ bindkey "\e[3~" delete-char # Del
+
+ bindkey "\e[1~" beginning-of-line # Home vt
+ bindkey "\e[4~" end-of-line # End vt
+
+ bindkey "\eOH" beginning-of-line # Home vt220
+ bindkey "\eOF" end-of-line # End vt220
+
+ bindkey "\e[H" beginning-of-line # Home kvt
+ bindkey "\e[F" end-of-line # End kvt
+
+ bindkey "\e[7~" beginning-of-line # Home rxvt/konsole
+ bindkey "\e[8~" end-of-line # End rxvt/konsole
+endif \ No newline at end of file
diff --git a/sbin/dhclient-script b/sbin/dhclient-script
index 21bb473..26b13de 100755
--- a/sbin/dhclient-script
+++ b/sbin/dhclient-script
@@ -66,8 +66,7 @@ delete_old_states() {
$LOGGER "Comparing IPs: Old: ${OLD_IP} New: ${new_ip_address}"
if [ -n "${OLD_IP}" ] && [ "${OLD_IP}" != "${new_ip_address}" ]; then
$LOGGER "Removing states from old IP '${OLD_IP}' (new IP '${new_ip_address}')"
- /sbin/pfctl -k 0.0.0.0/0 -k ${OLD_IP}/32
- /sbin/pfctl -k ${OLD_IP}/32
+ /sbin/pfctl -i $interface -Fs
pfctl -K ${OLD_IP}/32
fi
fi
@@ -78,11 +77,11 @@ delete_old_states() {
if [ -z "${OLD_ROUTER}" ] && [ -f /tmp/${interface}_router ]; then
OLD_ROUTER = `cat /tmp/${interface}_router`
fi
- if [ -n $OLD_ROUTER ]; then
+ if [ -n "${OLD_ROUTER}" ]; then
$LOGGER "Comparing Routers: Old: ${OLD_ROUTER} New: ${new_routers}"
if [ "${OLD_ROUTER}" != "${new_routers}" ]; then
$LOGGER "Removing states through old gateway '${OLD_ROUTER}' (new gateway '${new_routers}')"
- /sbin/pfctl -b 0.0.0.0/32 -b ${OLD_ROUTER}/32
+ /sbin/pfctl -i $interface -Fs -G ${OLD_ROUTER}
fi
fi
}
diff --git a/sbin/dhclient6-script b/sbin/dhclient6-script
deleted file mode 100755
index f0f2ffa..0000000
--- a/sbin/dhclient6-script
+++ /dev/null
@@ -1,244 +0,0 @@
-#!/bin/sh
-# $Id$
-# $OpenBSD: dhclient-script,v 1.6 2004/05/06 18:22:41 claudio Exp $
-# $FreeBSD: src/sbin/dhclient/dhclient-script,v 1.4 2005/06/10 03:41:18 brooks Exp $
-#
-# Copyright (c) 2003 Kenneth R Westerback <krw@openbsd.org>
-#
-# Permission to use, copy, modify, and distribute this software for any
-# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-#
-
-NETSTAT=/usr/bin/netstat
-GREP=/usr/bin/grep
-AWK=/usr/bin/awk
-HOSTNAME=/bin/hostname
-GREP=/usr/bin/grep
-ROUTE=/sbin/route
-SED=/usr/bin/sed
-ARP=/usr/sbin/arp
-IFCONFIG=/sbin/ifconfig
-
-LOCALHOST=::1
-
-if [ -x /usr/bin/logger ]; then
- LOGGER="/usr/bin/logger -s -p user.notice -t dhclient6"
-else
- LOGGER=echo
-fi
-
-#
-# Helper functions that implement common actions.
-#
-
-check_hostname() {
- current_hostname=`$HOSTNAME`
- if [ -z "$current_hostname" ]; then
- $LOGGER "New Hostname ($interface): $new_host_name"
- $HOSTNAME $new_host_name
- elif [ "$current_hostname" = "$old_host_name" -a \
- "$new_host_name" != "$old_host_name" ]; then
- $LOGGER "New Hostname ($interface): $new_host_name"
- $HOSTNAME $new_host_name
- fi
-}
-
-delete_old_states() {
- $LOGGER "Starting delete_old_states()"
- # If the IP changed, remove states from the old one
- if [ -f /var/db/${interface}_ipv6 ]; then
- OLD_IPv6 = `cat /var/db/${interface}_ipv6`
- $LOGGER "Comparing IPv6s: Old: ${OLD_IPv6} New: ${new_ip6_address}"
- if [ -n "${OLD_IPv6}" ] && [ "${OLD_IPv6}" != "${new_ip6_address}" ]; then
- $LOGGER "Removing states from old IPv6 '${OLD_IPv6}' (new IP '${new_ip6_address}')"
- /sbin/pfctl -k :: -k ${OLD_IPv6}/128
- /sbin/pfctl -k ${OLD_IPv6}/128
- pfctl -K ${OLD_IPv6}/128
- fi
- fi
- # Delete states through old gateway if it's not the same
- # FIXME: dhcp6 doesn't know about routers. Needs fixing elsewhere.
-}
-
-delete_old_address() {
- /bin/rm -f /var/db/${interface}_ipv6
- $IFCONFIG $interface inet6 -alias $old_ip6_address
-}
-
-add_new_address() {
- if [ -z $new_ip6_address ]; then
- return;
- fi
-
- $LOGGER "Starting add_new_address()"
- $LOGGER "ifconfig $interface inet6 $new_ip6_address prefixlen $new_ip6_prefixlen"
- $IFCONFIG $interface \
- inet6 $new_ip6_address \
- prefixlen $new_ip6_prefixlen
-
- $LOGGER "New IPv6 Address ($interface): $new_ip6_address"
- $LOGGER "New Prefix Length ($interface): $new_ip6_prefixlen"
-
- echo $new_ip6_address > /var/db/${interface}_ipv6
-}
-
-add_new_prefix() {
- if [ -z $new_ip6_prefix ]; then
- return
- fi
- $LOGGER "Starting add_new_prefix()"
- echo $new_ip6_prefix > /var/db/${interface}_pd_ipv6
-}
-
-delete_old_prefix() {
- if [ -z $old_ip6_prefix ]; then
- return
- fi
- $LOGGER "Starting delete_old_prefix()"
- rm -f /var/db/${interface}_pd_ipv6
-}
-
-delete_old_alias() {
- if [ -n "$alias_ip6_address" ]; then
- $IFCONFIG $interface inet6 -alias $alias_ip6_address > /dev/null 2>&1
- $ROUTE delete -inet6 $alias_ip6_address $LOCALHOST > /dev/null 2>&1
- fi
-}
-
-add_new_alias() {
- if [ -n "$alias_ip6_address" ]; then
- $IFCONFIG $interface inet6 alias $alias_ip6_address prefixlen $new_ip6_prefixlen
- $ROUTE add -inet6 $alias_ip6_address $LOCALHOST
- fi
-}
-
-add_new_resolv_conf() {
- $LOGGER "Creating resolv.conf"
- if [ -f "/var/etc/nameserver_v6$interface" ]; then
- # Remove old entries
- for nameserver in `cat /var/etc/nameserver_v6$interface`; do
- $ROUTE delete -inet6 $nameserver >/dev/null 2>&1
- done
- fi
- if [ -n "$new_dhcp6_name_servers" ]; then
- /bin/rm -f /var/etc/nameserver_v6$interface
- ALLOWOVERRIDE=`/usr/bin/grep dnsallowoverride /conf/config.xml | /usr/bin/wc -l`
- for nameserver in $new_dhcp6_name_servers; do
- # Add a route to the nameserver out the correct interface
- # so that mulitple wans work correctly with multiple dns
- # also backup the nameserver for later route removal
- if [ $ALLOWOVERRIDE -gt 0 ]; then
- echo $nameserver >>/var/etc/nameserver_v6$interface
- $ROUTE add -inet6 $nameserver -iface $interface
- fi
- done
- echo $new_dhcp6_domain_search >/var/etc/searchdomain_v6$interface
- fi
-
- return 0
-}
-
-# Notify rc.newwanip of changes to an interface
-notify_rc_newwanipv6() {
- /etc/rc.newwanipv6 $interface
- # /usr/local/sbin/pfSctl -c "interface newipv6 $interface"
-}
-
-#
-# Start of active code.
-#
-
-# Invoke the local dhcp client enter hooks, if they exist.
-if [ -f /etc/dhclient-enter-hooks ]; then
- $LOGGER "dhclient-enter-hooks"
- exit_status=0
- . /etc/dhclient-enter-hooks
- # allow the local script to abort processing of this state
- # local script must set exit_status variable to nonzero.
- if [ $exit_status -ne 0 ]; then
- exit $exit_status
- fi
-fi
-
-$LOGGER $reason
-case $reason in
-PREINIT6)
- delete_old_alias
- delete_old_prefix
- $IFCONFIG $interface inet6 up
- delete_old_states
- ;;
-
-BOUND6|RENEW6|REBIND6|REBOOT6)
-
- set
- check_hostname
- changes="no"
- if [ "$old_ip6_address" != "$new_ip6_address" ]; then
- delete_old_states
- fi
- if [ -n "$old_ip6_address" ]; then
- if [ "$old_ip6_address" != "$alias_ip6_address" ]; then
- delete_old_alias
- changes="yes"
- fi
- fi
- if [ "$old_ip6_prefix" != "$new_ip6_prefix" ]; then
- delete_old_prefix
- changes="yes"
- fi
- if [ "$reason" = BOUND6 ] || \
- [ "$reason" = REBOOT6 ] || \
- [ "$reason" = REBIND6 ] || \
- [ -z "$old_ip6_address" ] || \
- [ "$old_ip6_address" || "$new_ip6_address" ]; then
- add_new_address
- add_new_prefix
- changes="yes"
- fi
- if [ -n "$alias_ip6_address" ] && \
- [ "$new_ip6_address" != "$alias_ip6_address" ]; then
- add_new_alias
- changes="yes"
- fi
- add_new_resolv_conf
- if [ "$changes" = "yes" ] ; then
- notify_rc_newwanipv6
- fi
- ;;
-
-EXPIRE6|FAIL6)
- delete_old_alias
- delete_old_states
- if [ -n "$old_ip6_address" ]; then
- delete_old_address
- fi
- ;;
-
-TIMEOUT6)
- delete_old_alias
- add_new_address
- /bin/sleep 1
- $IFCONFIG $interface inet6 -alias $new_ip6_address $medium
- delete_old_states
- ;;
-esac
-
-# Invoke the local dhcp client exit hooks, if they exist.
-if [ -f /etc/dhclient-exit-hooks ]; then
- $LOGGER "dhclient-exit-hooks"
- exit_status=0
- . /etc/dhclient-exit-hooks
- # allow the local script to abort processing of this state
- # local script must set exit_status variable to nonzero.
- exit $exit_status
-fi
diff --git a/tmp/post_upgrade_command b/tmp/post_upgrade_command
index 634afb0..9e3dc2d 100755
--- a/tmp/post_upgrade_command
+++ b/tmp/post_upgrade_command
@@ -30,7 +30,11 @@ case "$OLDKERNEL" in
KERNELTYPE=SMP
;;
*)
- KERNELTYPE=SMP
+ if [ "${PFSENSETYPE}" = "pfSense" ]; then
+ KERNELTYPE=SMP
+ elif [ "${PFSENSETYPE}" = "nanobsd" ]; then
+ KERNELTYPE=WRAP
+ fi
;;
esac
diff --git a/usr/local/bin/captiveportal_gather_stats.php b/usr/local/bin/captiveportal_gather_stats.php
index 823b28f..63d91a2 100644
--- a/usr/local/bin/captiveportal_gather_stats.php
+++ b/usr/local/bin/captiveportal_gather_stats.php
@@ -32,6 +32,11 @@ require_once("functions.inc");
require_once("captiveportal.inc");
require_once("util.inc");
+global $cpzone;
+
+$cpzone = $argv[1];
+$type = $argv[2];
+
/* read in captive portal db */
$cpdb = captiveportal_read_db();
@@ -45,8 +50,6 @@ $current_user_count = 0;
/* tmp file to use to store old data (per interface)*/
$tmpfile = "{$g['vardb_path']}/captiveportal_online_users";
-$type = $argv[1];
-
if(empty($type))
exit;
@@ -56,9 +59,9 @@ echo "N:";
if ($type == "loggedin") {
/* Find out the previous user timestamp
- * so we can determine the difference between the current
- * and previous user count. If the file is empty return a 0.
- */
+ * so we can determine the difference between the current
+ * and previous user count. If the file is empty return a 0.
+ */
$fd = @fopen($tmpfile, "r");
if ($fd) {
while (!feof($fd)) {
@@ -67,21 +70,20 @@ if ($type == "loggedin") {
$previous_user_timestamp = $line;
else
$previous_user_timestamp = 0;
- }
+ }
} else {
$previous_user_timestamp = 0;
}
@fclose($fd);
-
foreach($cpdb as $user) {
- $user_ip = $user[2];
+ $user_ip = $user[2];
// Record the timestamp
$timestamp = $user[0];
if ($timestamp > $previous_user_timestamp)
$current_user_count = $current_user_count + 1;
}
-
+
// Write out the latest timestamp but not if it is empty
if (!empty($timestamp)) {
$fd = @fopen($tmpfile, "w");
@@ -90,9 +92,9 @@ if ($type == "loggedin") {
}
@fclose($fd);
}
-
- /* If $timestamp is less than or equal to previous_user_timestamp return 0,
- * as we only want the 'X' number of users logged in since last RRD poll.
+
+ /* If $timestamp is less than or equal to previous_user_timestamp return 0,
+ * as we only want the 'X' number of users logged in since last RRD poll.
*/
if($timestamp <= $previous_user_timestamp)
$result = 0;
@@ -102,7 +104,6 @@ if ($type == "loggedin") {
} else
$result = $no_users;
-
echo "$result";
-
-?> \ No newline at end of file
+
+?>
diff --git a/usr/local/captiveportal/index.php b/usr/local/captiveportal/index.php
index d325835..63b4280 100755
--- a/usr/local/captiveportal/index.php
+++ b/usr/local/captiveportal/index.php
@@ -1,32 +1,32 @@
<?php
/*
- $Id$
- part of m0n0wall (http://m0n0.ch/wall)
-
- Copyrigth (C) 2009 Ermal Luçi
- Copyright (C) 2003-2006 Manuel Kasper <mk@neon1.net>.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
+ $Id$
+ part of m0n0wall (http://m0n0.ch/wall)
+
+ Copyrigth (C) 2009 Ermal Luçi
+ Copyright (C) 2003-2006 Manuel Kasper <mk@neon1.net>.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
*/
/*
pfSense_MODULE: captiveportal
@@ -44,8 +44,16 @@ header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Connection: close");
+global $cpzone;
+
$cpzone = $_REQUEST['zone'];
$cpcfg = $config['captiveportal'][$cpzone];
+if (empty($cpcfg)) {
+ log_error("Submission to captiveportal with unkown parameter zone: " . htmlspecialchars($cpzone));
+ portal_reply_page($redirurl, "error", $errormsg);
+ ob_flush();
+ return;
+}
$orig_host = $_ENV['HTTP_HOST'];
/* NOTE: IE 8/9 is buggy and that is why this is needed */
@@ -57,60 +65,51 @@ if (!$clientip) {
log_error("Captive portal could not determine client's IP address.");
$error_message = "An error occurred. Please check the system logs for more information.";
portal_reply_page($redirurl, "error", $errormsg);
- exit;
-}
-
-$listenporthttps = $cpcfg['listenporthttps'] ? $cpcfg['listenporthttps'] : ($cpcfg['zoneid'] + 1);
-$listenporthttp = $cpcfg['listenporthttp'] ? $cpcfg['listenporthttp'] : $cpcfg['zoneid'];
-
-if (isset($config['captiveportal'][$cpzone]['httpslogin']))
- $ourhostname = $config['captiveportal'][$cpzone]['httpsname'] . ":" . $listenporthttps;
-else {
- $ifip = portal_ip_from_client_ip($clientip);
- if (!$ifip)
- $ourhostname = "{$config['system']['hostname']}.{$config['system']['domain']}:{$listenporthttp}";
- else
- $ourhostname = "{$ifip}:{$listenporthttp}";
+ ob_flush();
+ return;
}
+$ourhostname = portal_hostname_from_client_ip($clientip);
if ($orig_host != $ourhostname) {
- /* the client thinks it's connected to the desired web server, but instead
- it's connected to us. Issue a redirect... */
+ /* the client thinks it's connected to the desired web server, but instead
+ it's connected to us. Issue a redirect... */
+ $protocol = (isset($cpcfg['httpslogin'])) ? 'https://' : 'http://';
+ header("Location: {$protocol}{$ourhostname}/index.php?zone={$cpzone}&redirurl=" . urlencode("http://{$orig_host}/{$orig_request}"));
- if (isset($config['captiveportal'][$cpzone]['httpslogin']))
- header("Location: https://{$ourhostname}/index.php?zone={$cpzone}&redirurl=" . urlencode("http://{$orig_host}{$orig_request}"));
- else
- header("Location: http://{$ourhostname}/index.php?zone={$cpzone}&redirurl=" . urlencode("http://{$orig_host}{$orig_request}"));
-
- exit;
+ ob_flush();
+ return;
}
-if (!empty($config['captiveportal'][$cpzone]['redirurl']))
- $redirurl = $config['captiveportal'][$cpzone]['redirurl'];
+
+if (!empty($cpcfg['redirurl']))
+ $redirurl = $cpcfg['redirurl'];
else if (preg_match("/redirurl=(.*)/", $orig_request, $matches))
$redirurl = urldecode($matches[1]);
else if ($_REQUEST['redirurl'])
$redirurl = $_REQUEST['redirurl'];
-$macfilter = !isset($config['captiveportal'][$cpzone]['nomacfilter']);
-$passthrumac = isset($config['captiveportal'][$cpzone]['passthrumacadd']);
+$macfilter = !isset($cpcfg['nomacfilter']);
+$passthrumac = isset($cpcfg['passthrumacadd']);
/* find MAC address for client */
if ($macfilter || $passthrumac) {
- $clientmac = arp_get_mac_by_ip($clientip);
- if (!$clientmac) {
- /* unable to find MAC address - shouldn't happen! - bail out */
- captiveportal_logportalauth("unauthenticated","noclientmac",$clientip,"ERROR");
- echo "An error occurred. Please check the system logs for more information.";
- log_error("Captive portal could not determine client's MAC address. Disable MAC address filtering in captive portal if you do not need this functionality.");
- exit;
+ $tmpres = pfSense_ip_to_mac($clientip);
+ if (!is_array($tmpres)) {
+ /* unable to find MAC address - shouldn't happen! - bail out */
+ captiveportal_logportalauth("unauthenticated","noclientmac",$clientip,"ERROR");
+ echo "An error occurred. Please check the system logs for more information.";
+ log_error("Captive portal could not determine client's MAC address. Disable MAC address filtering in captive portal if you do not need this functionality.");
+ ob_flush();
+ return;
}
+ $clientmac = $tmpres['macaddr'];
+ unset($tmpres);
}
/* find out if we need RADIUS + RADIUSMAC or not */
if (file_exists("{$g['vardb_path']}/captiveportal_radius_{$cpzone}.db")) {
- $radius_enable = TRUE;
- if (isset($config['captiveportal'][$cpzone]['radmac_enable']))
- $radmac_enable = TRUE;
+ $radius_enable = TRUE;
+ if (isset($cpcfg['radmac_enable']))
+ $radmac_enable = TRUE;
}
/* find radius context */
@@ -136,102 +135,101 @@ setTimeout('window.close();',5000) ;
EOD;
captiveportal_disconnect_client($_POST['logout_id']);
- exit;
+
} else if ($clientmac && $radmac_enable && portal_mac_radius($clientmac,$clientip, $radiusctx)) {
- /* radius functions handle everything so we exit here since we're done */
- exit;
+ /* radius functions handle everything so we exit here since we're done */
} else if (portal_consume_passthrough_credit($clientmac)) {
- /* allow the client through if it had a pass-through credit for its MAC */
- captiveportal_logportalauth("unauthenticated",$clientmac,$clientip,"ACCEPT");
- portal_allow($clientip, $clientmac, "unauthenticated");
+ /* allow the client through if it had a pass-through credit for its MAC */
+ captiveportal_logportalauth("unauthenticated",$clientmac,$clientip,"ACCEPT");
+ portal_allow($clientip, $clientmac, "unauthenticated");
} else if (isset($config['voucher'][$cpzone]['enable']) && $_POST['accept'] && $_POST['auth_voucher']) {
-
- $voucher = trim($_POST['auth_voucher']);
- $timecredit = voucher_auth($voucher);
- // $timecredit contains either a credit in minutes or an error message
- if ($timecredit > 0) { // voucher is valid. Remaining minutes returned
- // if multiple vouchers given, use the first as username
- $a_vouchers = preg_split("/[\t\n\r ]+/s",$voucher);
- $voucher = $a_vouchers[0];
- $attr = array( 'voucher' => 1,
- 'session_timeout' => $timecredit*60,
- 'session_terminate_time' => 0);
- if (portal_allow($clientip, $clientmac,$voucher,null,$attr)) {
-
- // YES: user is good for $timecredit minutes.
- captiveportal_logportalauth($voucher,$clientmac,$clientip,"Voucher login good for $timecredit min.");
- } else {
- portal_reply_page($redirurl, "error", $config['voucher'][$cpzone]['msgexpired'] ? $config['voucher'][$cpzone]['msgexpired']: $errormsg);
- }
- } else if (-1 == $timecredit) { // valid but expired
- captiveportal_logportalauth($voucher,$clientmac,$clientip,"FAILURE","voucher expired");
- portal_reply_page($redirurl, "error", $config['voucher'][$cpzone]['msgexpired'] ? $config['voucher'][$cpzone]['msgexpired']: $errormsg);
- } else {
- captiveportal_logportalauth($voucher,$clientmac,$clientip,"FAILURE");
- portal_reply_page($redirurl, "error", $config['voucher'][$cpzone]['msgnoaccess'] ? $config['voucher'][$cpzone]['msgnoaccess'] : $errormsg);
- }
-
-} else if ($_POST['accept'] && $radius_enable) {
-
- if (($_POST['auth_user'] && $_POST['auth_pass']) || ($_POST['auth_user2'] && $_POST['auth_pass2'])) {
- if (!empty($_POST['auth_user'])) {
- $user = $_POST['auth_user'];
- $paswd = $_POST['auth_pass'];
- } else if (!empty($_POST['auth_user2'])) {
- $user = $_POST['auth_user2'];
- $paswd = $_POST['auth_pass2'];
- }
- $auth_list = radius($user,$paswd,$clientip,$clientmac,"USER LOGIN", $radiusctx);
- $type = "error";
- if (!empty($auth_list['url_redirection'])) {
- $redirurl = $auth_list['url_redirection'];
- $type = "redir";
+ $voucher = trim($_POST['auth_voucher']);
+ $timecredit = voucher_auth($voucher);
+ // $timecredit contains either a credit in minutes or an error message
+ if ($timecredit > 0) { // voucher is valid. Remaining minutes returned
+ // if multiple vouchers given, use the first as username
+ $a_vouchers = preg_split("/[\t\n\r ]+/s",$voucher);
+ $voucher = $a_vouchers[0];
+ $attr = array( 'voucher' => 1,
+ 'session_timeout' => $timecredit*60,
+ 'session_terminate_time' => 0);
+ if (portal_allow($clientip, $clientmac,$voucher,null,$attr)) {
+ // YES: user is good for $timecredit minutes.
+ captiveportal_logportalauth($voucher,$clientmac,$clientip,"Voucher login good for $timecredit min.");
+ } else {
+ portal_reply_page($redirurl, "error", $config['voucher'][$cpzone]['msgexpired'] ? $config['voucher'][$cpzone]['msgexpired']: $errormsg);
+ }
+ } else if (-1 == $timecredit) { // valid but expired
+ captiveportal_logportalauth($voucher,$clientmac,$clientip,"FAILURE","voucher expired");
+ portal_reply_page($redirurl, "error", $config['voucher'][$cpzone]['msgexpired'] ? $config['voucher'][$cpzone]['msgexpired']: $errormsg);
+ } else {
+ captiveportal_logportalauth($voucher,$clientmac,$clientip,"FAILURE");
+ portal_reply_page($redirurl, "error", $config['voucher'][$cpzone]['msgnoaccess'] ? $config['voucher'][$cpzone]['msgnoaccess'] : $errormsg);
}
- if ($auth_list['auth_val'] == 1) {
- captiveportal_logportalauth($user,$clientmac,$clientip,"ERROR",$auth_list['error']);
- portal_reply_page($redirurl, $type, $auth_list['error'] ? $auth_list['error'] : $errormsg);
- }
- else if ($auth_list['auth_val'] == 3) {
- captiveportal_logportalauth($user,$clientmac,$clientip,"FAILURE",$auth_list['reply_message']);
- portal_reply_page($redirurl, $type, $auth_list['reply_message'] ? $auth_list['reply_message'] : $errormsg);
- }
- } else {
- if (!empty($_POST['auth_user']))
- $user = $_POST['auth_user'];
- else if (!empty($_POST['auth_user2']))
- $user = $_POST['auth_user2'];
- else
- $user = 'unknown';
- captiveportal_logportalauth($user ,$clientmac,$clientip,"ERROR");
- portal_reply_page($redirurl, "error", $errormsg);
- }
-
-} else if ($_POST['accept'] && $config['captiveportal'][$cpzone]['auth_method'] == "local") {
-
- if ($_POST['auth_user'] && $_POST['auth_pass']) {
- //check against local user manager
- $loginok = local_backed($_POST['auth_user'], $_POST['auth_pass']);
- if ($loginok){
- captiveportal_logportalauth($_POST['auth_user'],$clientmac,$clientip,"LOGIN");
- portal_allow($clientip, $clientmac,$_POST['auth_user']);
+} else if ($_POST['accept'] && $radius_enable) {
+ if (($_POST['auth_user'] && isset($_POST['auth_pass'])) || ($_POST['auth_user2'] && isset($_POST['auth_pass2']))) {
+ if (!empty($_POST['auth_user'])) {
+ $user = $_POST['auth_user'];
+ $paswd = $_POST['auth_pass'];
+ } else if (!empty($_POST['auth_user2'])) {
+ $user = $_POST['auth_user2'];
+ $paswd = $_POST['auth_pass2'];
+ }
+ $auth_list = radius($user,$paswd,$clientip,$clientmac,"USER LOGIN", $radiusctx);
+ $type = "error";
+ if (!empty($auth_list['url_redirection'])) {
+ $redirurl = $auth_list['url_redirection'];
+ $type = "redir";
+ }
+
+ if ($auth_list['auth_val'] == 1) {
+ captiveportal_logportalauth($user,$clientmac,$clientip,"ERROR",$auth_list['error']);
+ portal_reply_page($redirurl, $type, $auth_list['error'] ? $auth_list['error'] : $errormsg);
+ } else if ($auth_list['auth_val'] == 3) {
+ captiveportal_logportalauth($user,$clientmac,$clientip,"FAILURE",$auth_list['reply_message']);
+ portal_reply_page($redirurl, $type, $auth_list['reply_message'] ? $auth_list['reply_message'] : $errormsg);
+ }
} else {
- captiveportal_logportalauth($_POST['auth_user'],$clientmac,$clientip,"FAILURE");
+ if (!empty($_POST['auth_user']))
+ $user = $_POST['auth_user'];
+ else if (!empty($_POST['auth_user2']))
+ $user = $_POST['auth_user2'];
+ else
+ $user = 'unknown';
+ captiveportal_logportalauth($user ,$clientmac,$clientip,"ERROR");
portal_reply_page($redirurl, "error", $errormsg);
}
- } else
- portal_reply_page($redirurl, "error", $errormsg);
-} else if ($_POST['accept'] && $clientip && $config['captiveportal'][$cpzone]['auth_method'] == "none") {
- captiveportal_logportalauth("unauthenticated",$clientmac,$clientip,"ACCEPT");
- portal_allow($clientip, $clientmac, "unauthenticated");
+
+} else if ($_POST['accept'] && $cpcfg['auth_method'] == "local") {
+ if ($_POST['auth_user'] && $_POST['auth_pass']) {
+ //check against local user manager
+ $loginok = local_backed($_POST['auth_user'], $_POST['auth_pass']);
+
+ if ($loginok && isset($cpcfg['localauth_priv']))
+ $loginok = userHasPrivilege(getUserEntry($_POST['auth_user']), "user-services-captiveportal-login");
+
+ if ($loginok){
+ captiveportal_logportalauth($_POST['auth_user'],$clientmac,$clientip,"LOGIN");
+ portal_allow($clientip, $clientmac,$_POST['auth_user']);
+ } else {
+ captiveportal_logportalauth($_POST['auth_user'],$clientmac,$clientip,"FAILURE");
+ portal_reply_page($redirurl, "error", $errormsg);
+ }
+ } else
+ portal_reply_page($redirurl, "error", $errormsg);
+
+} else if ($_POST['accept'] && $clientip && $cpcfg['auth_method'] == "none") {
+ captiveportal_logportalauth("unauthenticated",$clientmac,$clientip,"ACCEPT");
+ portal_allow($clientip, $clientmac, "unauthenticated");
+
} else {
- /* display captive portal page */
- portal_reply_page($redirurl, "login",null,$clientmac,$clientip);
+ /* display captive portal page */
+ portal_reply_page($redirurl, "login",null,$clientmac,$clientip);
}
-exit;
-
+ob_flush();
?>
diff --git a/usr/local/captiveportal/radius_accounting.inc b/usr/local/captiveportal/radius_accounting.inc
index b0ae2f5..e43a188 100644
--- a/usr/local/captiveportal/radius_accounting.inc
+++ b/usr/local/captiveportal/radius_accounting.inc
@@ -150,7 +150,6 @@ function RADIUS_ACCOUNTING_START($ruleno, $username, $sessionid, $radiusservers,
*/
// Default attributes
- $racct->putAttribute(RADIUS_SERVICE_TYPE, RADIUS_LOGIN);
$racct->putAttribute(RADIUS_NAS_PORT_TYPE, RADIUS_ETHERNET);
$racct->putAttribute(RADIUS_NAS_PORT, $nas_port, 'integer');
$racct->putAttribute(RADIUS_ACCT_SESSION_ID, $sessionid);
@@ -180,6 +179,7 @@ function RADIUS_ACCOUNTING_START($ruleno, $username, $sessionid, $radiusservers,
// close OO RADIUS_ACCOUNTING
$racct->close();
+ unset($racct);
return $retvalue ;
@@ -258,7 +258,6 @@ function RADIUS_ACCOUNTING_STOP($ruleno,$username,$sessionid,$start_time,$radius
define("RADIUS_ACCT_OUTPUT_GIGAWORDS", "53");
// Default attributes
- $racct->putAttribute(RADIUS_SERVICE_TYPE, RADIUS_LOGIN);
$racct->putAttribute(RADIUS_NAS_PORT_TYPE, RADIUS_ETHERNET);
$racct->putAttribute(RADIUS_NAS_PORT, $nas_port, 'integer');
$racct->putAttribute(RADIUS_ACCT_SESSION_ID, $sessionid);
diff --git a/usr/local/captiveportal/radius_authentication.inc b/usr/local/captiveportal/radius_authentication.inc
index df9a368..8727815 100644
--- a/usr/local/captiveportal/radius_authentication.inc
+++ b/usr/local/captiveportal/radius_authentication.inc
@@ -85,7 +85,8 @@ function RADIUS_AUTHENTICATION($username,$password,$radiusservers,$clientip,$cli
$radiusvendor = $config['captiveportal'][$cpzone]['radiusvendor'] ? $config['captiveportal'][$cpzone]['radiusvendor'] : null;
$radius_protocol = $config['captiveportal'][$cpzone]['radius_protocol'];
// Do we even need to set it to NULL?
- $retvalue['error'] = $retvalue['reply_message'] = $retvalue['url_redirection'] = $retvalue['session_timeout'] = $retvalue['idle_timeout'] = $retvalue['session_terminate_time'] = null;
+ $retvalue['error'] = $retvalue['reply_message'] = $retvalue['url_redirection'] = $retvalue['session_timeout'] = null;
+ $retvalue['idle_timeout'] = $retvalue['session_terminate_time'] = $retvalue['interim_interval'] = null;
switch($radiusvendor) {
@@ -204,6 +205,7 @@ function RADIUS_AUTHENTICATION($username,$password,$radiusservers,$clientip,$cli
// close OO RADIUS_AUTHENTICATION
$rauth->close();
+ unset($rauth);
return $retvalue;
diff --git a/usr/local/openssl/openssl.cnf b/usr/local/openssl/openssl.cnf
new file mode 120000
index 0000000..f95d25b
--- /dev/null
+++ b/usr/local/openssl/openssl.cnf
@@ -0,0 +1 @@
+../../../etc/ssl/openssl.cnf \ No newline at end of file
diff --git a/usr/local/pkg/miniupnpd.inc b/usr/local/pkg/miniupnpd.inc
index ed46dbe..92c0ab0 100644
--- a/usr/local/pkg/miniupnpd.inc
+++ b/usr/local/pkg/miniupnpd.inc
@@ -138,9 +138,10 @@
/* above function returns iface if fail */
if($if!=$iface) {
$addr = find_interface_ip($if);
+ $bits = find_interface_subnet($if);
/* check that the interface has an ip address before adding parameters */
if (is_ipaddr($addr)) {
- $config_text .= "listening_ip={$if}\n";
+ $config_text .= "listening_ip={$addr}/{$bits}\n";
if(!$ifaces_active) {
$webgui_ip = $addr;
$ifaces_active = $iface;
diff --git a/usr/local/pkg/routed.inc b/usr/local/pkg/routed.inc
deleted file mode 100644
index 15b3181..0000000
--- a/usr/local/pkg/routed.inc
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-/* $Id$ */
-/*
- routed.inc
- Copyright (C) 2006 Bill Marquette
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
-*/
-
-$shortcut_section = "routed";
-
-function setup_routed() {
- global $config;
- $gw = "";
-
- if (!is_array($config['installedpackages']['routed']))
- return;
- if (!is_array($config['installedpackages']['routed']['config']))
- return;
- if (isset($config['installedpackages']['routed']['config'][0]['enable']) &&
- $config['installedpackages']['routed']['config'][0]['enable'] == "on") {
- /* if user selected individual interfaces */
- $ifarr = array_flip(explode(",", $config['installedpackages']['routed']['config'][0]['iface_array']));
- $allifs = get_interface_arr();
- if (!empty($ifarr)) {
- foreach($allifs as $ifname) {
- $friendly_ifname = convert_real_interface_to_friendly_interface_name($ifname);
- if (array_key_exists($friendly_ifname, $ifarr))
- $gw .= setup_etc_gateways($ifname, 'enable');
- else
- $gw .= setup_etc_gateways($ifname, 'disable');
- }
- } else
- /* setup for all interfaces */
- $gw = setup_etc_gateways();
- conf_mount_rw();
- file_put_contents("/etc/gateways", $gw);
- conf_mount_ro();
- restart_routed();
- } else
- stop_routed();
-}
-
-function setup_etc_gateways($iface="", $mode="") {
- global $config;
-
- $ret = "";
- if ($iface != "") {
- $realif=convert_friendly_interface_to_real_interface_name($iface);
- if (!empty($realif))
- $ret = "if={$realif} ";
- }
-
- switch($mode) {
- case "enable":
- if ($config['installedpackages']['routed']['config'][0]['ripversion'] == "2") {
- $ret .= "ripv2 ";
- $passwd = $config['installedpackages']['routed']['config'][0]['passwd'];
- if ($passwd != "") {
- $ret .= "passwd={$passwd} ";
- }
- $add_no_ag = $config['installedpackages']['routed']['config'][0]['enable_no_ag'];
- $add_no_super_ag = $config['installedpackages']['routed']['config'][0]['enable_no_super_ag'];
- if($add_no_ag == "on") {
- $ret .= "no_ag ";
- }
- if($add_no_super_ag == "on") {
- $ret .= "no_super_ag ";
- }
- }
- break;
- case "disable":
- $ret .= "no_rip_out no_solicit no_rdisc no_rdisc_adv";
- break;
-
- default:
- break;
-
- }
- $ret .= "\n";
-
- return $ret;
-}
-
-function start_routed() {
- mwexec_bg("/sbin/routed");
-}
-
-function stop_routed() {
- killbyname("routed");
-}
-
-function restart_routed() {
- stop_routed();
- start_routed();
-}
-
-?>
diff --git a/usr/local/pkg/routed.xml b/usr/local/pkg/routed.xml
deleted file mode 100644
index 4c5137f..0000000
--- a/usr/local/pkg/routed.xml
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<packagegui>
- <copyright>
- /* $Id$ */
- /*
- part of pfSense (http://www.pfsense.org/)
-
- Copyright (C) 2006 Bill Marquette - bill.marquette@gmail.com.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
- */
- </copyright>
- <name>routed</name>
- <version>1.1</version>
- <title>Services: RIP</title>
- <include_file>routed.inc</include_file>
-
- <additional_files_needed>
- <item>http://www.pfsense.org/packages/config/routed/routed.inc</item>
- </additional_files_needed>
-
- <!-- Menu is where this packages menu will appear -->
- <menu>
- <name>RIP</name>
- <section>Services</section>
- <configfile>routed.xml</configfile>
- <url>pkg_edit.php?xml=routed.xml&amp;id=0</url>
- </menu>
- <tabs>
- <tab>
- <text>ROUTED Settings</text>
- <url>/pkg_edit.php?xml=routed.xml</url>
- <active/>
- </tab>
- </tabs>
- <!-- configpath gets expanded out automatically and config items will be
- stored in that location -->
- <configpath>['installedpackages']['routed']['config']</configpath>
- <!-- fields gets invoked when the user adds or edits a item. the following items
- will be parsed and rendered for the user as a gui with input, and selectboxes. -->
- <fields>
- <field>
- <fielddescr>Enable RIP</fielddescr>
- <fieldname>enable</fieldname>
- <description>Enables the Routing Information Protocol daemon</description>
- <type>checkbox</type>
- <enablefields>iface_array[],ripversion,passwd,enable_no_ag,enable_no_super_ag</enablefields>
- </field>
- <field>
- <fielddescr>Interfaces</fielddescr>
- <fieldname>iface_array</fieldname>
- <value>lan</value>
- <multiple>true</multiple>
- <size>3</size>
- <type>interfaces_selection</type>
- <description>Select the interfaces that RIP will bind to. You can use the CTRL or COMMAND key to select multiple interfaces.</description>
- <required />
- </field>
- <field>
- <fielddescr>RIP Version</fielddescr>
- <fieldname>ripversion</fieldname>
- <type>select</type>
- <default_value>2</default_value>
- <options>
- <option><name>RIP Version 1</name><value>1</value></option>
- <option><name>RIP Version 2</name><value>2</value></option>
- </options>
- <typehint>Select which RIP version the daemon will listen/advertise using.</typehint>
- <required />
- </field>
- <field>
- <fielddescr>RIPv2 password</fielddescr>
- <fieldname>passwd</fieldname>
- <description>Specify a RIPv2 password. This password will be sent
- in the clear on all RIPv2 responses received and sent.
- </description>
- <type>input</type>
- </field>
- <field>
- <fielddescr>no_ag</fielddescr>
- <fieldname>enable_no_ag</fieldname>
- <description>turns off aggregation of subnets in RIPv1 and RIPv2 responses.</description>
- <type>checkbox</type>
- </field>
- <field>
- <fielddescr>no_super_ag</fielddescr>
- <fieldname>enable_no_super_ag</fieldname>
- <description>turns off aggregation of networks into supernets in RIPv2 responses.</description>
- <type>checkbox</type>
- </field>
- </fields>
- <aftersaveredirect>pkg_edit.php?xml=routed.xml&amp;id=0</aftersaveredirect>
- <custom_php_command_before_form>
- </custom_php_command_before_form>
- <custom_delete_php_command>
- </custom_delete_php_command>
- <custom_php_resync_config_command>
- conf_mount_rw();
- setup_routed();
- conf_mount_ro();
- </custom_php_resync_config_command>
- <custom_php_install_command>
- </custom_php_install_command>
- <custom_php_deinstall_command>
- </custom_php_deinstall_command>
-</packagegui>
diff --git a/usr/local/sbin/ntpdate_sync_once.sh b/usr/local/sbin/ntpdate_sync_once.sh
index e899672..3809b23 100755
--- a/usr/local/sbin/ntpdate_sync_once.sh
+++ b/usr/local/sbin/ntpdate_sync_once.sh
@@ -29,7 +29,7 @@ fi
if [ -f /var/etc/ntpd.conf ]; then
echo "Starting NTP Daemon." | /usr/bin/logger -t ntp;
- /usr/local/bin/ntpd -g -c /var/etc/ntpd.conf
+ /usr/local/bin/ntpd -g -c /var/etc/ntpd.conf -p /var/run/ntpd.pid
else
echo "NTP configuration file missing, not starting daemon." | /usr/bin/logger -t ntp;
fi \ No newline at end of file
diff --git a/usr/local/sbin/ovpn-linkdown b/usr/local/sbin/ovpn-linkdown
index b300aed..708d507 100755
--- a/usr/local/sbin/ovpn-linkdown
+++ b/usr/local/sbin/ovpn-linkdown
@@ -1,5 +1,5 @@
#!/bin/sh
-# /sbin/pfctl -b $4 -b $5
+/sbin/pfctl -i $1 -Fs
# delete the node just in case mpd cannot do that
/bin/rm -f /var/etc/nameserver_$1
/bin/rm -f /tmp/$1_router
diff --git a/usr/local/sbin/pbi_create b/usr/local/sbin/pbi_create
index a23cd39..3594f67 100755
--- a/usr/local/sbin/pbi_create
+++ b/usr/local/sbin/pbi_create
@@ -60,6 +60,8 @@ Options:
-d portdir -- Use different ports dir (Default: /usr/ports)
-h script -- Call the following helper script after each build
-o outdir -- Where to place the finished PBI file(s) <required>
+ -p <num> -- Number of PBI builds to run concurrently (Defaults to 1)
+ -32 -- Build i386 PBIs on amd64 host
--genpatch -- Generate patch files (*.pbp) from archived PBIs to current
--keep <num> -- Keep <num> old versions in archive folder for each built PBI
--prune -- Remove files from 'outdir' that no longer have a module
@@ -117,6 +119,7 @@ Options:
-k -- Keep build files, don't delete when finished
-o outdir -- Where to place the finished PBI file
-p prefix -- Specify alternate PBI Compile PREFIX
+ -32 -- Build i386 PBI on amd64 host
--delbuild -- Delete existing build dirs if they exist
--mkdebug -- Drop to debug shell if port make fails
--tmpfs -- Use TMPFS for port WRKDIRPREFIX
@@ -164,6 +167,7 @@ usage: `basename $0` [options] oldpbi newpbi
Options:
-o outdir -- Save the .PBP file to outdir
+ --tmpfs -- Use TMPFS for extracting PBIs
--sign key -- Sign the PBI with specified openssl key
--no-checksig -- Ignore signature verification and force install
@@ -411,8 +415,8 @@ parse_pbid_cmdline() {
echo "Your meta and index files will begin refreshing in a moment..."
echo "Details available in /var/log/pbid.log"
rm ${PBI_DBINDEXDIR}/*.time >/dev/null 2>/dev/null
- if [ -e "/usr/local/etc/rc.d/pbid" ]; then
- /usr/local/etc/rc.d/pbid restart >/dev/null 2>/dev/null
+ if [ -e "${PROGBASE}/etc/rc.d/pbid" ]; then
+ ${PROGBASE}/etc/rc.d/pbid restart >/dev/null 2>/dev/null
fi
exit 0
;;
@@ -456,6 +460,8 @@ parse_makepatch_pbi_cmdline() {
--sign) if [ $# -eq 1 ]; then usage_makepatch_pbi; fi
shift; PBI_SSLPRIVKEY="$1"
;;
+ --tmpfs) PBI_MP_TMPFS="YES"
+ ;;
--no-checksig) PBI_SKIPSIGVERIFY="YES" ;;
*) if [ $# -gt 2 ]; then usage_makepatch_pbi; fi
PBI_OLDFILENAME="$1"
@@ -981,11 +987,24 @@ parse_autob_pbi_cmdline() {
get_abspath "$1"
PBI_AB_OUTDIR="$_ABSPATH"
;;
+ -p) if [ $# -eq 1 ]; then usage_autob_pbi; fi
+ shift
+ PBI_AB_BUILDERS="$1"
+ if [ ! $(is_num "$PBI_AB_BUILDERS") ] ; then
+ exit_err "Invalid process number specifed!"
+ fi
+ ;;
-h) if [ $# -eq 1 ]; then usage_autob_pbi; fi
shift
get_abspath "$1"
PBI_AB_HELPS="$_ABSPATH"
;;
+ -32) if [ "$REALARCH" != "amd64" ] ; then
+ exit_err "-32 can only be used on amd64 host"
+ fi
+ PBI_AB32="YES"
+ ARCH=i386
+ ;;
--genpatch) PBI_AB_GENPATCH="YES"
;;
@@ -1029,6 +1048,7 @@ parse_create_pbi_cmdline() {
if [ ! -d "${PBI_CONFDIR}" ] ; then
exit_err "Invalid confdir (${PBI_CONFDIR})"
fi
+ load_pbi_conffile
;;
-d) if [ $# -eq 1 ]; then usage_create_pbi; fi
shift; PORTSDIR="$1"
@@ -1119,6 +1139,12 @@ parse_make_pbi_cmdline() {
shift; PORTSDIR="$1" ; export PORTSDIR
;;
+ -32) if [ "$REALARCH" != "amd64" -a "`basename $0`" != "pbi_makeport_chroot" ] ; then
+ exit_err "-32 can only be used on amd64 host"
+ fi
+ ARCH=i386
+ ;;
+
-k) PBI_KEEPBUILDFILES="YES"
;;
@@ -1232,6 +1258,11 @@ parse_update_pbi_cmdline() {
# Make some of our required PBI dirs
mk_required_dirs() {
if [ ! -d "${PBI_APPDIR}" ] ; then mkdir -p ${PBI_APPDIR} >/dev/null 2>/dev/null ; fi
+ if [ ! -d "${PBI_XDGCFGDIR}" ] ; then mkdir -p ${PBI_XDGCFGDIR} >/dev/null 2>/dev/null ; fi
+ if [ ! -d "${PBI_XDGAPPDIR}" ] ; then mkdir -p ${PBI_XDGAPPDIR} >/dev/null 2>/dev/null ; fi
+ if [ ! -d "${PBI_XDGDIRDIR}" ] ; then mkdir -p ${PBI_XDGDIRDIR} >/dev/null 2>/dev/null ; fi
+ if [ ! -d "${PBI_XDGICONDIR}" ] ; then mkdir -p ${PBI_XDGICONDIR} >/dev/null 2>/dev/null ; fi
+ if [ ! -d "${PBI_XDGMIMEDIR}" ] ; then mkdir -p ${PBI_XDGMIMEDIR} >/dev/null 2>/dev/null ; fi
if [ ! -d "${PBI_RCDIR}" ] ; then mkdir -p ${PBI_RCDIR} >/dev/null 2>/dev/null ; fi
if [ ! -d "${PBI_HASHDIR}" ] ; then mkdir -p ${PBI_HASHDIR} >/dev/null 2>/dev/null ; fi
if [ ! -d "${PBI_DBAPPDIR}" ] ; then mkdir -p ${PBI_DBAPPDIR} >/dev/null 2>/dev/null ; fi
@@ -1245,7 +1276,7 @@ mk_required_dirs() {
# Set the permissions for directories if we are running as root
if [ `id -u` != "0" ] ; then return ; fi
- for cDir in $PBI_APPDIR $PBI_DBAPPDIR $PBI_DBHASHQUEUEDIR
+ for cDir in $PBI_APPDIR $PBI_DBAPPDIR $PBI_DBHASHQUEUEDIR $PBI_XDGCFGDIR $PBI_XDGAPPDIR $PBI_XDGDIRDIR $PBI_XDGICONDIR $PBI_XDGMIMEDIR
do
chown root:${PBI_INSTALLGROUP} ${cDir}
chmod 775 ${cDir}
@@ -1272,20 +1303,32 @@ get_abspath() {
# Initialize some vars
init_vars() {
+ # Set sys vars
+ REALARCH="`uname -m`"
+ ARCH="$REALARCH"
+
# Where is pbi-manager installed?
- FBSDMAJOR=`uname -r | cut -c 1`
- PROGBASE="/usr/local"
- SYS_LOCALBASE="/usr/local"
+ PROGBASE=/usr/local
+ SYS_LOCALBASE=/usr/local
if [ -z "${PBI_APPDIR}" -o "`basename $0`" = "pbi_makeport_chroot" ] ; then
PBI_APPDIR="/usr/pbi"
fi
- PBI_WRAPPERFILE="${PBI_APPDIR}/.pbiwrapper"
- PBI_CHROOTFILE="${PBI_APPDIR}/.pbi-world.txz"
+ # Set the FreeBSD Major & Release
+ FBSDREL=`uname -r`
+ FBSDMAJOR=${FBSDREL%%.*}
+
+ PBI_CHROOTFILE="${PBI_APPDIR}/.pbi-world-$ARCH.txz"
if [ `id -u` = "0" ] ; then
PBI_HASHDIR="${PBI_APPDIR}/.hashdir"
else
PBI_HASHDIR="${PBI_APPDIR}/.hashdir-`whoami`"
fi
+ PBI_AB_BUILDERS=1
+ PBI_XDGCFGDIR="${PBI_APPDIR}/etc/xdg/menus"
+ PBI_XDGAPPDIR="${PBI_APPDIR}/share/applications"
+ PBI_XDGDIRDIR="${PBI_APPDIR}/share/desktop-directories"
+ PBI_XDGICONDIR="${PBI_APPDIR}/share/icons/hicolor"
+ PBI_XDGMIMEDIR="${PBI_APPDIR}/share/mime/packages"
PBI_RCDIR="${SYS_LOCALBASE}/etc/rc.d"
PBI_ETCCONF="${SYS_LOCALBASE}/etc/pbi.conf"
PCBSD_ETCCONF="${SYS_LOCALBASE}/etc/pcbsd.conf"
@@ -1346,6 +1389,7 @@ init_vars() {
PBI_INS_MENUSCRIPT="install-menu-icons.sh"
PBI_INS_MIMESCRIPT="install-mime.sh"
PBI_INS_PATHSCRIPT="install-pathlinks.sh"
+ PBI_ICDIR="pbi-shared-icons"
PBI_LISTREPO_UP=""
PBI_LISTREPO_DOWN=""
PBI_LISTREPO_MIRROR=""
@@ -1432,6 +1476,24 @@ init_vars() {
PBI_USESYSFONTS="YES"
PBI_VERBOSE="NO"
PORTSDIR="/usr/ports"
+
+}
+
+detect_pkgng()
+{
+ export PORTSDIR
+ # Are we using pkgng?
+ WITH_PKGNG=$(make -f ${PORTSDIR}/Mk/bsd.port.mk -V WITH_PKGNG)
+ if [ -n "${WITH_PKGNG}" ]; then
+ export PKGNG=1
+ export PKG_ADD="pkg add"
+ export PKG_DELETE="pkg delete -y -f"
+ else
+ export PKGNG=0
+ export PKG_ADD=pkg_add
+ export PKG_DELETE=pkg_delete
+ fi
+
}
# Set and export vars used by module scripts
@@ -1462,13 +1524,6 @@ rm_tmpdir() {
# rm tmpdir
rm_buildfiles() {
if [ "${PBI_KEEPBUILDFILES}" = "YES" ] ; then return ; fi
- if [ -z "${PBI_PROGDIRPATH}" ] ; then return ; fi
- if [ "`basename $0`" = "pbi_makeport_chroot" -a -d "${PBI_PROGDIRPATH}" ] ; then
- echo "Cleaning ${PBI_PROGDIRPATH}"
- rm -rf "${PBI_PROGDIRPATH}" >/dev/null 2>/dev/null
- chflags -R noschg "${PBI_PROGDIRPATH}" >/dev/null 2>/dev/null
- rm -rf "${PBI_PROGDIRPATH}" >/dev/null 2>/dev/null
- fi
if [ -z "$PBI_CHROOTDIR" ] ; then return ; fi
chroot_make_cleanup
}
@@ -1495,11 +1550,11 @@ get_pbi_progversion() {
fi
if [ -z "${PBI_PROGVERSION}" -a -n "${PORTSDIR}" -a -n "${PBI_MAKEPORT}" ] ; then
- PORTVER="`make -C ${PORTSDIR}/${PBI_MAKEPORT} -V DISTVERSION 2>/dev/null`"
+ PORTVER="`make -C ${PORTSDIR}/${PBI_MAKEPORT} -V DISTVERSION PORTSDIR=${PORTSDIR} 2>/dev/null`"
# Check if we have a portrevision to use in version number
PORTREV=""
- PORTREV="`make -C ${PORTSDIR}/${PBI_MAKEPORT} -V PORTREVISION 2>/dev/null`"
+ PORTREV="`make -C ${PORTSDIR}/${PBI_MAKEPORT} -V PORTREVISION PORTSDIR=${PORTSDIR} 2>/dev/null`"
if [ -n "${PORTREV}" -a "${PORTREV}" != "0" ]
then
PBI_PROGVERSION="${PORTVER}_${PORTREV}"
@@ -1509,7 +1564,7 @@ get_pbi_progversion() {
if [ -z "${PBI_PROGVERSION}" ] ; then
echo "Warning: Unable to set PBI_PROGVERSION with:"
- echo "make -C ${PORTSDIR}/${PBI_MAKEPORT} -V DISTVERSION"
+ echo "make -C ${PORTSDIR}/${PBI_MAKEPORT} -V DISTVERSION PORTSDIR=${PORTSDIR}"
fi
else
echo "PBI_PROGVERSION - $PBI_PROGVERSION - PORTSDIR - ${PORTSDIR} - $PBI_MAKEPORT - $PBI_MAKE_PORT - pbi - $pbi"
@@ -1533,9 +1588,9 @@ get_pbi_progname() {
if [ -z "${PBI_PROGNAME}" -a -n "${PORTSDIR}" -a -n "${PBI_MAKEPORT}" ] ; then
# Get the proper package name from the prefix + name + suffix
- local pkgPrefix="`make -C ${PORTSDIR}/${PBI_MAKEPORT} -V PKGNAMEPREFIX`"
- local pkgName="`make -C ${PORTSDIR}/${PBI_MAKEPORT} -V PORTNAME`"
- local pkgSuffix="`make -C ${PORTSDIR}/${PBI_MAKEPORT} -V PKGNAMESUFFIX`"
+ local pkgPrefix="`make -C ${PORTSDIR}/${PBI_MAKEPORT} -V PKGNAMEPREFIX PORTSDIR=${PORTSDIR}`"
+ local pkgName="`make -C ${PORTSDIR}/${PBI_MAKEPORT} -V PORTNAME PORTSDIR=${PORTSDIR}`"
+ local pkgSuffix="`make -C ${PORTSDIR}/${PBI_MAKEPORT} -V PKGNAMESUFFIX PORTSDIR=${PORTSDIR}`"
PBI_PROGNAME="${pkgPrefix}${pkgName}${pkgSuffix}"
else
exit_err "Failed to locate PBI_PROGNAME"
@@ -1549,10 +1604,6 @@ get_pbi_progdir() {
fi
tmp="`echo ${PBI_PROGNAME} | tr -d ' ' | tr '[A-Z]' '[a-z]'`"
- ARCH="`uname -m`"
- if [ -n "${PBI_OSARCH}" ] ; then
- ARCH="${PBI_OSARCH}"
- fi
if [ -z "${PBI_PROGDIRNAME}" ] ; then
PBI_PROGDIRNAME="${tmp}-${ARCH}"
fi
@@ -1580,6 +1631,13 @@ rm_pbipatchfiles() {
echo "Cleaning up patch data..."
fi
+ # If we used tmpfs, unmount the dirs
+ if [ "$PBI_MP_TMPFS" = "YES" ] ; then
+ umount "${_pbiNewDir}" 2>/dev/null
+ umount "${_pbiOldDir}" 2>/dev/null
+ umount "${_pbiPatchDir}" 2>/dev/null
+ fi
+
if [ -n "${_pbiNewDir}" -a -d "${_pbiNewDir}" -a "${_pbiNewDir}" != "/" ] ; then
rm -rf "${_pbiNewDir}" >/dev/null 2>/dev/null
chflags -R noschg "${_pbiNewDir}" >/dev/null 2>/dev/null
@@ -1629,14 +1687,8 @@ set_make_options() {
echo "NO_IGNORE=yes" >> ${MAKE_CONF}
echo "PACKAGE_BUILDING=yes" >> ${MAKE_CONF}
- # If we plan on using TMPFS set it now
- if [ "$MKTMPFS" = "YES" ] ; then
- echo "WRKDIRPREFIX=/tmpfs" >> ${MAKE_CONF}
- echo "DEPENDS_CLEAN=YES" >> ${MAKE_CONF}
- else
- mkdir /usr/wrkdirprefix
- echo "WRKDIRPREFIX=/usr/wrkdirprefix" >> ${MAKE_CONF}
- fi
+ echo "WRKDIRPREFIX=/usr/wrkdirprefix" >> ${MAKE_CONF}
+ echo "DEPENDS_CLEAN=YES" >> ${MAKE_CONF}
if [ -n "$PBI_MAKEOPTS" ] ; then
# Check if we have custom make opts
@@ -2011,17 +2063,26 @@ prune_from_index() {
if [ -z "$PBI_IT_ADDKEEP" ]; then return ; fi
local found="0"
+ local added="0"
while read iLine
do
echo "$iLine" | grep "^${1}:${2}:" >/dev/null 2>/dev/null
if [ "$?" != "0" ] ; then
+ # Ready to add back the saved lines
+ if [ $found -ne 0 ] ; then
+ while read fLine
+ do
+ if [ $found -le $PBI_IT_ADDKEEP ] ; then
+ echo "$fLine" >> ${PBI_TMPDIR}/.indextmp
+ fi
+ found=`expr $found - 1`
+ done < ${PBI_TMPDIR}/.foundtmp
+ fi
echo "$iLine" >> ${PBI_TMPDIR}/.indextmp
continue
fi
- if [ $found -lt $PBI_IT_ADDKEEP ] ; then
- echo "$iLine" >> ${PBI_TMPDIR}/.indextmp
- found=`expr $found + 1`
- fi
+ found=`expr $found + 1`
+ echo "$iLine" >> ${PBI_TMPDIR}/.foundtmp
done < $PBI_IT_ADDINDEX
mv "${PBI_TMPDIR}/.indextmp" "${PBI_IT_ADDINDEX}"
}
@@ -2082,13 +2143,13 @@ pbi_browse_listpbi() {
# Make sure this application has an associated PBI available
check_pbi_update "$aName" "nodisplay" \
"$aName" "current" \
- "`uname -r`" "$_rArch" "${PBI_BROWSE_RID}"
+ "$FBSDMAJOR" "$_rArch" "${PBI_BROWSE_RID}"
if [ "$?" != "0" ] ; then
# On amd64, see if 32bit version exists
if [ "$_rArch" = "amd64" ] ; then
check_pbi_update "$aName" "nodisplay" \
"$aName" "current" \
- "`uname -r`" "i386" "${PBI_BROWSE_RID}"
+ "$FBSDMAJOR" "i386" "${PBI_BROWSE_RID}"
if [ "$?" != "0" ] ; then
continue
else
@@ -3354,15 +3415,33 @@ pbi_create_init() {
exit_trap
fi
- PBI_CREATEONLY="YES"
-
load_pbi_conffile
parse_cmdline_overrides
+ # Copy over the application to the correct location
+ echo ${PBI_PROGDIRPATH} | grep -q "^${PBI_APPDIR}/"
+ if [ $? -ne 0 ] ; then
+ _pbilow="`echo ${PBI_PROGNAME} | tr '[:upper:]' '[:lower:]' | sed 's| ||g'`"
+ newPDP="${PBI_APPDIR}/${_pbilow}-${ARCH}"
+ if [ -d "${newPDP}" ] ; then exit_err "Error: ${newPDP} already exists!" ; fi
+ cp -r ${PBI_PROGDIRPATH} ${newPDP}
+ PBI_PROGDIRPATH="${newPDP}"
+ export PBI_PROGDIRPATH
+ fi
+
+ PBI_CREATEONLY="YES"
+
check_create_required_vars
do_pbi_create
+
+ # Cleanup the copy dir
+ if [ -n "$newPDP" ] ; then
+ if [ "${newPDP}" != "/" -a "${newPDP}" != "${PBI_APPDIR}/-" ] ; then
+ rm -rf "${newPDP}"
+ fi
+ fi
}
# Start the pbi_create backup process
@@ -3417,26 +3496,36 @@ do_pbi_create() {
get_pbi_progname
echo "Creating PBI: ${PBI_PROGNAME}-${PBI_PROGVERSION}"
- mk_header_dir
- mk_stage_dir
-
+
+ if [ "`basename $0`" = "pbi_makeport" -o "`basename $0`" = "pbi_makeport_chroot" ] ; then
+ PBI_STAGEDIR="${PBI_PROGDIRPATH}"
+ else
+ mk_stage_dir
+ fi
+
copy_resource_dir
clean_stage_dir
mk_extlink_entries
+ clean_icons_dir
mk_xdg_scripts
+ run_pbi_prepkgscript
+
mk_install_script
mk_deinstall_script
mk_hash_list
mk_archive_file
+
+ mk_header_dir
save_pbi_details_to_header
mk_header_file
+ rm_header_dir
+
mk_output_pbi
- rm_header_dir
rm_stage_dir
}
@@ -3541,6 +3630,17 @@ mk_extlink_entries() {
if [ -z "$src" -o -z "$tar" ] ; then continue ; fi
+ # Check if this is an icon we need to preserve
+ echo $src | grep -q "^share/icons/"
+ if [ $? -eq 0 -a "${PBI_USESYSFONTS}" != "NO" ] ; then
+ iDir=`dirname $src`
+ if [ ! -d "${PBI_STAGEDIR}/${PBI_ICDIR}/${iDir}" ] ; then
+ mkdir -p "${PBI_STAGEDIR}/${PBI_ICDIR}/${iDir}"
+ fi
+ cp "${PBI_STAGEDIR}/${src}" "${PBI_STAGEDIR}/${PBI_ICDIR}/${iDir}"
+ src="${PBI_ICDIR}/${src}"
+ fi
+
if [ ! -e "${PBI_STAGEDIR}/$src" ] ; then
echo "WARN: external_link target: \"$src -> $tar $act\" does not exist!"
continue
@@ -3633,6 +3733,7 @@ mk_path_wrappers() {
fi
# Copy the wrapper binary
+ PBI_WRAPPERFILE="${PBI_APPDIR}/.pbiwrapper-$ARCH"
cp ${PBI_WRAPPERFILE} ${dir}/${fbin}
chmod 755 ${dir}/${fbin}
@@ -3693,6 +3794,9 @@ mk_xdg_desktop_script() {
| sed "s|%%PBI_APPDIR%%|$PBI_PROGDIRPATH|g" \
> "${dir}/PBI-${i}"
+ # Set the correct permissions on the desktop file
+ chmod 744 "${dir}/PBI-${i}"
+
ifi="$PBI_PROGDIRPATH/${PBI_APPDESK_DIR}/PBI-${i}"
echo "xdg-desktop-icon install --novendor ${ifi}" \
@@ -3734,6 +3838,9 @@ mk_xdg_menu_script() {
| sed "s|%%PBI_APPDIR%%|$PBI_PROGDIRPATH|g" \
> "${dir}/PBI-${i}"
+ # Set the correct permissions on the menu file
+ chmod 744 "${dir}/PBI-${i}"
+
ifi="$PBI_PROGDIRPATH/${PBI_APPMENU_DIR}/PBI-${i}"
# Check for a .directory file associated with this .desktop
@@ -3943,6 +4050,13 @@ rm_stage_dir() {
fi
}
+# See if we need to clean the icons dir
+clean_icons_dir() {
+ if [ "${PBI_USESYSFONTS}" != "NO" ] ; then
+ rm -rf ${PBI_STAGEDIR}/share/icons >/dev/null 2>/dev/null
+ fi
+}
+
# See if we need to clean the stagedir
clean_stage_dir() {
if [ "${PBI_USESYSGL}" != "NO" ] ; then
@@ -3954,7 +4068,6 @@ clean_stage_dir() {
rm -rf ${PBI_STAGEDIR}/etc/fonts >/dev/null 2>/dev/null
rm -rf ${PBI_STAGEDIR}/lib/X11/fonts >/dev/null 2>/dev/null
rm -rf ${PBI_STAGEDIR}/lib/X11/icons >/dev/null 2>/dev/null
- rm -rf ${PBI_STAGEDIR}/share/icons >/dev/null 2>/dev/null
fi
}
@@ -3979,10 +4092,21 @@ test_tar_lzma() {
# Start creating the application archive
mk_archive_file() {
+ # Build module list of excludes
+ if [ -n "$PBI_EXCLUDELIST" ] ; then
+ for excl in $PBI_EXCLUDELIST
+ do
+ if [ -z "$_excOpts" ] ; then
+ _excOpts="--exclude ${excl}"
+ else
+ _excOpts="$_excOpts --exclude ${excl}"
+ fi
+ done
+ fi
PBI_CREATE_ARCHIVE="${PBI_CREATE_OUTDIR}/.PBI.$$.tbz"
if test_tar_lzma ; then _tcmp="J" ; else _tcmp="j" ; fi
echo "Creating compressed archive..."
- tar cv${_tcmp}f "${PBI_CREATE_ARCHIVE}" -C ${PBI_STAGEDIR} . 2>/dev/null
+ tar cv${_tcmp}f "${PBI_CREATE_ARCHIVE}" ${_excOpts} -C ${PBI_STAGEDIR} . 2>/dev/null
}
# Start creating the header archive
@@ -3993,12 +4117,8 @@ mk_header_file() {
# Start copying pbi details into header file
save_pbi_details_to_header() {
- local _osArch="`uname -m`"
- if [ -n "${PBI_OSARCH}" ] ; then
- _osArch="${PBI_OSARCH}"
- fi
-
- local _osRel="`uname -r`"
+ local _osArch="$ARCH"
+ local _osRel="$FBSDREL"
if [ -n "${PBI_OSREL}" ] ; then
_osRel="${PBI_OSREL}"
fi
@@ -4093,10 +4213,6 @@ sign_pbi_files() {
# All the pieces are ready, spit out the final PBI file
mk_output_pbi() {
- if [ -z "${PBI_OSARCH}" ] ; then
- PBI_OSARCH="`uname -m`"
- fi
-
if [ -n "${PBI_PROGICON}" -a -e "${PBI_STAGEDIR}/${PBI_PROGICON}" ] ; then
icon="${PBI_STAGEDIR}/${PBI_PROGICON}"
else
@@ -4104,7 +4220,7 @@ mk_output_pbi() {
fi
_pbilow="`echo ${PBI_PROGNAME} | tr '[:upper:]' '[:lower:]' | sed 's| ||g'`"
- outfile="${PBI_CREATE_OUTDIR}/${_pbilow}-${PBI_PROGVERSION}-${PBI_OSARCH}.pbi"
+ outfile="${PBI_CREATE_OUTDIR}/${_pbilow}-${PBI_PROGVERSION}-${ARCH}.pbi"
mark1="${PBI_CREATE_OUTDIR}/.pbimark1.$$"
mark2="${PBI_CREATE_OUTDIR}/.pbimark2.$$"
@@ -4444,6 +4560,10 @@ pbid_init() {
# Start the PBID daemon
do_pbid() {
+ # Start by sourcing /etc/profile
+ # This grabs any HTTP_ / FTP_ PROXY variables
+ . /etc/profile
+
# Allow user supplied logfile
if [ -z "${PBID_LOGFILE}" ] ; then
_pbid_log="/var/log/pbid.log"
@@ -4738,6 +4858,21 @@ run_pbi_postportmake()
fi
}
+# Checks if we have a custom script to run prior to pbi create
+run_pbi_prepkgscript()
+{
+ if [ ! -d "${PBI_CONFDIR}" ] ; then return 0 ; fi
+ if [ ! -d "${PBI_CONFDIR}/${PBI_CONF_SCRIPTSDIR}" ] ; then return 0 ; fi
+ if [ ! -e "${PBI_CONFDIR}/${PBI_CONF_SCRIPTSDIR}/pre-pbicreate.sh" ] ; then return 0 ; fi
+
+ export_script_vars
+
+ sh "${PBI_CONFDIR}/${PBI_CONF_SCRIPTSDIR}/pre-pbicreate.sh"
+ if [ "$?" != "0" ] ; then
+ echo "Warning: post-portmake.sh returned non-0 status!"
+ fi
+}
+
# Begins the port make
start_pbi_makeport()
{
@@ -4749,51 +4884,54 @@ start_pbi_prune_ports()
{
if [ "${PBI_PRUNEBUILDPORTS}" = "NO" ] ; then return ; fi
+ local iFile="$PORTSDIR/INDEX-$FBSDMAJOR"
+
get_pkgname "${PORTSDIR}/${PBI_MAKEPORT}"
- echo "${PKGNAME}" >/.keepports
+ echo "${PKGNAME}" > /.keepports
+ grep "^${PKGNAME}|" $iFile | cut -d '|' -f 9 | tr ' ' '\n' >>/.keepports
# Do the same for any OTHERPORTS
for port in ${PBI_MKPORTBEFORE}
do
if [ ! -d "${PORTSDIR}/${port}" ] ; then continue ; fi
get_pkgname "${PORTSDIR}/${port}"
- echo "${PKGNAME}" >>/.keepports
+ echo "${PKGNAME}" >> /.keepports
+ grep "^${PKGNAME}|" $iFile | cut -d '|' -f 9 | tr ' ' '\n' >>/.keepports
done
for port in ${PBI_MKPORTAFTER}
do
if [ ! -d "${PORTSDIR}/${port}" ] ; then continue ; fi
get_pkgname "${PORTSDIR}/${port}"
- echo "${PKGNAME}" >>/.keepports
+ echo "${PKGNAME}" >> /.keepports
+ grep "^${PKGNAME}|" $iFile | cut -d '|' -f 9 | tr ' ' '\n' >>/.keepports
done
+
+ # Sort and clean the ports
+ cat /.keepports | sort | uniq > /.keepports.tmp
+ mv /.keepports.tmp /.keepports
- # Now check what packages we have and prune those whom aren't needed
- while
- z="1"
- do
- FOUND=""
- for j in `pkg_info -I -a | cut -d " " -f 1`
- do
- grep "${j}" "/.keepports" >/dev/null 2>/dev/null
- if [ "$?" != "0" ] ; then
- pkg_info -R "${j}" | grep "Required" >/dev/null 2>/dev/null
- if [ "$?" != "0" ] ; then
- echo "Removing non-required port: ${j}"
- pkg_delete ${j}
- FOUND="1"
- break
- fi
- fi
- done
+ # Define some commands
+ if [ $PKGNG -eq 1 ] ; then
+ pkgInf="pkg info -f"
+ else
+ pkgInf="pkg_info -I -a"
+ fi
- # All done pruning ports
- if [ -z "$FOUND" ] ; then break ; fi
+ # Now remove any unused ports
+ for j in `$pkgInf | cut -d " " -f 1`
+ do
+ grep -q "^${j}" "/.keepports"
+ if [ $? -ne 0 ] ; then
+ echo "Removing non-required port: ${j}"
+ $PKG_DELETE ${j}
+ fi
done
}
# Get the full package-name for a target port
get_pkgname() {
- name="`make -C ${1} -V PKGNAME`"
+ name="`make -C ${1} -V PKGNAME PORTSDIR=${PORTSDIR}`"
PKGNAME="${name}"
}
@@ -5191,7 +5329,7 @@ pbi_add_fetch_remote() {
check_pbi_update "$_rtar" "nodisplay" \
"$_rtar" "$_rVer" \
- "`uname -r`" "$_rArch" "${PBI_ADDREPO_ID}"
+ "$FBSDMAJOR" "$_rArch" "${PBI_ADDREPO_ID}"
if [ "$?" != "0" ] ; then
exit_err "Could not find \"$_rtar\" in any indexes"
fi
@@ -5341,7 +5479,13 @@ pbi_update_dl() {
# Start download from repos mirror(s) in order
for _cMirror in $_mirrorList
do
- _furl="`echo $_cMirror | sed 's/\/*$//'`${_uFile}"
+ if [ "$_cMirror" = "PCBSDCDN" ] ; then
+ get_pcbsd_mirror
+ _furl="${VAL}${_uFile}"
+ else
+ _furl="`echo $_cMirror | sed 's/\/*$//'`${_uFile}"
+ fi
+
echo "Downloading ${_furl}"
pbi_get_file "$_furl" "$_dl_loc"
if [ "$?" != "0" ] ; then
@@ -5427,14 +5571,12 @@ is_num()
check_port_compat_arch()
{
local sPort=$1
- local cValues="`make -C $sPort -V ONLY_FOR_ARCHS`"
+ local cValues="`make -C $sPort -V ONLY_FOR_ARCHS PORTSDIR=${PORTSDIR}`"
if [ -z "$cValues" ] ; then return 0 ; fi
for cArch in $cValues
do
- if [ "$cArch" = "`uname -m`" ] ; then
- return 0
- fi
+ if [ "$cArch" = "$ARCH" ] ; then return 0; fi
done
return 1
@@ -5447,13 +5589,54 @@ pbi_autob_init() {
parse_autob_pbi_cmdline "$@"
-
do_pbi_autob
}
+check_zfs_ab_destroy()
+{
+ local bNum=$1
+ if [ -e "${PBI_TMPDIR}/${bNum}.zmnt" ] ; then
+ zDir=`cat ${PBI_TMPDIR}/${bNum}.zmnt`
+ # Make sure this zfs dataset is in the PBI_APPDIR directory
+ echo $zDir | grep -q "${PBI_APPDIR}/"
+ if [ $? -eq 0 ] ; then
+ # Make sure all is unmounted
+ umount -f ${PBI_CHROOTDIR}/dev >/dev/null 2>/dev/null
+ umount -f ${PBI_CHROOTDIR}/compat/linux/proc >/dev/null 2>/dev/null
+ umount -f ${PBI_CHROOTDIR}/usr/ports >/dev/null 2>/dev/null
+ umount -f ${PBI_CHROOTDIR}/pkgs >/dev/null 2>/dev/null
+ umount -f ${PBI_CHROOTDIR}/.ccache >/dev/null 2>/dev/null
+ umount -f ${PBI_CHROOTDIR}/usr/wrkdirprefix >/dev/null 2>/dev/null
+ sleep 3
+ umount -f ${PBI_CHROOTDIR}/dev >/dev/null 2>/dev/null
+ sync
+ sleep 3
+ zfs destroy ${zDir}
+ rmdir ${zDir} >/dev/null 2>/dev/null
+ fi
+ fi
+}
+
+ab_clean_build_tmpfiles()
+{
+ local build=$1
+
+ # Cleanup
+ rm ${PBI_TMPDIR}/${build}.result 2>/dev/null
+ rm ${PBI_TMPDIR}/${build}.pid 2>/dev/null
+ rm ${PBI_TMPDIR}/${build}.bPort 2>/dev/null
+ rm ${PBI_TMPDIR}/${build}.od 2>/dev/null
+ rm ${PBI_TMPDIR}/${build}.mp 2>/dev/null
+ rm ${PBI_TMPDIR}/${build}.cd 2>/dev/null
+ rm ${PBI_TMPDIR}/${build}.pv 2>/dev/null
+ rm ${PBI_TMPDIR}/${build}.zmnt 2>/dev/null
+}
+
# Start the auto-build traversal process
do_pbi_autob() {
+ echo "`basename ${0}` started: `date`"
+
# Prune any outdir files which we don't have modules for
do_pbi_autob_prune
@@ -5463,121 +5646,212 @@ do_pbi_autob() {
# Get this runs timestamp
PBI_AB_TIMESTAMP=`date | md5`
- while
- z=1
- do
- AB_FOUND="0"
- unset CUR_PRIORITY_PBI CUR_WORKING_PBI
-
- cd "${PBI_AB_CONFDIR}"
- for pbi in `find . -type f -name "${PBI_CONFFILE}" | grep -v '\.svn' | sort`
- do
- # Figure out the target port for this build
- unset PBI_MAKEPORT PBI_BUILDKEY PBI_PROGVERSION PBI_REQUIRESROOT PBI_PROGNAME PBI_PROGWEB PBI_PROGAUTHOR PBI_PROGICON PBI_MKPORTBEFORE PBI_MKPORTAFTER PBI_MAKEOPTS PBI_EXCLUDELIST PBI_AB_PRIORITY PBI_HASH_EXCLUDES PBI_AB_NOTMPFS PBI_PROGREVISION
- . ${pbi}
-
- _cd=$(dirname $pbi | sed 's|./||')
- PBI_CONFDIR="$_cd"
-
- # Make sure PBI_MAKEPORT is set
- if [ -z "${PBI_MAKEPORT}" ] ; then
- PBI_MAKEPORT=`echo $pbi | sed 's|./||'`
- export PBI_MAKEPORT
- fi
- if [ ! -d "${PORTSDIR}/${PBI_MAKEPORT}" ] ; then
- echo "Skipping invalid port ${PORTSDIR}/${PBI_MAKEPORT}"
- continue
+ # Build our list of targets first
+ echo "=> Creating build queue list..."
+ ab_get_build_list
+
+ done=0
+ rebuildlist=0
+ while :; do
+ activity=0
+ # Start checking each job
+ for build in ${JOBS-$(jot -w %02d ${PBI_AB_BUILDERS})}; do
+ # Is this builder running?
+ if [ -e "${PBI_TMPDIR}/${build}.pid" ] ; then
+ if pgrep -qF "${PBI_TMPDIR}/${build}.pid" >/dev/null 2>&1; then
+ activity=1
+ continue;
+ else
+ # Do the ZFS destroy here if necessary
+ check_zfs_ab_destroy "$build"
+
+ # Run the post-build process
+ ab_post_build ${build}
+
+ # Cleanup
+ ab_clean_build_tmpfiles ${build}
+ fi
fi
-
- # Check if this port can be built on this architecture
- check_port_compat_arch "${PORTSDIR}/${PBI_MAKEPORT}"
- if [ "$?" = "1" ] ; then
- echo "${PBI_MAKEPORT} - Skipping for invalid system arch"
- continue
+ if [ $done -eq 1 ] ; then continue ; fi
+
+ # Builder idle, lets figure out the next build
+ echo "==> Finding target for build process [$build]"
+ start_next_ab_target "$build"
+ if [ $? -eq 0 ] ; then
+ # Nothing left to build, lets wait for any existing build to finish before exiting
+ done=1
fi
+ activity=1
+ done
+
+ # Every 2 hours, we can re-scan the modules directory, catch any ones which may have been added / changed
+ if [ $rebuildlist -eq 7200 ] ; then
+ rebuildlist=0
+ ab_get_build_list
+ else
+ rebuildlist=`expr $rebuildlist + 1`
+ fi
+
+ # Wait before checking again
+ [ $activity -eq 1 ] && sleep 1
+ # Nothing to do? We can end now
+ [ $activity -eq 0 ] && break
+ done
+
+ echo "`basename ${0}` Finished: `date`"
+};
+
+ab_get_build_list()
+{
+
+ AB_FOUND="0"
+ unset CUR_PRIORITY_PBI CUR_WORKING_PBI
+
+ # Clear the tmp build list
+ rm ${PBI_TMPDIR}/.ablist 2>/dev/null
- # Check for missing port target
- if [ -z "$PBI_MAKEPORT" ] ; then
- echo "Warning: Missing PBI_MAKEPORT for ${pbi}"
- continue
+ cd "${PBI_AB_CONFDIR}"
+ for pbi in `find . -type f -name "${PBI_CONFFILE}" | grep -v '\.svn' | sort`
+ do
+ # Figure out the target port for this build
+ unset PBI_MAKEPORT PBI_BUILDKEY PBI_PROGVERSION PBI_REQUIRESROOT PBI_PROGNAME PBI_PROGWEB PBI_PROGAUTHOR PBI_PROGICON PBI_MKPORTBEFORE PBI_MKPORTAFTER PBI_MAKEOPTS PBI_EXCLUDELIST PBI_AB_PRIORITY PBI_HASH_EXCLUDES PBI_AB_NOTMPFS PBI_PROGREVISION
+ . ${pbi}
+
+ _cd=$(dirname $pbi | sed 's|./||')
+ PBI_CONFDIR="$_cd"
+
+ # Make sure PBI_MAKEPORT is set
+ if [ -z "${PBI_MAKEPORT}" ] ; then
+ PBI_MAKEPORT=`echo $pbi | sed 's|./||'`
+ export PBI_MAKEPORT
+ fi
+
+ if [ ! -d "${PORTSDIR}/${PBI_MAKEPORT}" ] ; then
+ #echo "Skipping invalid port ${PORTSDIR}/${PBI_MAKEPORT}"
+ continue
+ fi
+
+ # Check if this port can be built on this architecture
+ check_port_compat_arch "${PORTSDIR}/${PBI_MAKEPORT}"
+ if [ "$?" = "1" ] ; then
+ #echo "${PBI_MAKEPORT} - Skipping for invalid system arch"
+ continue
+ fi
+
+ # Check for missing port target
+ if [ -z "$PBI_MAKEPORT" ] ; then
+ #echo "Warning: Missing PBI_MAKEPORT for ${pbi}"
+ continue
+ fi
+
+ # Check if another builder is already doing this port
+ pBuilding=0
+ for p in `ls ${PBI_TMPDIR}/*.bPort 2>/dev/null`
+ do
+ if [ "`cat $p`" = "$PBI_MAKEPORT" ] ; then
+ pBuilding=1
+ break
fi
+ done
+ if [ $pBuilding -eq 1 ] ; then
+ continue
+ fi
+
+ check_ab_needed "$PBI_MAKEPORT" "${PBI_BUILDKEY}" "$_cd" "$PBI_AB_TIMESTAMP"
+ if [ "$?" = "0" ] ; then
+ AB_FOUND="1"
+
+ # Unset the priority if set to 00 / 0
+ if [ "${PBI_AB_PRIORITY}" = "00" -o "${PBI_AB_PRIORITY}" = "0" ] ; then
+ unset PBI_AB_PRIORITY
+ fi
- check_ab_needed "$PBI_MAKEPORT" "${PBI_BUILDKEY}" "$_cd" "$PBI_AB_TIMESTAMP"
- if [ "$?" = "0" ] ; then
- AB_FOUND="1"
-
- # Unset the priority if set to 00 / 0
- if [ "${PBI_AB_PRIORITY}" = "00" -o "${PBI_AB_PRIORITY}" = "0" ] ; then
- unset PBI_AB_PRIORITY
- fi
-
- # Check the priority of this PBI, see if it rises to the top
- if [ -z "${CUR_PRIORITY_PBI}" ] ; then
- CUR_WORKING_PBI="${pbi}"
- if [ -z "$PBI_AB_PRIORITY" ] ; then
- CUR_PRIORITY_PBI="$internal_ab_priority"
- else
- CUR_PRIORITY_PBI=`expr $PBI_AB_PRIORITY + 10`
- fi
- echo "Setting higher priority target: ${pbi} - Priority: ${CUR_PRIORITY_PBI}"
- continue
- fi
-
- # Bump up the supplied AB priority
- if [ -n "${PBI_AB_PRIORITY}" ] ; then
- internal_ab_priority=`expr $PBI_AB_PRIORITY + 10`
- fi
-
- # Check if this PBI is a higher priority
- if [ $CUR_PRIORITY_PBI -lt $internal_ab_priority ] ; then
- echo "Setting higher priority target: ${pbi} - Priority: ${internal_ab_priority}"
- CUR_WORKING_PBI="${pbi}"
+ # Check the priority of this PBI, see if it rises to the top
+ if [ -z "${CUR_PRIORITY_PBI}" ] ; then
+ CUR_WORKING_PBI="${pbi}"
+ if [ -z "$PBI_AB_PRIORITY" ] ; then
CUR_PRIORITY_PBI="$internal_ab_priority"
- continue
- fi
- continue
- fi
+ else
+ CUR_PRIORITY_PBI=`expr $PBI_AB_PRIORITY + 10`
+ fi
+ #echo "Setting higher priority target: ${pbi} - Priority: ${CUR_PRIORITY_PBI}"
+ echo "${CUR_PRIORITY_PBI} $pbi" >> ${PBI_TMPDIR}/.abtmp
+ continue
+ fi
+
+ # Bump up the supplied AB priority
+ if [ -n "${PBI_AB_PRIORITY}" ] ; then
+ internal_ab_priority=`expr $PBI_AB_PRIORITY + 10`
+ fi
- done
+ # Check if this PBI is a higher priority
+ if [ $CUR_PRIORITY_PBI -lt $internal_ab_priority ] ; then
+ #echo "Setting higher priority target: ${pbi} - Priority: ${internal_ab_priority}"
+ CUR_WORKING_PBI="${pbi}"
+ CUR_PRIORITY_PBI="$internal_ab_priority"
+ echo "${internal_ab_priority} $pbi" >> ${PBI_TMPDIR}/.abtmp
+ continue
+ else
+ echo "${internal_ab_priority} $pbi" >> ${PBI_TMPDIR}/.abtmp
+ fi
+ continue
+ fi
- # We have something to build lets do it!
- if [ "$AB_FOUND" = "1" ] ; then
- pbi="$CUR_WORKING_PBI"
- unset PBI_MAKEPORT PBI_BUILDKEY PBI_PROGVERSION PBI_REQUIRESROOT PBI_PROGNAME PBI_PROGWEB PBI_PROGAUTHOR PBI_PROGICON PBI_MKPORTBEFORE PBI_MKPORTAFTER PBI_MAKEOPTS PBI_EXCLUDELIST PBI_AB_PRIORITY PBI_HASH_EXCLUDES PBI_AB_NOTMPFS PBI_PROGREVISION
- . ${pbi}
+ done
- _cd=$(dirname $pbi | sed 's|./||')
- PBI_CONFDIR="$_cd"
+ # Sort the list
+ sort -n -r ${PBI_TMPDIR}/.abtmp > ${PBI_TMPDIR}/.ablist
+ rm ${PBI_TMPDIR}/.abtmp
+}
- # Get the prog version
- get_pbi_progversion
+start_next_ab_target()
+{
+ local curBuilder="$1"
+ # No list to parse?
+ if [ ! -e "${PBI_TMPDIR}/.ablist" ] ; then return 0; fi
- if [ -z "${PBI_MAKEPORT}" ] ; then
- PBI_MAKEPORT=$(dirname $pbi | sed 's|./||')
- fi
+ # Get the last on the list
+ CUR_WORKING_PBI=`cat ${PBI_TMPDIR}/.ablist | head -1 | cut -d ' ' -f 2`
+ if [ -z "${CUR_WORKING_PBI}" ] ; then return 0; fi
- echo "Starting build of: $PBI_MAKEPORT - Priority: $CUR_PRIORITY_PBI"
+ cd "${PBI_AB_CONFDIR}"
- # Start the build now
- start_ext_ab "$PBI_MAKEPORT" \
- "${PBI_BUILDKEY}" "${PBI_PROGVERSION}" \
- "${_cd}" "${PBI_AB_OUTDIR}" "${PBI_AB_TIMESTAMP}"
+ # We have something to build lets do it!
+ pbi="$CUR_WORKING_PBI"
+ unset PBI_MAKEPORT PBI_BUILDKEY PBI_PROGVERSION PBI_REQUIRESROOT PBI_PROGNAME PBI_PROGWEB PBI_PROGAUTHOR PBI_PROGICON PBI_MKPORTBEFORE PBI_MKPORTAFTER PBI_MAKEOPTS PBI_EXCLUDELIST PBI_AB_PRIORITY PBI_HASH_EXCLUDES PBI_AB_NOTMPFS PBI_PROGREVISION
+ . ${pbi}
- echo " "
+ _cd=$(dirname $pbi | sed 's|./||')
+ PBI_CONFDIR="$_cd"
- else
- # If no builds left, we are done!
- break
- fi
- done
-
-}
+ # Get the prog version
+ get_pbi_progversion
+
+ if [ -z "${PBI_MAKEPORT}" ] ; then
+ PBI_MAKEPORT=$(dirname $pbi | sed 's|./||')
+ fi
+
+ echo "==> Starting build process [$curBuilder]: $PBI_MAKEPORT"
+ echo "$PBI_MAKEPORT" >${PBI_TMPDIR}/${curBuilder}.bPort
+
+ # Remove this from the queue
+ cat ${PBI_TMPDIR}/.ablist | tail -n +2 > ${PBI_TMPDIR}/.abtmp
+ mv ${PBI_TMPDIR}/.abtmp ${PBI_TMPDIR}/.ablist
+
+ # Start the build now
+ start_ext_ab "$PBI_MAKEPORT" \
+ "${PBI_BUILDKEY}" "${PBI_PROGVERSION}" \
+ "${_cd}" "${PBI_AB_OUTDIR}" "${PBI_AB_TIMESTAMP}" "${curBuilder}"
+
+ return 1
+};
# Prune any outdir files which don't have matching modules
do_pbi_autob_prune() {
if [ "${PBI_AB_PRUNE}" != "YES" ] ; then return 0 ; fi
+ echo "=> Cleaning outgoing directory..."
# Prune outgoing dirs which don't have matching modules anymore
cd "${PBI_AB_OUTDIR}"
for i in `find . -type d | grep -v '\.svn'`
@@ -5603,6 +5877,7 @@ start_ext_ab() {
_cd="${4}"
_od="${5}/${_cd}"
local _abkey="$6"
+ local eBuilder="$7"
_flags=""
_flags="-c ${_cd} -d ${PORTSDIR} -o ${_od} --delbuild"
if [ -n "${PBI_AB_SSLPRIVKEY}" ] ; then
@@ -5623,10 +5898,14 @@ start_ext_ab() {
fi
_flags="${_flags} --pkgdir ${_od}/pkgcache"
fi
+
+ # Are we doing 32bit builds?
+ if [ "$PBI_AB32" = "YES" ] ; then _flags="${_flags} -32"; fi
+
get_pbi_progversion
#echo "Starting build of ${_mp} - ${_pv}"
- echo "pbi_makeport ${_flags} ${_mp}"
+ #echo "pbi_makeport ${_flags} ${_mp}"
if [ ! -d "${_od}" ] ; then mkdir -p "${_od}" ; fi
@@ -5654,21 +5933,41 @@ start_ext_ab() {
# Move old PBIs to archived folder
oldVersion=`cat ${_od}/pbi-version 2>/dev/null`
if [ "$oldVersion" != "$PBI_PROGVERSION" ]; then
- echo "Archiving old PBIs..."
+ #echo "Archiving old PBIs..."
archive_old_pbis "${_od}" "$PBI_AB_ARCHIVENUM"
fi
+ # Set some variables we can call in pbi_makeport
+ PBI_AB_TMPDIR="${PBI_TMPDIR}"
+ PBI_AB_BUILDER="$eBuilder"
+ export PBI_AB_TMPDIR PBI_AB_BUILDER
+
# Add some header info to log file
echo "Starting build: `date`" >${_od}/build.log
echo "Build Command:" >>${_od}/build.log
echo "pbi_makeport ${_flags} ${_mp}" >>${_od}/build.log
echo "------------------------------------------------------" >>${_od}/build.log
+
+ echo "${_od}" > "${PBI_TMPDIR}/${PBI_AB_BUILDER}.od"
+ echo "${_mp}" > "${PBI_TMPDIR}/${PBI_AB_BUILDER}.mp"
+ echo "${_cd}" > "${PBI_TMPDIR}/${PBI_AB_BUILDER}.cd"
+ echo "${PBI_PROGVERSION}" > "${PBI_TMPDIR}/${PBI_AB_BUILDER}.pv"
+ pbi_makeport ${_flags} ${_mp} >>${_od}/build.log 2>>${_od}/build.log &
+ echo "$!" > ${PBI_TMPDIR}/${eBuilder}.pid
- # Start the build now
- pbi_makeport ${_flags} ${_mp} >>${_od}/build.log 2>>${_od}/build.log
- if [ "$?" = "0" ] ; then
+}
- echo "$PBI_PROGVERSION" > "${_od}/pbi-version"
+ab_post_build()
+{
+ local build=$1
+ _od="`cat ${PBI_TMPDIR}/${build}.od`"
+ _mp="`cat ${PBI_TMPDIR}/${build}.mp`"
+ _cd="`cat ${PBI_TMPDIR}/${build}.cd`"
+ _pv="`cat ${PBI_TMPDIR}/${build}.pv`"
+ sleep 1
+
+ if [ -e "${PBI_TMPDIR}/${build}.result" -a "`cat ${PBI_TMPDIR}/${build}.result`" = "0" ] ; then
+ echo "$_pv" > "${_od}/pbi-version"
echo "OK" > "${_od}/pbi-result"
# Save the mdate file
@@ -5682,13 +5981,14 @@ start_ext_ab() {
if [ -e "${PORTSDIR}/${_mp}/pkg-descr" ] ; then
cp "${PORTSDIR}/${_mp}/pkg-descr" "${_od}/pbi-descr"
fi
- if [ -e "${_cd}/pbi-descr" ] ; then
- cp "${_cd}/pbi-descr" "${_od}/pbi-descr"
+ if [ -e "${PBI_AB_CONFDIR}/${_cd}/pbi-descr" ] ; then
+ cp "${PBI_AB_CONFDIR}/${_cd}/pbi-descr" "${_od}/pbi-descr"
fi
- # Generate patch files to the new version of this PBI
+ # Check if we need to rebuild patches
if [ "$PBI_AB_GENPATCH" = "YES" -a -d "${_od}/archived" ] ; then
- gen_pbi_patches "${_od}" "${_od}/archived" >>${_od}/build.log 2>>${_od}/build.log
+ echo "===> Generating patches for [$build]"
+ gen_pbi_patches "${_od}" "${_od}/archived"
fi
rm "${_od}/build.log.bz2" >/dev/null 2>/dev/null
@@ -5703,6 +6003,7 @@ start_ext_ab() {
${PBI_AB_HELPS} "FAILED" "${_od}"
fi
fi
+
}
# Function which begins to generate patch files from archived PBIs to current
@@ -5715,6 +6016,7 @@ gen_pbi_patches()
# First remove any old patches
rm ${_curPBIdir}/*.pbp 2>/dev/null
+ rm ${_curPBIdir}/*.pbp.sha256 2>/dev/null
# Make sure to enable signing of the patch files
if [ -n "${PBI_AB_SSLPRIVKEY}" ] ; then
@@ -5723,13 +6025,16 @@ gen_pbi_patches()
local _mpflags="-o $_curPBIdir"
fi
+ # Check if we need to enable tmpfs
+ if [ "$PBI_AB_TMPFS" = "YES" ] ; then _mpflags="${_mpflags} --tmpfs" ; fi
+
# Build a list of old PBIs we need to make patches from
for _oPBI in `ls ${_oldPBIdir}/*.pbi 2>/dev/null`
do
# Make sure we don't try to make a patch of identical files
if [ "`basename $_oPBI`" != "`basename $_curPBI`" ] ; then
- echo "Building pbp patch of ${_oPBI} -> ${_curPBI}"
- pbi_makepatch $_mpflags "$_oPBI" "$_curPBI"
+ #echo "Building pbp patch of ${_oPBI} -> ${_curPBI}"
+ pbi_makepatch $_mpflags "$_oPBI" "$_curPBI" >/dev/null 2>/dev/null
if [ "$?" != "0" ] ; then
echo "pbi_makepatch: Failed creating patchfile for $_oPBI -> $_curPBI"
fi
@@ -5780,6 +6085,18 @@ make_pbi_patchfile()
return
fi
+ # Get the arch type
+ get_arch_from_pbi_file "$_pbiNew"
+ _pbiNewArch="$VAL"
+ get_arch_from_pbi_file "$_pbiOld"
+ _pbiOldArch="$VAL"
+
+ # Sanity check these system types
+ if [ "${_pbiNewArch}" != "${_pbiOldArch}" ] ; then
+ echo "Error: Arch mismatch between $_pbiNew and $_pbiOld"
+ return
+ fi
+
# Make our extraction directories
if [ -e "$_pbiNewDir" ] ; then rm -rf "$_pbiNewDir"; fi
if [ -e "$_pbiOldDir" ] ; then rm -rf "$_pbiOldDir"; fi
@@ -5788,6 +6105,13 @@ make_pbi_patchfile()
mkdir -p "$_pbiOldDir"
mkdir -p "$_pbiPatchDir"
+ # If using tmpfs to speed up patch process
+ if [ "$PBI_MP_TMPFS" = "YES" ] ; then
+ mount -t tmpfs tmpfs "${_pbiNewDir}"
+ mount -t tmpfs tmpfs "${_pbiOldDir}"
+ mount -t tmpfs tmpfs "${_pbiPatchDir}"
+ fi
+
local _opts="-e --licagree"
if [ "${PBI_SKIPSIGVERIFY}" = "YES" ] ; then
_opts="${_opts} --no-checksig"
@@ -5869,7 +6193,7 @@ make_pbi_patchfile()
get_progname_from_pbi_file "$_pbiNew"
_pbilow="`echo ${VAL} | tr '[:upper:]' '[:lower:]' | sed 's| ||g'`"
- outfile="${_cDir}/${_pbilow}-${_pbiOldVer}_to_${_pbiNewVer}-`uname -m`.pbp"
+ outfile="${_cDir}/${_pbilow}-${_pbiOldVer}_to_${_pbiNewVer}-${_pbiNewArch}.pbp"
mark1="${_cDir}/.pbimark1.$$"
mark2="${_cDir}/.pbimark2.$$"
@@ -6086,6 +6410,12 @@ get_mdate_from_pbi_file()
export VAL
}
+get_arch_from_pbi_file()
+{
+ VAL="`pbi_add -i $1 | grep Arch: | cut -d ' ' -f 2-5 | tr -s ' '`"
+ export VAL
+}
+
# Move old PBIs to the archive
archive_old_pbis()
{
@@ -6099,18 +6429,18 @@ archive_old_pbis()
ls ${_od}/*.pbi >/dev/null 2>/dev/null
if [ "$?" != "0" ] ; then return ; fi
- echo "Moving old PBIs from ${_od}/*.pbi -> ${_od}/archived/"
+ #echo "Moving old PBIs from ${_od}/*.pbi -> ${_od}/archived/"
mv ${_od}/*.pbi ${_od}/archived/ 2>/dev/null
- mv ${_od}/*.sha256 ${_od}/archived/ 2>/dev/null
+ mv ${_od}/*pbi.sha256 ${_od}/archived/ 2>/dev/null
# Prune anything beyond the _keepnum
- echo "Checking for more than $_keepnum PBIs in archive"
+ #echo "Checking for more than $_keepnum PBIs in archive"
oCount="1"
for oFile in `ls -t ${_od}/archived/*.pbi 2>/dev/null`
do
if [ -z "$oFile" ] ; then continue ; fi
if [ "$oCount" -gt "$_keepnum" ] ; then
- echo "Removing old PBI ${oFile} from archive"
+ #echo "Removing old PBI ${oFile} from archive"
rm ${oFile}*
fi
oCount=`expr $oCount + 1`
@@ -6131,7 +6461,7 @@ check_ab_needed() {
if [ -e "${PBI_AB_OUTDIR}/${_cd}/pbi-buildkey" ] ; then
if [ "`cat ${PBI_AB_OUTDIR}/${_cd}/pbi-buildkey`" != "$_bk" \
-a -n "${_bk}" ]; then
- echo "$_port BUILDKEY bump, rebuild triggered."
+ #echo "$_port BUILDKEY bump, rebuild triggered."
internal_ab_priority="9"
return 0
fi
@@ -6141,7 +6471,7 @@ check_ab_needed() {
if [ -e "${PBI_AB_OUTDIR}/${_cd}/.abkey" -a -e "${PBI_AB_OUTDIR}/${_cd}/pbi-result" ] ; then
if [ "`cat ${PBI_AB_OUTDIR}/${_cd}/.abkey`" = "$_abkey" ] ; then
if [ "`cat ${PBI_AB_OUTDIR}/${_cd}/pbi-result`" != "OK" ] ; then
- echo "$_port - Skipping failed from this run"
+ #echo "$_port - Skipping failed from this run"
return 1
fi
fi
@@ -6153,8 +6483,8 @@ check_ab_needed() {
if [ -e "${PBI_AB_OUTDIR}/${_cd}/.failed-csum" ] ; then
_fcsum="`cat ${PBI_AB_OUTDIR}/${_cd}/.failed-csum`"
_ncsum="`tar cvf - -C "${PORTSDIR}/${_port}" . 2>/dev/null | md5 -q`"
- if [ "$_fcsum" != "$_ncsum" ] ; then
- echo "$_port - Skipping failed"
+ if [ "$_fcsum" = "$_ncsum" ] ; then
+ #echo "$_port - Skipping failed"
return 1
fi
fi
@@ -6162,7 +6492,7 @@ check_ab_needed() {
# See if we have an existing PBI
ls ${PBI_AB_OUTDIR}/${_cd}/*.pbi >/dev/null 2>/dev/null
if [ "${?}" != "0" ]; then
- echo "$_port - No existing PBI"
+ #echo "$_port - No existing PBI"
internal_ab_priority="8"
return 0
fi
@@ -6170,7 +6500,7 @@ check_ab_needed() {
# See if we have a saved version
if [ ! -e "${PBI_AB_OUTDIR}/${_cd}/pbi-version" ]; then
#echo "No saved pbi-version"
- echo "$_port - No existing version"
+ #echo "$_port - No existing version"
internal_ab_priority="7"
return 0
fi
@@ -6185,11 +6515,11 @@ check_ab_needed() {
if [ "$PORTVER" = "$oldPortVer" ] ; then
# Just a minor portrev bump
internal_ab_priority="2"
- echo "$_port revision bump: $oldVersion -> $PBI_PROGVERSION"
+ #echo "$_port revision bump: $oldVersion -> $PBI_PROGVERSION"
else
# Real version change
internal_ab_priority="3"
- echo "$_port version bump: $oldVersion -> $PBI_PROGVERSION"
+ #echo "$_port version bump: $oldVersion -> $PBI_PROGVERSION"
fi
return 0
fi
@@ -6210,6 +6540,9 @@ pbi_make_init() {
do_pbi_make() {
+ # See if we need to enable pkgng
+ detect_pkgng
+
# Load the PBI settings
get_pbi_progversion
get_pbi_progname
@@ -6235,6 +6568,10 @@ do_pbi_make() {
chroot_make_cleanup
rm_tmpdir
+ # If running as an auto-build, show that we were successful
+ if [ -n "$PBI_AB_TMPDIR" ] ; then
+ echo "$_err" > ${PBI_AB_TMPDIR}/${PBI_AB_BUILDER}.result
+ fi
exit $_err
fi
@@ -6284,6 +6621,7 @@ do_pbi_make() {
# Got this far, lets exit with success
rm_buildfiles
rm_tmpdir
+
exit 0
}
@@ -6375,11 +6713,30 @@ chroot_make_cleanup() {
umount -f ${PBI_CHROOTDIR}/dev >/dev/null 2>/dev/null
umount -f ${PBI_CHROOTDIR}/compat/linux/proc >/dev/null 2>/dev/null
umount -f ${PBI_CHROOTDIR}/usr/ports >/dev/null 2>/dev/null
- umount -f ${PBI_CHROOTDIR}/tmpfs >/dev/null 2>/dev/null
umount -f ${PBI_CHROOTDIR}/pkgs >/dev/null 2>/dev/null
umount -f ${PBI_CHROOTDIR}/.ccache >/dev/null 2>/dev/null
+ umount -f ${PBI_CHROOTDIR}/usr/wrkdirprefix >/dev/null 2>/dev/null
+
+ # Sleep a moment before we try this again, seems it takes a moment to clear up
+ sleep 2
+ umount -f ${PBI_CHROOTDIR}/dev >/dev/null 2>/dev/null
if [ "${PBI_KEEPBUILDFILES}" = "YES" ] ; then return ; fi
+
+ # Cleanup ZFS dataset
+ isDirZFS "${PBI_CHROOTDIR}" "1"
+ if [ $? -eq 0 ] ; then
+ tank=`getZFSTank "$PBI_CHROOTDIR"`
+ sleep 1
+ # If we are running as a result of pbi_autobuild, let it do the ZFS cleanup
+ if [ -z "${PBI_AB_TMPDIR}" ] ; then
+ zfs destroy ${tank}${PBI_CHROOTDIR}
+ rmdir ${PBI_CHROOTDIR} >/dev/null 2>/dev/null
+ fi
+ return
+ fi
+
+ # Cleanup normal directory
rm -rf "${PBI_CHROOTDIR}" >/dev/null 2>/dev/null
chflags -R noschg ${PBI_CHROOTDIR} >/dev/null 2>/dev/null
rm -rf "${PBI_CHROOTDIR}" >/dev/null 2>/dev/null
@@ -6388,8 +6745,17 @@ chroot_make_cleanup() {
# Function which extracts the clean chroot environment for the PBI
chroot_extract() {
- # If no chroot file exists, make it first
- [ -e "${PBI_CHROOTFILE}" ] || mk_chroot_file
+ # If no freebsd base exists, make it first
+ isDirZFS "${PBI_APPDIR}"
+ if [ $? -eq 0 ] ; then
+ # Use ZFS base for cloning
+ PBI_CHROOTZFS="${PBI_APPDIR}/.pbi-world-$ARCH"
+ [ -e "${PBI_CHROOTZFS}/COPYRIGHT" ] || mk_chroot_file
+ else
+ # Use regular .txz file
+ PBI_CHROOTFILE="${PBI_APPDIR}/.pbi-world-$ARCH.txz"
+ [ -e "${PBI_CHROOTFILE}" ] || mk_chroot_file
+ fi
# Set the chroot path
PBI_CHROOTDIR="${PBI_PROGDIRPATH}.chroot"
@@ -6398,33 +6764,59 @@ chroot_extract() {
# See if there is old chroot to clean first
chroot_make_cleanup
+ # Create the new chroot dir
mkdir -p "${PBI_CHROOTDIR}"
- echo "Extracting chroot environment..."
- tar xvf ${PBI_CHROOTFILE} -C "${PBI_CHROOTDIR}" >/dev/null 2>/dev/null
- [ $? -ne 0 ] && exit_err "Failed extracting chroot environment!"
+
+ # If on ZFS, we can just clone our existing base system
+ if [ -n "$PBI_CHROOTZFS" ] ; then
+ tank=`getZFSTank "$PBI_CHROOTZFS"`
+ echo "Cloning ${PBI_CHROOTZFS} -> ${PBI_CHROOTDIR}"
+ if [ -n "${PBI_AB_TMPDIR}" ] ; then
+ echo "${tank}${PBI_CHROOTDIR}" > ${PBI_AB_TMPDIR}/${PBI_AB_BUILDER}.zmnt
+ fi
+ zfs clone ${tank}${PBI_CHROOTZFS}@clean ${tank}${PBI_CHROOTDIR}
+ if [ $? -ne 0 ] ; then exit_err "Failed creating clean ZFS base snapshot"; fi
+ else
+ echo "Extracting chroot environment..."
+ tar xvf ${PBI_CHROOTFILE} -C "${PBI_CHROOTDIR}" >/dev/null 2>/dev/null
+ [ $? -ne 0 ] && exit_err "Failed extracting chroot environment!"
+ fi
+
+ # If we plan on using TMPFS mount it now
+ mkdir -p ${PBI_CHROOTDIR}/usr/wrkdirprefix
+ if [ "$MKTMPFS" = "YES" ] ; then
+ mount -t tmpfs tmpfs ${PBI_CHROOTDIR}/usr/wrkdirprefix
+ fi
# Copy resolv.conf
cp /etc/resolv.conf ${PBI_CHROOTDIR}/etc/resolv.conf
# Copy our binary wrapper
+ PBI_WRAPPERFILE="${PBI_APPDIR}/.pbiwrapper-$ARCH"
mkdir ${PBI_CHROOTDIR}${PBI_APPDIR} 2>/dev/null
cp ${PBI_WRAPPERFILE} ${PBI_CHROOTDIR}${PBI_WRAPPERFILE}
# If we have a custom PBI_MAKECONF include it
[ -e "${PBI_MAKECONF}" ] && cp ${PBI_MAKECONF} ${PBI_CHROOTDIR}/etc/make.conf
+ # Set any target arch vars
+ if [ "${ARCH}" = "i386" -a "${REALARCH}" = "amd64" ];then
+ LOGIN_ENV=",UNAME_p=i386,UNAME_m=i386"
+ cat >> ${PBI_CHROOTDIR}/etc/make.conf << EOF
+ARCH=i386
+MACHINE=i386
+MACHINE_ARCH=i386
+EOF
+ sed -i .back -e "s/:\(setenv.*\):/:\1${LOGIN_ENV}:/" ${PBI_CHROOTDIR}/etc/login.conf
+ cap_mkdb ${PBI_CHROOTDIR}/etc/login.conf
+ fi
+
#echo "Copying ${PORTSDIR} -> ${PBI_CHROOTDIR}/usr/ports"
#tar cvf - -C "${PORTSDIR}" --exclude ./distfiles . 2>/dev/null | tar xvf - -C "${PBI_CHROOTDIR}/usr/ports" 2>/dev/null
[ -d "${PORTSDIR}/distfiles" ] || mkdir -p ${PORTSDIR}/distfiles
mkdir -p ${PBI_CHROOTDIR}/usr/ports 2>/dev/null
mount_nullfs ${PORTSDIR} ${PBI_CHROOTDIR}/usr/ports
- # Using tmpfs?
- if [ "$MKTMPFS" = "YES" ] ; then
- mkdir ${PBI_CHROOTDIR}/tmpfs
- mount -t tmpfs tmpfs ${PBI_CHROOTDIR}/tmpfs
- fi
-
# Are we doing pkg caching?
if [ "$PBI_PKGCACHE" = "YES" ] ; then
mkdir ${PBI_CHROOTDIR}/pkgs
@@ -6494,6 +6886,49 @@ chroot_extract() {
}
+# Get the default PC-BSD mirror to use
+get_pcbsd_mirror() {
+
+ # Check if we already looked up a mirror we can keep using
+ if [ -n "$CACHED_PCBSD_MIRROR" ] ; then
+ VAL="$CACHED_PCBSD_MIRROR"
+ export VAL
+ return
+ fi
+
+ # Set the mirror URL
+ VAL="`cat ${PCBSD_ETCCONF} 2>/dev/null | grep 'PCBSD_MIRROR: ' | sed 's|PCBSD_MIRROR: ||g'`"
+ if [ -n "$VAL" ] ; then
+ echo "Using mirror: $VAL"
+ CACHED_PCBSD_MIRROR="$VAL"
+ export VAL CACHED_PCBSD_MIRROR
+ return
+ fi
+
+ echo "Getting regional mirror..."
+ . /etc/profile
+
+ # No URL? Lets get one from the master server
+ local mFile="${HOME}/.mirrorUrl.$$"
+ touch $mFile
+ fetch -o $mFile http://getmirror.pcbsd.org >/dev/null 2>/dev/null
+ VAL="`cat $mFile | grep 'URL: ' | sed 's|URL: ||g'`"
+ rm $mFile
+ if [ -n "$VAL" ] ; then
+ echo "Using mirror: $VAL"
+ CACHED_PCBSD_MIRROR="$VAL"
+ export VAL CACHED_PCBSD_MIRROR
+ return
+ fi
+
+ # Still no mirror? Lets try the PC-BSD FTP server...
+ VAL="ftp://ftp.pcbsd.org/pub/mirror"
+ CACHED_PCBSD_MIRROR="$VAL"
+ export VAL CACHED_PCBSD_MIRROR
+ echo "Using mirror: $VAL"
+ return
+}
+
# No chroot environment tar file exists yet, lets build or extract
mk_chroot_file() {
@@ -6503,26 +6938,47 @@ mk_chroot_file() {
cd "$PBI_APPDIR"
# Set the mirror URL
- MIRRORURL="`sed -n 's/PCBSD_MIRROR: //p' ${PCBSD_ETCCONF}`"
+ get_pcbsd_mirror
+ MIRRORURL="$VAL"
# Get the system version we are checking for updates to
SYSVER="`pbreg get /PC-BSD/Version`" ; export SYSVER
- # Set the system arch type
- ARCH=`uname -m`
- if [ -n "${PBI_OSARCH}" ] ; then
- ARCH="${PBI_OSARCH}"
- fi
-
# To fetch the jail environment
echo "Fetching FreeBSD chroot environment... This may take a while..."
- fetch -o rel.txz ${MIRRORURL}/${SYSVER}/${ARCH}/netinstall/fbsd-release.txz
- fetch -o rel.md5 ${MIRRORURL}/${SYSVER}/${ARCH}/netinstall/fbsd-release.txz.md5
-
- [ `md5 -q rel.txz` != `cat rel.md5` ] && exit_err "Error in download data, checksum mismatch.. Please try again later."
+ fetch -o rel-$ARCH.txz ${MIRRORURL}/${SYSVER}/${ARCH}/netinstall/fbsd-release.txz
+ fetch -o rel-$ARCH.md5 ${MIRRORURL}/${SYSVER}/${ARCH}/netinstall/fbsd-release.txz.md5
+ fetch -o src-$ARCH.txz ${MIRRORURL}/${SYSVER}/${ARCH}/netinstall/extras/components/src.txz
+
+ [ `md5 -q rel-$ARCH.txz` != `cat rel-$ARCH.md5` ] && exit_err "Error in download data, checksum mismatch.. Please try again later."
+
+ isDirZFS "${PBI_APPDIR}"
+ if [ $? -eq 0 ] ; then
+ # Use ZFS base for cloning
+ echo "Creating ZFS ${PBI_CHROOTZFS} dataset..."
+ tank=`getZFSTank "$PBI_APPDIR"`
+ isDirZFS "${PBI_CHROOTZFS}" "1"
+ if [ $? -ne 0 ] ; then
+ zfs create -o mountpoint=${PBI_CHROOTZFS} -p ${tank}${PBI_CHROOTZFS}
+ if [ $? -ne 0 ] ; then exit_err "Failed creating ZFS base dataset"; fi
+ fi
+ echo "Extracting rel-$ARCH.txz..."
+ tar xvpf rel-$ARCH.txz -C ${PBI_CHROOTZFS} 2>/dev/null
+ if [ $? -ne 0 ] ; then exit_err "Failed extracting ZFS base dataset"; fi
+ mkdir -p ${PBI_CHROOTZFS}/usr/src 2>/dev/null
+ echo "Extracting src-$ARCH.txz..."
+ tar xvpf src-$ARCH.txz -C ${PBI_CHROOTZFS}/usr/src 2>/dev/null
+ if [ $? -ne 0 ] ; then exit_err "Failed extracting ZFS base src dataset"; fi
+ rm rel-$ARCH.txz
+ rm src-$ARCH.txz
+ rm rel-$ARCH.md5
+ zfs snapshot ${tank}${PBI_CHROOTZFS}@clean
+ if [ $? -ne 0 ] ; then exit_err "Failed creating clean ZFS base snapshot"; fi
+ else
+ mv rel-$ARCH.txz ${PBI_CHROOTFILE}
+ rm rel-$ARCH.md5
+ fi
- mv rel.txz ${PBI_CHROOTFILE}
- rm rel.md5
return
fi
@@ -6552,7 +7008,7 @@ mk_chroot_file() {
which svn >/dev/null 2>/dev/null
[ "$?" -ne 0 ] && exit_err "Subversion is required to rebuild the chroot environment!"
- local _osRel=`uname -r`
+ local _osRel=$FBSDREL
if [ -n "${PBI_OSREL}" ]; then
_osRel="${PBI_OSREL}"
fi
@@ -6602,10 +7058,10 @@ mk_chroot_file() {
fi
fi # End of subversion checkout
- echo "Running buildworld / installworld"
+ echo "Running buildworld / installworld (into a chroot)"
touch ${PBI_BUILDSRC}/Makefile
cd ${PBI_BUILDSRC}
- make ${PBI_BUILDFLAGS} buildworld >>${PBI_BUILDLOG} 2>>${PBI_BUILDLOG}
+ make ${PBI_BUILDFLAGS} TARGET=$ARCH buildworld >>${PBI_BUILDLOG} 2>>${PBI_BUILDLOG}
if [ "$?" != "0" ] ; then
cd
if [ "${PBI_BUILDSRC}" != "/usr/src" -a "${PBI_DELETE_BUILD}" != "0" ] ; then
@@ -6614,7 +7070,23 @@ mk_chroot_file() {
fi
exit_err "Buildworld failed! Logfile saved: ${PBI_BUILDLOG}"
fi
- make ${PBI_BUILDFLAGS} installworld DESTDIR=${PBI_BUILDTARGET} >>${PBI_BUILDLOG} 2>>${PBI_BUILDLOG}
+
+ # See if we need to create a ZFS dataset
+ isDirZFS "${PBI_APPDIR}"
+ if [ $? -eq 0 ] ; then
+ # Use ZFS base for cloning
+ echo "Creating ZFS ${PBI_CHROOTZFS} dataset..."
+ tank=`getZFSTank "$PBI_APPDIR"`
+ isDirZFS "${PBI_CHROOTZFS}" "1"
+ if [ $? -ne 0 ] ; then
+ zfs create -o mountpoint=${PBI_CHROOTZFS} -p ${tank}${PBI_CHROOTZFS}
+ if [ $? -ne 0 ] ; then exit_err "Failed creating ZFS base dataset"; fi
+ fi
+ rmdir "${PBI_BUILDTARGET}"
+ PBI_BUILDTARGET="$PBI_CHROOTZFS"
+ fi
+
+ make ${PBI_BUILDFLAGS} installworld TARGET=$ARCH DESTDIR=${PBI_BUILDTARGET} >>${PBI_BUILDLOG} 2>>${PBI_BUILDLOG}
if [ "$?" != "0" ] ; then
cd
if [ "${PBI_BUILDSRC}" != "/usr/src" -a "${PBI_DELETE_BUILD}" != "0" ] ; then
@@ -6623,7 +7095,7 @@ mk_chroot_file() {
fi
exit_err "Buildworld failed! Logfile saved: ${PBI_BUILDLOG}"
fi
- make ${PBI_BUILDFLAGS} distribution DESTDIR=${PBI_BUILDTARGET} >>${PBI_BUILDLOG} 2>>${PBI_BUILDLOG}
+ make ${PBI_BUILDFLAGS} distribution TARGET=$ARCH DESTDIR=${PBI_BUILDTARGET} >>${PBI_BUILDLOG} 2>>${PBI_BUILDLOG}
if [ "$?" != "0" ] ; then
cd
if [ "${PBI_BUILDSRC}" != "/usr/src" -a "${PBI_DELETE_BUILD}" != "0" ] ; then
@@ -6638,6 +7110,14 @@ mk_chroot_file() {
mkdir -p ${PBI_BUILDTARGET}/usr/src >/dev/null 2>/dev/null
tar cvf - -C "${PBI_BUILDSRC}" --exclude "\.svn/" . 2>/dev/null | tar xvf - -C "${PBI_BUILDTARGET}/usr/src" 2>/dev/null
+ # If using ZFS we can stop here
+ if [ -n "$PBI_CHROOTZFS" ] ; then
+ zfs snapshot ${tank}${PBI_CHROOTZFS}@clean
+ if [ $? -ne 0 ] ; then exit_err "Failed creating clean ZFS base snapshot"; fi
+ rm ${PBI_BUILDLOG}
+ return
+ fi
+
echo "Creating chroot environment tarball"
tar cvjf ${PBI_CHROOTFILE} -C ${PBI_BUILDTARGET} . >>${PBI_BUILDLOG} 2>>${PBI_BUILDLOG}
if [ $? -ne 0 ] ; then
@@ -6667,9 +7147,15 @@ mk_auto_ext_linksfile() {
get_pkgname "${PORTSDIR}/${PBI_MAKEPORT}"
_pname="${PKGNAME}"
- pkg_info -L ${_pname} | sed "s|^${PBI_PROGDIRPATH}/||g" \
- | grep -v "^Information for" \
- | grep -v "^Files:" \
+ # Define some commands
+ if [ $PKGNG -eq 1 ] ; then
+ pkgInf="pkg info -l"
+ else
+ pkgInf="pkg_info -L"
+ fi
+
+ ${pkgInf} ${_pname} | sed "s|^${PBI_PROGDIRPATH}/||g" \
+ | grep -v -e "^Information for" -e "^Files:" -e "owns the following" \
| tr -s '\t' ' ' \
| tr -d ' ' \
> "${PBI_TMPDIR}/.pkg_flist.$$"
@@ -6687,52 +7173,19 @@ mk_auto_ext_linksfile() {
# See if this is executable and set it as binary
dirname ${f} | grep -e "bin" -e "sbin" >/dev/null 2>/dev/null
if [ -x "${PBI_PROGDIRPATH}/${f}" -a $? -eq 0 ] ; then
- echo "${f} ${f} binary,nocrash" >> "$_ef"
+
+ # Check this executable, if Linux binary, flag it
+ file "${PBI_PROGDIRPATH}/${f}" | grep -iq "Linux"
+ if [ $? -ne 0 ] ; then
+ echo "${f} ${f} binary,nocrash" >> "$_ef"
+ else
+ echo "${f} ${f} linux,nocrash" >> "$_ef"
+ fi
else
echo "${f} ${f} replace" >> "$_ef"
fi
done < ${PBI_TMPDIR}/.pkg_flist.$$
rm "${PBI_TMPDIR}/.pkg_flist.$$"
-
- # Skip the dbus stuff for now causes weird issues with various apps
- return 0
-
- # Now figure out any dbus services we need to make links / wrappers for
- for _dsd in $DBUS_SEARCH_DIRS
- do
- # Check if we have a valid dbus directory
- [ -d "${PBI_PROGDIRPATH}/${_dsd}" ] || continue
-
- # Make a list of files to include
- find ${PBI_PROGDIRPATH}/${_dsd} -type f | sed "s|${PBI_PROGDIRPATH}/${_dsd}/||g" > ${PBI_TMPDIR}/.dbus.$$
-
- # Add these files to the external links file
- while read _dbfile
- do
- # Get the file extension, only .xml and .service are valid
- case "${_dsd}/${_dbfile}" in
- *.xml) dbext=".xml" ;;
- *.service)
- dbext=".service"
-
- # We have a service file, find the target binary and make sure its added as a wrapper only
- _dbbin="`grep 'Exec' ${PBI_PROGDIRPATH}/${_dsd}/${_dbfile} | cut -d '=' -f 2 | cut -d ' ' -f 1`"
- _dbbin=`echo "$_dbbin" | sed "s|${PBI_PROGDIRPATH}/||g"`
- [ -n "$_dbbin" ] && echo "${_dbbin} ${_dbbin} binwrapper" >> "$_ef"
-
- # Massage the service file to point to the fakebin wrapper
- rmBaseDir="`dirname ${_dbbin}`"
- sed -i '' "s|${PBI_PROGDIRPATH}/${rmBaseDir}/|${PBI_PROGDIRPATH}/${PBI_FAKEBIN_DIR}/|g" "${PBI_PROGDIRPATH}/${_dsd}/${_dbfile}"
- ;;
- *) continue ;;
- esac
-
- echo "${_dsd}/${_dbfile} ${_dsd}/${_dbfile}.${_pname}.${dbext} replace" >> "$_ef"
- done < ${PBI_TMPDIR}/.dbus.$$
- rm ${PBI_TMPDIR}/.dbus.$$
-
- done
-
}
# Init the crash handler routine
@@ -6756,7 +7209,26 @@ exit_trap() {
kill -s INT ${FETCH_PID}
sleep 2
fi
+
+ # If we are running as an auto-build service we need to cleanup
+ if [ "`basename ${0}`" = "pbi_autobuild" ] ; then
+ for j in `ls ${PBI_TMPDIR}/*.pid 2>/dev/null`
+ do
+ bNum=`basename $j | cut -d '.' -f 1 `
+ if pgrep -qF "${j}" >/dev/null 2>&1; then
+ echo "===>Cleaning up processes [$bNum]"
+ pkill -9 -P "`cat ${j}`"
+ sleep 10
+ pkill -9 -F ${j}
+ sleep 10
+ # Do the ZFS destroy here, since running zfs destroy concurrently as we cleanup can cause a panic
+ check_zfs_ab_destroy "$bNum"
+ fi
+ done
+ fi
+
chroot_make_cleanup
+ rm_pbipatchfiles
rm_tmpdir
exit 0
}
@@ -6784,43 +7256,6 @@ load_pbi_etcconf() {
PBIDSLEEP="${_ckPBID}"
fi
- # Load Proxy Variables
- if [ -z "$PBI_PROXYURL" -a -e "${PBI_ETCCONF}" ] ; then
- PBI_PROXYURL="`sed -n 's/PBI_PROXYURL: //p' ${PBI_ETCCONF}`"
- PBI_PROXYPORT="`sed -n 's/PBI_PROXYPORT: //p' ${PBI_ETCCONF}`"
- PBI_PROXYTYPE="`sed -n 's/PBI_PROXYTYPE: //p' ${PBI_ETCCONF}`"
- PBI_PROXYUSER="`sed -n 's/PBI_PROXYUSER: //p' ${PBI_ETCCONF}`"
- PBI_PROXYPASS="`sed -n 's/PBI_PROXYPASS: //p' ${PBI_ETCCONF}`"
- fi
-
- # If empty proxy config, check if configured for master pcbsd.conf file
- if [ -z "$PBI_PROXYURL" -a -e "${PCBSD_ETCCONF}" ] ; then
- PBI_PROXYURL="`sed -n 's/PCBSD_PROXYURL: //p' ${PCBSD_ETCCONF}`"
- PBI_PROXYPORT="`sed -n 's/PCBSD_PROXYPORT: //p' ${PCBSD_ETCCONF}`"
- PBI_PROXYTYPE="`sed -n 's/PCBSD_PROXYTYPE: //p' ${PCBSD_ETCCONF}`"
- PBI_PROXYUSER="`sed -n 's/PCBSD_PROXYUSER: //p' ${PCBSD_ETCCONF}`"
- PBI_PROXYPASS="`sed -n 's/PCBSD_PROXYPASS: //p' ${PCBSD_ETCCONF}`"
- fi
-
-
- # Create the PROXY variables based upon proxy information supplied
- if [ -n "$PBI_PROXYURL" ] ; then
- if [ -n "$PBI_PROXYPORT" ] ; then
- HTTP_PROXY="${PBI_PROXYURL}:${PBI_PROXYPORT}"
- FTP_PROXY="${PBI_PROXYURL}:${PBI_PROXYPORT}"
- export HTTP_PROXY FTP_PROXY
- else
- HTTP_PROXY="${PBI_PROXYURL}"
- FTP_PROXY="${PBI_PROXYURL}"
- export HTTP_PROXY FTP_PROXY
- fi
- if [ -n "$PBI_PROXYUSER" ] ; then
- if [ -n "$PBI_PROXYPASS" ] ; then
- HTTP_PROXY_AUTH="basic:*:${PBI_PROXYUSER}:${PBI_PROXYPASS}"
- export HTTP_PROXY_AUTH
- fi
- fi
- fi
}
# If the loaded file is a PBI PatchFile
@@ -6837,15 +7272,27 @@ is_pbi_patch() {
do_port_build()
{
local _lPort="$1"
+
+ local iFile="$PORTSDIR/INDEX-$FBSDMAJOR"
+ if [ ! -e "$iFile" ] ; then
+ echo "Creating $iFile "
+ make -C ${PORTSDIR} index
+ fi
+
echo "Checking port: $_lPort"
# Make sure this port isn't already loaded
- local pkgName=`make -V PKGNAME -C $_lPort`
- if [ -e "/var/db/pkg/${pkgName}" ] ; then return ; fi
+ local pkgName=`make -V PKGNAME -C $_lPort PORTSDIR=${PORTSDIR}`
+ if [ $PKGNG -eq 1 ] ; then
+ pkg info -e ${pkgName}
+ if [ $? -eq 0 ] ; then return ; fi
+ else
+ if [ -e "/var/db/pkg/${pkgName}" ] ; then return ; fi
+ fi
# Save any users / groups we need to create later
- local pUsers="`make -V USERS -C $_lPort`"
- local pGroups="`make -V GROUPS -C $_lPort`"
+ local pUsers="`make -V USERS -C $_lPort PORTSDIR=${PORTSDIR}`"
+ local pGroups="`make -V GROUPS -C $_lPort PORTSDIR=${PORTSDIR}`"
if [ -n "$pUsers" ] ; then
PBI_BUILD_USERS="$PBI_BUILD_USERS $pUsers"
fi
@@ -6853,36 +7300,50 @@ do_port_build()
PBI_BUILD_GROUPS="$PBI_BUILD_GROUPS $pGroups"
fi
- # Parse the deps
- local TMPFILE=`mktemp /tmp/deplist.XXXXXXXX`
- make all-depends-list -C $_lPort >$TMPFILE
- while read line
+ # Parse the pkg deps
+ for cPkg in `grep "^${pkgName}|" $iFile | cut -d '|' -f 8-9 | sed 's/|/ /g'`
do
- local _port="$line"
- local _depPkgName=`make -V PKGNAME -C $_port`
+ if [ -z "$cPkg" ] ; then continue ; fi
+
# is this installed?
- if [ -e "/var/db/pkg/${_depPkgName}" ] ; then continue ; fi
+ if [ $PKGNG -eq 1 ] ; then
+ pkg info -e ${cPkg}
+ if [ $? -eq 0 ] ; then continue ; fi
+ else
+ if [ -e "/var/db/pkg/${cPkg}" ] ; then continue ; fi
+ fi
+
+ local _port=`grep "^${cPkg}|" $iFile | cut -d '|' -f 2`
# Not installed, do this one now until we drill down to the base
do_port_build "${_port}" >&1 2>&1
- done < $TMPFILE
- rm ${TMPFILE}
+ done
+
+ if [ $PKGNG -eq 1 ] ; then
+ pkgInf="pkg info -e"
+ pkgDep="pkg info -d"
+ pkgCreate="pkg create -f txz"
+ else
+ pkgInf="pkg_info"
+ pkgDep="pkg_info -r"
+ pkgCreate="pkg_create -J -b"
+ fi
# Not installed, see if we have a pkg to install instead
if [ -e "/pkgs/${pkgName}.txz" ] ; then
REBUILDPKG="NO"
- #echo "Checking package: ${pkgName}"
- #pkg_info -r /pkgs/${pkgName}.txz | grep "Dependency:" | cut -d ' ' -f 2 > /tmp/deps.$$
- #while read dLine
- #do
- # pkg_info $dLine >/dev/null 2>/dev/null
- # if [ $? -ne 0 ] ; then
- # echo "Package dependencies updated! Rebuilding port..."
- # REBUILDPKG="YES"
- # break
- # fi
- #done < /tmp/deps.$$
- #rm /tmp/deps.$$
+ echo "Checking package: ${pkgName}"
+ $pkgDep /pkgs/${pkgName}.txz | grep -v -e "^Information" -e "depends on:" -e "^Depends" | sed '/^$/d' | sed 's|Dependency: ||g' > /tmp/deps.$$
+ while read dLine
+ do
+ $pkgInf $dLine >/dev/null 2>/dev/null
+ if [ $? -ne 0 ] ; then
+ echo "Package dependencies updated! Rebuilding port..."
+ REBUILDPKG="YES"
+ break
+ fi
+ done < /tmp/deps.$$
+ rm /tmp/deps.$$
# Fix some pkgs bugging us with license questions
PACKAGE_BUILDING=yes
@@ -6890,7 +7351,7 @@ do_port_build()
if [ "$REBUILDPKG" = "NO" ] ; then
echo "Adding package: ${pkgName}"
- pkg_add -f /pkgs/${pkgName}.txz
+ $PKG_ADD -f /pkgs/${pkgName}.txz
return
fi
fi
@@ -6932,13 +7393,54 @@ do_port_build()
done
# Create new pkg
- pkg_create -J -b ${pkgName}
+ ${pkgCreate} ${pkgName}
+ if [ $? -ne 0 ] ; then
+ exit_err "$pkgCreate ${pkgName} failed!"
+ fi
mv ${pkgName}.txz /pkgs/
sha256 -q /pkgs/${pkgName}.txz >/pkgs/${pkgName}.txz.sha256
-
fi
};
+# Check if the target directory is on ZFS
+# Arg1 = The dir to check
+# Arg2 = If set to 1, don't dig down to lower level directory
+isDirZFS() {
+ local _chkDir="$1"
+ while :
+ do
+ # Is this dir a ZFS mount
+ mount | grep -w "on $_chkDir " | grep -qw "(zfs," && return 0
+
+ # Quit if not walking down
+ if [ "$2" = "1" ] ; then return 1 ; fi
+
+ if [ "$_chkDir" = "/" ] ; then break ; fi
+ _chkDir=`dirname $_chkDir`
+ done
+
+ return 1
+}
+
+# Get the ZFS tank name for a directory
+# Arg1 = Directory to check
+getZFSTank() {
+ local _chkDir="$1"
+ while :
+ do
+ line=`mount | grep -w -e $_chkDir -e "(zfs,"`
+ mount | grep -qw -e $_chkDir -e "(zfs,"
+ if [ $? -eq 0 ] ; then
+ echo $line | cut -d '/' -f -1 | awk '{print $1}'
+ return 0
+ fi
+
+ if [ "$_chkDir" = "/" ] ; then return 1 ; fi
+ _chkDir=`dirname $_chkDir`
+ done
+
+ return 1
+}
# Main program operation
##############################################################
diff --git a/usr/local/sbin/pfSsh.php b/usr/local/sbin/pfSsh.php
index ac4a56a..430d8f9 100755
--- a/usr/local/sbin/pfSsh.php
+++ b/usr/local/sbin/pfSsh.php
@@ -331,6 +331,7 @@ function playback_text($playback_file_contents) {
$playback_text .= $pfs . "\n";
}
}
+ global $config;
eval($playback_text);
}
diff --git a/usr/local/sbin/ppp-linkdown b/usr/local/sbin/ppp-linkdown
index 56a96d9..62d07ed 100755
--- a/usr/local/sbin/ppp-linkdown
+++ b/usr/local/sbin/ppp-linkdown
@@ -1,35 +1,31 @@
#!/bin/sh
-if [ -f /tmp/$1up ] && [ -f /conf/$1.log ]; then
- seconds=$((`date -j +%s` - `/usr/bin/stat -f %m /tmp/$1up`))
- /usr/local/sbin/ppp-log-uptime.sh $seconds $1 &
-fi
-if [ "$3" != "" ]; then
- echo "Removing states from $3" | logger -t ppp-linkdown
- /sbin/pfctl -k 0.0.0.0/0 -k $3/32
- /sbin/pfctl -k $3/32
- pfctl -K $3/32
+
+IF="${1}"
+LOCAL_IP="${3}"
+
+if [ -f /tmp/${IF}up ] && [ -f /conf/${IF}.log ]; then
+ seconds=$((`date -j +%s` - `/usr/bin/stat -f %m /tmp/${IF}up`))
+ /usr/local/sbin/ppp-log-uptime.sh $seconds ${IF} &
fi
-OLD_ROUTER=`/bin/cat /tmp/${1}_router`
-if [ "${OLD_ROUTER}" != "" ]; then
- echo "Removing states to ${OLD_ROUTER}" | logger -t ppp-linkdown
- /sbin/pfctl -b 0.0.0.0/32 -b ${OLD_ROUTER}/32
+/etc/rc.kill_states ${IF} ${LOCAL_IP}
- if [ -f "/tmp/${interface}_defaultgw" ]; then
- route delete default ${OLD_ROUTER}
- fi
+if [ -s "/tmp/${IF}_defaultgw" ]; then
+ GW=`head -n 1 /tmp/${IF}_defaultgw`
+ [ -n "${GW}" ] \
+ && /sbin/route delete default ${GW}
fi
# delete the node just in case mpd cannot do that
-/usr/sbin/ngctl shutdown $1:
-if [ -f "/var/etc/nameserver_$1" ]; then
+/usr/sbin/ngctl shutdown ${IF}:
+if [ -f "/var/etc/nameserver_${IF}" ]; then
# Remove old entries
- for nameserver in `cat /var/etc/nameserver_$1`; do
- /sbin/route delete $nameserver >/dev/null 2>&1
+ for nameserver in `cat /var/etc/nameserver_${IF}`; do
+ /sbin/route delete ${nameserver} >/dev/null 2>&1
done
- /bin/rm -f /var/etc/nameserver_$1
+ /bin/rm -f /var/etc/nameserver_${IF}
fi
# Do not remove gateway used during filter reload.
-/bin/rm -f /tmp/$1_router
-/bin/rm -f /tmp/$1up
-/bin/rm -f /tmp/$1_ip
+/bin/rm -f /tmp/${IF}_router
+/bin/rm -f /tmp/${IF}up
+/bin/rm -f /tmp/${IF}_ip
/usr/local/sbin/pfSctl -c 'service reload dns'
diff --git a/usr/local/sbin/ppp-linkup b/usr/local/sbin/ppp-linkup
index 3a62fbb..1e9fdaa 100755
--- a/usr/local/sbin/ppp-linkup
+++ b/usr/local/sbin/ppp-linkup
@@ -5,7 +5,8 @@ if [ "$2" == "inet" ]; then
OLD_ROUTER=`/bin/cat /tmp/${1}_router`
if [ "${OLD_ROUTER}" != "" ]; then
echo "Removing states to old router ${OLD_ROUTER}" | logger -t ppp-linkup
- /sbin/pfctl -b 0.0.0.0/32 -b ${OLD_ROUTER}/32
+ /sbin/pfctl -i $1 -k 0.0.0.0/0 -k ${OLD_ROUTER}/32
+ /sbin/pfctl -i $1 -k ${OLD_ROUTER}/32 -k 0.0.0.0/0
fi
# let the configuration system know that the ipv4 has changed.
diff --git a/usr/local/sbin/prefixes.php b/usr/local/sbin/prefixes.php
index af915e3..b0920cb 100644
--- a/usr/local/sbin/prefixes.php
+++ b/usr/local/sbin/prefixes.php
@@ -5,6 +5,7 @@ if(!file_exists($leases_file)) {
exit(1);
}
+$duid_arr = array();
foreach(file($leases_file) as $line) {
// echo "$line";
if(preg_match("/^(ia-[np][ad])[ ]+\"(.*?)\"/i ", $line, $duidmatch)) {
diff --git a/usr/local/sbin/vpn-linkdown b/usr/local/sbin/vpn-linkdown
index 0549b1f..b6d033c 100755
--- a/usr/local/sbin/vpn-linkdown
+++ b/usr/local/sbin/vpn-linkdown
@@ -2,8 +2,5 @@
# record logout
/usr/bin/logger -p local3.info "logout,$1,$4,$5"
-/sbin/pfctl -i $1 -b 0.0.0.0/32 -b $4/32
-/sbin/pfctl -i $1 -k $4/32
-/sbin/pfctl -i $1 -k 0.0.0.0/32 $4/32
-/sbin/pfctl -i $1 -K $4/32
-/sbin/pfctl -i $1 -K 0.0.0.0/32 -K $4/32
+/sbin/pfctl -i $1 -Fs
+/sbin/pfctl -K $4/32
diff --git a/usr/local/share/locale/en_US.ISO8859-1/LC_MESSAGES/pfSense.pot b/usr/local/share/locale/en_US.ISO8859-1/LC_MESSAGES/pfSense.pot
index 46db57f..37e2f86 100644
--- a/usr/local/share/locale/en_US.ISO8859-1/LC_MESSAGES/pfSense.pot
+++ b/usr/local/share/locale/en_US.ISO8859-1/LC_MESSAGES/pfSense.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-11-17 14:52-0200\n"
+"POT-Creation-Date: 2013-04-10 08:47-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"
@@ -100,8 +100,9 @@ msgstr ""
#: etc/inc/auth.inc:656 etc/inc/auth.inc:728 etc/inc/auth.inc:796
#: etc/inc/auth.inc:1040 etc/inc/auth.inc:665 etc/inc/auth.inc:737
-#: etc/inc/auth.inc:805 etc/inc/auth.inc:1049 etc/inc/auth.inc:665
-#: etc/inc/auth.inc:737 etc/inc/auth.inc:805 etc/inc/auth.inc:1053
+#: etc/inc/auth.inc:805 etc/inc/auth.inc:1049 etc/inc/auth.inc:1053
+#: etc/inc/auth.inc:665 etc/inc/auth.inc:737 etc/inc/auth.inc:806
+#: etc/inc/auth.inc:1057
#, php-format
msgid "ERROR! Could not connect to server %s."
msgstr ""
@@ -111,128 +112,146 @@ msgstr ""
msgid "LDAP: Could not lookup CA by reference for host %s."
msgstr ""
-#: etc/inc/auth.inc:783 etc/inc/auth.inc:792 etc/inc/auth.inc:792
+#: etc/inc/auth.inc:783 etc/inc/auth.inc:792 etc/inc/auth.inc:793
msgid ""
"ERROR! ldap_get_user_ous() backed selected with no LDAP authentication "
"server defined."
msgstr ""
-#: etc/inc/auth.inc:807 etc/inc/auth.inc:816 etc/inc/auth.inc:816
+#: etc/inc/auth.inc:807 etc/inc/auth.inc:816 etc/inc/auth.inc:818
#, php-format
msgid "ERROR! ldap_get_user_ous() could not bind anonymously to server %s."
msgstr ""
-#: etc/inc/auth.inc:812 etc/inc/auth.inc:821 etc/inc/auth.inc:821
+#: etc/inc/auth.inc:812 etc/inc/auth.inc:821 etc/inc/auth.inc:823
#, php-format
msgid "ERROR! ldap_get_user_ous() could not bind to server %s."
msgstr ""
-#: etc/inc/auth.inc:908 etc/inc/auth.inc:917 etc/inc/auth.inc:917
+#: etc/inc/auth.inc:908 etc/inc/auth.inc:917 etc/inc/auth.inc:919
#, php-format
msgid "ERROR! ldap_get_groups() Could not connect to server %s."
msgstr ""
-#: etc/inc/auth.inc:918 etc/inc/auth.inc:927 etc/inc/auth.inc:927
+#: etc/inc/auth.inc:918 etc/inc/auth.inc:927 etc/inc/auth.inc:930
#, php-format
msgid "ERROR! ldap_get_groups() could not bind anonymously to server %s."
msgstr ""
-#: etc/inc/auth.inc:923 etc/inc/auth.inc:932 etc/inc/auth.inc:932
+#: etc/inc/auth.inc:923 etc/inc/auth.inc:932 etc/inc/auth.inc:935
#, php-format
msgid "ERROR! ldap_get_groups() could not bind to server %s."
msgstr ""
#: etc/inc/auth.inc:1020 etc/inc/auth.inc:1029 etc/inc/auth.inc:1033
+#: etc/inc/auth.inc:1036
msgid ""
"ERROR! ldap_backed() called with no LDAP authentication server defined. "
"Defaulting to local user database. Visit System -> User Manager."
msgstr ""
#: etc/inc/auth.inc:1023 etc/inc/auth.inc:1032 etc/inc/auth.inc:1036
+#: etc/inc/auth.inc:1039
msgid "ERROR! ldap_backed() called with no LDAP authentication server defined."
msgstr ""
#: etc/inc/auth.inc:1054 etc/inc/auth.inc:1063 etc/inc/auth.inc:1067
+#: etc/inc/auth.inc:1071
#, php-format
msgid "ERROR! Could not bind to server %s."
msgstr ""
#: etc/inc/auth.inc:1071 etc/inc/auth.inc:1080 etc/inc/auth.inc:1084
+#: etc/inc/auth.inc:1085 etc/inc/auth.inc:1089
#, php-format
msgid "Now Searching for %s in directory."
msgstr ""
#: etc/inc/auth.inc:1075 etc/inc/auth.inc:1084 etc/inc/auth.inc:1088
+#: etc/inc/auth.inc:1090 etc/inc/auth.inc:1094
#, php-format
msgid "Now Searching in server %1$s, container %2$s with filter %3$s."
msgstr ""
#: etc/inc/auth.inc:1086 etc/inc/auth.inc:1095 etc/inc/auth.inc:1099
+#: etc/inc/auth.inc:1101 etc/inc/auth.inc:1105
#, php-format
msgid "Search resulted in error: %s"
msgstr ""
#: etc/inc/auth.inc:1102 etc/inc/auth.inc:1111 etc/inc/auth.inc:1115
+#: etc/inc/auth.inc:1117 etc/inc/auth.inc:1121
msgid "ERROR! Either LDAP search failed, or multiple users were found."
msgstr ""
#: etc/inc/auth.inc:1108 etc/inc/auth.inc:1117 etc/inc/auth.inc:1121
+#: etc/inc/auth.inc:1123
#, php-format
msgid "ERROR! Could not login to server %1$s as user %2$s."
msgstr ""
#: etc/inc/auth.inc:1113 etc/inc/auth.inc:1122 etc/inc/auth.inc:1126
+#: etc/inc/auth.inc:1129 etc/inc/auth.inc:1133
#, php-format
msgid "Logged in successfully as %1$s via LDAP server %2$s with DN = %3$s."
msgstr ""
#: etc/inc/auth.inc:1144 etc/inc/auth.inc:1153 etc/inc/auth.inc:1157
+#: etc/inc/auth.inc:1163 etc/inc/auth.inc:1167
#, php-format
msgid "Radius start: %s<br>\n"
msgstr ""
#: etc/inc/auth.inc:1155 etc/inc/auth.inc:1164 etc/inc/auth.inc:1168
+#: etc/inc/auth.inc:1174 etc/inc/auth.inc:1178
#, php-format
msgid "Radius send failed: %s<br>\n"
msgstr ""
#: etc/inc/auth.inc:1159 etc/inc/auth.inc:1170 etc/inc/auth.inc:1174
+#: etc/inc/auth.inc:1180 etc/inc/auth.inc:1184
#, php-format
msgid "Radius Auth succeeded"
msgstr ""
#: etc/inc/auth.inc:1164 etc/inc/auth.inc:1175 etc/inc/auth.inc:1179
+#: etc/inc/auth.inc:1185 etc/inc/auth.inc:1189
#, php-format
msgid "Radius Auth rejected"
msgstr ""
#: etc/inc/auth.inc:1207 etc/inc/auth.inc:1222 etc/inc/auth.inc:1218
-#: etc/inc/auth.inc:1233 etc/inc/auth.inc:1222 etc/inc/auth.inc:1237
+#: etc/inc/auth.inc:1233 etc/inc/auth.inc:1237 etc/inc/auth.inc:1228
+#: etc/inc/auth.inc:1243 etc/inc/auth.inc:1232 etc/inc/auth.inc:1247
msgid "Local Database"
msgstr ""
#: etc/inc/auth.inc:1207 etc/inc/auth.inc:1222 etc/inc/auth.inc:1218
-#: etc/inc/auth.inc:1233 etc/inc/auth.inc:1222 etc/inc/auth.inc:1237
+#: etc/inc/auth.inc:1233 etc/inc/auth.inc:1237
msgid "Local Auth"
msgstr ""
#: etc/inc/auth.inc:1293 etc/inc/auth.inc:1317 etc/inc/auth.inc:1321
+#: etc/inc/auth.inc:1327 etc/inc/auth.inc:1331
#, php-format
msgid "Successful login for user '%1$s' from: %2$s"
msgstr ""
#: etc/inc/auth.inc:1347 etc/inc/auth.inc:1371 etc/inc/auth.inc:1375
+#: etc/inc/auth.inc:1381 etc/inc/auth.inc:1385
#, php-format
msgid "Session timed out for user '%1$s' from: %2$s"
msgstr ""
#: etc/inc/auth.inc:1349 etc/inc/auth.inc:1373 etc/inc/auth.inc:1377
+#: etc/inc/auth.inc:1383 etc/inc/auth.inc:1387
#, php-format
msgid "User logged out for user '%1$s' from: %2$s"
msgstr ""
#: etc/inc/captiveportal.inc:1374 etc/inc/captiveportal.inc:1383
-#: etc/inc/captiveportal.inc:1420
+#: etc/inc/captiveportal.inc:1420 etc/inc/captiveportal.inc:1335
+#: etc/inc/captiveportal.inc:1338
#, php-format
msgid "Error: cannot open '%s' in captiveportal_write_elements()%s"
msgstr ""
@@ -267,9 +286,9 @@ msgstr ""
#: etc/inc/config.inc:180 etc/inc/config.inc:181 etc/inc/config.lib.inc:105
#: etc/inc/config.lib.inc:106 etc/inc/config.lib.inc:245
#: etc/inc/config.lib.inc:266 etc/inc/config.lib.inc:267
-#: etc/inc/config.lib.inc:105 etc/inc/config.lib.inc:106
-#: etc/inc/config.lib.inc:245 etc/inc/config.lib.inc:266
-#: etc/inc/config.lib.inc:267 etc/inc/config.inc:180 etc/inc/config.inc:181
+#: etc/inc/config.inc:180 etc/inc/config.inc:181 etc/inc/config.lib.inc:105
+#: etc/inc/config.lib.inc:106 etc/inc/config.lib.inc:245
+#: etc/inc/config.lib.inc:266 etc/inc/config.lib.inc:267
msgid "No config.xml found, attempting last known config restore."
msgstr ""
@@ -278,42 +297,52 @@ msgid "No config.xml or config backups found, resetting to factory defaults."
msgstr ""
#: etc/inc/filter.inc:197 etc/inc/filter.inc:194 etc/inc/filter.inc:193
+#: etc/inc/filter.inc:168 etc/inc/filter.inc:168
msgid "Initializing"
msgstr ""
#: etc/inc/filter.inc:209 etc/inc/filter.inc:206 etc/inc/filter.inc:205
+#: etc/inc/filter.inc:180 etc/inc/filter.inc:180
msgid "Configuring firewall"
msgstr ""
#: etc/inc/filter.inc:214 etc/inc/filter.inc:211 etc/inc/filter.inc:210
+#: etc/inc/filter.inc:185 etc/inc/filter.inc:185
msgid "Creating aliases"
msgstr ""
-#: etc/inc/filter.inc:219 etc/inc/filter.inc:218
+#: etc/inc/filter.inc:219 etc/inc/filter.inc:218 etc/inc/filter.inc:193
+#: etc/inc/filter.inc:193
msgid "Generating NAT rules"
msgstr ""
-#: etc/inc/filter.inc:224 etc/inc/filter.inc:223
+#: etc/inc/filter.inc:224 etc/inc/filter.inc:223 etc/inc/filter.inc:198
+#: etc/inc/filter.inc:198
msgid "Generating filter rules"
msgstr ""
-#: etc/inc/filter.inc:230 etc/inc/filter.inc:229
+#: etc/inc/filter.inc:230 etc/inc/filter.inc:229 etc/inc/filter.inc:204
+#: etc/inc/filter.inc:204
msgid "Generating ALTQ queues"
msgstr ""
#: etc/inc/filter.inc:232 etc/inc/filter.inc:216 etc/inc/filter.inc:215
+#: etc/inc/filter.inc:190 etc/inc/filter.inc:190
msgid "Generating Limiter rules"
msgstr ""
#: etc/inc/filter.inc:234 etc/inc/filter.inc:232 etc/inc/filter.inc:231
+#: etc/inc/filter.inc:206 etc/inc/filter.inc:206
msgid "Generating Layer7 rules"
msgstr ""
#: etc/inc/filter.inc:238 etc/inc/filter.inc:236 etc/inc/filter.inc:235
+#: etc/inc/filter.inc:210 etc/inc/filter.inc:210
msgid "Loading filter rules"
msgstr ""
#: etc/inc/filter.inc:245 etc/inc/filter.inc:243 etc/inc/filter.inc:242
+#: etc/inc/filter.inc:217 etc/inc/filter.inc:217
msgid "Filter is disabled. Not loading rules."
msgstr ""
@@ -372,74 +401,128 @@ msgstr ""
#: etc/inc/interfaces.inc:361 etc/inc/interfaces.inc:411
#: etc/inc/interfaces.inc:670 etc/inc/interfaces.inc:950
#: etc/inc/interfaces.inc:990 etc/inc/interfaces.inc:1005
-#: etc/inc/interfaces.inc:1849 etc/inc/rrd.inc:806 etc/inc/services.inc:1160
+#: etc/inc/interfaces.inc:1849 etc/inc/services.inc:1160
#: etc/inc/services.inc:1509 etc/inc/services.inc:1573
#: etc/inc/services.inc:1808 etc/inc/filter.inc:244 etc/inc/filter.inc:423
+#: etc/inc/filter.inc:219 etc/inc/filter.inc:395 etc/inc/pkg-utils.inc:411
+#: etc/inc/pkg-utils.inc:648 etc/inc/pkg-utils.inc:658
+#: etc/inc/pkg-utils.inc:681 etc/inc/pkg-utils.inc:758
+#: etc/inc/pkg-utils.inc:773 etc/inc/pkg-utils.inc:817
+#: etc/inc/pkg-utils.inc:877 etc/inc/pkg-utils.inc:884
+#: etc/inc/pkg-utils.inc:901 etc/inc/pkg-utils.inc:917
+#: etc/inc/pkg-utils.inc:933 etc/inc/pkg-utils.inc:1040
+#: etc/inc/pkg-utils.inc:1057 etc/inc/pkg-utils.inc:1082
+#: etc/inc/pkg-utils.inc:1127 etc/inc/pkg-utils.inc:1136
+#: etc/inc/pkg-utils.inc:1146 etc/inc/pkg-utils.inc:1161
+#: etc/inc/pkg-utils.inc:1168 etc/inc/pkg-utils.inc:1187
+#: etc/inc/interfaces.inc:216 etc/inc/interfaces.inc:233
+#: etc/inc/interfaces.inc:365 etc/inc/interfaces.inc:422
+#: etc/inc/interfaces.inc:697 etc/inc/interfaces.inc:1033
+#: etc/inc/interfaces.inc:1054 etc/inc/interfaces.inc:1069
+#: etc/inc/interfaces.inc:1889 etc/inc/services.inc:1154
+#: etc/inc/services.inc:1499 etc/inc/services.inc:1596
+#: etc/inc/services.inc:1797 etc/inc/system.inc:712 etc/inc/system.inc:735
+#: etc/inc/system.inc:815 etc/inc/system.inc:1178 etc/inc/system.inc:1318
+#: etc/inc/system.inc:1457 etc/inc/rrd.inc:829 etc/inc/filter.inc:219
+#: etc/inc/filter.inc:399 etc/inc/pkg-utils.inc:411 etc/inc/pkg-utils.inc:648
+#: etc/inc/pkg-utils.inc:658 etc/inc/pkg-utils.inc:681
+#: etc/inc/pkg-utils.inc:758 etc/inc/pkg-utils.inc:773
+#: etc/inc/pkg-utils.inc:817 etc/inc/pkg-utils.inc:848
+#: etc/inc/pkg-utils.inc:877 etc/inc/pkg-utils.inc:884
+#: etc/inc/pkg-utils.inc:901 etc/inc/pkg-utils.inc:917
+#: etc/inc/pkg-utils.inc:933 etc/inc/pkg-utils.inc:1040
+#: etc/inc/pkg-utils.inc:1057 etc/inc/pkg-utils.inc:1082
+#: etc/inc/pkg-utils.inc:1127 etc/inc/pkg-utils.inc:1136
+#: etc/inc/pkg-utils.inc:1146 etc/inc/pkg-utils.inc:1161
+#: etc/inc/pkg-utils.inc:1168 etc/inc/pkg-utils.inc:1187
+#: etc/inc/interfaces.inc:216 etc/inc/interfaces.inc:233
+#: etc/inc/interfaces.inc:365 etc/inc/interfaces.inc:422
+#: etc/inc/interfaces.inc:697 etc/inc/interfaces.inc:1005
+#: etc/inc/interfaces.inc:1033 etc/inc/interfaces.inc:1054
+#: etc/inc/interfaces.inc:1069 etc/inc/interfaces.inc:1894
+#: etc/inc/services.inc:1160 etc/inc/services.inc:1516
+#: etc/inc/services.inc:1628 etc/inc/services.inc:1837 etc/inc/system.inc:712
+#: etc/inc/system.inc:735 etc/inc/system.inc:815 etc/inc/system.inc:1178
+#: etc/inc/system.inc:1318 etc/inc/system.inc:1457 etc/inc/rrd.inc:831
msgid "done."
msgstr ""
#: etc/inc/filter.inc:259 etc/inc/filter.inc:265 etc/inc/filter.inc:289
+#: etc/inc/filter.inc:269 etc/inc/filter.inc:269
msgid "Setting up logging information"
msgstr ""
-#: etc/inc/filter.inc:290 etc/inc/filter.inc:294 etc/inc/filter.inc:294
+#: etc/inc/filter.inc:290 etc/inc/filter.inc:294 etc/inc/filter.inc:274
+#: etc/inc/filter.inc:274
msgid "Setting up SCRUB information"
msgstr ""
#: etc/inc/filter.inc:336 etc/inc/filter.inc:338 etc/inc/filter.inc:341
+#: etc/inc/filter.inc:313 etc/inc/filter.inc:313
#, php-format
msgid "The line in question reads [%1$d]: %2$s"
msgstr ""
#: etc/inc/filter.inc:338 etc/inc/filter.inc:340 etc/inc/filter.inc:342
-#: etc/inc/filter.inc:343 etc/inc/filter.inc:345
+#: etc/inc/filter.inc:343 etc/inc/filter.inc:345 etc/inc/filter.inc:316
+#: etc/inc/filter.inc:317 etc/inc/filter.inc:316 etc/inc/filter.inc:317
#, php-format
msgid "There were error(s) loading the rules: %1$s - %2$s"
msgstr ""
#: etc/inc/filter.inc:349 etc/inc/filter.inc:351 etc/inc/filter.inc:354
+#: etc/inc/filter.inc:324 etc/inc/filter.inc:324
msgid "PF was wedged/busy and has been reset."
msgstr ""
#: etc/inc/filter.inc:355 etc/inc/filter.inc:357 etc/inc/filter.inc:360
+#: etc/inc/filter.inc:329 etc/inc/filter.inc:333
msgid "Starting up layer7 daemon"
msgstr ""
#: etc/inc/filter.inc:403 etc/inc/filter.inc:405 etc/inc/filter.inc:408
+#: etc/inc/filter.inc:380 etc/inc/filter.inc:384
msgid "Processing down interface states"
msgstr ""
#: etc/inc/filter.inc:407 etc/inc/filter.inc:409 etc/inc/filter.inc:412
+#: etc/inc/filter.inc:384 etc/inc/filter.inc:388
msgid "Running plugins"
msgstr ""
#: etc/inc/filter.inc:411 etc/inc/filter.inc:413 etc/inc/filter.inc:416
+#: etc/inc/filter.inc:388 etc/inc/filter.inc:392
msgid "Running plugins (pf)"
msgstr ""
#: etc/inc/filter.inc:413 etc/inc/filter.inc:415 etc/inc/filter.inc:418
+#: etc/inc/filter.inc:390 etc/inc/filter.inc:394
msgid "Plugins completed."
msgstr ""
#: etc/inc/filter.inc:416 usr/local/www/restart_httpd.php:52
#: usr/local/www/restart_httpd.php:55 usr/local/www/restart_httpd.php:58
#: usr/local/www/restart_httpd.php:61 etc/inc/filter.inc:418
-#: etc/inc/filter.inc:421 usr/local/www/restart_httpd.php:52
-#: usr/local/www/restart_httpd.php:55 usr/local/www/restart_httpd.php:58
-#: usr/local/www/restart_httpd.php:61
+#: etc/inc/filter.inc:421 etc/inc/filter.inc:393
+#: usr/local/www/restart_httpd.php:52 usr/local/www/restart_httpd.php:55
+#: usr/local/www/restart_httpd.php:58 usr/local/www/restart_httpd.php:61
+#: etc/inc/filter.inc:397
msgid "Done"
msgstr ""
#: etc/inc/filter.inc:636 etc/inc/filter.inc:649 etc/inc/filter.inc:652
+#: etc/inc/filter.inc:641 etc/inc/filter.inc:652
msgid "Creating gateway group item..."
msgstr ""
#: etc/inc/filter.inc:666 etc/inc/filter.inc:681 etc/inc/filter.inc:684
+#: etc/inc/filter.inc:673 etc/inc/filter.inc:687
#, php-format
msgid "Setting up route with %1$s on %2$s"
msgstr ""
#: etc/inc/filter.inc:673 etc/inc/filter.inc:688 etc/inc/filter.inc:691
+#: etc/inc/filter.inc:680 etc/inc/filter.inc:694
#, php-format
msgid ""
"An error occurred while trying to find the interface got %s . The rule has "
@@ -447,117 +530,140 @@ msgid ""
msgstr ""
#: etc/inc/filter.inc:937 etc/inc/filter.inc:987 etc/inc/filter.inc:975
+#: etc/inc/filter.inc:1009 etc/inc/filter.inc:1027
#, php-format
msgid "Creating reflection NAT rule for %s..."
msgstr ""
#: etc/inc/filter.inc:991 etc/inc/filter.inc:1076 etc/inc/filter.inc:1064
+#: etc/inc/filter.inc:1098 etc/inc/filter.inc:1116
#, php-format
msgid "Creating reflection rule for %s..."
msgstr ""
#: etc/inc/filter.inc:1251 etc/inc/filter.inc:1338 etc/inc/filter.inc:1326
+#: etc/inc/filter.inc:1360 etc/inc/filter.inc:1378
msgid "Creating 1:1 rules..."
msgstr ""
#: etc/inc/filter.inc:1350 etc/inc/filter.inc:1437 etc/inc/filter.inc:1454
+#: etc/inc/filter.inc:1501 etc/inc/filter.inc:1519
#, php-format
msgid "Creating advanced outbound rule %s"
msgstr ""
#: etc/inc/filter.inc:1386 etc/inc/filter.inc:1473 etc/inc/filter.inc:1490
+#: etc/inc/filter.inc:1533 etc/inc/filter.inc:1551
msgid "Creating outbound NAT rules"
msgstr ""
#: etc/inc/filter.inc:1481 etc/inc/filter.inc:1566 etc/inc/filter.inc:1583
+#: etc/inc/filter.inc:1626 etc/inc/filter.inc:1644
#, php-format
msgid "Creating outbound rules %1$s - (%2$s)"
msgstr ""
#: etc/inc/filter.inc:1499 etc/inc/filter.inc:1584 etc/inc/filter.inc:1601
+#: etc/inc/filter.inc:1644 etc/inc/filter.inc:1662
msgid "Setting up TFTP helper"
msgstr ""
#: etc/inc/filter.inc:1545 etc/inc/filter.inc:1630 etc/inc/filter.inc:1644
+#: etc/inc/filter.inc:1676 etc/inc/filter.inc:1694
#, php-format
msgid "Creating NAT rule %s"
msgstr ""
#: etc/inc/filter.inc:1689 etc/inc/filter.inc:1837 etc/inc/filter.inc:1850
+#: etc/inc/filter.inc:1882 etc/inc/filter.inc:1900
#, php-format
msgid "Creating filter rule %s ..."
msgstr ""
#: etc/inc/filter.inc:1827 etc/inc/filter.inc:1975 etc/inc/filter.inc:1988
+#: etc/inc/filter.inc:2024 etc/inc/filter.inc:2054
#, php-format
msgid "filter_generate_address: %s is not a valid source port."
msgstr ""
#: etc/inc/filter.inc:1943 etc/inc/filter.inc:2094 etc/inc/filter.inc:2107
+#: etc/inc/filter.inc:2142 etc/inc/filter.inc:2172
#, php-format
msgid "Setting up pass/block rules %s"
msgstr ""
#: etc/inc/filter.inc:1962 etc/inc/filter.inc:2113 etc/inc/filter.inc:2126
+#: etc/inc/filter.inc:2157 etc/inc/filter.inc:2187
#, php-format
msgid "Could not find IPv4 gateway for interface (%s)."
msgstr ""
#: etc/inc/filter.inc:1989 etc/inc/filter.inc:2140 etc/inc/filter.inc:2153
+#: etc/inc/filter.inc:2182 etc/inc/filter.inc:2214
#, php-format
msgid "Creating rule %s"
msgstr ""
#: etc/inc/filter.inc:2198 etc/inc/filter.inc:2355 etc/inc/filter.inc:2378
+#: etc/inc/filter.inc:2407 etc/inc/filter.inc:2439
msgid "Creating default rules"
msgstr ""
#: etc/inc/filter.inc:2649 etc/inc/filter.inc:2862 etc/inc/filter.inc:2887
+#: etc/inc/filter.inc:2976 etc/inc/filter.inc:3000
msgid "Creating IPsec rules..."
msgstr ""
#: etc/inc/filter.inc:2702 etc/inc/filter.inc:2915 etc/inc/filter.inc:2940
+#: etc/inc/filter.inc:3026 etc/inc/filter.inc:3050
msgid ""
"Please use filter_tdr_install_cron() function tdr_install_cron will be "
"deprecated!"
msgstr ""
#: etc/inc/filter.inc:2747 etc/inc/filter.inc:2960 etc/inc/filter.inc:2986
+#: etc/inc/filter.inc:3072 etc/inc/filter.inc:3096
msgid "Installed 15 minute filter reload for Time Based Rules"
msgstr ""
#: etc/inc/filter.inc:3102 etc/inc/filter.inc:3313 etc/inc/filter.inc:3293
+#: etc/inc/filter.inc:3389 etc/inc/filter.inc:3413
#, php-format
msgid "Checking for %1$s PF hooks in package %2$s"
msgstr ""
#: etc/inc/filter.inc:3107 etc/inc/filter.inc:3318 etc/inc/filter.inc:3299
+#: etc/inc/filter.inc:3395 etc/inc/filter.inc:3419
#, php-format
msgid "Processing early %1$s rules for package %2$s"
msgstr ""
#: etc/inc/filter.inc:3112 etc/inc/filter.inc:3323 etc/inc/filter.inc:3304
+#: etc/inc/filter.inc:3400 etc/inc/filter.inc:3424
#, php-format
msgid "There was an error while parsing the package filter rules for %s."
msgstr ""
#: etc/inc/interfaces.inc:51 etc/inc/interfaces.inc:53
-#: etc/inc/interfaces.inc:53
+#: etc/inc/interfaces.inc:51
msgid "interfaces_bring_up() was called but no variable defined."
msgstr ""
#: etc/inc/interfaces.inc:213 etc/inc/interfaces.inc:215
-#: etc/inc/interfaces.inc:214
+#: etc/inc/interfaces.inc:214 etc/inc/interfaces.inc:212
+#: etc/inc/interfaces.inc:212
msgid "Configuring loopback interface..."
msgstr ""
#: etc/inc/interfaces.inc:224 etc/inc/interfaces.inc:226
-#: etc/inc/interfaces.inc:225
+#: etc/inc/interfaces.inc:225 etc/inc/interfaces.inc:223
+#: etc/inc/interfaces.inc:223
msgid "Configuring VLAN interfaces..."
msgstr ""
#: etc/inc/interfaces.inc:241 etc/inc/interfaces.inc:243
-#: etc/inc/interfaces.inc:242
+#: etc/inc/interfaces.inc:242 etc/inc/interfaces.inc:240
+#: etc/inc/interfaces.inc:240
msgid "VLAN: called with wrong options. Problems with config!"
msgstr ""
@@ -568,6 +674,8 @@ msgstr ""
#: etc/inc/interfaces.inc:283 etc/inc/interfaces.inc:367
#: etc/inc/interfaces.inc:285 etc/inc/interfaces.inc:369
#: etc/inc/interfaces.inc:284 etc/inc/interfaces.inc:368
+#: etc/inc/interfaces.inc:282 etc/inc/interfaces.inc:372
+#: etc/inc/interfaces.inc:282 etc/inc/interfaces.inc:372
#, php-format
msgid "QinQ compat VLAN: called with wrong options. Problems with config!%s"
msgstr ""
@@ -578,7 +686,8 @@ msgid "interface_qinq_confgure called with if undefined.%s"
msgstr ""
#: etc/inc/interfaces.inc:352 etc/inc/interfaces.inc:354
-#: etc/inc/interfaces.inc:353
+#: etc/inc/interfaces.inc:353 etc/inc/interfaces.inc:357
+#: etc/inc/interfaces.inc:357
msgid "Configuring QinQ interfaces..."
msgstr ""
@@ -588,40 +697,47 @@ msgid "Creating other wireless clone interfaces..."
msgstr ""
#: etc/inc/interfaces.inc:439 etc/inc/interfaces.inc:438
-#: etc/inc/interfaces.inc:437
+#: etc/inc/interfaces.inc:437 etc/inc/interfaces.inc:466
+#: etc/inc/interfaces.inc:466
#, php-format
msgid "No members found on %s"
msgstr ""
#: etc/inc/interfaces.inc:505 etc/inc/interfaces.inc:512
-#: etc/inc/interfaces.inc:511
+#: etc/inc/interfaces.inc:511 etc/inc/interfaces.inc:541
+#: etc/inc/interfaces.inc:541
msgid "realif not defined in interfaces bridge - up"
msgstr ""
#: etc/inc/interfaces.inc:618 etc/inc/interfaces.inc:625
-#: etc/inc/interfaces.inc:624
+#: etc/inc/interfaces.inc:624 etc/inc/interfaces.inc:654
+#: etc/inc/interfaces.inc:654
msgid "bridgeif not defined -- could not bring interface up"
msgstr ""
#: etc/inc/interfaces.inc:652 etc/inc/interfaces.inc:659
-#: etc/inc/interfaces.inc:658
+#: etc/inc/interfaces.inc:658 etc/inc/interfaces.inc:685
+#: etc/inc/interfaces.inc:685
msgid "Configuring LAGG interfaces..."
msgstr ""
#: etc/inc/interfaces.inc:790 etc/inc/interfaces.inc:801
-#: etc/inc/interfaces.inc:800
+#: etc/inc/interfaces.inc:800 etc/inc/interfaces.inc:835
+#: etc/inc/interfaces.inc:835
msgid "Could not bring greif up -- variable not defined."
msgstr ""
#: etc/inc/interfaces.inc:833 etc/inc/interfaces.inc:851
-#: etc/inc/interfaces.inc:850
+#: etc/inc/interfaces.inc:850 etc/inc/interfaces.inc:899
+#: etc/inc/interfaces.inc:899
msgid ""
-"could not bring realif up -- variable not defined -- interface_gif_configure"
-"()"
+"could not bring realif up -- variable not defined -- "
+"interface_gif_configure()"
msgstr ""
#: etc/inc/interfaces.inc:856 etc/inc/interfaces.inc:874
-#: etc/inc/interfaces.inc:873
+#: etc/inc/interfaces.inc:873 etc/inc/interfaces.inc:922
+#: etc/inc/interfaces.inc:922
msgid "could not bring gifif up -- variable not defined"
msgstr ""
@@ -629,7 +745,10 @@ msgstr ""
#: etc/inc/interfaces.inc:972 etc/inc/interfaces.inc:945
#: etc/inc/interfaces.inc:984 etc/inc/interfaces.inc:999
#: etc/inc/interfaces.inc:944 etc/inc/interfaces.inc:983
-#: etc/inc/interfaces.inc:998
+#: etc/inc/interfaces.inc:998 etc/inc/interfaces.inc:1026
+#: etc/inc/interfaces.inc:1047 etc/inc/interfaces.inc:1062
+#: etc/inc/interfaces.inc:999 etc/inc/interfaces.inc:1026
+#: etc/inc/interfaces.inc:1047 etc/inc/interfaces.inc:1062
#, php-format
msgid "Configuring %s interface..."
msgstr ""
@@ -638,19 +757,25 @@ msgstr ""
#: etc/inc/interfaces.inc:974 etc/inc/interfaces.inc:948
#: etc/inc/interfaces.inc:986 etc/inc/interfaces.inc:1001
#: etc/inc/interfaces.inc:947 etc/inc/interfaces.inc:985
-#: etc/inc/interfaces.inc:1000
+#: etc/inc/interfaces.inc:1000 etc/inc/interfaces.inc:1002
+#: etc/inc/interfaces.inc:1028 etc/inc/interfaces.inc:1049
+#: etc/inc/interfaces.inc:1064 etc/inc/interfaces.inc:1002
+#: etc/inc/interfaces.inc:1028 etc/inc/interfaces.inc:1049
+#: etc/inc/interfaces.inc:1064
#, php-format
msgid "Configuring %s"
msgstr ""
#: etc/inc/interfaces.inc:1299 etc/inc/interfaces.inc:1339
-#: etc/inc/interfaces.inc:1338
+#: etc/inc/interfaces.inc:1338 etc/inc/interfaces.inc:1407
+#: etc/inc/interfaces.inc:1412
#, php-format
msgid "Can't find PPP config for %s in interface_ppps_configure()."
msgstr ""
#: etc/inc/interfaces.inc:1362 etc/inc/interfaces.inc:1402
-#: etc/inc/interfaces.inc:1401
+#: etc/inc/interfaces.inc:1401 etc/inc/interfaces.inc:1464
+#: etc/inc/interfaces.inc:1469
#, php-format
msgid ""
"Could not get a PPTP/L2TP Remote IP address from %1$s for %2$s in "
@@ -658,26 +783,30 @@ msgid ""
msgstr ""
#: etc/inc/interfaces.inc:1369 etc/inc/interfaces.inc:1409
-#: etc/inc/interfaces.inc:1408
+#: etc/inc/interfaces.inc:1408 etc/inc/interfaces.inc:1471
+#: etc/inc/interfaces.inc:1476
#, php-format
msgid ""
"Device %s does not exist. PPP link cannot start without the modem device."
msgstr ""
#: etc/inc/interfaces.inc:1374 etc/inc/interfaces.inc:1414
-#: etc/inc/interfaces.inc:1413
+#: etc/inc/interfaces.inc:1413 etc/inc/interfaces.inc:1476
+#: etc/inc/interfaces.inc:1481
#, php-format
msgid "Unkown %s configured as ppp interface."
msgstr ""
#: etc/inc/interfaces.inc:1641 etc/inc/interfaces.inc:1686
-#: etc/inc/interfaces.inc:1685
+#: etc/inc/interfaces.inc:1685 etc/inc/interfaces.inc:1748
+#: etc/inc/interfaces.inc:1753
#, php-format
msgid "Error: cannot open mpd_%s.conf in interface_ppps_configure().%s"
msgstr ""
#: etc/inc/interfaces.inc:1702 etc/inc/interfaces.inc:1771
-#: etc/inc/interfaces.inc:1770
+#: etc/inc/interfaces.inc:1770 etc/inc/interfaces.inc:1828
+#: etc/inc/interfaces.inc:1833
msgid "Configuring CARP settings..."
msgstr ""
@@ -733,7 +862,8 @@ msgstr ""
#: etc/inc/interfaces.inc:1963 etc/inc/interfaces.inc:2038
#: etc/inc/interfaces.inc:2020 etc/inc/interfaces.inc:2099
-#: etc/inc/interfaces.inc:2016
+#: etc/inc/interfaces.inc:2016 etc/inc/interfaces.inc:2056
+#: etc/inc/interfaces.inc:2061
#, php-format
msgid ""
"Interface specified for the virtual IP address %s does not exist. Skipping "
@@ -741,7 +871,8 @@ msgid ""
msgstr ""
#: etc/inc/interfaces.inc:1972 etc/inc/interfaces.inc:2029
-#: etc/inc/interfaces.inc:2025
+#: etc/inc/interfaces.inc:2025 etc/inc/interfaces.inc:2065
+#: etc/inc/interfaces.inc:2070
#, php-format
msgid ""
"Sorry but we could not find a matching real interface subnet for the virtual "
@@ -749,7 +880,8 @@ msgid ""
msgstr ""
#: etc/inc/interfaces.inc:1981 etc/inc/interfaces.inc:2038
-#: etc/inc/interfaces.inc:2034
+#: etc/inc/interfaces.inc:2034 etc/inc/interfaces.inc:2074
+#: etc/inc/interfaces.inc:2079
#, php-format
msgid ""
"Sorry but we could not find a matching real interface subnet for the virtual "
@@ -764,42 +896,49 @@ msgid ""
msgstr ""
#: etc/inc/interfaces.inc:2117 etc/inc/interfaces.inc:2185
-#: etc/inc/interfaces.inc:2104
+#: etc/inc/interfaces.inc:2104 etc/inc/interfaces.inc:2144
+#: etc/inc/interfaces.inc:2149
#, php-format
msgid "Interface %s changed to hostap mode"
msgstr ""
#: etc/inc/interfaces.inc:2121 etc/inc/interfaces.inc:2189
-#: etc/inc/interfaces.inc:2108
+#: etc/inc/interfaces.inc:2108 etc/inc/interfaces.inc:2148
+#: etc/inc/interfaces.inc:2153
#, php-format
msgid "Interface %s changed to adhoc mode"
msgstr ""
#: etc/inc/interfaces.inc:2125 etc/inc/interfaces.inc:2193
-#: etc/inc/interfaces.inc:2112
+#: etc/inc/interfaces.inc:2112 etc/inc/interfaces.inc:2152
+#: etc/inc/interfaces.inc:2157
#, php-format
msgid "Interface %s changed to infrastructure mode"
msgstr ""
#: etc/inc/interfaces.inc:2137 etc/inc/interfaces.inc:2205
-#: etc/inc/interfaces.inc:2124
+#: etc/inc/interfaces.inc:2124 etc/inc/interfaces.inc:2164
+#: etc/inc/interfaces.inc:2169
#, php-format
msgid "Cloning new wireless interface %s"
msgstr ""
#: etc/inc/interfaces.inc:2142 etc/inc/interfaces.inc:2210
-#: etc/inc/interfaces.inc:2129
+#: etc/inc/interfaces.inc:2129 etc/inc/interfaces.inc:2169
+#: etc/inc/interfaces.inc:2174
#, php-format
msgid "Failed to clone interface %1$s with error code %2$s, output %3$s"
msgstr ""
#: etc/inc/interfaces.inc:2715 etc/inc/interfaces.inc:2790
-#: etc/inc/interfaces.inc:2709
+#: etc/inc/interfaces.inc:2709 etc/inc/interfaces.inc:2761
+#: etc/inc/interfaces.inc:2784
msgid "Generating new MAC address."
msgstr ""
#: etc/inc/interfaces.inc:2721 etc/inc/interfaces.inc:2796
-#: etc/inc/interfaces.inc:2715
+#: etc/inc/interfaces.inc:2715 etc/inc/interfaces.inc:2767
+#: etc/inc/interfaces.inc:2790
#, php-format
msgid ""
"The INVALID MAC address (ff:ff:ff:ff:ff:ff) on interface %1$s has been "
@@ -818,13 +957,15 @@ msgid ""
msgstr ""
#: etc/inc/interfaces.inc:3029 etc/inc/interfaces.inc:3513
-#: etc/inc/interfaces.inc:3373
+#: etc/inc/interfaces.inc:3373 etc/inc/interfaces.inc:3466
+#: etc/inc/interfaces.inc:3593
#, php-format
msgid "Invalid interface \"%s\" in interface_dhcp_configure()"
msgstr ""
#: etc/inc/interfaces.inc:3064 etc/inc/interfaces.inc:3548
-#: etc/inc/interfaces.inc:3408
+#: etc/inc/interfaces.inc:3408 etc/inc/interfaces.inc:3501
+#: etc/inc/interfaces.inc:3628
#, php-format
msgid "Could not bring up %s interface in interface_dhcp_configure()"
msgstr ""
@@ -846,37 +987,40 @@ msgid "Could not send the message to %1$s -- Error: %2$s"
msgstr ""
#: etc/inc/openvpn.inc:83 etc/inc/openvpn.inc:90 etc/inc/openvpn.inc:81
-#: etc/inc/openvpn.inc:88
+#: etc/inc/openvpn.inc:88 etc/inc/openvpn.inc:81 etc/inc/openvpn.inc:88
msgid "Peer to Peer ( SSL/TLS )"
msgstr ""
#: etc/inc/openvpn.inc:84 etc/inc/openvpn.inc:91 etc/inc/openvpn.inc:82
-#: etc/inc/openvpn.inc:89
+#: etc/inc/openvpn.inc:89 etc/inc/openvpn.inc:82 etc/inc/openvpn.inc:89
msgid "Peer to Peer ( Shared Key )"
msgstr ""
-#: etc/inc/openvpn.inc:85 etc/inc/openvpn.inc:83
+#: etc/inc/openvpn.inc:85 etc/inc/openvpn.inc:83 etc/inc/openvpn.inc:83
msgid "Remote Access ( SSL/TLS )"
msgstr ""
-#: etc/inc/openvpn.inc:86 etc/inc/openvpn.inc:84
+#: etc/inc/openvpn.inc:86 etc/inc/openvpn.inc:84 etc/inc/openvpn.inc:84
msgid "Remote Access ( User Auth )"
msgstr ""
-#: etc/inc/openvpn.inc:87 etc/inc/openvpn.inc:85
+#: etc/inc/openvpn.inc:87 etc/inc/openvpn.inc:85 etc/inc/openvpn.inc:85
msgid "Remote Access ( SSL/TLS + User Auth )"
msgstr ""
-#: etc/inc/openvpn.inc:179 etc/inc/openvpn.inc:177
+#: etc/inc/openvpn.inc:179 etc/inc/openvpn.inc:177 etc/inc/openvpn.inc:195
+#: etc/inc/openvpn.inc:195
msgid "None (No Encryption)"
msgstr ""
-#: etc/inc/openvpn.inc:203 etc/inc/openvpn.inc:201
+#: etc/inc/openvpn.inc:203 etc/inc/openvpn.inc:201 etc/inc/openvpn.inc:238
+#: etc/inc/openvpn.inc:238
#, php-format
msgid "The field '%s' must contain a valid IP address or domain name."
msgstr ""
-#: etc/inc/openvpn.inc:210 etc/inc/openvpn.inc:208
+#: etc/inc/openvpn.inc:210 etc/inc/openvpn.inc:208 etc/inc/openvpn.inc:245
+#: etc/inc/openvpn.inc:245
#, php-format
msgid "The field '%s' must contain a valid port, ranging from 0 to 65535."
msgstr ""
@@ -886,139 +1030,156 @@ msgstr ""
msgid "The field '%s' must contain a valid CIDR range."
msgstr ""
-#: etc/inc/pfsense-utils.inc:345 etc/inc/pfsense-utils.inc:345
+#: etc/inc/pfsense-utils.inc:345 etc/inc/pfsense-utils.inc:330
+#: etc/inc/pfsense-utils.inc:330
msgid "MASTER"
msgstr ""
-#: etc/inc/pfsense-utils.inc:347 etc/inc/pfsense-utils.inc:347
+#: etc/inc/pfsense-utils.inc:347 etc/inc/pfsense-utils.inc:332
+#: etc/inc/pfsense-utils.inc:332
msgid "BACKUP"
msgstr ""
-#: etc/inc/pfsense-utils.inc:349 etc/inc/pfsense-utils.inc:349
+#: etc/inc/pfsense-utils.inc:349 etc/inc/pfsense-utils.inc:334
+#: etc/inc/pfsense-utils.inc:334
msgid "INIT"
msgstr ""
-#: etc/inc/pfsense-utils.inc:417 etc/inc/pfsense-utils.inc:417
+#: etc/inc/pfsense-utils.inc:417 etc/inc/pfsense-utils.inc:402
+#: etc/inc/pfsense-utils.inc:402
msgid "After synch increase advertising skew"
msgstr ""
-#: etc/inc/pfsense-utils.inc:462 etc/inc/pfsense-utils.inc:462
+#: etc/inc/pfsense-utils.inc:462 etc/inc/pfsense-utils.inc:447
+#: etc/inc/pfsense-utils.inc:447
msgid "Error creating socket!"
msgstr ""
-#: etc/inc/pfsense-utils.inc:463 etc/inc/pfsense-utils.inc:463
+#: etc/inc/pfsense-utils.inc:463 etc/inc/pfsense-utils.inc:448
+#: etc/inc/pfsense-utils.inc:448
#, php-format
msgid "Error code is '%1$s' - %2$s"
msgstr ""
-#: etc/inc/pfsense-utils.inc:468 etc/inc/pfsense-utils.inc:468
+#: etc/inc/pfsense-utils.inc:468 etc/inc/pfsense-utils.inc:453
+#: etc/inc/pfsense-utils.inc:453
#, php-format
msgid "setsockopt() failed, error: %s"
msgstr ""
-#: etc/inc/pfsense-utils.inc:471 etc/inc/pfsense-utils.inc:471
+#: etc/inc/pfsense-utils.inc:471 etc/inc/pfsense-utils.inc:456
+#: etc/inc/pfsense-utils.inc:456
#, php-format
msgid "Magic Packet sent (%1$s) to {%2$s} MAC=%3$s"
msgstr ""
#: etc/inc/pfsense-utils.inc:518 etc/inc/pfsense-utils.inc:540
#: etc/inc/pfsense-utils.inc:533 etc/inc/pfsense-utils.inc:555
-#: etc/inc/pfsense-utils.inc:533 etc/inc/pfsense-utils.inc:555
+#: etc/inc/pfsense-utils.inc:518 etc/inc/pfsense-utils.inc:540
#, php-format
msgid "Restored %s of config file (maybe from CARP partner)"
msgstr ""
#: etc/inc/pfsense-utils.inc:699 etc/inc/pfsense-utils.inc:714
-#: etc/inc/pfsense-utils.inc:714
+#: etc/inc/pfsense-utils.inc:699
#, php-format
msgid "XMLRPC communication error: %s"
msgstr ""
#: etc/inc/pfsense-utils.inc:702 etc/inc/pfsense-utils.inc:717
-#: etc/inc/pfsense-utils.inc:717
+#: etc/inc/pfsense-utils.inc:702
#, php-format
msgid "XMLRPC request failed with error %1$s: %2$s"
msgstr ""
#: etc/inc/pfsense-utils.inc:795 etc/inc/pfsense-utils.inc:810
-#: etc/inc/pfsense-utils.inc:810
+#: etc/inc/pfsense-utils.inc:795
msgid "reload_interfaces_sync() is starting."
msgstr ""
#: etc/inc/pfsense-utils.inc:803 etc/inc/pfsense-utils.inc:818
-#: etc/inc/pfsense-utils.inc:818
+#: etc/inc/pfsense-utils.inc:803
msgid "Enabling system routing"
msgstr ""
#: etc/inc/pfsense-utils.inc:806 etc/inc/pfsense-utils.inc:821
-#: etc/inc/pfsense-utils.inc:821
+#: etc/inc/pfsense-utils.inc:806
msgid "Cleaning up Interfaces"
msgstr ""
#: etc/inc/pfsense-utils.inc:912 etc/inc/pfsense-utils.inc:927
-#: etc/inc/pfsense-utils.inc:927
+#: etc/inc/pfsense-utils.inc:936 etc/inc/pfsense-utils.inc:936
msgid "Enabling auto login was not possible."
msgstr ""
#: etc/inc/pfsense-utils.inc:1100 etc/inc/pfsense-utils.inc:1137
-#: etc/inc/pfsense-utils.inc:1191
+#: etc/inc/pfsense-utils.inc:1191 etc/inc/pfsense-utils.inc:1196
+#: etc/inc/pfsense-utils.inc:1196
msgid "No history data found!"
msgstr ""
#: etc/inc/pfsense-utils.inc:1222 etc/inc/pfsense-utils.inc:1260
-#: etc/inc/pfsense-utils.inc:1313
+#: etc/inc/pfsense-utils.inc:1313 etc/inc/pfsense-utils.inc:1318
+#: etc/inc/pfsense-utils.inc:1318
msgid "device not present! Is the modem attached to the system?"
msgstr ""
#: etc/inc/pfsense-utils.inc:1262 etc/inc/pfsense-utils.inc:1327
-#: etc/inc/pfsense-utils.inc:1380
+#: etc/inc/pfsense-utils.inc:1380 etc/inc/pfsense-utils.inc:1385
+#: etc/inc/pfsense-utils.inc:1385
msgid "running"
msgstr ""
#: etc/inc/pfsense-utils.inc:1263 usr/local/www/graph.php:201
#: etc/inc/pfsense-utils.inc:1328 etc/inc/pfsense-utils.inc:1381
-#: usr/local/www/graph.php:201
+#: etc/inc/pfsense-utils.inc:1386 usr/local/www/graph.php:201
+#: etc/inc/pfsense-utils.inc:1386
msgid "up"
msgstr ""
#: etc/inc/pfsense-utils.inc:1300 etc/inc/pfsense-utils.inc:1371
-#: etc/inc/pfsense-utils.inc:1424
+#: etc/inc/pfsense-utils.inc:1424 etc/inc/pfsense-utils.inc:1429
+#: etc/inc/pfsense-utils.inc:1429
msgid "blocking"
msgstr ""
#: etc/inc/pfsense-utils.inc:1300 etc/inc/pfsense-utils.inc:1371
-#: etc/inc/pfsense-utils.inc:1424
+#: etc/inc/pfsense-utils.inc:1424 etc/inc/pfsense-utils.inc:1429
+#: etc/inc/pfsense-utils.inc:1429
msgid "check for ethernet loops"
msgstr ""
#: etc/inc/pfsense-utils.inc:1303 etc/inc/pfsense-utils.inc:1374
-#: etc/inc/pfsense-utils.inc:1427
+#: etc/inc/pfsense-utils.inc:1427 etc/inc/pfsense-utils.inc:1432
+#: etc/inc/pfsense-utils.inc:1432
msgid "learning"
msgstr ""
#: etc/inc/pfsense-utils.inc:1306 etc/inc/pfsense-utils.inc:1377
-#: etc/inc/pfsense-utils.inc:1430
+#: etc/inc/pfsense-utils.inc:1430 etc/inc/pfsense-utils.inc:1435
+#: etc/inc/pfsense-utils.inc:1435
msgid "forwarding"
msgstr ""
#: etc/inc/pfsense-utils.inc:1417 etc/inc/pfsense-utils.inc:1493
-#: etc/inc/pfsense-utils.inc:1546
+#: etc/inc/pfsense-utils.inc:1546 etc/inc/pfsense-utils.inc:1551
+#: etc/inc/pfsense-utils.inc:1551
#, php-format
msgid "DNSCACHE: Found old IP %1$s and new IP %2$s"
msgstr ""
#: etc/inc/pkg-utils.inc:211 etc/inc/pkg-utils.inc:226
-#: etc/inc/pkg-utils.inc:226
+#: etc/inc/pkg-utils.inc:244 etc/inc/pkg-utils.inc:244
msgid "Resyncing configuration for all packages."
msgstr ""
#: etc/inc/pkg-utils.inc:231 etc/inc/pkg-utils.inc:246
-#: etc/inc/pkg-utils.inc:246
+#: etc/inc/pkg-utils.inc:264 etc/inc/pkg-utils.inc:264
msgid "Syncing packages:"
msgstr ""
#: etc/inc/pkg-utils.inc:273 etc/inc/pkg-utils.inc:288
-#: etc/inc/pkg-utils.inc:288
+#: etc/inc/pkg-utils.inc:306 etc/inc/pkg-utils.inc:306
#, php-format
msgid ""
"The %1$s package is missing required dependencies and must be reinstalled. "
@@ -1027,14 +1188,17 @@ msgstr ""
#: etc/inc/pkg-utils.inc:297 etc/inc/pkg-utils.inc:437
#: etc/inc/pkg-utils.inc:312 etc/inc/pkg-utils.inc:462
-#: etc/inc/pkg-utils.inc:312 etc/inc/pkg-utils.inc:464
+#: etc/inc/pkg-utils.inc:464 etc/inc/pkg-utils.inc:330
+#: etc/inc/pkg-utils.inc:481 etc/inc/pkg-utils.inc:330
+#: etc/inc/pkg-utils.inc:481
#, php-format
msgid ""
"The %s package is missing required dependencies and must be reinstalled."
msgstr ""
#: etc/inc/pkg-utils.inc:404 etc/inc/pkg-utils.inc:429
-#: etc/inc/pkg-utils.inc:431
+#: etc/inc/pkg-utils.inc:431 etc/inc/pkg-utils.inc:448
+#: etc/inc/pkg-utils.inc:448
#, php-format
msgid ""
"The %s package is missing its configuration file and must be reinstalled."
@@ -1042,42 +1206,50 @@ msgstr ""
#: etc/inc/pkg-utils.inc:563 usr/local/www/pkg_mgr_install.php:101
#: etc/inc/pkg-utils.inc:589 etc/inc/pkg-utils.inc:590
-#: usr/local/www/pkg_mgr_install.php:101
+#: usr/local/www/pkg_mgr_install.php:99 etc/inc/pkg-utils.inc:625
+#: usr/local/www/pkg_mgr_install.php:97 etc/inc/pkg-utils.inc:625
msgid "Beginning package installation."
msgstr ""
#: etc/inc/pkg-utils.inc:564 etc/inc/pkg-utils.inc:565
#: etc/inc/pkg-utils.inc:590 etc/inc/pkg-utils.inc:591
-#: etc/inc/pkg-utils.inc:591 etc/inc/pkg-utils.inc:592
+#: etc/inc/pkg-utils.inc:592 etc/inc/pkg-utils.inc:626
+#: etc/inc/pkg-utils.inc:627 etc/inc/pkg-utils.inc:626
+#: etc/inc/pkg-utils.inc:627
#, php-format
msgid "Beginning package installation for %s ."
msgstr ""
#: etc/inc/pkg-utils.inc:569 etc/inc/pkg-utils.inc:595
-#: etc/inc/pkg-utils.inc:596
+#: etc/inc/pkg-utils.inc:596 etc/inc/pkg-utils.inc:631
+#: etc/inc/pkg-utils.inc:631
msgid "Downloading package configuration file... "
msgstr ""
#: etc/inc/pkg-utils.inc:571 etc/inc/pkg-utils.inc:597
-#: etc/inc/pkg-utils.inc:598
+#: etc/inc/pkg-utils.inc:598 etc/inc/pkg-utils.inc:633
+#: etc/inc/pkg-utils.inc:633
msgid "Downloading package configuration file..."
msgstr ""
#: etc/inc/pkg-utils.inc:575 etc/inc/pkg-utils.inc:601
-#: etc/inc/pkg-utils.inc:602
+#: etc/inc/pkg-utils.inc:602 etc/inc/pkg-utils.inc:637
+#: etc/inc/pkg-utils.inc:637
msgid ""
"ERROR! Unable to fetch package configuration file. Aborting installation."
msgstr ""
#: etc/inc/pkg-utils.inc:577 etc/inc/pkg-utils.inc:603
-#: etc/inc/pkg-utils.inc:604
+#: etc/inc/pkg-utils.inc:604 etc/inc/pkg-utils.inc:639
+#: etc/inc/pkg-utils.inc:639
msgid ""
"ERROR! Unable to fetch package configuration file. Aborting package "
"installation."
msgstr ""
#: etc/inc/pkg-utils.inc:579 etc/inc/pkg-utils.inc:605
-#: etc/inc/pkg-utils.inc:606
+#: etc/inc/pkg-utils.inc:606 etc/inc/pkg-utils.inc:641
+#: etc/inc/pkg-utils.inc:641
msgid ""
"failed!\n"
"\n"
@@ -1085,96 +1257,115 @@ msgid ""
msgstr ""
#: etc/inc/pkg-utils.inc:591 etc/inc/pkg-utils.inc:617
-#: etc/inc/pkg-utils.inc:618
+#: etc/inc/pkg-utils.inc:618 etc/inc/pkg-utils.inc:653
+#: etc/inc/pkg-utils.inc:653
msgid "Saving updated package information..."
msgstr ""
#: etc/inc/pkg-utils.inc:595 etc/inc/pkg-utils.inc:621
-#: etc/inc/pkg-utils.inc:622
+#: etc/inc/pkg-utils.inc:622 etc/inc/pkg-utils.inc:657
+#: etc/inc/pkg-utils.inc:657
#, php-format
msgid "Installed %s package."
msgstr ""
#: etc/inc/pkg-utils.inc:599 etc/inc/pkg-utils.inc:625
-#: etc/inc/pkg-utils.inc:626
+#: etc/inc/pkg-utils.inc:626 etc/inc/pkg-utils.inc:661
+#: etc/inc/pkg-utils.inc:661
#, php-format
msgid "Overwrote previous installation of %s."
msgstr ""
#: etc/inc/pkg-utils.inc:600 etc/inc/pkg-utils.inc:626
-#: etc/inc/pkg-utils.inc:627
+#: etc/inc/pkg-utils.inc:627 etc/inc/pkg-utils.inc:662
+#: etc/inc/pkg-utils.inc:662
msgid "overwrite!"
msgstr ""
#: etc/inc/pkg-utils.inc:612 etc/inc/pkg-utils.inc:638
-#: etc/inc/pkg-utils.inc:639
+#: etc/inc/pkg-utils.inc:639 etc/inc/pkg-utils.inc:674
+#: etc/inc/pkg-utils.inc:674
msgid "Failed to install package."
msgstr ""
#: etc/inc/pkg-utils.inc:616 etc/inc/pkg-utils.inc:642
-#: etc/inc/pkg-utils.inc:643
+#: etc/inc/pkg-utils.inc:643 etc/inc/pkg-utils.inc:678
+#: etc/inc/pkg-utils.inc:678
msgid "Writing configuration... "
msgstr ""
#: etc/inc/pkg-utils.inc:652 etc/inc/pkg-utils.inc:678
-#: etc/inc/pkg-utils.inc:679
+#: etc/inc/pkg-utils.inc:679 etc/inc/pkg-utils.inc:714
+#: etc/inc/pkg-utils.inc:714
#, php-format
msgid "The %s package is not installed.%sInstallation aborted."
msgstr ""
#: etc/inc/pkg-utils.inc:667 etc/inc/pkg-utils.inc:693
-#: etc/inc/pkg-utils.inc:694
+#: etc/inc/pkg-utils.inc:694 etc/inc/pkg-utils.inc:729
+#: etc/inc/pkg-utils.inc:729
msgid "Installing"
msgstr ""
#: etc/inc/pkg-utils.inc:667 etc/inc/pkg-utils.inc:693
-#: etc/inc/pkg-utils.inc:694
+#: etc/inc/pkg-utils.inc:694 etc/inc/pkg-utils.inc:729
+#: etc/inc/pkg-utils.inc:729
msgid "and its dependencies."
msgstr ""
#: etc/inc/pkg-utils.inc:668 etc/inc/pkg-utils.inc:694
-#: etc/inc/pkg-utils.inc:695
+#: etc/inc/pkg-utils.inc:695 etc/inc/pkg-utils.inc:730
+#: etc/inc/pkg-utils.inc:730
msgid "Downloading"
msgstr ""
#: etc/inc/pkg-utils.inc:668 etc/inc/pkg-utils.inc:694
-#: etc/inc/pkg-utils.inc:695
+#: etc/inc/pkg-utils.inc:695 etc/inc/pkg-utils.inc:730
+#: etc/inc/pkg-utils.inc:730
msgid "and its dependencies... "
msgstr ""
#: etc/inc/pkg-utils.inc:680 etc/inc/pkg-utils.inc:706
-#: etc/inc/pkg-utils.inc:707
+#: etc/inc/pkg-utils.inc:707 etc/inc/pkg-utils.inc:742
+#: etc/inc/pkg-utils.inc:742
msgid "Package WAS NOT installed properly."
msgstr ""
#: etc/inc/pkg-utils.inc:693 etc/inc/pkg-utils.inc:719
-#: etc/inc/pkg-utils.inc:720
+#: etc/inc/pkg-utils.inc:720 etc/inc/pkg-utils.inc:755
+#: etc/inc/pkg-utils.inc:755
msgid "Loading package configuration... "
msgstr ""
#: etc/inc/pkg-utils.inc:698 etc/inc/pkg-utils.inc:724
-#: etc/inc/pkg-utils.inc:725
+#: etc/inc/pkg-utils.inc:725 etc/inc/pkg-utils.inc:760
+#: etc/inc/pkg-utils.inc:760
msgid "Configuring package components...\n"
msgstr ""
#: etc/inc/pkg-utils.inc:704 etc/inc/pkg-utils.inc:1049
#: etc/inc/pkg-utils.inc:730 etc/inc/pkg-utils.inc:1086
#: etc/inc/pkg-utils.inc:731 etc/inc/pkg-utils.inc:1087
+#: etc/inc/pkg-utils.inc:766 etc/inc/pkg-utils.inc:1122
+#: etc/inc/pkg-utils.inc:766 etc/inc/pkg-utils.inc:1122
msgid "System files... "
msgstr ""
#: etc/inc/pkg-utils.inc:716 etc/inc/pkg-utils.inc:742
-#: etc/inc/pkg-utils.inc:743
+#: etc/inc/pkg-utils.inc:743 etc/inc/pkg-utils.inc:778
+#: etc/inc/pkg-utils.inc:778
msgid "Additional files... "
msgstr ""
#: etc/inc/pkg-utils.inc:742 etc/inc/pkg-utils.inc:768
-#: etc/inc/pkg-utils.inc:769
+#: etc/inc/pkg-utils.inc:769 etc/inc/pkg-utils.inc:804
+#: etc/inc/pkg-utils.inc:804
msgid "Extracting tarball to -C for "
msgstr ""
#: etc/inc/pkg-utils.inc:748 etc/inc/pkg-utils.inc:774
-#: etc/inc/pkg-utils.inc:775
+#: etc/inc/pkg-utils.inc:775 etc/inc/pkg-utils.inc:810
+#: etc/inc/pkg-utils.inc:810
#, php-format
msgid "Changing file mode to %1$s for %2$s%3$s%4$s"
msgstr ""
@@ -1182,166 +1373,197 @@ msgstr ""
#: etc/inc/pkg-utils.inc:764 etc/inc/pkg-utils.inc:1025
#: etc/inc/pkg-utils.inc:790 etc/inc/pkg-utils.inc:1062
#: etc/inc/pkg-utils.inc:791 etc/inc/pkg-utils.inc:1063
+#: etc/inc/pkg-utils.inc:826 etc/inc/pkg-utils.inc:1098
+#: etc/inc/pkg-utils.inc:826 etc/inc/pkg-utils.inc:1098
msgid "Loading package instructions..."
msgstr ""
#: etc/inc/pkg-utils.inc:779 etc/inc/pkg-utils.inc:805
-#: etc/inc/pkg-utils.inc:806
+#: etc/inc/pkg-utils.inc:806 etc/inc/pkg-utils.inc:841
+#: etc/inc/pkg-utils.inc:841
msgid "Custom commands..."
msgstr ""
#: etc/inc/pkg-utils.inc:783 etc/inc/pkg-utils.inc:809
-#: etc/inc/pkg-utils.inc:810
+#: etc/inc/pkg-utils.inc:810 etc/inc/pkg-utils.inc:845
+#: etc/inc/pkg-utils.inc:845
msgid "Executing custom_php_global_functions()..."
msgstr ""
#: etc/inc/pkg-utils.inc:790 etc/inc/pkg-utils.inc:816
-#: etc/inc/pkg-utils.inc:817
+#: etc/inc/pkg-utils.inc:817 etc/inc/pkg-utils.inc:852
+#: etc/inc/pkg-utils.inc:852
msgid "Executing custom_php_install_command()..."
msgstr ""
#: etc/inc/pkg-utils.inc:809 etc/inc/pkg-utils.inc:845
-#: etc/inc/pkg-utils.inc:846
+#: etc/inc/pkg-utils.inc:846 etc/inc/pkg-utils.inc:881
+#: etc/inc/pkg-utils.inc:881
msgid "Executing custom_php_resync_config_command()..."
msgstr ""
#: etc/inc/pkg-utils.inc:818 etc/inc/pkg-utils.inc:972
#: etc/inc/pkg-utils.inc:854 etc/inc/pkg-utils.inc:1009
#: etc/inc/pkg-utils.inc:855 etc/inc/pkg-utils.inc:1010
+#: etc/inc/pkg-utils.inc:890 etc/inc/pkg-utils.inc:1045
+#: etc/inc/pkg-utils.inc:890 etc/inc/pkg-utils.inc:1045
msgid "Menu items... "
msgstr ""
#: etc/inc/pkg-utils.inc:834 etc/inc/pkg-utils.inc:870
-#: etc/inc/pkg-utils.inc:871
+#: etc/inc/pkg-utils.inc:871 etc/inc/pkg-utils.inc:906
+#: etc/inc/pkg-utils.inc:906
msgid "Integrated Tab items... "
msgstr ""
#: etc/inc/pkg-utils.inc:850 etc/inc/pkg-utils.inc:989
#: etc/inc/pkg-utils.inc:886 etc/inc/pkg-utils.inc:1026
#: etc/inc/pkg-utils.inc:887 etc/inc/pkg-utils.inc:1027
+#: etc/inc/pkg-utils.inc:922 etc/inc/pkg-utils.inc:1062
+#: etc/inc/pkg-utils.inc:922 etc/inc/pkg-utils.inc:1062
msgid "Services... "
msgstr ""
#: etc/inc/pkg-utils.inc:865 etc/inc/pkg-utils.inc:901
-#: etc/inc/pkg-utils.inc:902
+#: etc/inc/pkg-utils.inc:902 etc/inc/pkg-utils.inc:937
+#: etc/inc/pkg-utils.inc:937
msgid "Loading package configuration... failed!"
msgstr ""
#: etc/inc/pkg-utils.inc:865 etc/inc/pkg-utils.inc:901
-#: etc/inc/pkg-utils.inc:902
+#: etc/inc/pkg-utils.inc:902 etc/inc/pkg-utils.inc:937
+#: etc/inc/pkg-utils.inc:937
msgid "Installation aborted."
msgstr ""
#: etc/inc/pkg-utils.inc:867 etc/inc/pkg-utils.inc:903
-#: etc/inc/pkg-utils.inc:904
+#: etc/inc/pkg-utils.inc:904 etc/inc/pkg-utils.inc:939
+#: etc/inc/pkg-utils.inc:939
msgid "Unable to load package configuration. Installation aborted."
msgstr ""
#: etc/inc/pkg-utils.inc:911 etc/inc/pkg-utils.inc:948
-#: etc/inc/pkg-utils.inc:949
+#: etc/inc/pkg-utils.inc:949 etc/inc/pkg-utils.inc:984
+#: etc/inc/pkg-utils.inc:984
#, php-format
msgid "Starting package deletion for %s..."
msgstr ""
#: etc/inc/pkg-utils.inc:931 etc/inc/pkg-utils.inc:968
-#: etc/inc/pkg-utils.inc:969
+#: etc/inc/pkg-utils.inc:969 etc/inc/pkg-utils.inc:1004
+#: etc/inc/pkg-utils.inc:1004
#, php-format
msgid "The %s package is not installed.%sDeletion aborted."
msgstr ""
#: etc/inc/pkg-utils.inc:942 etc/inc/pkg-utils.inc:979
-#: etc/inc/pkg-utils.inc:980
+#: etc/inc/pkg-utils.inc:980 etc/inc/pkg-utils.inc:1015
+#: etc/inc/pkg-utils.inc:1015
#, php-format
msgid "Removing %s package... "
msgstr ""
#: etc/inc/pkg-utils.inc:943 etc/inc/pkg-utils.inc:980
-#: etc/inc/pkg-utils.inc:981
+#: etc/inc/pkg-utils.inc:981 etc/inc/pkg-utils.inc:1016
+#: etc/inc/pkg-utils.inc:1016
#, php-format
msgid "Removing %s components..."
msgstr ""
#: etc/inc/pkg-utils.inc:955 etc/inc/pkg-utils.inc:992
-#: etc/inc/pkg-utils.inc:993
+#: etc/inc/pkg-utils.inc:993 etc/inc/pkg-utils.inc:1028
+#: etc/inc/pkg-utils.inc:1028
msgid "Tabs items... "
msgstr ""
#: etc/inc/pkg-utils.inc:1059 etc/inc/pkg-utils.inc:1096
-#: etc/inc/pkg-utils.inc:1097
+#: etc/inc/pkg-utils.inc:1097 etc/inc/pkg-utils.inc:1132
+#: etc/inc/pkg-utils.inc:1132
msgid "Deinstall commands... "
msgstr ""
#: etc/inc/pkg-utils.inc:1069 etc/inc/pkg-utils.inc:1106
-#: etc/inc/pkg-utils.inc:1107
+#: etc/inc/pkg-utils.inc:1107 etc/inc/pkg-utils.inc:1142
+#: etc/inc/pkg-utils.inc:1142
msgid "Removing package instructions..."
msgstr ""
#: etc/inc/pkg-utils.inc:1071 etc/inc/pkg-utils.inc:1108
-#: etc/inc/pkg-utils.inc:1109
+#: etc/inc/pkg-utils.inc:1109 etc/inc/pkg-utils.inc:1144
+#: etc/inc/pkg-utils.inc:1144
#, php-format
msgid "Remove '%s'"
msgstr ""
#: etc/inc/pkg-utils.inc:1078 etc/inc/pkg-utils.inc:1115
-#: etc/inc/pkg-utils.inc:1116
+#: etc/inc/pkg-utils.inc:1116 etc/inc/pkg-utils.inc:1151
+#: etc/inc/pkg-utils.inc:1151
msgid "Auxiliary files... "
msgstr ""
#: etc/inc/pkg-utils.inc:1092 etc/inc/pkg-utils.inc:1129
-#: etc/inc/pkg-utils.inc:1130
+#: etc/inc/pkg-utils.inc:1130 etc/inc/pkg-utils.inc:1165
+#: etc/inc/pkg-utils.inc:1165
msgid "Package XML... "
msgstr ""
#: etc/inc/pkg-utils.inc:1111 etc/inc/pkg-utils.inc:1148
-#: etc/inc/pkg-utils.inc:1149
+#: etc/inc/pkg-utils.inc:1149 etc/inc/pkg-utils.inc:1184
+#: etc/inc/pkg-utils.inc:1184
msgid "Configuration... "
msgstr ""
#: etc/inc/pkg-utils.inc:1205 etc/inc/pkg-utils.inc:1242
-#: etc/inc/pkg-utils.inc:1243
+#: etc/inc/pkg-utils.inc:1243 etc/inc/pkg-utils.inc:1274
+#: etc/inc/pkg-utils.inc:1274
#, php-format
msgid ""
" >>> Unable to communicate with %1$s. Please verify DNS and interface "
"configuration, and that %2$s has functional Internet connectivity."
msgstr ""
-#: etc/inc/radius.inc:404 etc/inc/radius.inc:404
+#: etc/inc/radius.inc:404 etc/inc/radius.inc:406 etc/inc/radius.inc:406
msgid "Error sending request:"
msgstr ""
-#: etc/inc/radius.inc:410 etc/inc/radius.inc:410
+#: etc/inc/radius.inc:410 etc/inc/radius.inc:412 etc/inc/radius.inc:412
msgid "RADIUS_ACCESS_ACCEPT is unexpected for accounting"
msgstr ""
-#: etc/inc/radius.inc:419 etc/inc/radius.inc:419
+#: etc/inc/radius.inc:419 etc/inc/radius.inc:421 etc/inc/radius.inc:421
msgid "RADIUS_ACCOUNTING_RESPONSE is unexpected for authentication"
msgstr ""
-#: etc/inc/radius.inc:424 etc/inc/radius.inc:424
+#: etc/inc/radius.inc:424 etc/inc/radius.inc:426 etc/inc/radius.inc:426
#, php-format
msgid "Unexpected return value: %s"
msgstr ""
#: etc/inc/services.inc:262 etc/inc/services.inc:333 etc/inc/services.inc:360
+#: etc/inc/services.inc:369 etc/inc/services.inc:371
#, php-format
msgid "DHCP leases restore failed exited with %1$s, the error is: %2$s%3$s"
msgstr ""
#: etc/inc/services.inc:275 etc/inc/services.inc:346 etc/inc/services.inc:373
+#: etc/inc/services.inc:382 etc/inc/services.inc:387
msgid "Starting DHCP service..."
msgstr ""
#: etc/inc/services.inc:282 etc/inc/services.inc:353 etc/inc/services.inc:380
+#: etc/inc/services.inc:820 etc/inc/services.inc:825
#, php-format
msgid "Error: cannot open dhcpd.conf in services_dhcpdv4_configure().%s"
msgstr ""
#: etc/inc/services.inc:353 etc/inc/services.inc:434 etc/inc/services.inc:461
+#: etc/inc/services.inc:463 etc/inc/services.inc:468
msgid "Warning! DHCP Failover setup and no CARP virtual IP's defined!"
msgstr ""
#: etc/inc/services.inc:949 etc/inc/services.inc:1078
-#: etc/inc/services.inc:1210
+#: etc/inc/services.inc:1210 etc/inc/services.inc:1203
+#: etc/inc/services.inc:1209
msgid "Could not write Igmpproxy configuration file!"
msgstr ""
@@ -1350,70 +1572,83 @@ msgid "Started Igmpproxy service sucsesfully."
msgstr ""
#: etc/inc/services.inc:980 etc/inc/services.inc:1109
-#: etc/inc/services.inc:1241
+#: etc/inc/services.inc:1241 etc/inc/services.inc:1235
+#: etc/inc/services.inc:1242
msgid "Starting DHCP relay service..."
msgstr ""
#: etc/inc/services.inc:1096 etc/inc/services.inc:1223
-#: etc/inc/services.inc:1355
+#: etc/inc/services.inc:1355 etc/inc/services.inc:1350
+#: etc/inc/services.inc:1365
msgid "Starting DHCPv6 relay service..."
msgstr ""
#: etc/inc/services.inc:1222 etc/inc/services.inc:1358
-#: etc/inc/services.inc:1493
+#: etc/inc/services.inc:1493 etc/inc/services.inc:1489
+#: etc/inc/services.inc:1505
msgid "Starting DynDNS clients..."
msgstr ""
#: etc/inc/services.inc:1255 etc/inc/services.inc:1392
-#: etc/inc/services.inc:1531
+#: etc/inc/services.inc:1531 etc/inc/services.inc:1545
+#: etc/inc/services.inc:1562
msgid "Starting DNS forwarder..."
msgstr ""
#: etc/inc/services.inc:1324 etc/inc/services.inc:1507
-#: etc/inc/services.inc:1646
+#: etc/inc/services.inc:1646 etc/inc/services.inc:1623
+#: etc/inc/services.inc:1655
msgid "Starting SNMP daemon... "
msgstr ""
#: etc/inc/services.inc:1329 etc/inc/services.inc:1512
-#: etc/inc/services.inc:1651
+#: etc/inc/services.inc:1651 etc/inc/services.inc:1628
+#: etc/inc/services.inc:1660
#, php-format
msgid "Error: cannot open snmpd.conf in services_snmpd_configure().%s"
msgstr ""
#: etc/inc/services.inc:1875 etc/inc/services.inc:2067
-#: etc/inc/services.inc:1919
+#: etc/inc/services.inc:1919 etc/inc/services.inc:1908
+#: etc/inc/services.inc:1948
msgid "pfSense specific crontab entries"
msgstr ""
#: etc/inc/services.inc:1876 etc/inc/services.inc:2068
-#: etc/inc/services.inc:1920
+#: etc/inc/services.inc:1920 etc/inc/services.inc:1909
+#: etc/inc/services.inc:1949
msgid "Created:"
msgstr ""
#: etc/inc/services.inc:1890 etc/inc/services.inc:2082
-#: etc/inc/services.inc:1934
+#: etc/inc/services.inc:1934 etc/inc/services.inc:1923
+#: etc/inc/services.inc:1963
msgid "If possible do not add items to this file manually."
msgstr ""
#: etc/inc/services.inc:1891 etc/inc/services.inc:2083
-#: etc/inc/services.inc:1935
+#: etc/inc/services.inc:1935 etc/inc/services.inc:1924
+#: etc/inc/services.inc:1964
msgid ""
"If you do so, this file must be terminated with a blank line (e.g. new line)"
msgstr ""
#: etc/inc/services.inc:1934 etc/inc/services.inc:2126
-#: etc/inc/services.inc:1978
+#: etc/inc/services.inc:1978 etc/inc/services.inc:1968
+#: etc/inc/services.inc:2008
msgid "Starting UPnP service... "
msgstr ""
#: etc/inc/services.inc:1969 etc/inc/services.inc:2161
-#: etc/inc/services.inc:2013
+#: etc/inc/services.inc:2013 etc/inc/services.inc:2005
+#: etc/inc/services.inc:2045
#, php-format
msgid "Installed cron job for %s"
msgstr ""
#: etc/inc/services.inc:1972 etc/inc/services.inc:2164
-#: etc/inc/services.inc:2016
+#: etc/inc/services.inc:2016 etc/inc/services.inc:2008
+#: etc/inc/services.inc:2048
#, php-format
msgid "Updated cron job for %s"
msgstr ""
@@ -1441,34 +1676,44 @@ msgstr ""
#: etc/inc/shaper.inc:318 etc/inc/shaper.inc:652 etc/inc/shaper.inc:1546
#: etc/inc/shaper.inc:1852 etc/inc/shaper.inc:2194 etc/inc/shaper.inc:2329
#: etc/inc/shaper.inc:2469 etc/inc/shaper.inc:2595 etc/inc/shaper.inc:2789
-#: etc/inc/shaper.inc:3031 etc/inc/shaper.inc:318 etc/inc/shaper.inc:652
-#: etc/inc/shaper.inc:1546 etc/inc/shaper.inc:1852 etc/inc/shaper.inc:2194
-#: etc/inc/shaper.inc:2329 etc/inc/shaper.inc:2469 etc/inc/shaper.inc:2595
-#: etc/inc/shaper.inc:2789 etc/inc/shaper.inc:3161
+#: etc/inc/shaper.inc:3031 etc/inc/shaper.inc:3161
#: usr/local/www/interfaces_ppps_edit.php:751
+#: usr/local/www/interfaces_ppps_edit.php:757
+#: usr/local/www/status_queues.php:151 etc/inc/shaper.inc:1547
+#: etc/inc/shaper.inc:1853 etc/inc/shaper.inc:2195 etc/inc/shaper.inc:2330
+#: etc/inc/shaper.inc:2470 etc/inc/shaper.inc:2596 etc/inc/shaper.inc:2790
+#: etc/inc/shaper.inc:3162 usr/local/www/interfaces_ppps_edit.php:757
+#: usr/local/www/status_queues.php:151 etc/inc/shaper.inc:318
+#: etc/inc/shaper.inc:654 etc/inc/shaper.inc:1550 etc/inc/shaper.inc:1858
+#: etc/inc/shaper.inc:2200 etc/inc/shaper.inc:2335 etc/inc/shaper.inc:2475
+#: etc/inc/shaper.inc:2601 etc/inc/shaper.inc:2795 etc/inc/shaper.inc:3169
msgid "Bandwidth"
msgstr ""
#: etc/inc/shaper.inc:319 etc/inc/shaper.inc:1546 etc/inc/shaper.inc:2194
#: etc/inc/shaper.inc:2469 etc/inc/shaper.inc:2789 etc/inc/shaper.inc:320
#: etc/inc/shaper.inc:1548 etc/inc/shaper.inc:2196 etc/inc/shaper.inc:2471
-#: etc/inc/shaper.inc:2791 etc/inc/shaper.inc:320 etc/inc/shaper.inc:1548
-#: etc/inc/shaper.inc:2196 etc/inc/shaper.inc:2471 etc/inc/shaper.inc:2791
+#: etc/inc/shaper.inc:2791 etc/inc/shaper.inc:1549 etc/inc/shaper.inc:2197
+#: etc/inc/shaper.inc:2472 etc/inc/shaper.inc:2792 etc/inc/shaper.inc:320
+#: etc/inc/shaper.inc:1552 etc/inc/shaper.inc:2202 etc/inc/shaper.inc:2477
+#: etc/inc/shaper.inc:2797
msgid "Bandwidthtype"
msgstr ""
#: etc/inc/shaper.inc:324 etc/inc/shaper.inc:1552 etc/inc/shaper.inc:2199
#: etc/inc/shaper.inc:2474 etc/inc/shaper.inc:2900 etc/inc/shaper.inc:325
#: etc/inc/shaper.inc:1554 etc/inc/shaper.inc:2201 etc/inc/shaper.inc:2476
-#: etc/inc/shaper.inc:2904 etc/inc/shaper.inc:325 etc/inc/shaper.inc:1554
-#: etc/inc/shaper.inc:2201 etc/inc/shaper.inc:2476
+#: etc/inc/shaper.inc:2904 etc/inc/shaper.inc:1555 etc/inc/shaper.inc:2202
+#: etc/inc/shaper.inc:2477 etc/inc/shaper.inc:325 etc/inc/shaper.inc:1558
+#: etc/inc/shaper.inc:2207 etc/inc/shaper.inc:2482
msgid "Bandwidth must be an integer."
msgstr ""
#: etc/inc/shaper.inc:326 etc/inc/shaper.inc:1555 etc/inc/shaper.inc:2203
#: etc/inc/shaper.inc:2478 etc/inc/shaper.inc:327 etc/inc/shaper.inc:1557
-#: etc/inc/shaper.inc:2205 etc/inc/shaper.inc:2480 etc/inc/shaper.inc:327
-#: etc/inc/shaper.inc:1557 etc/inc/shaper.inc:2205 etc/inc/shaper.inc:2480
+#: etc/inc/shaper.inc:2205 etc/inc/shaper.inc:2480 etc/inc/shaper.inc:1558
+#: etc/inc/shaper.inc:2206 etc/inc/shaper.inc:2481 etc/inc/shaper.inc:327
+#: etc/inc/shaper.inc:1561 etc/inc/shaper.inc:2211 etc/inc/shaper.inc:2486
msgid "Bandwidth cannot be negative."
msgstr ""
@@ -1490,12 +1735,14 @@ msgstr ""
#: etc/inc/shaper.inc:614 etc/inc/shaper.inc:1120 etc/inc/shaper.inc:3269
#: etc/inc/shaper.inc:3488 etc/inc/shaper.inc:615 etc/inc/shaper.inc:1121
-#: etc/inc/shaper.inc:3277 etc/inc/shaper.inc:3500 etc/inc/shaper.inc:615
-#: etc/inc/shaper.inc:1121 etc/inc/shaper.inc:3432 etc/inc/shaper.inc:3655
+#: etc/inc/shaper.inc:3277 etc/inc/shaper.inc:3500 etc/inc/shaper.inc:3432
+#: etc/inc/shaper.inc:3655 etc/inc/shaper.inc:1122 etc/inc/shaper.inc:3433
+#: etc/inc/shaper.inc:3656 etc/inc/shaper.inc:617 etc/inc/shaper.inc:1126
+#: etc/inc/shaper.inc:3440 etc/inc/shaper.inc:3663
msgid "Enable/Disable"
msgstr ""
-#: etc/inc/shaper.inc:619 etc/inc/shaper.inc:620 etc/inc/shaper.inc:620
+#: etc/inc/shaper.inc:619 etc/inc/shaper.inc:620 etc/inc/shaper.inc:622
msgid "Enable/disable discipline and its children"
msgstr ""
@@ -1552,101 +1799,131 @@ msgstr ""
#: usr/local/www/firewall_aliases.php:168
#: usr/local/www/system_camanager.php:566
#: usr/local/www/load_balancer_pool_edit.php:189
-#: usr/local/www/load_balancer_pool.php:132 etc/inc/shaper.inc:622
-#: etc/inc/shaper.inc:966 etc/inc/shaper.inc:2793 etc/inc/shaper.inc:3150
+#: usr/local/www/load_balancer_pool.php:132 etc/inc/shaper.inc:3150
#: etc/inc/shaper.inc:3439 etc/inc/shaper.inc:3663 etc/inc/shaper.inc:3735
#: usr/local/www/status_openvpn.php:214 usr/local/www/status_openvpn.php:265
-#: usr/local/www/pkg_mgr.php:129 usr/local/www/status_lb_vs.php:77
-#: usr/local/www/system_groupmanager.php:346
-#: usr/local/www/load_balancer_relay_protocol_edit.php:79
#: usr/local/www/load_balancer_relay_protocol_edit.php:193
#: usr/local/www/interfaces_groups.php:95
-#: usr/local/www/system_certmanager.php:1020
-#: usr/local/www/load_balancer_relay_action_edit.php:117
#: usr/local/www/load_balancer_relay_action_edit.php:408
-#: usr/local/www/load_balancer_monitor_edit.php:88
#: usr/local/www/load_balancer_monitor_edit.php:233
-#: usr/local/www/system_usermanager.php:575
-#: usr/local/www/system_usermanager.php:628
-#: usr/local/www/status_lb_pool.php:130
#: usr/local/www/system_crlmanager.php:520
-#: usr/local/www/firewall_aliases_edit.php:134
#: usr/local/www/firewall_aliases_edit.php:584
-#: usr/local/www/pkg_mgr_installed.php:111
#: usr/local/www/load_balancer_virtual_server.php:127
-#: usr/local/www/firewall_schedule.php:96
#: usr/local/www/system_gateways_edit.php:100
#: usr/local/www/system_gateways_edit.php:497
-#: usr/local/www/status_gateways.php:73 usr/local/www/system_gateways.php:152
-#: usr/local/www/services_igmpproxy.php:95
+#: usr/local/www/status_gateways.php:73
#: usr/local/www/services_captiveportal_filemanager.php:159
#: usr/local/www/load_balancer_monitor.php:121
#: usr/local/www/load_balancer_relay_protocol.php:132
+#: usr/local/www/load_balancer_virtual_server_edit.php:155
+#: usr/local/www/firewall_aliases.php:188
+#: usr/local/www/load_balancer_relay_action.php:138
+#: usr/local/www/load_balancer_pool_edit.php:187
+#: usr/local/www/load_balancer_pool.php:130
+#: usr/local/www/system_gateways_edit.php:499
+#: usr/local/www/system_camanager.php:590 usr/local/www/status_openvpn.php:313
+#: usr/local/www/system_certmanager.php:1062 etc/inc/shaper.inc:2794
+#: etc/inc/shaper.inc:3151 etc/inc/shaper.inc:3440 etc/inc/shaper.inc:3664
+#: etc/inc/shaper.inc:3736 usr/local/www/system_gateways_edit.php:100
+#: usr/local/www/system_gateways_edit.php:501
+#: usr/local/www/system_camanager.php:590
+#: usr/local/www/load_balancer_relay_protocol_edit.php:79
+#: usr/local/www/load_balancer_relay_protocol_edit.php:193
+#: usr/local/www/system_groupmanager.php:346
+#: usr/local/www/firewall_schedule.php:96 usr/local/www/status_openvpn.php:272
+#: usr/local/www/status_openvpn.php:333
#: usr/local/www/load_balancer_virtual_server_edit.php:72
#: usr/local/www/load_balancer_virtual_server_edit.php:77
#: usr/local/www/load_balancer_virtual_server_edit.php:155
#: usr/local/www/firewall_aliases.php:188
-#: usr/local/www/load_balancer_relay_action.php:138
-#: usr/local/www/system_camanager.php:566
+#: usr/local/www/load_balancer_relay_protocol.php:132
+#: usr/local/www/pkg_mgr_installed.php:113
#: usr/local/www/firewall_aliases_import.php:59
+#: usr/local/www/load_balancer_relay_action.php:138
+#: usr/local/www/system_certmanager.php:1066
+#: usr/local/www/status_lb_pool.php:130 usr/local/www/interfaces_groups.php:95
+#: usr/local/www/load_balancer_relay_action_edit.php:117
+#: usr/local/www/load_balancer_relay_action_edit.php:408
+#: usr/local/www/pkg_mgr.php:132 usr/local/www/system_crlmanager.php:520
+#: usr/local/www/load_balancer_pool.php:130
+#: usr/local/www/services_captiveportal_filemanager.php:159
+#: usr/local/www/load_balancer_monitor_edit.php:88
+#: usr/local/www/load_balancer_monitor_edit.php:233
+#: usr/local/www/firewall_aliases_edit.php:128
+#: usr/local/www/firewall_aliases_edit.php:615
+#: usr/local/www/services_igmpproxy.php:95
+#: usr/local/www/load_balancer_monitor.php:121
+#: usr/local/www/system_usermanager.php:575
+#: usr/local/www/system_usermanager.php:628
+#: usr/local/www/system_gateways.php:152
+#: usr/local/www/load_balancer_virtual_server.php:127
#: usr/local/www/load_balancer_pool_edit.php:76
#: usr/local/www/load_balancer_pool_edit.php:187
-#: usr/local/www/load_balancer_pool.php:130
+#: usr/local/www/status_lb_vs.php:77 usr/local/www/status_gateways.php:73
+#: etc/inc/shaper.inc:624 etc/inc/shaper.inc:970 etc/inc/shaper.inc:2799
+#: etc/inc/shaper.inc:3158 etc/inc/shaper.inc:3447 etc/inc/shaper.inc:3671
+#: etc/inc/shaper.inc:3743
msgid "Name"
msgstr ""
-#: etc/inc/shaper.inc:625 etc/inc/shaper.inc:626 etc/inc/shaper.inc:626
+#: etc/inc/shaper.inc:625 etc/inc/shaper.inc:626 etc/inc/shaper.inc:628
msgid "Scheduler Type "
msgstr ""
-#: etc/inc/shaper.inc:647 etc/inc/shaper.inc:648 etc/inc/shaper.inc:648
+#: etc/inc/shaper.inc:647 etc/inc/shaper.inc:648 etc/inc/shaper.inc:650
msgid "NOTE: Changing this changes all child queues!"
msgstr ""
-#: etc/inc/shaper.inc:648 etc/inc/shaper.inc:649 etc/inc/shaper.inc:649
+#: etc/inc/shaper.inc:648 etc/inc/shaper.inc:649 etc/inc/shaper.inc:651
msgid " Beware you can lose information."
msgstr ""
-#: etc/inc/shaper.inc:686 etc/inc/shaper.inc:687 etc/inc/shaper.inc:687
+#: etc/inc/shaper.inc:686 etc/inc/shaper.inc:687 etc/inc/shaper.inc:689
msgid ""
"Adjusts the size, in bytes, of the token bucket regulator. If not specified, "
"heuristics based on the interface bandwidth are used to determine the size."
msgstr ""
-#: etc/inc/shaper.inc:978 etc/inc/shaper.inc:979 etc/inc/shaper.inc:979
+#: etc/inc/shaper.inc:978 etc/inc/shaper.inc:979 etc/inc/shaper.inc:983
msgid "The priority must be an integer between 1 and 15."
msgstr ""
#: etc/inc/shaper.inc:981 etc/inc/shaper.inc:2802 etc/inc/shaper.inc:982
-#: etc/inc/shaper.inc:2804 etc/inc/shaper.inc:982 etc/inc/shaper.inc:2804
+#: etc/inc/shaper.inc:2804 etc/inc/shaper.inc:2805 etc/inc/shaper.inc:986
+#: etc/inc/shaper.inc:2810
msgid "Queue limit must be an integer"
msgstr ""
-#: etc/inc/shaper.inc:983 etc/inc/shaper.inc:984 etc/inc/shaper.inc:984
+#: etc/inc/shaper.inc:983 etc/inc/shaper.inc:984 etc/inc/shaper.inc:988
msgid "Queue limit must be positive"
msgstr ""
#: etc/inc/shaper.inc:985 etc/inc/shaper.inc:987 etc/inc/shaper.inc:2804
#: etc/inc/shaper.inc:2806 etc/inc/shaper.inc:3573 etc/inc/shaper.inc:986
#: etc/inc/shaper.inc:988 etc/inc/shaper.inc:2808 etc/inc/shaper.inc:3585
-#: etc/inc/shaper.inc:986 etc/inc/shaper.inc:988 etc/inc/shaper.inc:2806
-#: etc/inc/shaper.inc:2808 etc/inc/shaper.inc:3740
+#: etc/inc/shaper.inc:3740 etc/inc/shaper.inc:2807 etc/inc/shaper.inc:2809
+#: etc/inc/shaper.inc:3741 etc/inc/shaper.inc:990 etc/inc/shaper.inc:992
+#: etc/inc/shaper.inc:2812 etc/inc/shaper.inc:2814 etc/inc/shaper.inc:3748
msgid "Queue names must be alphanumeric and _ or - only."
msgstr ""
-#: etc/inc/shaper.inc:989 etc/inc/shaper.inc:990 etc/inc/shaper.inc:990
+#: etc/inc/shaper.inc:989 etc/inc/shaper.inc:990 etc/inc/shaper.inc:991
+#: etc/inc/shaper.inc:995
msgid "Only one default queue per interface is allowed."
msgstr ""
-#: etc/inc/shaper.inc:1125 etc/inc/shaper.inc:1126 etc/inc/shaper.inc:1126
+#: etc/inc/shaper.inc:1125 etc/inc/shaper.inc:1126 etc/inc/shaper.inc:1127
+#: etc/inc/shaper.inc:1131
msgid "Enable/Disable queue and its children"
msgstr ""
-#: etc/inc/shaper.inc:1129 etc/inc/shaper.inc:1130 etc/inc/shaper.inc:1130
+#: etc/inc/shaper.inc:1129 etc/inc/shaper.inc:1130 etc/inc/shaper.inc:1131
+#: etc/inc/shaper.inc:1135
msgid "Queue Name"
msgstr ""
-#: etc/inc/shaper.inc:1136 etc/inc/shaper.inc:1137 etc/inc/shaper.inc:1137
+#: etc/inc/shaper.inc:1136 etc/inc/shaper.inc:1137 etc/inc/shaper.inc:1138
+#: etc/inc/shaper.inc:1142
msgid ""
"Enter the name of the queue here. Do not use spaces and limit the size to "
"15 characters."
@@ -1656,49 +1933,63 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:373
#: usr/local/www/system_gateway_groups.php:122 etc/inc/shaper.inc:1140
#: usr/local/www/interfaces_bridge_edit.php:363
-#: usr/local/www/interfaces_bridge_edit.php:382 etc/inc/shaper.inc:1140
+#: usr/local/www/interfaces_bridge_edit.php:382
#: usr/local/www/system_gateway_groups.php:123
#: usr/local/www/interfaces_bridge_edit.php:364
#: usr/local/www/interfaces_bridge_edit.php:383
+#: usr/local/www/interfaces_bridge_edit.php:365
+#: usr/local/www/interfaces_bridge_edit.php:384 etc/inc/shaper.inc:1141
+#: usr/local/www/interfaces_bridge_edit.php:365
+#: usr/local/www/interfaces_bridge_edit.php:384
+#: usr/local/www/system_gateway_groups.php:132 etc/inc/shaper.inc:1145
msgid "Priority"
msgstr ""
-#: etc/inc/shaper.inc:1143 etc/inc/shaper.inc:1144 etc/inc/shaper.inc:1144
+#: etc/inc/shaper.inc:1143 etc/inc/shaper.inc:1144 etc/inc/shaper.inc:1145
+#: etc/inc/shaper.inc:1149
msgid ""
"For hfsc, the range is 0 to 7. The default is 1. Hfsc queues with a higher "
"priority are preferred in the case of overload."
msgstr ""
-#: etc/inc/shaper.inc:1146 etc/inc/shaper.inc:1147 etc/inc/shaper.inc:1147
+#: etc/inc/shaper.inc:1146 etc/inc/shaper.inc:1147 etc/inc/shaper.inc:1148
+#: etc/inc/shaper.inc:1152
msgid "Queue limit"
msgstr ""
-#: etc/inc/shaper.inc:1150 etc/inc/shaper.inc:1151 etc/inc/shaper.inc:1151
+#: etc/inc/shaper.inc:1150 etc/inc/shaper.inc:1151 etc/inc/shaper.inc:1152
+#: etc/inc/shaper.inc:1156
msgid "Queue limit in packets per second."
msgstr ""
-#: etc/inc/shaper.inc:1153 etc/inc/shaper.inc:1154 etc/inc/shaper.inc:1154
+#: etc/inc/shaper.inc:1153 etc/inc/shaper.inc:1154 etc/inc/shaper.inc:1155
+#: etc/inc/shaper.inc:1159
msgid "Scheduler options"
msgstr ""
#: etc/inc/shaper.inc:1158 etc/inc/shaper.inc:1161 etc/inc/shaper.inc:1159
-#: etc/inc/shaper.inc:1162 etc/inc/shaper.inc:1159 etc/inc/shaper.inc:1162
+#: etc/inc/shaper.inc:1162 etc/inc/shaper.inc:1160 etc/inc/shaper.inc:1163
+#: etc/inc/shaper.inc:1164 etc/inc/shaper.inc:1167
msgid "Default queue"
msgstr ""
-#: etc/inc/shaper.inc:1168 etc/inc/shaper.inc:1169 etc/inc/shaper.inc:1169
+#: etc/inc/shaper.inc:1168 etc/inc/shaper.inc:1169 etc/inc/shaper.inc:1170
+#: etc/inc/shaper.inc:1174
msgid "Random Early Detection"
msgstr ""
-#: etc/inc/shaper.inc:1173 etc/inc/shaper.inc:1174 etc/inc/shaper.inc:1174
+#: etc/inc/shaper.inc:1173 etc/inc/shaper.inc:1174 etc/inc/shaper.inc:1175
+#: etc/inc/shaper.inc:1179
msgid "Random Early Detection In and Out"
msgstr ""
-#: etc/inc/shaper.inc:1178 etc/inc/shaper.inc:1179 etc/inc/shaper.inc:1179
+#: etc/inc/shaper.inc:1178 etc/inc/shaper.inc:1179 etc/inc/shaper.inc:1180
+#: etc/inc/shaper.inc:1184
msgid "Explicit Congestion Notification"
msgstr ""
-#: etc/inc/shaper.inc:1179 etc/inc/shaper.inc:1180 etc/inc/shaper.inc:1180
+#: etc/inc/shaper.inc:1179 etc/inc/shaper.inc:1180 etc/inc/shaper.inc:1181
+#: etc/inc/shaper.inc:1185
msgid "Select options for this queue"
msgstr ""
@@ -1852,28 +2143,18 @@ msgstr ""
#: usr/local/www/interfaces_gre_edit.php:218
#: usr/local/www/load_balancer_pool.php:137
#: usr/local/www/vpn_ipsec_phase1.php:588
-#: usr/local/www/services_dhcpv6.php:901 etc/inc/shaper.inc:1182
-#: etc/inc/shaper.inc:3225 etc/inc/shaper.inc:3668
-#: usr/local/www/vpn_pppoe_edit.php:445
-#: usr/local/www/system_routes_edit.php:308 usr/local/www/pkg_mgr.php:132
-#: usr/local/www/services_unbound_acls.php:238
-#: usr/local/www/services_unbound_acls.php:292
-#: usr/local/www/services_unbound_acls.php:319
+#: usr/local/www/services_dhcpv6.php:901 etc/inc/shaper.inc:3225
+#: etc/inc/shaper.inc:3668 usr/local/www/vpn_pppoe_edit.php:445
+#: usr/local/www/system_routes_edit.php:308
#: usr/local/www/system_gateway_groups_edit.php:334
-#: usr/local/www/services_rfc2136.php:80
#: usr/local/www/interfaces_vlan_edit.php:180
#: usr/local/www/services_dnsmasq.php:247
#: usr/local/www/services_dnsmasq.php:335
-#: usr/local/www/services_dyndns_edit.php:358
-#: usr/local/www/status_lb_vs.php:81 usr/local/www/firewall_nat_out.php:360
-#: usr/local/www/system_groupmanager.php:275
-#: usr/local/www/system_groupmanager.php:347
+#: usr/local/www/firewall_nat_out.php:360
#: usr/local/www/system_groupmanager.php:406
#: usr/local/www/services_dnsmasq_edit.php:219
#: usr/local/www/services_dnsmasq_edit.php:240
-#: usr/local/www/load_balancer_relay_protocol_edit.php:79
#: usr/local/www/load_balancer_relay_protocol_edit.php:216
-#: usr/local/www/system_routes.php:129
#: usr/local/www/firewall_nat_1to1_edit.php:445
#: usr/local/www/services_dhcpv6_edit.php:230
#: usr/local/www/services_captiveportal_ip.php:116
@@ -1881,54 +2162,33 @@ msgstr ""
#: usr/local/www/interfaces_groups.php:97
#: usr/local/www/services_captiveportal_hostname_edit.php:181
#: usr/local/www/interfaces_qinq_edit.php:338
-#: usr/local/www/firewall_nat_out_edit.php:649
#: usr/local/www/interfaces_gif_edit.php:209 usr/local/www/diag_ipsec.php:107
-#: usr/local/www/firewall_nat.php:208 usr/local/www/services_wol_edit.php:148
-#: usr/local/www/interfaces_qinq.php:120
-#: usr/local/www/load_balancer_relay_action_edit.php:117
+#: usr/local/www/firewall_nat.php:208 usr/local/www/interfaces_qinq.php:120
#: usr/local/www/load_balancer_relay_action_edit.php:414
-#: usr/local/www/firewall_rules_edit.php:1088
-#: usr/local/www/services_unbound.php:282
-#: usr/local/www/services_unbound.php:349
#: usr/local/www/interfaces_ppps.php:111
-#: usr/local/www/load_balancer_monitor_edit.php:88
#: usr/local/www/load_balancer_monitor_edit.php:239
#: usr/local/www/services_captiveportal_mac.php:166
-#: usr/local/www/system_usermanager.php:576
-#: usr/local/www/status_lb_pool.php:134 usr/local/www/firewall_nat_npt.php:107
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:151
#: usr/local/www/services_captiveportal_mac_edit.php:180
#: usr/local/www/firewall_schedule_edit.php:792
#: usr/local/www/firewall_schedule_edit.php:997
#: usr/local/www/interfaces_bridge.php:110
#: usr/local/www/interfaces_ppps_edit.php:468
-#: usr/local/www/services_igmpproxy_edit.php:177
#: usr/local/www/interfaces_lagg.php:115
#: usr/local/www/firewall_aliases_edit.php:460
#: usr/local/www/firewall_aliases_edit.php:599
#: usr/local/www/firewall_aliases_edit.php:634
#: usr/local/www/interfaces_lagg_edit.php:209
-#: usr/local/www/pkg_mgr_installed.php:114
#: usr/local/www/vpn_openvpn_csc.php:341 usr/local/www/vpn_openvpn_csc.php:673
-#: usr/local/www/services_rfc2136_edit.php:192
#: usr/local/www/services_captiveportal_hostname.php:121
-#: usr/local/www/firewall_nat_1to1.php:108
-#: usr/local/www/firewall_rules.php:371
-#: usr/local/www/system_usermanager_addprivs.php:197
-#: usr/local/www/interfaces_gre.php:110
+#: usr/local/www/firewall_rules.php:371 usr/local/www/interfaces_gre.php:110
#: usr/local/www/load_balancer_virtual_server.php:133
#: usr/local/www/interfaces_wireless.php:109
-#: usr/local/www/system_groupmanager_addprivs.php:214
#: usr/local/www/system_gateway_groups.php:124
-#: usr/local/www/firewall_schedule.php:98
#: usr/local/www/status_services.php:241
#: usr/local/www/system_gateways_edit.php:619
-#: usr/local/www/status_gateways.php:79 usr/local/www/system_gateways.php:156
-#: usr/local/www/services_igmpproxy.php:98
+#: usr/local/www/status_gateways.php:79
#: usr/local/www/load_balancer_monitor.php:123
-#: usr/local/www/services_dyndns.php:112
-#: usr/local/www/system_advanced_sysctl.php:172
-#: usr/local/www/system_advanced_sysctl.php:243
#: usr/local/www/services_captiveportal_ip_edit.php:206
#: usr/local/www/load_balancer_relay_protocol.php:135
#: usr/local/www/vpn_openvpn_server.php:823
@@ -1938,14 +2198,11 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:283
#: usr/local/www/firewall_aliases.php:190
#: usr/local/www/load_balancer_relay_action.php:141
-#: usr/local/www/services_wol.php:163
#: usr/local/www/interfaces_groups_edit.php:260
#: usr/local/www/services_captiveportal_zones_edit.php:108
#: usr/local/www/vpn_ipsec_phase2.php:625
#: usr/local/www/interfaces_vlan.php:111
#: usr/local/www/firewall_nat_edit.php:775
-#: usr/local/www/firewall_aliases_import.php:140
-#: usr/local/www/interfaces_wireless_edit.php:185
#: usr/local/www/services_dhcp_edit.php:253 usr/local/www/interfaces.php:1336
#: usr/local/www/services_captiveportal_zones.php:56
#: usr/local/www/vpn_openvpn_client.php:596
@@ -1954,110 +2211,272 @@ msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:202
#: usr/local/www/firewall_virtual_ip_edit.php:471
#: usr/local/www/interfaces_gif.php:109
-#: usr/local/www/interfaces_gre_edit.php:219
#: usr/local/www/load_balancer_pool.php:135
#: usr/local/www/firewall_virtual_ip.php:191
#: usr/local/www/vpn_ipsec_phase1.php:587
-#: usr/local/www/services_dhcpv6.php:832
+#: usr/local/www/services_dhcpv6.php:832 usr/local/www/services_rfc2136.php:81
+#: usr/local/www/status_services.php:239
+#: usr/local/www/system_gateways_edit.php:623
+#: usr/local/www/services_captiveportal_ip_edit.php:200
+#: usr/local/www/vpn_pppoe.php:106
+#: usr/local/www/interfaces_wireless_edit.php:187
+#: usr/local/www/services_captiveportal_zones_edit.php:105
+#: usr/local/www/vpn_openvpn_client.php:615
+#: usr/local/www/vpn_openvpn_client.php:940
+#: usr/local/www/services_dhcpv6_edit.php:233
+#: usr/local/www/services_dyndns_edit.php:362
+#: usr/local/www/firewall_rules_edit.php:1103
+#: usr/local/www/interfaces_qinq.php:123
+#: usr/local/www/interfaces_vlan_edit.php:183
+#: usr/local/www/interfaces_ppps_edit.php:474
+#: usr/local/www/firewall_virtual_ip.php:205
+#: usr/local/www/interfaces_lagg_edit.php:222
+#: usr/local/www/firewall_nat_edit.php:770
+#: usr/local/www/interfaces_lagg.php:119 usr/local/www/interfaces_vlan.php:117
+#: usr/local/www/interfaces_gif_edit.php:220
+#: usr/local/www/services_dhcp_edit.php:381
+#: usr/local/www/firewall_virtual_ip_edit.php:463
+#: usr/local/www/diag_ipsec.php:109 usr/local/www/interfaces_bridge.php:116
+#: usr/local/www/interfaces_wireless.php:111
+#: usr/local/www/system_routes.php:133 usr/local/www/vpn_pppoe_edit.php:448
+#: usr/local/www/services_dhcp.php:792 usr/local/www/services_dhcp.php:1154
+#: usr/local/www/services_captiveportal_mac_edit.php:193
+#: usr/local/www/services_dhcpv6.php:853
+#: usr/local/www/interfaces_bridge_edit.php:284
+#: usr/local/www/services_dnsmasq.php:272
+#: usr/local/www/services_dnsmasq.php:360
+#: usr/local/www/services_captiveportal_mac.php:176
+#: usr/local/www/vpn_ipsec_phase1.php:608 usr/local/www/interfaces_gre.php:114
+#: usr/local/www/firewall_nat_out_edit.php:651
+#: usr/local/www/vpn_openvpn_server.php:850
+#: usr/local/www/vpn_openvpn_server.php:1686
+#: usr/local/www/vpn_ipsec_phase2.php:646 usr/local/www/services_dyndns.php:93
+#: usr/local/www/interfaces_gif.php:113
+#: usr/local/www/interfaces_qinq_edit.php:341
+#: usr/local/www/interfaces.php:1349 etc/inc/shaper.inc:1183
+#: etc/inc/shaper.inc:3226 etc/inc/shaper.inc:3669
+#: usr/local/www/services_rfc2136.php:81 usr/local/www/status_services.php:80
+#: usr/local/www/system_gateways_edit.php:625
+#: usr/local/www/services_captiveportal_ip_edit.php:200
+#: usr/local/www/vpn_pppoe.php:106
+#: usr/local/www/interfaces_wireless_edit.php:187
+#: usr/local/www/load_balancer_relay_protocol_edit.php:79
+#: usr/local/www/load_balancer_relay_protocol_edit.php:216
+#: usr/local/www/system_groupmanager.php:275
+#: usr/local/www/system_groupmanager.php:347
+#: usr/local/www/system_groupmanager.php:406
+#: usr/local/www/services_captiveportal_zones_edit.php:105
+#: usr/local/www/interfaces_gre_edit.php:219
+#: usr/local/www/vpn_openvpn_client.php:615
+#: usr/local/www/vpn_openvpn_client.php:940
+#: usr/local/www/firewall_schedule.php:98
+#: usr/local/www/system_usermanager_addprivs.php:197
+#: usr/local/www/services_dhcpv6_edit.php:233
+#: usr/local/www/services_dyndns_edit.php:370
+#: usr/local/www/services_wol.php:163
+#: usr/local/www/firewall_rules_edit.php:1116
+#: usr/local/www/load_balancer_virtual_server_edit.php:161
+#: usr/local/www/services_captiveportal_ip.php:116
+#: usr/local/www/interfaces_qinq.php:123
+#: usr/local/www/interfaces_vlan_edit.php:183
+#: usr/local/www/interfaces_ppps_edit.php:474
+#: usr/local/www/firewall_virtual_ip.php:205
+#: usr/local/www/vpn_openvpn_csc.php:341 usr/local/www/vpn_openvpn_csc.php:673
+#: usr/local/www/interfaces_lagg_edit.php:222
+#: usr/local/www/firewall_schedule_edit.php:792
+#: usr/local/www/firewall_schedule_edit.php:997
+#: usr/local/www/firewall_nat_edit.php:782
+#: usr/local/www/interfaces_lagg.php:119 usr/local/www/interfaces_vlan.php:117
+#: usr/local/www/services_captiveportal_hostname_edit.php:183
+#: usr/local/www/interfaces_gif_edit.php:220
+#: usr/local/www/firewall_aliases.php:190
+#: usr/local/www/services_dhcp_edit.php:381
+#: usr/local/www/services_wol_edit.php:148
+#: usr/local/www/firewall_virtual_ip_edit.php:483
+#: usr/local/www/load_balancer_relay_protocol.php:135
+#: usr/local/www/diag_ipsec.php:109 usr/local/www/pkg_mgr_installed.php:116
+#: usr/local/www/interfaces_bridge.php:116
+#: usr/local/www/firewall_aliases_import.php:140
+#: usr/local/www/interfaces_wireless.php:111
+#: usr/local/www/system_routes.php:133
+#: usr/local/www/load_balancer_relay_action.php:141
+#: usr/local/www/vpn_pppoe_edit.php:448 usr/local/www/services_dhcp.php:812
+#: usr/local/www/services_dhcp.php:1174 usr/local/www/firewall_nat.php:208
+#: usr/local/www/status_lb_pool.php:134 usr/local/www/interfaces_groups.php:97
+#: usr/local/www/load_balancer_relay_action_edit.php:117
+#: usr/local/www/load_balancer_relay_action_edit.php:414
+#: usr/local/www/pkg_mgr.php:135 usr/local/www/system_routes_edit.php:331
+#: usr/local/www/services_captiveportal_mac_edit.php:193
+#: usr/local/www/load_balancer_pool.php:135
+#: usr/local/www/services_captiveportal_hostname.php:121
+#: usr/local/www/services_dhcpv6.php:853
+#: usr/local/www/firewall_nat_out.php:367
+#: usr/local/www/interfaces_ppps.php:111 usr/local/www/firewall_rules.php:369
+#: usr/local/www/firewall_nat_npt.php:107
+#: usr/local/www/firewall_nat_1to1.php:108
+#: usr/local/www/firewall_nat_npt_edit.php:265
+#: usr/local/www/interfaces_groups_edit.php:260
+#: usr/local/www/load_balancer_monitor_edit.php:88
+#: usr/local/www/load_balancer_monitor_edit.php:239
+#: usr/local/www/system_gateway_groups_edit.php:336
+#: usr/local/www/services_captiveportal_zones.php:56
+#: usr/local/www/system_groupmanager_addprivs.php:216
+#: usr/local/www/firewall_aliases_edit.php:482
+#: usr/local/www/firewall_aliases_edit.php:630
+#: usr/local/www/firewall_aliases_edit.php:665
+#: usr/local/www/interfaces_bridge_edit.php:284
+#: usr/local/www/services_igmpproxy_edit.php:177
+#: usr/local/www/services_igmpproxy.php:98
+#: usr/local/www/firewall_nat_1to1_edit.php:445
+#: usr/local/www/status_gateway_groups.php:77
+#: usr/local/www/services_dnsmasq_edit.php:219
+#: usr/local/www/services_dnsmasq_edit.php:240
+#: usr/local/www/load_balancer_monitor.php:123
+#: usr/local/www/services_rfc2136_edit.php:192
+#: usr/local/www/services_dnsmasq.php:285
+#: usr/local/www/services_dnsmasq.php:373
+#: usr/local/www/services_captiveportal_mac.php:176
+#: usr/local/www/vpn_ipsec_phase1.php:608 usr/local/www/interfaces_gre.php:114
+#: usr/local/www/system_usermanager.php:576
+#: usr/local/www/system_gateways.php:156
+#: usr/local/www/load_balancer_virtual_server.php:133
+#: usr/local/www/load_balancer_pool_edit.php:202
+#: usr/local/www/status_lb_vs.php:81
+#: usr/local/www/firewall_nat_out_edit.php:663
+#: usr/local/www/vpn_openvpn_server.php:850
+#: usr/local/www/vpn_openvpn_server.php:1686
+#: usr/local/www/vpn_ipsec_phase2.php:646 usr/local/www/status_gateways.php:79
+#: usr/local/www/services_dyndns.php:89
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:151
+#: usr/local/www/interfaces_gif.php:113
+#: usr/local/www/interfaces_qinq_edit.php:341
+#: usr/local/www/system_gateway_groups.php:133
+#: usr/local/www/status_upnp.php:89
+#: usr/local/www/system_advanced_sysctl.php:172
+#: usr/local/www/system_advanced_sysctl.php:243
+#: usr/local/www/interfaces.php:1391 etc/inc/shaper.inc:1187
+#: etc/inc/shaper.inc:3233 etc/inc/shaper.inc:3481 etc/inc/shaper.inc:3676
msgid "Description"
msgstr ""
-#: etc/inc/shaper.inc:1207 etc/inc/shaper.inc:1209 etc/inc/shaper.inc:1209
+#: etc/inc/shaper.inc:1207 etc/inc/shaper.inc:1209 etc/inc/shaper.inc:1210
+#: etc/inc/shaper.inc:1214
msgid "Bandwidth:"
msgstr ""
-#: etc/inc/shaper.inc:1212 etc/inc/shaper.inc:1214 etc/inc/shaper.inc:1214
+#: etc/inc/shaper.inc:1212 etc/inc/shaper.inc:1214 etc/inc/shaper.inc:1215
+#: etc/inc/shaper.inc:1218
msgid "Priority: on"
msgstr ""
-#: etc/inc/shaper.inc:1215 etc/inc/shaper.inc:1217 etc/inc/shaper.inc:1217
+#: etc/inc/shaper.inc:1215 etc/inc/shaper.inc:1217 etc/inc/shaper.inc:1218
+#: etc/inc/shaper.inc:1221
msgid "Default: on"
msgstr ""
#: etc/inc/shaper.inc:1222 etc/inc/shaper.inc:1223 etc/inc/shaper.inc:1224
-#: etc/inc/shaper.inc:1225 etc/inc/shaper.inc:1224 etc/inc/shaper.inc:1225
+#: etc/inc/shaper.inc:1225 etc/inc/shaper.inc:1226 etc/inc/shaper.inc:1228
+#: etc/inc/shaper.inc:1229
msgid "Delete queue from interface"
msgstr ""
#: etc/inc/shaper.inc:1559 etc/inc/shaper.inc:2207 etc/inc/shaper.inc:2483
#: etc/inc/shaper.inc:1561 etc/inc/shaper.inc:2209 etc/inc/shaper.inc:2485
-#: etc/inc/shaper.inc:1561 etc/inc/shaper.inc:2209 etc/inc/shaper.inc:2485
+#: etc/inc/shaper.inc:1562 etc/inc/shaper.inc:2210 etc/inc/shaper.inc:2486
+#: etc/inc/shaper.inc:1565 etc/inc/shaper.inc:2215 etc/inc/shaper.inc:2491
msgid "Bandwidth in percentage should be between 1 and 100 bounds."
msgstr ""
-#: etc/inc/shaper.inc:1576 etc/inc/shaper.inc:1578 etc/inc/shaper.inc:1578
+#: etc/inc/shaper.inc:1576 etc/inc/shaper.inc:1578 etc/inc/shaper.inc:1579
+#: etc/inc/shaper.inc:1582
msgid "upperlimit service curve defined but missing (d) value"
msgstr ""
-#: etc/inc/shaper.inc:1578 etc/inc/shaper.inc:1580 etc/inc/shaper.inc:1580
+#: etc/inc/shaper.inc:1578 etc/inc/shaper.inc:1580 etc/inc/shaper.inc:1581
+#: etc/inc/shaper.inc:1584
msgid ""
"upperlimit service curve defined but missing initial bandwidth (m1) value"
msgstr ""
-#: etc/inc/shaper.inc:1580 etc/inc/shaper.inc:1582 etc/inc/shaper.inc:1582
+#: etc/inc/shaper.inc:1580 etc/inc/shaper.inc:1582 etc/inc/shaper.inc:1583
+#: etc/inc/shaper.inc:1586
msgid "upperlimit m1 value needs to be Kb, Mb, Gb, or %"
msgstr ""
-#: etc/inc/shaper.inc:1582 etc/inc/shaper.inc:1584 etc/inc/shaper.inc:1584
+#: etc/inc/shaper.inc:1582 etc/inc/shaper.inc:1584 etc/inc/shaper.inc:1585
+#: etc/inc/shaper.inc:1588
msgid "upperlimit d value needs to be numeric"
msgstr ""
-#: etc/inc/shaper.inc:1584 etc/inc/shaper.inc:1586 etc/inc/shaper.inc:1586
+#: etc/inc/shaper.inc:1584 etc/inc/shaper.inc:1586 etc/inc/shaper.inc:1587
+#: etc/inc/shaper.inc:1590
msgid "upperlimit m2 value needs to be Kb, Mb, Gb, or %"
msgstr ""
-#: etc/inc/shaper.inc:1598 etc/inc/shaper.inc:1600 etc/inc/shaper.inc:1600
+#: etc/inc/shaper.inc:1598 etc/inc/shaper.inc:1600 etc/inc/shaper.inc:1601
+#: etc/inc/shaper.inc:1604
msgid "linkshare service curve defined but missing (d) value"
msgstr ""
-#: etc/inc/shaper.inc:1600 etc/inc/shaper.inc:1602 etc/inc/shaper.inc:1602
+#: etc/inc/shaper.inc:1600 etc/inc/shaper.inc:1602 etc/inc/shaper.inc:1603
+#: etc/inc/shaper.inc:1606
msgid ""
"linkshare service curve defined but missing initial bandwidth (m1) value"
msgstr ""
-#: etc/inc/shaper.inc:1602 etc/inc/shaper.inc:1604 etc/inc/shaper.inc:1604
+#: etc/inc/shaper.inc:1602 etc/inc/shaper.inc:1604 etc/inc/shaper.inc:1605
+#: etc/inc/shaper.inc:1608
msgid "linkshare m1 value needs to be Kb, Mb, Gb, or %"
msgstr ""
-#: etc/inc/shaper.inc:1604 etc/inc/shaper.inc:1606 etc/inc/shaper.inc:1606
+#: etc/inc/shaper.inc:1604 etc/inc/shaper.inc:1606 etc/inc/shaper.inc:1607
+#: etc/inc/shaper.inc:1610
msgid "linkshare d value needs to be numeric"
msgstr ""
-#: etc/inc/shaper.inc:1606 etc/inc/shaper.inc:1608 etc/inc/shaper.inc:1608
+#: etc/inc/shaper.inc:1606 etc/inc/shaper.inc:1608 etc/inc/shaper.inc:1609
+#: etc/inc/shaper.inc:1612
msgid "linkshare m2 value needs to be Kb, Mb, Gb, or %"
msgstr ""
-#: etc/inc/shaper.inc:1608 etc/inc/shaper.inc:1610 etc/inc/shaper.inc:1610
+#: etc/inc/shaper.inc:1608 etc/inc/shaper.inc:1610 etc/inc/shaper.inc:1611
+#: etc/inc/shaper.inc:1614
msgid "realtime service curve defined but missing (d) value"
msgstr ""
-#: etc/inc/shaper.inc:1610 etc/inc/shaper.inc:1612 etc/inc/shaper.inc:1612
+#: etc/inc/shaper.inc:1610 etc/inc/shaper.inc:1612 etc/inc/shaper.inc:1613
+#: etc/inc/shaper.inc:1616
msgid "realtime service curve defined but missing initial bandwidth (m1) value"
msgstr ""
-#: etc/inc/shaper.inc:1625 etc/inc/shaper.inc:1627 etc/inc/shaper.inc:1627
+#: etc/inc/shaper.inc:1625 etc/inc/shaper.inc:1627 etc/inc/shaper.inc:1628
+#: etc/inc/shaper.inc:1631
msgid "realtime m1 value needs to be Kb, Mb, Gb, or %"
msgstr ""
-#: etc/inc/shaper.inc:1627 etc/inc/shaper.inc:1629 etc/inc/shaper.inc:1629
+#: etc/inc/shaper.inc:1627 etc/inc/shaper.inc:1629 etc/inc/shaper.inc:1630
+#: etc/inc/shaper.inc:1633
msgid "realtime d value needs to be numeric"
msgstr ""
-#: etc/inc/shaper.inc:1629 etc/inc/shaper.inc:1631 etc/inc/shaper.inc:1631
+#: etc/inc/shaper.inc:1629 etc/inc/shaper.inc:1631 etc/inc/shaper.inc:1632
+#: etc/inc/shaper.inc:1635
msgid "realtime m2 value needs to be Kb, Mb, Gb, or %"
msgstr ""
#: etc/inc/shaper.inc:1858 etc/inc/shaper.inc:2336 etc/inc/shaper.inc:2602
#: etc/inc/shaper.inc:3039 etc/inc/shaper.inc:1860 etc/inc/shaper.inc:2338
-#: etc/inc/shaper.inc:2604 etc/inc/shaper.inc:3047 etc/inc/shaper.inc:1860
-#: etc/inc/shaper.inc:2338 etc/inc/shaper.inc:2604
+#: etc/inc/shaper.inc:2604 etc/inc/shaper.inc:3047 etc/inc/shaper.inc:1861
+#: etc/inc/shaper.inc:2339 etc/inc/shaper.inc:2605 etc/inc/shaper.inc:1866
+#: etc/inc/shaper.inc:2344 etc/inc/shaper.inc:2610
msgid "Gbit/s"
msgstr ""
#: etc/inc/shaper.inc:1862 etc/inc/shaper.inc:2340 etc/inc/shaper.inc:2606
#: etc/inc/shaper.inc:3035 etc/inc/shaper.inc:1864 etc/inc/shaper.inc:2342
-#: etc/inc/shaper.inc:2608 etc/inc/shaper.inc:3043 etc/inc/shaper.inc:1864
-#: etc/inc/shaper.inc:2342 etc/inc/shaper.inc:2608
+#: etc/inc/shaper.inc:2608 etc/inc/shaper.inc:3043 etc/inc/shaper.inc:1865
+#: etc/inc/shaper.inc:2343 etc/inc/shaper.inc:2609 etc/inc/shaper.inc:1870
+#: etc/inc/shaper.inc:2348 etc/inc/shaper.inc:2614
msgid "Mbit/s"
msgstr ""
@@ -2066,55 +2485,68 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:564 etc/inc/shaper.inc:1868
#: etc/inc/shaper.inc:2346 etc/inc/shaper.inc:2612 etc/inc/shaper.inc:3039
#: usr/local/www/services_captiveportal.php:565
-#: usr/local/www/services_captiveportal.php:569 etc/inc/shaper.inc:1868
-#: etc/inc/shaper.inc:2346 etc/inc/shaper.inc:2612
+#: usr/local/www/services_captiveportal.php:569
#: usr/local/www/services_captiveportal.php:563
-#: usr/local/www/services_captiveportal.php:567
+#: usr/local/www/services_captiveportal.php:567 etc/inc/shaper.inc:1869
+#: etc/inc/shaper.inc:2347 etc/inc/shaper.inc:2613
+#: usr/local/www/services_captiveportal.php:581
+#: usr/local/www/services_captiveportal.php:585 etc/inc/shaper.inc:1874
+#: etc/inc/shaper.inc:2352 etc/inc/shaper.inc:2618
msgid "Kbit/s"
msgstr ""
#: etc/inc/shaper.inc:1870 etc/inc/shaper.inc:2348 etc/inc/shaper.inc:2614
#: etc/inc/shaper.inc:3043 etc/inc/shaper.inc:1872 etc/inc/shaper.inc:2350
-#: etc/inc/shaper.inc:2616 etc/inc/shaper.inc:3051 etc/inc/shaper.inc:1872
-#: etc/inc/shaper.inc:2350 etc/inc/shaper.inc:2616
+#: etc/inc/shaper.inc:2616 etc/inc/shaper.inc:3051 etc/inc/shaper.inc:1873
+#: etc/inc/shaper.inc:2351 etc/inc/shaper.inc:2617 etc/inc/shaper.inc:1878
+#: etc/inc/shaper.inc:2356 etc/inc/shaper.inc:2622
msgid "Bit/s"
msgstr ""
#: etc/inc/shaper.inc:1876 etc/inc/shaper.inc:2354 etc/inc/shaper.inc:2620
#: etc/inc/shaper.inc:1878 etc/inc/shaper.inc:2356 etc/inc/shaper.inc:2622
-#: etc/inc/shaper.inc:1878 etc/inc/shaper.inc:2356 etc/inc/shaper.inc:2622
+#: etc/inc/shaper.inc:1879 etc/inc/shaper.inc:2357 etc/inc/shaper.inc:2623
+#: etc/inc/shaper.inc:1884 etc/inc/shaper.inc:2362 etc/inc/shaper.inc:2628
msgid "Choose the amount of bandwidth for this queue"
msgstr ""
-#: etc/inc/shaper.inc:1879 etc/inc/shaper.inc:1881 etc/inc/shaper.inc:1881
+#: etc/inc/shaper.inc:1879 etc/inc/shaper.inc:1881 etc/inc/shaper.inc:1882
+#: etc/inc/shaper.inc:1887
msgid "Service Curve (sc)"
msgstr ""
-#: etc/inc/shaper.inc:1886 etc/inc/shaper.inc:1888 etc/inc/shaper.inc:1888
+#: etc/inc/shaper.inc:1886 etc/inc/shaper.inc:1888 etc/inc/shaper.inc:1889
+#: etc/inc/shaper.inc:1894
msgid "Upperlimit:"
msgstr ""
-#: etc/inc/shaper.inc:1901 etc/inc/shaper.inc:1903 etc/inc/shaper.inc:1903
+#: etc/inc/shaper.inc:1901 etc/inc/shaper.inc:1903 etc/inc/shaper.inc:1904
+#: etc/inc/shaper.inc:1909
msgid "The maximum allowed bandwidth for the queue."
msgstr ""
-#: etc/inc/shaper.inc:1905 etc/inc/shaper.inc:1907 etc/inc/shaper.inc:1907
+#: etc/inc/shaper.inc:1905 etc/inc/shaper.inc:1907 etc/inc/shaper.inc:1908
+#: etc/inc/shaper.inc:1913
msgid "Real time:"
msgstr ""
-#: etc/inc/shaper.inc:1920 etc/inc/shaper.inc:1922 etc/inc/shaper.inc:1922
+#: etc/inc/shaper.inc:1920 etc/inc/shaper.inc:1922 etc/inc/shaper.inc:1923
+#: etc/inc/shaper.inc:1928
msgid "The minimum required bandwidth for the queue."
msgstr ""
-#: etc/inc/shaper.inc:1924 etc/inc/shaper.inc:1926 etc/inc/shaper.inc:1926
+#: etc/inc/shaper.inc:1924 etc/inc/shaper.inc:1926 etc/inc/shaper.inc:1927
+#: etc/inc/shaper.inc:1932
msgid "Link share:"
msgstr ""
-#: etc/inc/shaper.inc:1939 etc/inc/shaper.inc:1941 etc/inc/shaper.inc:1941
+#: etc/inc/shaper.inc:1939 etc/inc/shaper.inc:1941 etc/inc/shaper.inc:1942
+#: etc/inc/shaper.inc:1947
msgid "The bandwidth share of a backlogged queue - this overrides priority."
msgstr ""
-#: etc/inc/shaper.inc:1941 etc/inc/shaper.inc:1943 etc/inc/shaper.inc:1943
+#: etc/inc/shaper.inc:1941 etc/inc/shaper.inc:1943 etc/inc/shaper.inc:1944
+#: etc/inc/shaper.inc:1949
msgid ""
"The format for service curve specifications is (m1, d, m2). m2 controls the "
"bandwidth assigned to the queue. m1 and d are optional and can be used to "
@@ -2122,40 +2554,49 @@ msgid ""
"queue gets the bandwidth given as m1, afterwards the value given in m2."
msgstr ""
-#: etc/inc/shaper.inc:2190 etc/inc/shaper.inc:2192 etc/inc/shaper.inc:2192
+#: etc/inc/shaper.inc:2190 etc/inc/shaper.inc:2192 etc/inc/shaper.inc:2193
+#: etc/inc/shaper.inc:2198
msgid "Priority must be an integer between 1 and 7."
msgstr ""
#: etc/inc/shaper.inc:2356 etc/inc/shaper.inc:2622 etc/inc/shaper.inc:2358
-#: etc/inc/shaper.inc:2624 etc/inc/shaper.inc:2358 etc/inc/shaper.inc:2624
+#: etc/inc/shaper.inc:2624 etc/inc/shaper.inc:2359 etc/inc/shaper.inc:2625
+#: etc/inc/shaper.inc:2364 etc/inc/shaper.inc:2630
msgid "Scheduler specific options"
msgstr ""
-#: etc/inc/shaper.inc:2360 etc/inc/shaper.inc:2362 etc/inc/shaper.inc:2362
+#: etc/inc/shaper.inc:2360 etc/inc/shaper.inc:2362 etc/inc/shaper.inc:2363
+#: etc/inc/shaper.inc:2368
msgid "Borrow from other queues when available"
msgstr ""
-#: etc/inc/shaper.inc:2465 etc/inc/shaper.inc:2467 etc/inc/shaper.inc:2467
+#: etc/inc/shaper.inc:2465 etc/inc/shaper.inc:2467 etc/inc/shaper.inc:2468
+#: etc/inc/shaper.inc:2473
msgid "Priority must be an integer between 1 and 255."
msgstr ""
-#: etc/inc/shaper.inc:2628 etc/inc/shaper.inc:2630 etc/inc/shaper.inc:2630
+#: etc/inc/shaper.inc:2628 etc/inc/shaper.inc:2630 etc/inc/shaper.inc:2631
+#: etc/inc/shaper.inc:2636
msgid "Number of buckets available."
msgstr ""
-#: etc/inc/shaper.inc:2633 etc/inc/shaper.inc:2635 etc/inc/shaper.inc:2635
+#: etc/inc/shaper.inc:2633 etc/inc/shaper.inc:2635 etc/inc/shaper.inc:2636
+#: etc/inc/shaper.inc:2641
msgid "Bandwidth limit for hosts to not saturate link."
msgstr ""
-#: etc/inc/shaper.inc:2797 etc/inc/shaper.inc:2799 etc/inc/shaper.inc:2799
+#: etc/inc/shaper.inc:2797 etc/inc/shaper.inc:2799 etc/inc/shaper.inc:2800
+#: etc/inc/shaper.inc:2805
msgid "Plr must be an integer between 1 and 100."
msgstr ""
-#: etc/inc/shaper.inc:2800 etc/inc/shaper.inc:2802 etc/inc/shaper.inc:2802
+#: etc/inc/shaper.inc:2800 etc/inc/shaper.inc:2802 etc/inc/shaper.inc:2803
+#: etc/inc/shaper.inc:2808
msgid "Buckets must be an integer between 16 and 65535."
msgstr ""
#: etc/inc/shaper.inc:2902 etc/inc/shaper.inc:2906 etc/inc/shaper.inc:2921
+#: etc/inc/shaper.inc:2922 etc/inc/shaper.inc:2927
msgid "Delay must be an integer."
msgstr ""
@@ -2168,36 +2609,54 @@ msgstr ""
#: usr/local/www/services_unbound.php:150 usr/local/www/interfaces.php:1338
#: usr/local/www/services_snmp.php:274 usr/local/www/services_snmp.php:334
#: usr/local/www/vpn_ipsec_phase1.php:826 etc/inc/shaper.inc:3143
-#: usr/local/www/services_dnsmasq.php:155
-#: usr/local/www/services_unbound.php:150
+#: usr/local/www/services_dnsmasq.php:155 usr/local/www/diag_routes.php:61
+#: usr/local/www/system_firmware.php:138 usr/local/www/interfaces.php:1326
+#: usr/local/www/services_snmp.php:275 usr/local/www/services_snmp.php:335
+#: usr/local/www/vpn_ipsec_phase1.php:823
+#: usr/local/www/system_firmware.php:133
+#: usr/local/www/services_dnsmasq.php:159
+#: usr/local/www/vpn_ipsec_phase1.php:844 usr/local/www/services_snmp.php:285
+#: usr/local/www/services_snmp.php:345 usr/local/www/interfaces.php:1339
+#: etc/inc/shaper.inc:3144 usr/local/www/system_firmware.php:133
+#: usr/local/www/diag_routes.php:61
#: usr/local/www/services_rfc2136_edit.php:128
-#: usr/local/www/diag_routes.php:61 usr/local/www/system_firmware.php:138
-#: usr/local/www/interfaces.php:1326 usr/local/www/services_snmp.php:275
-#: usr/local/www/services_snmp.php:335 usr/local/www/vpn_ipsec_phase1.php:823
+#: usr/local/www/services_dnsmasq.php:161
+#: usr/local/www/vpn_ipsec_phase1.php:844 usr/local/www/services_snmp.php:285
+#: usr/local/www/services_snmp.php:345 usr/local/www/interfaces.php:1381
+#: etc/inc/shaper.inc:3151
msgid "Enable"
msgstr ""
#: etc/inc/shaper.inc:3014 etc/inc/shaper.inc:3018 etc/inc/shaper.inc:3148
+#: etc/inc/shaper.inc:3149 etc/inc/shaper.inc:3156
msgid "Enable limiter and its children"
msgstr ""
#: etc/inc/shaper.inc:3046 etc/inc/shaper.inc:3283 etc/inc/shaper.inc:3054
#: etc/inc/shaper.inc:3295 etc/inc/shaper.inc:3202 etc/inc/shaper.inc:3450
+#: etc/inc/shaper.inc:3203 etc/inc/shaper.inc:3451 etc/inc/shaper.inc:3210
+#: etc/inc/shaper.inc:3458
msgid "Mask"
msgstr ""
#: etc/inc/shaper.inc:3056 etc/inc/shaper.inc:3293 etc/inc/shaper.inc:3064
#: etc/inc/shaper.inc:3305 etc/inc/shaper.inc:3212 etc/inc/shaper.inc:3460
+#: etc/inc/shaper.inc:3213 etc/inc/shaper.inc:3461 etc/inc/shaper.inc:3220
+#: etc/inc/shaper.inc:3468
msgid "Source addresses"
msgstr ""
#: etc/inc/shaper.inc:3060 etc/inc/shaper.inc:3297 etc/inc/shaper.inc:3068
#: etc/inc/shaper.inc:3309 etc/inc/shaper.inc:3216 etc/inc/shaper.inc:3464
+#: etc/inc/shaper.inc:3217 etc/inc/shaper.inc:3465 etc/inc/shaper.inc:3224
+#: etc/inc/shaper.inc:3472
msgid "Destination addresses"
msgstr ""
#: etc/inc/shaper.inc:3063 etc/inc/shaper.inc:3300 etc/inc/shaper.inc:3071
#: etc/inc/shaper.inc:3312 etc/inc/shaper.inc:3219 etc/inc/shaper.inc:3467
+#: etc/inc/shaper.inc:3220 etc/inc/shaper.inc:3468 etc/inc/shaper.inc:3227
+#: etc/inc/shaper.inc:3475
msgid ""
"If 'source' or 'destination' is chosen, \n"
"a dynamic pipe with the bandwidth, delay, packet loss and queue size given "
@@ -2253,20 +2712,48 @@ msgstr ""
#: usr/local/www/services_dhcpv6_edit.php:233
#: usr/local/www/firewall_nat_npt_edit.php:268
#: usr/local/www/interfaces_qinq_edit.php:343
-#: usr/local/www/firewall_nat_out_edit.php:652
#: usr/local/www/interfaces_gif_edit.php:212
-#: usr/local/www/services_wol_edit.php:151
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:154
#: usr/local/www/firewall_schedule_edit.php:795
#: usr/local/www/firewall_schedule_edit.php:969
-#: usr/local/www/services_igmpproxy_edit.php:182
#: usr/local/www/firewall_aliases_edit.php:604
#: usr/local/www/interfaces_groups_edit.php:265
#: usr/local/www/firewall_nat_edit.php:778
-#: usr/local/www/interfaces_wireless_edit.php:188
#: usr/local/www/services_dhcp_edit.php:256
#: usr/local/www/firewall_virtual_ip_edit.php:474
+#: usr/local/www/interfaces_wireless_edit.php:190
+#: usr/local/www/services_dhcpv6_edit.php:236
+#: usr/local/www/interfaces_vlan_edit.php:186
+#: usr/local/www/firewall_nat_edit.php:773
+#: usr/local/www/interfaces_gif_edit.php:223
+#: usr/local/www/services_dhcp_edit.php:384
+#: usr/local/www/firewall_virtual_ip_edit.php:466
+#: usr/local/www/firewall_nat_out_edit.php:654
+#: usr/local/www/interfaces_qinq_edit.php:346 etc/inc/shaper.inc:3232
+#: etc/inc/shaper.inc:3480 etc/inc/shaper.inc:3675
+#: usr/local/www/interfaces_wireless_edit.php:190
#: usr/local/www/interfaces_gre_edit.php:222
+#: usr/local/www/services_dhcpv6_edit.php:236
+#: usr/local/www/interfaces_vlan_edit.php:186
+#: usr/local/www/firewall_schedule_edit.php:795
+#: usr/local/www/firewall_schedule_edit.php:969
+#: usr/local/www/firewall_nat_edit.php:785
+#: usr/local/www/interfaces_gif_edit.php:223
+#: usr/local/www/services_dhcp_edit.php:384
+#: usr/local/www/services_wol_edit.php:151
+#: usr/local/www/firewall_virtual_ip_edit.php:486
+#: usr/local/www/system_routes_edit.php:334
+#: usr/local/www/firewall_nat_npt_edit.php:268
+#: usr/local/www/interfaces_groups_edit.php:265
+#: usr/local/www/system_gateway_groups_edit.php:339
+#: usr/local/www/firewall_aliases_edit.php:635
+#: usr/local/www/services_igmpproxy_edit.php:182
+#: usr/local/www/firewall_nat_1to1_edit.php:448
+#: usr/local/www/services_dnsmasq_edit.php:222
+#: usr/local/www/firewall_nat_out_edit.php:666
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:154
+#: usr/local/www/interfaces_qinq_edit.php:346 etc/inc/shaper.inc:3239
+#: etc/inc/shaper.inc:3487 etc/inc/shaper.inc:3682
msgid "You may enter a description here for your reference (not parsed)."
msgstr ""
@@ -2277,27 +2764,38 @@ msgstr ""
#: etc/inc/shaper.inc:3237 etc/inc/shaper.inc:3485
#: usr/local/www/interfaces_ppps_edit.php:739
#: usr/local/www/interfaces_bridge_edit.php:291
+#: usr/local/www/interfaces_ppps_edit.php:745
+#: usr/local/www/interfaces_bridge_edit.php:292 etc/inc/shaper.inc:3238
+#: etc/inc/shaper.inc:3486 usr/local/www/interfaces_ppps_edit.php:745
+#: usr/local/www/interfaces_bridge_edit.php:292 etc/inc/shaper.inc:3245
+#: etc/inc/shaper.inc:3493
msgid "Show advanced options"
msgstr ""
#: etc/inc/shaper.inc:3085 etc/inc/shaper.inc:3093
#: usr/local/www/status_ntpd.php:115 etc/inc/shaper.inc:3241
-#: usr/local/www/status_ntpd.php:131
+#: usr/local/www/status_ntpd.php:131 etc/inc/shaper.inc:3242
+#: usr/local/www/status_ntpd.php:137 etc/inc/shaper.inc:3249
msgid "Delay"
msgstr ""
#: etc/inc/shaper.inc:3089 etc/inc/shaper.inc:3097 etc/inc/shaper.inc:3245
+#: etc/inc/shaper.inc:3246 etc/inc/shaper.inc:3253
msgid ""
"Hint: in most cases, you should specify 0 here (or leave the field empty)"
msgstr ""
#: etc/inc/shaper.inc:3093 etc/inc/shaper.inc:3329 etc/inc/shaper.inc:3101
#: etc/inc/shaper.inc:3341 etc/inc/shaper.inc:3249 etc/inc/shaper.inc:3496
+#: etc/inc/shaper.inc:3250 etc/inc/shaper.inc:3497 etc/inc/shaper.inc:3257
+#: etc/inc/shaper.inc:3504
msgid "Packet loss rate"
msgstr ""
#: etc/inc/shaper.inc:3097 etc/inc/shaper.inc:3333 etc/inc/shaper.inc:3105
#: etc/inc/shaper.inc:3345 etc/inc/shaper.inc:3253 etc/inc/shaper.inc:3500
+#: etc/inc/shaper.inc:3254 etc/inc/shaper.inc:3501 etc/inc/shaper.inc:3261
+#: etc/inc/shaper.inc:3508
msgid ""
"Hint: in most cases, you should specify 0 here (or leave the field empty). A "
"value of 0.001 means one packet in 1000 gets dropped"
@@ -2305,11 +2803,15 @@ msgstr ""
#: etc/inc/shaper.inc:3102 etc/inc/shaper.inc:3338 etc/inc/shaper.inc:3110
#: etc/inc/shaper.inc:3350 etc/inc/shaper.inc:3258 etc/inc/shaper.inc:3505
+#: etc/inc/shaper.inc:3259 etc/inc/shaper.inc:3506 etc/inc/shaper.inc:3266
+#: etc/inc/shaper.inc:3513
msgid "Queue Size"
msgstr ""
#: etc/inc/shaper.inc:3107 etc/inc/shaper.inc:3343 etc/inc/shaper.inc:3115
#: etc/inc/shaper.inc:3355 etc/inc/shaper.inc:3263 etc/inc/shaper.inc:3510
+#: etc/inc/shaper.inc:3264 etc/inc/shaper.inc:3511 etc/inc/shaper.inc:3271
+#: etc/inc/shaper.inc:3518
msgid ""
"Hint: in most cases, you should leave the field empty. All packets in this "
"pipe are placed into a fixed-size queue first, then they are delayed by "
@@ -2319,21 +2821,27 @@ msgstr ""
#: etc/inc/shaper.inc:3113 etc/inc/shaper.inc:3349 etc/inc/shaper.inc:3121
#: etc/inc/shaper.inc:3361 etc/inc/shaper.inc:3269 etc/inc/shaper.inc:3516
+#: etc/inc/shaper.inc:3270 etc/inc/shaper.inc:3517 etc/inc/shaper.inc:3277
+#: etc/inc/shaper.inc:3524
msgid "Bucket Size"
msgstr ""
#: etc/inc/shaper.inc:3118 etc/inc/shaper.inc:3354 etc/inc/shaper.inc:3126
#: etc/inc/shaper.inc:3366 etc/inc/shaper.inc:3274 etc/inc/shaper.inc:3521
+#: etc/inc/shaper.inc:3275 etc/inc/shaper.inc:3522 etc/inc/shaper.inc:3282
+#: etc/inc/shaper.inc:3529
msgid ""
"Hint: in most cases, you should leave the field empty. It increases the hash "
"size set."
msgstr ""
#: etc/inc/shaper.inc:3176 etc/inc/shaper.inc:3184 etc/inc/shaper.inc:3339
+#: etc/inc/shaper.inc:3340 etc/inc/shaper.inc:3347
msgid "Weight must be an integer between 1 and 100."
msgstr ""
#: etc/inc/shaper.inc:3274 etc/inc/shaper.inc:3282 etc/inc/shaper.inc:3437
+#: etc/inc/shaper.inc:3438 etc/inc/shaper.inc:3445
msgid "Enable/Disable queue"
msgstr ""
@@ -2349,74 +2857,97 @@ msgstr ""
#: usr/local/www/firewall_rules.php:757
#: usr/local/www/load_balancer_virtual_server_edit.php:223
#: usr/local/www/vpn_openvpn_client.php:524 etc/inc/shaper.inc:3456
-#: usr/local/www/diag_system_pftop.php:107
#: usr/local/www/vpn_ipsec_mobile.php:403
-#: usr/local/www/firewall_rules_edit.php:1259
-#: usr/local/www/firewall_rules_edit.php:1266
#: usr/local/www/interfaces_lagg_edit.php:202
#: usr/local/www/firewall_rules.php:750
#: usr/local/www/load_balancer_virtual_server_edit.php:221
#: usr/local/www/vpn_openvpn_client.php:542
+#: usr/local/www/vpn_openvpn_client.php:561
+#: usr/local/www/firewall_rules_edit.php:1274
+#: usr/local/www/firewall_rules_edit.php:1281
+#: usr/local/www/interfaces_lagg_edit.php:215 etc/inc/shaper.inc:3457
+#: usr/local/www/vpn_openvpn_client.php:561
+#: usr/local/www/firewall_rules_edit.php:1283
+#: usr/local/www/firewall_rules_edit.php:1289
+#: usr/local/www/load_balancer_virtual_server_edit.php:221
+#: usr/local/www/interfaces_lagg_edit.php:215
+#: usr/local/www/firewall_rules.php:749 usr/local/www/vpn_ipsec_mobile.php:403
+#: etc/inc/shaper.inc:3464
msgid "none"
msgstr ""
#: etc/inc/shaper.inc:3321 usr/local/www/system_gateways_edit.php:424
#: etc/inc/shaper.inc:3333 usr/local/www/system_gateways_edit.php:445
#: etc/inc/shaper.inc:3488 usr/local/www/system_gateways_edit.php:551
+#: usr/local/www/system_gateways_edit.php:555 etc/inc/shaper.inc:3489
+#: usr/local/www/system_gateways_edit.php:557 etc/inc/shaper.inc:3496
msgid "Weight"
msgstr ""
#: etc/inc/shaper.inc:3325 etc/inc/shaper.inc:3337 etc/inc/shaper.inc:3492
+#: etc/inc/shaper.inc:3493 etc/inc/shaper.inc:3500
msgid ""
"Hint: For queues under the same parent this specifies the share that a queue "
"gets(values range from 1 to 100, you can leave it blank otherwise)"
msgstr ""
#: etc/inc/shaper.inc:3353 etc/inc/shaper.inc:3365 etc/inc/shaper.inc:3520
+#: etc/inc/shaper.inc:3521 etc/inc/shaper.inc:3528
msgid "slots"
msgstr ""
#: etc/inc/shaper.inc:3494 etc/inc/shaper.inc:3506 etc/inc/shaper.inc:3661
+#: etc/inc/shaper.inc:3662 etc/inc/shaper.inc:3669
msgid "Enable/Disable layer7 Container"
msgstr ""
#: etc/inc/shaper.inc:3744 etc/inc/shaper.inc:3756 etc/inc/shaper.inc:3911
+#: etc/inc/shaper.inc:3912 etc/inc/shaper.inc:3919
#, php-format
msgid "Sending HUP signal to %s"
msgstr ""
#: etc/inc/shaper.inc:4052 etc/inc/shaper.inc:4112 etc/inc/shaper.inc:4269
+#: etc/inc/shaper.inc:4270 etc/inc/shaper.inc:4277
msgid " Clone shaper/queue on this interface"
msgstr ""
#: etc/inc/shaper.inc:4060 etc/inc/shaper.inc:4067 etc/inc/shaper.inc:4120
#: etc/inc/shaper.inc:4127 etc/inc/shaper.inc:4277 etc/inc/shaper.inc:4284
+#: etc/inc/shaper.inc:4278 etc/inc/shaper.inc:4285 etc/inc/shaper.inc:4285
+#: etc/inc/shaper.inc:4292
#, php-format
msgid "Welcome to the %s Traffic Shaper."
msgstr ""
#: etc/inc/shaper.inc:4061 etc/inc/shaper.inc:4068 etc/inc/shaper.inc:4121
#: etc/inc/shaper.inc:4128 etc/inc/shaper.inc:4278 etc/inc/shaper.inc:4285
+#: etc/inc/shaper.inc:4279 etc/inc/shaper.inc:4286 etc/inc/shaper.inc:4286
+#: etc/inc/shaper.inc:4293
msgid ""
"The tree on the left helps you navigate through the queues <br />buttons at "
"the bottom represent queue actions and are activated accordingly."
msgstr ""
-#: etc/inc/system.inc:430 etc/inc/system.inc:449 etc/inc/system.inc:449
+#: etc/inc/system.inc:430 etc/inc/system.inc:449 etc/inc/system.inc:457
+#: etc/inc/system.inc:457
#, php-format
msgid "Static Routes: Gateway IP could not be found for %s"
msgstr ""
#: etc/inc/system.inc:497 etc/inc/system.inc:529 etc/inc/system.inc:533
+#: etc/inc/system.inc:547 etc/inc/system.inc:547
msgid "Starting syslog..."
msgstr ""
#: etc/inc/system.inc:536 etc/inc/system.inc:568 etc/inc/system.inc:572
+#: etc/inc/system.inc:695 etc/inc/system.inc:695
#, php-format
msgid "Error: cannot open syslog.conf in system_syslogd_start().%s"
msgstr ""
#: etc/inc/system.inc:664 etc/inc/system.inc:712 etc/inc/system.inc:716
+#: etc/inc/system.inc:725 etc/inc/system.inc:725
msgid "Initializing PCMCIA..."
msgstr ""
@@ -2424,111 +2955,135 @@ msgstr ""
#: etc/inc/system.inc:1415 etc/inc/system.inc:724 etc/inc/system.inc:808
#: etc/inc/system.inc:1469 etc/inc/system.inc:1472 etc/inc/system.inc:728
#: etc/inc/system.inc:806 etc/inc/system.inc:1511 etc/inc/system.inc:1514
+#: etc/inc/system.inc:737 etc/inc/system.inc:817 etc/inc/system.inc:1460
+#: etc/inc/system.inc:1463 etc/inc/system.inc:737 etc/inc/system.inc:817
+#: etc/inc/system.inc:1460 etc/inc/system.inc:1463
msgid "failed!"
msgstr ""
#: etc/inc/system.inc:687 etc/inc/system.inc:735 etc/inc/system.inc:739
+#: etc/inc/system.inc:748 etc/inc/system.inc:748
msgid "Starting webConfigurator..."
msgstr ""
#: etc/inc/system.inc:719 etc/inc/system.inc:767 etc/inc/system.inc:771
+#: etc/inc/system.inc:775 etc/inc/system.inc:775
msgid "webConfigurator default"
msgstr ""
#: etc/inc/system.inc:729 etc/inc/system.inc:777 etc/inc/system.inc:781
+#: etc/inc/system.inc:785 etc/inc/system.inc:785
msgid "Importing HTTPS certificate"
msgstr ""
#: etc/inc/system.inc:1115 etc/inc/system.inc:1167 etc/inc/system.inc:1147
+#: etc/inc/system.inc:1096 etc/inc/system.inc:1096
#, php-format
msgid "Error: cannot open cert.pem in system_webgui_start().%s"
msgstr ""
#: etc/inc/system.inc:1126 etc/inc/system.inc:1178 etc/inc/system.inc:1158
+#: etc/inc/system.inc:1107 etc/inc/system.inc:1107
#, php-format
msgid "Error: cannot open ca.pem in system_webgui_start().%s"
msgstr ""
#: etc/inc/system.inc:1134 etc/inc/system.inc:1186 etc/inc/system.inc:1166
+#: etc/inc/system.inc:1115 etc/inc/system.inc:1115
msgid "ssl configuration"
msgstr ""
#: etc/inc/system.inc:1161 etc/inc/system.inc:1213 etc/inc/system.inc:1193
+#: etc/inc/system.inc:1142 etc/inc/system.inc:1142
#, php-format
msgid "Error: cannot open %s in system_generate_lighty_config().%s"
msgstr ""
#: etc/inc/system.inc:1181 etc/inc/system.inc:1233 etc/inc/system.inc:1213
+#: etc/inc/system.inc:1162 etc/inc/system.inc:1162
msgid "Setting timezone..."
msgstr ""
#: etc/inc/system.inc:1270 etc/inc/system.inc:1326 etc/inc/system.inc:1368
+#: etc/inc/system.inc:1310 etc/inc/system.inc:1310
msgid "Syncing system time before startup..."
msgstr ""
#: etc/inc/system.inc:1376 etc/inc/system.inc:1433 etc/inc/system.inc:1475
+#: etc/inc/system.inc:1424 etc/inc/system.inc:1424
#, php-format
msgid "Error: cannot open dmesg.boot in system_dmesg_save().%s"
msgstr ""
#: etc/inc/system.inc:1397 etc/inc/system.inc:1454 etc/inc/system.inc:1496
+#: etc/inc/system.inc:1445 etc/inc/system.inc:1445
msgid "Setting hard disk standby... "
msgstr ""
#: etc/inc/system.inc:1514 etc/inc/system.inc:1571 etc/inc/system.inc:1613
+#: etc/inc/system.inc:1562 etc/inc/system.inc:1562
msgid "Generic PC"
msgstr ""
#: etc/inc/system.inc:1517 etc/inc/system.inc:1574 etc/inc/system.inc:1616
+#: etc/inc/system.inc:1565 etc/inc/system.inc:1565
msgid "Generic PC (CD-ROM)"
msgstr ""
#: etc/inc/system.inc:1526 etc/inc/system.inc:1583 etc/inc/system.inc:1625
+#: etc/inc/system.inc:1574 etc/inc/system.inc:1574
msgid "PC Engines WRAP"
msgstr ""
#: etc/inc/system.inc:1529 etc/inc/system.inc:1586 etc/inc/system.inc:1628
+#: etc/inc/system.inc:1577 etc/inc/system.inc:1577
msgid "PC Engines ALIX"
msgstr ""
#: etc/inc/system.inc:1541 etc/inc/system.inc:1598 etc/inc/system.inc:1640
+#: etc/inc/system.inc:1589 etc/inc/system.inc:1589
msgid "embedded (unknown)"
msgstr ""
-#: etc/inc/util.inc:99 etc/inc/util.inc:99
+#: etc/inc/util.inc:99 etc/inc/util.inc:101 etc/inc/util.inc:101
#, php-format
msgid "WARNING: Could not mark subsystem: %s dirty"
msgstr ""
-#: etc/inc/util.inc:119 etc/inc/util.inc:119
+#: etc/inc/util.inc:119 etc/inc/util.inc:121 etc/inc/util.inc:121
msgid "WARNING: You must give a name as parameter to lock() function."
msgstr ""
#: etc/inc/util.inc:213 etc/inc/util.inc:208 etc/inc/util.inc:238
+#: etc/inc/util.inc:240 etc/inc/util.inc:240
#, php-format
msgid "Reference %s is going negative, not doing unreference."
msgstr ""
#: etc/inc/util.inc:980 etc/inc/util.inc:981 etc/inc/util.inc:1026
+#: etc/inc/util.inc:1076 etc/inc/util.inc:1076
#, php-format
msgid "The command '%1$s' returned exit code '%2$d', the output was '%3$s' "
msgstr ""
-#: etc/inc/vpn.inc:126 etc/inc/vpn.inc:134
+#: etc/inc/vpn.inc:126 etc/inc/vpn.inc:134 etc/inc/vpn.inc:134
msgid "Configuring IPsec VPN... "
msgstr ""
#: etc/inc/vpn.inc:229 etc/inc/vpn.inc:228 etc/inc/vpn.inc:238
+#: etc/inc/vpn.inc:237 etc/inc/vpn.inc:237
#, php-format
msgid "Error: Invalid certificate info for %s"
msgstr ""
#: etc/inc/vpn.inc:235 etc/inc/vpn.inc:234 etc/inc/vpn.inc:244
+#: etc/inc/vpn.inc:243 etc/inc/vpn.inc:243
#, php-format
msgid "Error: Invalid certificate hash info for %s"
msgstr ""
#: etc/inc/vpn.inc:240 etc/inc/vpn.inc:239 etc/inc/vpn.inc:249
+#: etc/inc/vpn.inc:248 etc/inc/vpn.inc:248
#, php-format
msgid "Error: Cannot write IPsec CA file for %s"
msgstr ""
@@ -2549,21 +3104,25 @@ msgid "Error: cannot open server %s in vpn.\n"
msgstr ""
#: etc/inc/vpn.inc:560 etc/inc/vpn.inc:559 etc/inc/vpn.inc:546
+#: etc/inc/vpn.inc:549 etc/inc/vpn.inc:549
#, php-format
msgid "Error: Invalid phase1 certificate reference for %s"
msgstr ""
#: etc/inc/vpn.inc:569 etc/inc/vpn.inc:568 etc/inc/vpn.inc:555
+#: etc/inc/vpn.inc:558 etc/inc/vpn.inc:558
#, php-format
msgid "Error: Cannot write phase1 certificate file for %s"
msgstr ""
#: etc/inc/vpn.inc:580 etc/inc/vpn.inc:579 etc/inc/vpn.inc:566
+#: etc/inc/vpn.inc:569 etc/inc/vpn.inc:569
#, php-format
msgid "Error: Cannot write phase1 key file for %s"
msgstr ""
#: etc/inc/vpn.inc:593 etc/inc/vpn.inc:592 etc/inc/vpn.inc:579
+#: etc/inc/vpn.inc:582 etc/inc/vpn.inc:582
#, php-format
msgid "Error: Cannot write phase1 CA certificate file for %s"
msgstr ""
@@ -2574,82 +3133,99 @@ msgid "Error: cannot open spd.conf in vpn_ipsec_configure()."
msgstr ""
#: etc/inc/vpn.inc:1008 etc/inc/vpn.inc:1014 etc/inc/vpn.inc:1013
+#: etc/inc/vpn.inc:1022 etc/inc/vpn.inc:1035
msgid "Forcefully reloading IPsec racoon daemon"
msgstr ""
#: etc/inc/vpn.inc:1052 etc/inc/vpn.inc:1058 etc/inc/vpn.inc:1056
+#: etc/inc/vpn.inc:1065 etc/inc/vpn.inc:1078
msgid "Configuring PPTP VPN service... "
msgstr ""
#: etc/inc/vpn.inc:1062 etc/inc/vpn.inc:1068 etc/inc/vpn.inc:1066
+#: etc/inc/vpn.inc:1075 etc/inc/vpn.inc:1088
msgid "Could not kill mpd within 3 seconds. Trying again."
msgstr ""
#: etc/inc/vpn.inc:1085 etc/inc/vpn.inc:1091 etc/inc/vpn.inc:1089
+#: etc/inc/vpn.inc:1098 etc/inc/vpn.inc:1111
#, php-format
msgid "Error: cannot open mpd.conf in vpn_pptpd_configure()."
msgstr ""
#: etc/inc/vpn.inc:1198 etc/inc/vpn.inc:1204 etc/inc/vpn.inc:1202
+#: etc/inc/vpn.inc:1212 etc/inc/vpn.inc:1225
#, php-format
msgid "Error: cannot open mpd.links in vpn_pptpd_configure()."
msgstr ""
#: etc/inc/vpn.inc:1222 etc/inc/vpn.inc:1228 etc/inc/vpn.inc:1226
+#: etc/inc/vpn.inc:1237 etc/inc/vpn.inc:1250
#, php-format
msgid "Error: cannot open mpd.secret in vpn_pptpd_configure()."
msgstr ""
#: etc/inc/vpn.inc:1279 etc/inc/vpn.inc:1285 etc/inc/vpn.inc:1283
+#: etc/inc/vpn.inc:1295 etc/inc/vpn.inc:1308
msgid "Configuring PPPoE VPN service... "
msgstr ""
#: etc/inc/vpn.inc:1303 etc/inc/vpn.inc:1309 etc/inc/vpn.inc:1307
+#: etc/inc/vpn.inc:1319 etc/inc/vpn.inc:1332
#, php-format
msgid "Error: cannot open mpd.conf in vpn_pppoe_configure()."
msgstr ""
#: etc/inc/vpn.inc:1406 etc/inc/vpn.inc:1412 etc/inc/vpn.inc:1410
+#: etc/inc/vpn.inc:1423 etc/inc/vpn.inc:1436
#, php-format
msgid "Error: cannot open mpd.links in vpn_pppoe_configure()."
msgstr ""
#: etc/inc/vpn.inc:1432 etc/inc/vpn.inc:1438 etc/inc/vpn.inc:1436
+#: etc/inc/vpn.inc:1450 etc/inc/vpn.inc:1463
#, php-format
msgid "Error: cannot open mpd.secret in vpn_pppoe_configure()."
msgstr ""
#: etc/inc/vpn.inc:1460 usr/local/www/system_firmware_check.php:139
#: etc/inc/vpn.inc:1470 etc/inc/vpn.inc:1468
-#: usr/local/www/system_firmware_check.php:139
+#: usr/local/www/system_firmware_check.php:141 etc/inc/vpn.inc:1483
+#: usr/local/www/system_firmware_check.php:133 etc/inc/vpn.inc:1496
msgid "done"
msgstr ""
#: etc/inc/vpn.inc:1479 etc/inc/vpn.inc:1489 etc/inc/vpn.inc:1487
+#: etc/inc/vpn.inc:1502 etc/inc/vpn.inc:1515
msgid "Configuring l2tp VPN service... "
msgstr ""
#: etc/inc/vpn.inc:1504 etc/inc/vpn.inc:1514 etc/inc/vpn.inc:1512
+#: etc/inc/vpn.inc:1527 etc/inc/vpn.inc:1540
#, php-format
msgid "Error: cannot open mpd.conf in vpn_l2tp_configure()."
msgstr ""
#: etc/inc/vpn.inc:1597 etc/inc/vpn.inc:1607 etc/inc/vpn.inc:1605
+#: etc/inc/vpn.inc:1621 etc/inc/vpn.inc:1634
#, php-format
msgid "Error: cannot open mpd.links in vpn_l2tp_configure()."
msgstr ""
#: etc/inc/vpn.inc:1622 etc/inc/vpn.inc:1632 etc/inc/vpn.inc:1630
+#: etc/inc/vpn.inc:1647 etc/inc/vpn.inc:1660
#, php-format
msgid "Error: cannot open mpd.secret in vpn_l2tp_configure()."
msgstr ""
#: etc/inc/vpn.inc:1769 etc/inc/vpn.inc:1779 etc/inc/vpn.inc:1764
+#: etc/inc/vpn.inc:1836 etc/inc/vpn.inc:1849
#, php-format
msgid "Could not determine VPN endpoint for '%s'"
msgstr ""
#: etc/inc/vpn.inc:1774 etc/inc/vpn.inc:1784 etc/inc/vpn.inc:1769
+#: etc/inc/vpn.inc:1841 etc/inc/vpn.inc:1854
#, php-format
msgid ""
"IPSEC: ERROR: One of the endpoints is not a IP address. Old EP '%1$s' new EP "
@@ -2657,6 +3233,7 @@ msgid ""
msgstr ""
#: etc/inc/vpn.inc:1777 etc/inc/vpn.inc:1787 etc/inc/vpn.inc:1772
+#: etc/inc/vpn.inc:1844 etc/inc/vpn.inc:1857
#, php-format
msgid ""
"IPSEC: ERROR: One of the remote endpoints is not a IP address. Old RG '%1$s' "
@@ -2664,6 +3241,7 @@ msgid ""
msgstr ""
#: etc/inc/vpn.inc:1833 etc/inc/vpn.inc:1843 etc/inc/vpn.inc:1835
+#: etc/inc/vpn.inc:1907 etc/inc/vpn.inc:1920
#, php-format
msgid ""
"Reloading IPsec tunnel '%1$s'. Previous IP '%2$s', current IP '%3$s'. "
@@ -2766,21 +3344,24 @@ msgstr ""
msgid "HTTP error, got response: %s"
msgstr ""
-#: etc/inc/xmlrpc_client.inc:1496 etc/inc/xmlrpc_client.inc:1496
+#: etc/inc/xmlrpc_client.inc:1496
msgid "XML error at line 1, check URL"
msgstr ""
-#: etc/inc/xmlrpc_client.inc:1591 etc/inc/xmlrpc_client.inc:1591
+#: etc/inc/xmlrpc_client.inc:1591 etc/inc/xmlrpc_client.inc:1593
+#: etc/inc/xmlrpc_client.inc:1593
msgid "Scalar can have only one value"
msgstr ""
-#: etc/inc/xmlrpc_client.inc:1598 etc/inc/xmlrpc_client.inc:1598
+#: etc/inc/xmlrpc_client.inc:1598 etc/inc/xmlrpc_client.inc:1600
+#: etc/inc/xmlrpc_client.inc:1600
#, php-format
msgid "Not a scalar type (%s)"
msgstr ""
#: etc/inc/xmlrpc_client.inc:1634 etc/inc/xmlrpc_client.inc:1650
-#: etc/inc/xmlrpc_client.inc:1634 etc/inc/xmlrpc_client.inc:1650
+#: etc/inc/xmlrpc_client.inc:1636 etc/inc/xmlrpc_client.inc:1652
+#: etc/inc/xmlrpc_client.inc:1636 etc/inc/xmlrpc_client.inc:1652
#, php-format
msgid "Already initialized as a [%s]"
msgstr ""
@@ -2808,63 +3389,72 @@ msgstr ""
msgid "No page assigned to this user! Click here to logout."
msgstr ""
-#: etc/inc/authgui.inc:97 etc/inc/authgui.inc:97
+#: etc/inc/authgui.inc:97 etc/inc/authgui.inc:103 etc/inc/authgui.inc:103
#, php-format
msgid "Error: %1$s Description: %2$s"
msgstr ""
-#: etc/inc/authgui.inc:160 etc/inc/authgui.inc:159 etc/inc/authgui.inc:159
+#: etc/inc/authgui.inc:160 etc/inc/authgui.inc:159 etc/inc/authgui.inc:165
+#: etc/inc/authgui.inc:165
msgid "unknown reason"
msgstr ""
-#: etc/inc/authgui.inc:161 etc/inc/authgui.inc:160 etc/inc/authgui.inc:160
+#: etc/inc/authgui.inc:161 etc/inc/authgui.inc:160 etc/inc/authgui.inc:166
+#: etc/inc/authgui.inc:166
#, php-format
msgid "Invalid login (%s)."
msgstr ""
-#: etc/inc/authgui.inc:166 etc/inc/authgui.inc:165 etc/inc/authgui.inc:165
+#: etc/inc/authgui.inc:166 etc/inc/authgui.inc:165 etc/inc/authgui.inc:171
+#: etc/inc/authgui.inc:171
#, php-format
msgid "This device is currently being maintained by: %s."
msgstr ""
#: etc/inc/authgui.inc:214 etc/inc/authgui.inc:277 etc/inc/authgui.inc:212
-#: etc/inc/authgui.inc:275 etc/inc/authgui.inc:212 etc/inc/authgui.inc:275
+#: etc/inc/authgui.inc:275 etc/inc/authgui.inc:235 etc/inc/authgui.inc:298
+#: etc/inc/authgui.inc:235 etc/inc/authgui.inc:298
msgid "Login"
msgstr ""
-#: etc/inc/authgui.inc:242 etc/inc/authgui.inc:240 etc/inc/authgui.inc:240
+#: etc/inc/authgui.inc:242 etc/inc/authgui.inc:240 etc/inc/authgui.inc:263
+#: etc/inc/authgui.inc:263
msgid ""
"You are accessing this router by an IP address not configured locally, which "
"may be forwarded by NAT or other means. <br/><br/>If you did not setup this "
"forwarding, you may be the target of a man-in-the-middle attack."
msgstr ""
-#: etc/inc/authgui.inc:251 etc/inc/authgui.inc:249 etc/inc/authgui.inc:249
+#: etc/inc/authgui.inc:251 etc/inc/authgui.inc:249 etc/inc/authgui.inc:272
+#: etc/inc/authgui.inc:272
msgid "Username:"
msgstr ""
#: etc/inc/authgui.inc:258 usr/local/www/diag_backup.php:597
#: usr/local/www/system_authservers.php:627 etc/inc/authgui.inc:256
-#: usr/local/www/diag_backup.php:676 etc/inc/authgui.inc:256
#: usr/local/www/diag_backup.php:676 usr/local/www/system_authservers.php:632
+#: usr/local/www/system_authservers.php:639 usr/local/www/diag_backup.php:681
+#: etc/inc/authgui.inc:279 usr/local/www/system_authservers.php:639
+#: usr/local/www/diag_backup.php:681 etc/inc/authgui.inc:279
msgid "Password:"
msgstr ""
-#: etc/inc/authgui.inc:265 etc/inc/authgui.inc:263 etc/inc/authgui.inc:263
+#: etc/inc/authgui.inc:265 etc/inc/authgui.inc:263 etc/inc/authgui.inc:286
+#: etc/inc/authgui.inc:286
msgid "Enter username and password to login."
msgstr ""
-#: etc/inc/authgui.inc:271 etc/inc/authgui.inc:269 etc/inc/authgui.inc:269
+#: etc/inc/authgui.inc:271 etc/inc/authgui.inc:269 etc/inc/authgui.inc:292
+#: etc/inc/authgui.inc:292
msgid "Your browser must support cookies to login."
msgstr ""
-#: etc/inc/cmd_chain.inc:101 etc/inc/cmd_chain.inc:101
+#: etc/inc/cmd_chain.inc:101
#, php-format
msgid "CmdCHAIN is executing -> %1$s - %2$s"
msgstr ""
#: etc/inc/cmd_chain.inc:109 etc/inc/cmd_chain.inc:111
-#: etc/inc/cmd_chain.inc:109 etc/inc/cmd_chain.inc:111
#, php-format
msgid "%1$s failed with return code -> %2$s. The command was %3$s"
msgstr ""
@@ -2888,7 +3478,8 @@ msgid "Press ENTER to continue."
msgstr ""
#: etc/inc/config.console.inc:83 etc/inc/config.console.inc:495
-#: etc/inc/config.console.inc:83 etc/inc/config.console.inc:497
+#: etc/inc/config.console.inc:497 etc/inc/config.console.inc:83
+#: etc/inc/config.console.inc:497
msgid "No interfaces found!"
msgstr ""
@@ -2901,8 +3492,10 @@ msgid "Enter the WAN interface name or 'a' for auto-detection:"
msgstr ""
#: etc/inc/config.console.inc:215 etc/inc/config.console.inc:276
-#: etc/inc/config.console.inc:518 etc/inc/config.console.inc:215
-#: etc/inc/config.console.inc:276 etc/inc/config.console.inc:520
+#: etc/inc/config.console.inc:518 etc/inc/config.console.inc:520
+#: etc/inc/config.console.inc:244 etc/inc/config.console.inc:215
+#: etc/inc/config.console.inc:244 etc/inc/config.console.inc:276
+#: etc/inc/config.console.inc:520
#, php-format
msgid "%sInvalid interface name '%s'%s"
msgstr ""
@@ -2914,7 +3507,7 @@ msgid ""
"enables full Firewalling/NAT mode.%s(or nothing if finished):%s"
msgstr ""
-#: etc/inc/config.console.inc:244 etc/inc/config.console.inc:244
+#: etc/inc/config.console.inc:244
#, php-format
msgid "%sInvalid interface name '%s'%s)"
msgstr ""
@@ -2938,51 +3531,62 @@ msgid "The interfaces will be assigned as follows:"
msgstr ""
#: etc/inc/config.console.inc:416 etc/inc/config.console.inc:418
+#: etc/inc/config.console.inc:418
#, php-format
msgid "%sWriting configuration..."
msgstr ""
#: etc/inc/config.console.inc:418 etc/inc/config.console.inc:420
+#: etc/inc/config.console.inc:420
#, php-format
msgid "done.%s"
msgstr ""
#: etc/inc/config.console.inc:425 etc/inc/config.console.inc:427
+#: etc/inc/config.console.inc:427
msgid "One moment while we reload the settings..."
msgstr ""
#: etc/inc/config.console.inc:429 etc/inc/config.console.inc:431
+#: etc/inc/config.console.inc:431
msgid " done!"
msgstr ""
#: etc/inc/config.console.inc:449 etc/inc/config.console.inc:451
+#: etc/inc/config.console.inc:451
#, php-format
msgid "Detected link-up on interface %s.%s"
msgstr ""
#: etc/inc/config.console.inc:454 etc/inc/config.console.inc:456
+#: etc/inc/config.console.inc:456
#, php-format
msgid "No link-up detected.%s"
msgstr ""
#: etc/inc/config.console.inc:493 etc/inc/config.console.inc:495
+#: etc/inc/config.console.inc:495
msgid "VLAN Capable interfaces:"
msgstr ""
#: etc/inc/config.console.inc:508 etc/inc/config.console.inc:510
+#: etc/inc/config.console.inc:510
msgid "No VLAN capable interfaces detected."
msgstr ""
#: etc/inc/config.console.inc:512 etc/inc/config.console.inc:514
+#: etc/inc/config.console.inc:514
msgid ""
"Enter the parent interface name for the new VLAN (or nothing if finished):"
msgstr ""
#: etc/inc/config.console.inc:525 etc/inc/config.console.inc:527
+#: etc/inc/config.console.inc:527
msgid "Enter the VLAN tag (1-4094):"
msgstr ""
#: etc/inc/config.console.inc:529 etc/inc/config.console.inc:531
+#: etc/inc/config.console.inc:531
#, php-format
msgid "%sInvalid VLAN tag '%s'%s"
msgstr ""
@@ -3003,8 +3607,9 @@ msgid ""
msgstr ""
#: etc/inc/config.lib.inc:138 etc/inc/config.lib.inc:149
-#: etc/inc/config.lib.inc:552 etc/inc/config.lib.inc:138
-#: etc/inc/config.lib.inc:149 etc/inc/config.lib.inc:560
+#: etc/inc/config.lib.inc:552 etc/inc/config.lib.inc:560
+#: etc/inc/config.lib.inc:577 etc/inc/config.lib.inc:138
+#: etc/inc/config.lib.inc:149 etc/inc/config.lib.inc:555
msgid "Could not restore config.xml."
msgstr ""
@@ -3038,168 +3643,206 @@ msgid ""
msgstr ""
#: etc/inc/config.lib.inc:317 etc/inc/config.lib.inc:320
+#: etc/inc/config.lib.inc:320
msgid "Disk is dirty. Running fsck -y"
msgstr ""
#: etc/inc/config.lib.inc:328 etc/inc/config.lib.inc:331
+#: etc/inc/config.lib.inc:331
msgid "File system is dirty. Launching FSCK for /"
msgstr ""
#: etc/inc/config.lib.inc:379 etc/inc/config.lib.inc:382
+#: etc/inc/config.lib.inc:382
#, php-format
msgid "Start Configuration upgrade at %s, set execution timeout to 15 minutes"
msgstr ""
#: etc/inc/config.lib.inc:389 etc/inc/config.lib.inc:390
#: etc/inc/config.lib.inc:392 etc/inc/config.lib.inc:393
+#: etc/inc/config.lib.inc:392 etc/inc/config.lib.inc:393
msgid "Updated bogon update frequency to 3am"
msgstr ""
#: etc/inc/config.lib.inc:420 etc/inc/config.lib.inc:423
+#: etc/inc/config.lib.inc:423
#, php-format
msgid "Ended Configuration upgrade at %s"
msgstr ""
#: etc/inc/config.lib.inc:423 etc/inc/config.lib.inc:426
+#: etc/inc/config.lib.inc:426
#, php-format
msgid "Upgraded config version level from %1$s to %2$s"
msgstr ""
#: etc/inc/config.lib.inc:512 etc/inc/config.lib.inc:520
+#: etc/inc/config.lib.inc:537 etc/inc/config.lib.inc:903
#, php-format
msgid "%s made unknown change"
msgstr ""
#: etc/inc/config.lib.inc:525 etc/inc/config.lib.inc:533
+#: etc/inc/config.lib.inc:550 etc/inc/config.lib.inc:528
msgid "WARNING: Config contents could not be save. Could not open file!"
msgstr ""
#: etc/inc/config.lib.inc:527 etc/inc/config.lib.inc:535
+#: etc/inc/config.lib.inc:552 etc/inc/config.lib.inc:530
#, php-format
msgid "Unable to open %s/config.xml for writing in write_config()%s"
msgstr ""
#: etc/inc/config.lib.inc:636 etc/inc/config.lib.inc:644
+#: etc/inc/config.lib.inc:661 etc/inc/config.lib.inc:639
msgid "Reverted to"
msgstr ""
#: etc/inc/config.lib.inc:651 etc/inc/config.lib.inc:659
+#: etc/inc/config.lib.inc:676 etc/inc/config.lib.inc:654
msgid "Installing configuration..."
msgstr ""
#: etc/inc/config.lib.inc:653 etc/inc/config.lib.inc:661
+#: etc/inc/config.lib.inc:678 etc/inc/config.lib.inc:656
msgid "Installing configuration ...."
msgstr ""
#: etc/inc/config.lib.inc:704 etc/inc/config.lib.inc:712
+#: etc/inc/config.lib.inc:729 etc/inc/config.lib.inc:707
msgid "XML error: unable to open file"
msgstr ""
#: etc/inc/config.lib.inc:710 etc/inc/config.lib.inc:718
+#: etc/inc/config.lib.inc:735 etc/inc/config.lib.inc:713
#, php-format
msgid "%1$s at line %2$d"
msgstr ""
#: etc/inc/config.lib.inc:756 etc/inc/config.lib.inc:758
#: etc/inc/config.lib.inc:764 etc/inc/config.lib.inc:766
+#: etc/inc/config.lib.inc:781 etc/inc/config.lib.inc:783
+#: etc/inc/config.lib.inc:759 etc/inc/config.lib.inc:761
#, php-format
msgid "The backup cache file %s is corrupted. Unlinking."
msgstr ""
-#: etc/inc/easyrule.inc:116 etc/inc/easyrule.inc:117
+#: etc/inc/easyrule.inc:116 etc/inc/easyrule.inc:117 etc/inc/easyrule.inc:117
msgid "Easy Rule: Blocked from Firewall Log View"
msgstr ""
#: etc/inc/easyrule.inc:165 etc/inc/easyrule.inc:173 etc/inc/easyrule.inc:181
-#: etc/inc/easyrule.inc:177 etc/inc/easyrule.inc:185
+#: etc/inc/easyrule.inc:177 etc/inc/easyrule.inc:185 etc/inc/easyrule.inc:178
+#: etc/inc/easyrule.inc:186
msgid "Entry added"
msgstr ""
#: etc/inc/easyrule.inc:170 etc/inc/easyrule.inc:178 etc/inc/easyrule.inc:182
+#: etc/inc/easyrule.inc:183
msgid "Hosts blocked from Firewall Log view"
msgstr ""
#: etc/inc/easyrule.inc:249 etc/inc/easyrule.inc:257 etc/inc/easyrule.inc:262
+#: etc/inc/easyrule.inc:263
msgid "Easy Rule: Passed from Firewall Log View"
msgstr ""
#: etc/inc/easyrule.inc:280 etc/inc/easyrule.inc:303 etc/inc/easyrule.inc:309
+#: etc/inc/easyrule.inc:313 etc/inc/easyrule.inc:318
msgid "Tried to block invalid IP:"
msgstr ""
#: etc/inc/easyrule.inc:284 etc/inc/easyrule.inc:307 etc/inc/easyrule.inc:313
+#: etc/inc/easyrule.inc:317 etc/inc/easyrule.inc:322
msgid "Invalid interface for block rule:"
msgstr ""
#: etc/inc/easyrule.inc:287 etc/inc/easyrule.inc:310 etc/inc/easyrule.inc:316
+#: etc/inc/easyrule.inc:320 etc/inc/easyrule.inc:325
msgid "Host added successfully"
msgstr ""
#: etc/inc/easyrule.inc:289 etc/inc/easyrule.inc:312 etc/inc/easyrule.inc:318
+#: etc/inc/easyrule.inc:322 etc/inc/easyrule.inc:327
msgid "Failed to create block rule, alias, or add host."
msgstr ""
#: etc/inc/easyrule.inc:292 etc/inc/easyrule.inc:315 etc/inc/easyrule.inc:321
+#: etc/inc/easyrule.inc:325 etc/inc/easyrule.inc:330
msgid "Tried to block but had no host IP or interface"
msgstr ""
#: etc/inc/easyrule.inc:294 etc/inc/easyrule.inc:317 etc/inc/easyrule.inc:323
+#: etc/inc/easyrule.inc:327 etc/inc/easyrule.inc:332
msgid "Unknown block error."
msgstr ""
#: etc/inc/easyrule.inc:303 etc/inc/easyrule.inc:326 etc/inc/easyrule.inc:334
+#: etc/inc/easyrule.inc:338 etc/inc/easyrule.inc:343
msgid "Invalid interface for pass rule:"
msgstr ""
#: etc/inc/easyrule.inc:306 etc/inc/easyrule.inc:329 etc/inc/easyrule.inc:337
+#: etc/inc/easyrule.inc:341 etc/inc/easyrule.inc:346
msgid "Invalid protocol for pass rule:"
msgstr ""
#: etc/inc/easyrule.inc:309 etc/inc/easyrule.inc:332 etc/inc/easyrule.inc:340
+#: etc/inc/easyrule.inc:344 etc/inc/easyrule.inc:349
msgid "Tried to pass invalid source IP:"
msgstr ""
#: etc/inc/easyrule.inc:312 etc/inc/easyrule.inc:335 etc/inc/easyrule.inc:343
+#: etc/inc/easyrule.inc:347 etc/inc/easyrule.inc:352
msgid "Tried to pass invalid destination IP:"
msgstr ""
#: etc/inc/easyrule.inc:316 etc/inc/easyrule.inc:339 etc/inc/easyrule.inc:347
+#: etc/inc/easyrule.inc:351 etc/inc/easyrule.inc:356
msgid "Missing destination port:"
msgstr ""
#: etc/inc/easyrule.inc:319 etc/inc/easyrule.inc:342 etc/inc/easyrule.inc:350
+#: etc/inc/easyrule.inc:354 etc/inc/easyrule.inc:359
msgid "Tried to pass invalid destination port:"
msgstr ""
#: etc/inc/easyrule.inc:326 etc/inc/easyrule.inc:349 etc/inc/easyrule.inc:357
+#: etc/inc/easyrule.inc:361 etc/inc/easyrule.inc:366
msgid "Successfully added pass rule!"
msgstr ""
#: etc/inc/easyrule.inc:328 etc/inc/easyrule.inc:351 etc/inc/easyrule.inc:359
+#: etc/inc/easyrule.inc:363 etc/inc/easyrule.inc:368
msgid "Failed to add pass rule."
msgstr ""
#: etc/inc/easyrule.inc:331 etc/inc/easyrule.inc:354 etc/inc/easyrule.inc:362
+#: etc/inc/easyrule.inc:366 etc/inc/easyrule.inc:371
msgid "Missing parameters for pass rule."
msgstr ""
#: etc/inc/easyrule.inc:333 etc/inc/easyrule.inc:356 etc/inc/easyrule.inc:364
+#: etc/inc/easyrule.inc:368 etc/inc/easyrule.inc:373
msgid "Unknown pass error."
msgstr ""
#: etc/inc/filter_log.inc:164 etc/inc/filter_log.inc:167
+#: etc/inc/filter_log.inc:191 etc/inc/filter_log.inc:201
#, php-format
msgid ""
"There was a error parsing rule: %s. Please report to mailing list or forum."
msgstr ""
#: etc/inc/filter_log.inc:208 etc/inc/filter_log.inc:210
-#: etc/inc/filter_log.inc:213
+#: etc/inc/filter_log.inc:213 etc/inc/filter_log.inc:237
+#: etc/inc/filter_log.inc:247
#, php-format
msgid "Service %1$s/%2$s: %3$s"
msgstr ""
#: etc/inc/gwlb.inc:230 etc/inc/gwlb.inc:237 etc/inc/gwlb.inc:242
+#: etc/inc/gwlb.inc:244
#, php-format
msgid ""
"Removing static route for monitor %1$s and adding a new route through %2$s"
@@ -3225,6 +3868,7 @@ msgid "Gateways status could not be determined, considering all as up/active."
msgstr ""
#: etc/inc/gwlb.inc:580 etc/inc/gwlb.inc:809 etc/inc/gwlb.inc:835
+#: etc/inc/gwlb.inc:844 etc/inc/gwlb.inc:823
#, php-format
msgid "Updating gateway group gateway for %1$s - new gateway is %2$s"
msgstr ""
@@ -3263,14 +3907,11 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:700
#: usr/local/www/status_dhcp_leases.php:339
#: usr/local/www/services_dhcp.php:929 usr/local/www/vpn_ipsec_phase2.php:661
-#: usr/local/www/services_dhcp_edit.php:224 etc/inc/ipsec.inc:40
-#: etc/inc/ipsec.inc:49 usr/local/www/services_dnsmasq_edit.php:81
+#: usr/local/www/services_dhcp_edit.php:224
#: usr/local/www/services_dnsmasq_edit.php:212
#: usr/local/www/services_captiveportal_ip.php:115
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:72
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:137
-#: usr/local/www/diag_logs_vpn.php:177 usr/local/www/diag_arp.php:313
-#: usr/local/www/status_captiveportal.php:160
#: usr/local/www/vpn_l2tp_users.php:103
#: usr/local/www/services_captiveportal.php:636
#: usr/local/www/services_captiveportal.php:657
@@ -3280,10 +3921,39 @@ msgstr ""
#: usr/local/www/services_captiveportal_ip_edit.php:193
#: usr/local/www/services_dhcp.php:1133 usr/local/www/vpn_ipsec_phase2.php:757
#: usr/local/www/vpn_pptp_users_edit.php:161
-#: usr/local/www/system_advanced_network.php:226
#: usr/local/www/services_dhcp_edit.php:223
#: usr/local/www/vpn_l2tp_users_edit.php:169
#: usr/local/www/vpn_pptp_users.php:100
+#: usr/local/www/services_captiveportal_ip_edit.php:187
+#: usr/local/www/services_dhcp_edit.php:351
+#: usr/local/www/services_dhcp.php:1152
+#: usr/local/www/status_captiveportal.php:146
+#: usr/local/www/services_captiveportal.php:637
+#: usr/local/www/services_captiveportal.php:658
+#: usr/local/www/services_captiveportal.php:680
+#: usr/local/www/services_captiveportal.php:699
+#: usr/local/www/vpn_ipsec_phase2.php:778
+#: usr/local/www/services_captiveportal_ip_edit.php:187
+#: usr/local/www/diag_arp.php:313 usr/local/www/vpn_pptp_users.php:100
+#: usr/local/www/services_captiveportal_ip.php:115
+#: usr/local/www/services_dhcp_edit.php:351
+#: usr/local/www/services_dhcp.php:1172 usr/local/www/vpn_l2tp_users.php:103
+#: usr/local/www/status_captiveportal.php:146
+#: usr/local/www/services_captiveportal.php:653
+#: usr/local/www/services_captiveportal.php:674
+#: usr/local/www/services_captiveportal.php:696
+#: usr/local/www/services_captiveportal.php:715
+#: usr/local/www/status_dhcp_leases.php:341
+#: usr/local/www/vpn_l2tp_users_edit.php:169
+#: usr/local/www/services_dnsmasq_edit.php:81
+#: usr/local/www/services_dnsmasq_edit.php:212
+#: usr/local/www/diag_logs_vpn.php:177
+#: usr/local/www/vpn_pptp_users_edit.php:161
+#: usr/local/www/system_advanced_network.php:227
+#: usr/local/www/vpn_ipsec_phase2.php:778
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:72
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:137
+#: etc/inc/ipsec.inc:40 etc/inc/ipsec.inc:49
msgid "IP address"
msgstr ""
@@ -3293,10 +3963,14 @@ msgstr ""
#: usr/local/www/system_certmanager.php:672
#: usr/local/www/system_certmanager.php:705
#: usr/local/www/system_certmanager.php:838
-#: usr/local/www/system_camanager.php:477 etc/inc/ipsec.inc:41
-#: etc/inc/ipsec.inc:50 usr/local/www/system_certmanager.php:705
-#: usr/local/www/system_certmanager.php:838
#: usr/local/www/system_camanager.php:477
+#: usr/local/www/system_camanager.php:500
+#: usr/local/www/system_certmanager.php:730
+#: usr/local/www/system_certmanager.php:879
+#: usr/local/www/system_camanager.php:500
+#: usr/local/www/system_certmanager.php:731
+#: usr/local/www/system_certmanager.php:883 etc/inc/ipsec.inc:41
+#: etc/inc/ipsec.inc:50
msgid "Distinguished name"
msgstr ""
@@ -3318,9 +3992,13 @@ msgstr ""
#: etc/inc/ipsec.inc:45 usr/local/www/services_dhcp.php:722
#: usr/local/www/fbegin.inc:128 usr/local/www/services_dhcpv6.php:648
#: usr/local/www/fbegin.inc:145 usr/local/www/services_dhcp.php:760
-#: usr/local/www/services_dhcpv6.php:741 etc/inc/ipsec.inc:45
-#: usr/local/www/fbegin.inc:154 usr/local/www/services_dhcp.php:942
-#: usr/local/www/services_dhcpv6.php:672
+#: usr/local/www/services_dhcpv6.php:741 usr/local/www/fbegin.inc:154
+#: usr/local/www/services_dhcp.php:942 usr/local/www/services_dhcpv6.php:672
+#: usr/local/www/services_dhcp_edit.php:451
+#: usr/local/www/services_dhcp.php:955 usr/local/www/services_dhcpv6.php:689
+#: usr/local/www/fbegin.inc:146 usr/local/www/services_dhcp_edit.php:451
+#: usr/local/www/services_dhcp.php:975 usr/local/www/services_dhcpv6.php:689
+#: usr/local/www/fbegin.inc:146 etc/inc/ipsec.inc:45
msgid "Dynamic DNS"
msgstr ""
@@ -3333,7 +4011,10 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:255 usr/local/www/vpn_ipsec.php:217
#: usr/local/www/vpn_ipsec_phase2.php:268 etc/inc/ipsec.inc:281
#: usr/local/www/vpn_ipsec.php:216 usr/local/www/vpn_ipsec_phase2.php:294
-#: usr/local/www/vpn_ipsec_phase1.php:358
+#: usr/local/www/vpn_ipsec.php:222 usr/local/www/vpn_ipsec_phase1.php:379
+#: usr/local/www/vpn_ipsec_phase2.php:316 etc/inc/ipsec.inc:289
+#: usr/local/www/vpn_ipsec.php:222 usr/local/www/vpn_ipsec_phase1.php:379
+#: usr/local/www/vpn_ipsec_phase2.php:316 etc/inc/ipsec.inc:289
msgid "Mobile Client"
msgstr ""
@@ -3356,7 +4037,22 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:804
#: usr/local/www/firewall_nat_edit.php:835 usr/local/www/interfaces.php:1106
#: usr/local/www/interfaces.php:1107 usr/local/www/interfaces.php:1477
-#: usr/local/www/interfaces.php:1585
+#: usr/local/www/interfaces.php:1585 usr/local/www/firewall_nat_edit.php:799
+#: usr/local/www/firewall_nat_edit.php:830
+#: usr/local/www/diag_system_pftop.php:155
+#: usr/local/www/system_advanced_misc.php:398
+#: usr/local/www/interfaces_bridge_edit.php:439
+#: usr/local/www/vpn_ipsec_phase2.php:584 usr/local/www/interfaces.php:1120
+#: usr/local/www/interfaces.php:1121 usr/local/www/interfaces.php:1490
+#: usr/local/www/interfaces.php:1595 etc/inc/ipsec.inc:292
+#: usr/local/www/firewall_nat_edit.php:811
+#: usr/local/www/firewall_nat_edit.php:842
+#: usr/local/www/diag_system_pftop.php:155
+#: usr/local/www/system_advanced_misc.php:445
+#: usr/local/www/interfaces_bridge_edit.php:439
+#: usr/local/www/vpn_ipsec_phase2.php:584 usr/local/www/interfaces.php:1162
+#: usr/local/www/interfaces.php:1163 usr/local/www/interfaces.php:1535
+#: usr/local/www/interfaces.php:1641 etc/inc/ipsec.inc:292
msgid "None"
msgstr ""
@@ -3462,35 +4158,35 @@ msgstr ""
msgid "Allow access to the 'Diagnostics: Show States' page."
msgstr ""
-#: etc/inc/priv.defs.inc:64 etc/inc/priv.defs.inc:70
+#: etc/inc/priv.defs.inc:64 etc/inc/priv.defs.inc:70 etc/inc/priv.defs.inc:70
msgid "WebCfg - Status: IPsec page"
msgstr ""
-#: etc/inc/priv.defs.inc:65 etc/inc/priv.defs.inc:71
+#: etc/inc/priv.defs.inc:65 etc/inc/priv.defs.inc:71 etc/inc/priv.defs.inc:71
msgid "Allow access to the 'Status: IPsec' page."
msgstr ""
-#: etc/inc/priv.defs.inc:70 etc/inc/priv.defs.inc:76
+#: etc/inc/priv.defs.inc:70 etc/inc/priv.defs.inc:76 etc/inc/priv.defs.inc:76
msgid "WebCfg - Status: IPsec: SAD page"
msgstr ""
-#: etc/inc/priv.defs.inc:71 etc/inc/priv.defs.inc:77
+#: etc/inc/priv.defs.inc:71 etc/inc/priv.defs.inc:77 etc/inc/priv.defs.inc:77
msgid "Allow access to the 'Status: IPsec: SAD' page."
msgstr ""
-#: etc/inc/priv.defs.inc:76 etc/inc/priv.defs.inc:82
+#: etc/inc/priv.defs.inc:76 etc/inc/priv.defs.inc:82 etc/inc/priv.defs.inc:82
msgid "WebCfg - Status: IPsec: SPD page"
msgstr ""
-#: etc/inc/priv.defs.inc:77 etc/inc/priv.defs.inc:83
+#: etc/inc/priv.defs.inc:77 etc/inc/priv.defs.inc:83 etc/inc/priv.defs.inc:83
msgid "Allow access to the 'Status: IPsec: SPD' page."
msgstr ""
-#: etc/inc/priv.defs.inc:82 etc/inc/priv.defs.inc:88
+#: etc/inc/priv.defs.inc:82 etc/inc/priv.defs.inc:88 etc/inc/priv.defs.inc:88
msgid "WebCfg - Diag IPsec XML page"
msgstr ""
-#: etc/inc/priv.defs.inc:83 etc/inc/priv.defs.inc:89
+#: etc/inc/priv.defs.inc:83 etc/inc/priv.defs.inc:89 etc/inc/priv.defs.inc:89
msgid "Allow access to the 'Diag IPsec XML' page."
msgstr ""
@@ -3498,8 +4194,9 @@ msgstr ""
#: etc/inc/priv.defs.inc:220 etc/inc/priv.defs.inc:226
#: etc/inc/priv.defs.inc:202 etc/inc/priv.defs.inc:238
#: etc/inc/priv.defs.inc:244 etc/inc/priv.defs.inc:94
-#: etc/inc/priv.defs.inc:208 etc/inc/priv.defs.inc:244
-#: etc/inc/priv.defs.inc:250
+#: etc/inc/priv.defs.inc:208 etc/inc/priv.defs.inc:250
+#: etc/inc/priv.defs.inc:94 etc/inc/priv.defs.inc:208
+#: etc/inc/priv.defs.inc:244 etc/inc/priv.defs.inc:250
msgid "WebCfg - Diagnostics: System Activity"
msgstr ""
@@ -3507,61 +4204,72 @@ msgstr ""
#: etc/inc/priv.defs.inc:221 etc/inc/priv.defs.inc:227
#: etc/inc/priv.defs.inc:203 etc/inc/priv.defs.inc:239
#: etc/inc/priv.defs.inc:245 etc/inc/priv.defs.inc:95
-#: etc/inc/priv.defs.inc:209 etc/inc/priv.defs.inc:245
-#: etc/inc/priv.defs.inc:251
+#: etc/inc/priv.defs.inc:209 etc/inc/priv.defs.inc:251
+#: etc/inc/priv.defs.inc:95 etc/inc/priv.defs.inc:209
+#: etc/inc/priv.defs.inc:245 etc/inc/priv.defs.inc:251
msgid "Allows access to the 'Diagnostics: System Activity' page"
msgstr ""
#: etc/inc/priv.defs.inc:94 etc/inc/priv.defs.inc:100
+#: etc/inc/priv.defs.inc:100
msgid "WebCfg - Diagnostics: Logs: System page"
msgstr ""
#: etc/inc/priv.defs.inc:95 etc/inc/priv.defs.inc:101
+#: etc/inc/priv.defs.inc:101
msgid "Allow access to the 'Diagnostics: Logs: System' page."
msgstr ""
#: etc/inc/priv.defs.inc:100 etc/inc/priv.defs.inc:106
+#: etc/inc/priv.defs.inc:106
msgid "WebCfg - Status: System logs: Portal Auth page"
msgstr ""
#: etc/inc/priv.defs.inc:101 etc/inc/priv.defs.inc:107
+#: etc/inc/priv.defs.inc:107
msgid "Allow access to the 'Status: System logs: Portal Auth' page."
msgstr ""
#: etc/inc/priv.defs.inc:106 etc/inc/priv.defs.inc:112
+#: etc/inc/priv.defs.inc:112
msgid "WebCfg - Diagnostics: Logs: DHCP page"
msgstr ""
#: etc/inc/priv.defs.inc:107 etc/inc/priv.defs.inc:113
+#: etc/inc/priv.defs.inc:113
msgid "Allow access to the 'Diagnostics: Logs: DHCP' page."
msgstr ""
#: etc/inc/priv.defs.inc:112 etc/inc/priv.defs.inc:118
+#: etc/inc/priv.defs.inc:118
msgid "WebCfg - Diagnostics: Logs: Firewall page"
msgstr ""
#: etc/inc/priv.defs.inc:113 etc/inc/priv.defs.inc:119
+#: etc/inc/priv.defs.inc:119
msgid "Allow access to the 'Diagnostics: Logs: Firewall' page."
msgstr ""
#: etc/inc/priv.defs.inc:118 etc/inc/priv.defs.inc:136
-#: etc/inc/priv.defs.inc:142
+#: etc/inc/priv.defs.inc:142 etc/inc/priv.defs.inc:142
msgid "WebCfg - Hidden: No longer included page"
msgstr ""
#: etc/inc/priv.defs.inc:119 etc/inc/priv.defs.inc:137
-#: etc/inc/priv.defs.inc:143
+#: etc/inc/priv.defs.inc:143 etc/inc/priv.defs.inc:143
msgid "Allow access to the 'Hidden: No longer included' page."
msgstr ""
#: etc/inc/priv.defs.inc:124 etc/inc/priv.defs.inc:142
#: etc/inc/priv.defs.inc:160 etc/inc/priv.defs.inc:148
+#: etc/inc/priv.defs.inc:166 etc/inc/priv.defs.inc:148
#: etc/inc/priv.defs.inc:166
msgid "WebCfg - Status: System logs: IPsec VPN page"
msgstr ""
#: etc/inc/priv.defs.inc:125 etc/inc/priv.defs.inc:143
#: etc/inc/priv.defs.inc:161 etc/inc/priv.defs.inc:149
+#: etc/inc/priv.defs.inc:167 etc/inc/priv.defs.inc:149
#: etc/inc/priv.defs.inc:167
msgid "Allow access to the 'Status: System logs: IPsec VPN' page."
msgstr ""
@@ -3575,162 +4283,164 @@ msgid "Allow access to the 'Status: System logs: OpenNTPD' page."
msgstr ""
#: etc/inc/priv.defs.inc:136 etc/inc/priv.defs.inc:154
-#: etc/inc/priv.defs.inc:160
+#: etc/inc/priv.defs.inc:160 etc/inc/priv.defs.inc:160
msgid "WebCfg - Status: System logs: OpenVPN page"
msgstr ""
#: etc/inc/priv.defs.inc:137 etc/inc/priv.defs.inc:155
-#: etc/inc/priv.defs.inc:161
+#: etc/inc/priv.defs.inc:161 etc/inc/priv.defs.inc:161
msgid "Allow access to the 'Status: System logs: OpenVPN' page."
msgstr ""
#: etc/inc/priv.defs.inc:148 etc/inc/priv.defs.inc:166
-#: etc/inc/priv.defs.inc:172
+#: etc/inc/priv.defs.inc:172 etc/inc/priv.defs.inc:172
msgid "WebCfg - Status: System logs: Load Balancer page"
msgstr ""
#: etc/inc/priv.defs.inc:149 etc/inc/priv.defs.inc:167
-#: etc/inc/priv.defs.inc:173
+#: etc/inc/priv.defs.inc:173 etc/inc/priv.defs.inc:173
msgid "Allow access to the 'Status: System logs: Load Balancer' page."
msgstr ""
#: etc/inc/priv.defs.inc:154 etc/inc/priv.defs.inc:172
-#: etc/inc/priv.defs.inc:178
+#: etc/inc/priv.defs.inc:178 etc/inc/priv.defs.inc:178
msgid "WebCfg - Diagnostics: Logs: Settings page"
msgstr ""
#: etc/inc/priv.defs.inc:155 etc/inc/priv.defs.inc:173
-#: etc/inc/priv.defs.inc:179
+#: etc/inc/priv.defs.inc:179 etc/inc/priv.defs.inc:179
msgid "Allow access to the 'Diagnostics: Logs: Settings' page."
msgstr ""
#: etc/inc/priv.defs.inc:160 etc/inc/priv.defs.inc:178
-#: etc/inc/priv.defs.inc:184
+#: etc/inc/priv.defs.inc:184 etc/inc/priv.defs.inc:184
msgid "WebCfg - Diagnostics: Logs: VPN page"
msgstr ""
#: etc/inc/priv.defs.inc:161 etc/inc/priv.defs.inc:179
-#: etc/inc/priv.defs.inc:185
+#: etc/inc/priv.defs.inc:185 etc/inc/priv.defs.inc:185
msgid "Allow access to the 'Diagnostics: Logs: VPN' page."
msgstr ""
#: etc/inc/priv.defs.inc:166 etc/inc/priv.defs.inc:184
-#: etc/inc/priv.defs.inc:190
+#: etc/inc/priv.defs.inc:190 etc/inc/priv.defs.inc:190
msgid "WebCfg - Diagnostics: NanoBSD"
msgstr ""
#: etc/inc/priv.defs.inc:167 etc/inc/priv.defs.inc:185
-#: etc/inc/priv.defs.inc:191
+#: etc/inc/priv.defs.inc:191 etc/inc/priv.defs.inc:191
msgid "Allow access to the 'Diagnostics: NanoBSD' page."
msgstr ""
#: etc/inc/priv.defs.inc:172 etc/inc/priv.defs.inc:190
-#: etc/inc/priv.defs.inc:196
+#: etc/inc/priv.defs.inc:196 etc/inc/priv.defs.inc:196
msgid "WebCfg - Diagnostics: Packet Capture page"
msgstr ""
#: etc/inc/priv.defs.inc:173 etc/inc/priv.defs.inc:191
-#: etc/inc/priv.defs.inc:197
+#: etc/inc/priv.defs.inc:197 etc/inc/priv.defs.inc:197
msgid "Allow access to the 'Diagnostics: Packet Capture' page."
msgstr ""
#: etc/inc/priv.defs.inc:178 etc/inc/priv.defs.inc:196
-#: etc/inc/priv.defs.inc:202
+#: etc/inc/priv.defs.inc:202 etc/inc/priv.defs.inc:202
msgid "WebCfg - Diagnostics: Patterns page"
msgstr ""
#: etc/inc/priv.defs.inc:179 etc/inc/priv.defs.inc:197
-#: etc/inc/priv.defs.inc:203
+#: etc/inc/priv.defs.inc:203 etc/inc/priv.defs.inc:203
msgid "Allow access to the 'Diagnostics: Patterns' page."
msgstr ""
#: etc/inc/priv.defs.inc:190 etc/inc/priv.defs.inc:208
-#: etc/inc/priv.defs.inc:214
+#: etc/inc/priv.defs.inc:214 etc/inc/priv.defs.inc:214
msgid "WebCfg - Diagnostics: Ping page"
msgstr ""
#: etc/inc/priv.defs.inc:191 etc/inc/priv.defs.inc:209
-#: etc/inc/priv.defs.inc:215
+#: etc/inc/priv.defs.inc:215 etc/inc/priv.defs.inc:215
msgid "Allow access to the 'Diagnostics: Ping' page."
msgstr ""
#: etc/inc/priv.defs.inc:196 etc/inc/priv.defs.inc:214
-#: etc/inc/priv.defs.inc:220
+#: etc/inc/priv.defs.inc:220 etc/inc/priv.defs.inc:220
msgid "WebCfg - Status: Package logs page"
msgstr ""
#: etc/inc/priv.defs.inc:197 etc/inc/priv.defs.inc:215
-#: etc/inc/priv.defs.inc:221
+#: etc/inc/priv.defs.inc:221 etc/inc/priv.defs.inc:221
msgid "Allow access to the 'Status: Package logs' page."
msgstr ""
#: etc/inc/priv.defs.inc:202 etc/inc/priv.defs.inc:220
-#: etc/inc/priv.defs.inc:226
+#: etc/inc/priv.defs.inc:226 etc/inc/priv.defs.inc:226
msgid "WebCfg - Diagnostics: Reset state page"
msgstr ""
#: etc/inc/priv.defs.inc:203 etc/inc/priv.defs.inc:221
-#: etc/inc/priv.defs.inc:227
+#: etc/inc/priv.defs.inc:227 etc/inc/priv.defs.inc:227
msgid "Allow access to the 'Diagnostics: Reset state' page."
msgstr ""
#: etc/inc/priv.defs.inc:208 etc/inc/priv.defs.inc:226
-#: etc/inc/priv.defs.inc:232
+#: etc/inc/priv.defs.inc:232 etc/inc/priv.defs.inc:232
msgid "WebCfg - Diagnostics: Routing tables page"
msgstr ""
#: etc/inc/priv.defs.inc:209 etc/inc/priv.defs.inc:227
-#: etc/inc/priv.defs.inc:233
+#: etc/inc/priv.defs.inc:233 etc/inc/priv.defs.inc:233
msgid "Allow access to the 'Diagnostics: Routing tables' page."
msgstr ""
#: etc/inc/priv.defs.inc:214 etc/inc/priv.defs.inc:232
-#: etc/inc/priv.defs.inc:238
+#: etc/inc/priv.defs.inc:238 etc/inc/priv.defs.inc:238
msgid "WebCfg - Diagnostics: States Summary page"
msgstr ""
#: etc/inc/priv.defs.inc:215 etc/inc/priv.defs.inc:233
-#: etc/inc/priv.defs.inc:239
+#: etc/inc/priv.defs.inc:239 etc/inc/priv.defs.inc:239
msgid "Allow access to the 'Diagnostics: States Summary' page."
msgstr ""
#: etc/inc/priv.defs.inc:232 etc/inc/priv.defs.inc:250
-#: etc/inc/priv.defs.inc:256
+#: etc/inc/priv.defs.inc:256 etc/inc/priv.defs.inc:256
msgid "WebCfg - Diagnostics: PF Table IP addresses"
msgstr ""
#: etc/inc/priv.defs.inc:233 etc/inc/priv.defs.inc:251
-#: etc/inc/priv.defs.inc:257
+#: etc/inc/priv.defs.inc:257 etc/inc/priv.defs.inc:257
msgid "Allow access to the 'Diagnostics: Tables' page."
msgstr ""
#: etc/inc/priv.defs.inc:238 etc/inc/priv.defs.inc:256
-#: etc/inc/priv.defs.inc:262
+#: etc/inc/priv.defs.inc:262 etc/inc/priv.defs.inc:262
msgid "WebCfg - Diagnostics: Traceroute page"
msgstr ""
#: etc/inc/priv.defs.inc:239 etc/inc/priv.defs.inc:257
-#: etc/inc/priv.defs.inc:263
+#: etc/inc/priv.defs.inc:263 etc/inc/priv.defs.inc:263
msgid "Allow access to the 'Diagnostics: Traceroute' page."
msgstr ""
#: etc/inc/priv.defs.inc:244 etc/inc/priv.defs.inc:262
-#: etc/inc/priv.defs.inc:268
+#: etc/inc/priv.defs.inc:268 etc/inc/priv.defs.inc:268
msgid "WebCfg - Diagnostics: Edit FIle"
msgstr ""
#: etc/inc/priv.defs.inc:245 etc/inc/priv.defs.inc:263
-#: etc/inc/priv.defs.inc:269
+#: etc/inc/priv.defs.inc:269 etc/inc/priv.defs.inc:269
msgid "Allow access to the 'Diagnostics: Edit File' page."
msgstr ""
#: etc/inc/priv.defs.inc:250 etc/inc/priv.defs.inc:268
-#: etc/inc/priv.defs.inc:274
+#: etc/inc/priv.defs.inc:274 etc/inc/priv.defs.inc:276
+#: etc/inc/priv.defs.inc:276
msgid "WebCfg - Diagnostics: Command page"
msgstr ""
#: etc/inc/priv.defs.inc:251 etc/inc/priv.defs.inc:269
-#: etc/inc/priv.defs.inc:275
+#: etc/inc/priv.defs.inc:275 etc/inc/priv.defs.inc:277
+#: etc/inc/priv.defs.inc:277
msgid "Allow access to the 'Diagnostics: Command' page."
msgstr ""
@@ -3745,1359 +4455,1637 @@ msgid "Allow access to the 'Hidden: Exec Raw' page."
msgstr ""
#: etc/inc/priv.defs.inc:262 etc/inc/priv.defs.inc:280
-#: etc/inc/priv.defs.inc:286
+#: etc/inc/priv.defs.inc:286 etc/inc/priv.defs.inc:282
+#: etc/inc/priv.defs.inc:282
msgid "WebCfg - Firewall: Aliases page"
msgstr ""
#: etc/inc/priv.defs.inc:263 etc/inc/priv.defs.inc:281
-#: etc/inc/priv.defs.inc:287
+#: etc/inc/priv.defs.inc:287 etc/inc/priv.defs.inc:283
+#: etc/inc/priv.defs.inc:283
msgid "Allow access to the 'Firewall: Aliases' page."
msgstr ""
#: etc/inc/priv.defs.inc:268 etc/inc/priv.defs.inc:286
-#: etc/inc/priv.defs.inc:292
+#: etc/inc/priv.defs.inc:292 etc/inc/priv.defs.inc:288
+#: etc/inc/priv.defs.inc:288
msgid "WebCfg - Firewall: Alias: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:269 etc/inc/priv.defs.inc:287
-#: etc/inc/priv.defs.inc:293
+#: etc/inc/priv.defs.inc:293 etc/inc/priv.defs.inc:289
+#: etc/inc/priv.defs.inc:289
msgid "Allow access to the 'Firewall: Alias: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:274 etc/inc/priv.defs.inc:292
-#: etc/inc/priv.defs.inc:298
+#: etc/inc/priv.defs.inc:298 etc/inc/priv.defs.inc:294
+#: etc/inc/priv.defs.inc:294
msgid "WebCfg - Firewall: Alias: Import page"
msgstr ""
#: etc/inc/priv.defs.inc:275 etc/inc/priv.defs.inc:293
-#: etc/inc/priv.defs.inc:299
+#: etc/inc/priv.defs.inc:299 etc/inc/priv.defs.inc:295
+#: etc/inc/priv.defs.inc:295
msgid "Allow access to the 'Firewall: Alias: Import' page."
msgstr ""
#: etc/inc/priv.defs.inc:280 etc/inc/priv.defs.inc:298
-#: etc/inc/priv.defs.inc:304
+#: etc/inc/priv.defs.inc:304 etc/inc/priv.defs.inc:300
+#: etc/inc/priv.defs.inc:300
msgid "WebCfg - Firewall: NAT: Port Forward page"
msgstr ""
#: etc/inc/priv.defs.inc:281 etc/inc/priv.defs.inc:299
-#: etc/inc/priv.defs.inc:305
+#: etc/inc/priv.defs.inc:305 etc/inc/priv.defs.inc:301
+#: etc/inc/priv.defs.inc:301
msgid "Allow access to the 'Firewall: NAT: Port Forward' page."
msgstr ""
#: etc/inc/priv.defs.inc:286 etc/inc/priv.defs.inc:304
-#: etc/inc/priv.defs.inc:310
+#: etc/inc/priv.defs.inc:310 etc/inc/priv.defs.inc:306
+#: etc/inc/priv.defs.inc:306
msgid "WebCfg - Firewall: NAT: 1:1 page"
msgstr ""
#: etc/inc/priv.defs.inc:287 etc/inc/priv.defs.inc:305
-#: etc/inc/priv.defs.inc:311
+#: etc/inc/priv.defs.inc:311 etc/inc/priv.defs.inc:307
+#: etc/inc/priv.defs.inc:307
msgid "Allow access to the 'Firewall: NAT: 1:1' page."
msgstr ""
#: etc/inc/priv.defs.inc:292 etc/inc/priv.defs.inc:310
-#: etc/inc/priv.defs.inc:316
+#: etc/inc/priv.defs.inc:316 etc/inc/priv.defs.inc:312
+#: etc/inc/priv.defs.inc:312
msgid "WebCfg - Firewall: NAT: 1:1: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:293 etc/inc/priv.defs.inc:311
-#: etc/inc/priv.defs.inc:317
+#: etc/inc/priv.defs.inc:317 etc/inc/priv.defs.inc:313
+#: etc/inc/priv.defs.inc:313
msgid "Allow access to the 'Firewall: NAT: 1:1: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:298 etc/inc/priv.defs.inc:316
-#: etc/inc/priv.defs.inc:322
+#: etc/inc/priv.defs.inc:322 etc/inc/priv.defs.inc:318
+#: etc/inc/priv.defs.inc:318
msgid "WebCfg - Firewall: NAT: Port Forward: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:299 etc/inc/priv.defs.inc:317
-#: etc/inc/priv.defs.inc:323
+#: etc/inc/priv.defs.inc:323 etc/inc/priv.defs.inc:319
+#: etc/inc/priv.defs.inc:319
msgid "Allow access to the 'Firewall: NAT: Port Forward: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:304 etc/inc/priv.defs.inc:322
-#: etc/inc/priv.defs.inc:328
+#: etc/inc/priv.defs.inc:328 etc/inc/priv.defs.inc:324
+#: etc/inc/priv.defs.inc:324
msgid "WebCfg - Firewall: NAT: Outbound page"
msgstr ""
#: etc/inc/priv.defs.inc:305 etc/inc/priv.defs.inc:323
-#: etc/inc/priv.defs.inc:329
+#: etc/inc/priv.defs.inc:329 etc/inc/priv.defs.inc:325
+#: etc/inc/priv.defs.inc:325
msgid "Allow access to the 'Firewall: NAT: Outbound' page."
msgstr ""
#: etc/inc/priv.defs.inc:310 etc/inc/priv.defs.inc:328
-#: etc/inc/priv.defs.inc:334
+#: etc/inc/priv.defs.inc:334 etc/inc/priv.defs.inc:330
+#: etc/inc/priv.defs.inc:330
msgid "WebCfg - Firewall: NAT: Outbound: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:311 etc/inc/priv.defs.inc:329
-#: etc/inc/priv.defs.inc:335
+#: etc/inc/priv.defs.inc:335 etc/inc/priv.defs.inc:331
+#: etc/inc/priv.defs.inc:331
msgid "Allow access to the 'Firewall: NAT: Outbound: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:316 etc/inc/priv.defs.inc:334
-#: etc/inc/priv.defs.inc:340
+#: etc/inc/priv.defs.inc:340 etc/inc/priv.defs.inc:336
+#: etc/inc/priv.defs.inc:336
msgid "WebCfg - Firewall: Rules page"
msgstr ""
#: etc/inc/priv.defs.inc:317 etc/inc/priv.defs.inc:335
-#: etc/inc/priv.defs.inc:341
+#: etc/inc/priv.defs.inc:341 etc/inc/priv.defs.inc:337
+#: etc/inc/priv.defs.inc:337
msgid "Allow access to the 'Firewall: Rules' page."
msgstr ""
#: etc/inc/priv.defs.inc:322 etc/inc/priv.defs.inc:340
-#: etc/inc/priv.defs.inc:346
+#: etc/inc/priv.defs.inc:346 etc/inc/priv.defs.inc:342
+#: etc/inc/priv.defs.inc:342
msgid "WebCfg - Firewall: Rules: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:323 etc/inc/priv.defs.inc:341
-#: etc/inc/priv.defs.inc:347
+#: etc/inc/priv.defs.inc:347 etc/inc/priv.defs.inc:343
+#: etc/inc/priv.defs.inc:343
msgid "Allow access to the 'Firewall: Rules: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:328 etc/inc/priv.defs.inc:346
-#: etc/inc/priv.defs.inc:352
+#: etc/inc/priv.defs.inc:352 etc/inc/priv.defs.inc:348
+#: etc/inc/priv.defs.inc:348
msgid "WebCfg - Firewall: Schedules page"
msgstr ""
#: etc/inc/priv.defs.inc:329 etc/inc/priv.defs.inc:347
-#: etc/inc/priv.defs.inc:353
+#: etc/inc/priv.defs.inc:353 etc/inc/priv.defs.inc:349
+#: etc/inc/priv.defs.inc:349
msgid "Allow access to the 'Firewall: Schedules' page."
msgstr ""
#: etc/inc/priv.defs.inc:334 etc/inc/priv.defs.inc:352
-#: etc/inc/priv.defs.inc:358
+#: etc/inc/priv.defs.inc:358 etc/inc/priv.defs.inc:354
+#: etc/inc/priv.defs.inc:354
msgid "WebCfg - Firewall: Schedules: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:335 etc/inc/priv.defs.inc:353
-#: etc/inc/priv.defs.inc:359
+#: etc/inc/priv.defs.inc:359 etc/inc/priv.defs.inc:355
+#: etc/inc/priv.defs.inc:355
msgid "Allow access to the 'Firewall: Schedules: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:340 etc/inc/priv.defs.inc:358
-#: etc/inc/priv.defs.inc:364
+#: etc/inc/priv.defs.inc:364 etc/inc/priv.defs.inc:360
+#: etc/inc/priv.defs.inc:360
msgid "WebCfg - Firewall: Traffic Shaper page"
msgstr ""
#: etc/inc/priv.defs.inc:341 etc/inc/priv.defs.inc:359
-#: etc/inc/priv.defs.inc:365
+#: etc/inc/priv.defs.inc:365 etc/inc/priv.defs.inc:361
+#: etc/inc/priv.defs.inc:361
msgid "Allow access to the 'Firewall: Traffic Shaper' page."
msgstr ""
#: etc/inc/priv.defs.inc:346 etc/inc/priv.defs.inc:364
-#: etc/inc/priv.defs.inc:370
+#: etc/inc/priv.defs.inc:370 etc/inc/priv.defs.inc:366
+#: etc/inc/priv.defs.inc:366
msgid "WebCfg - Firewall: Traffic Shaper: Layer7 page"
msgstr ""
#: etc/inc/priv.defs.inc:347 etc/inc/priv.defs.inc:365
-#: etc/inc/priv.defs.inc:371
+#: etc/inc/priv.defs.inc:371 etc/inc/priv.defs.inc:367
+#: etc/inc/priv.defs.inc:367
msgid "Allow access to the 'Firewall: Traffic Shaper: Layer7' page."
msgstr ""
#: etc/inc/priv.defs.inc:352 etc/inc/priv.defs.inc:370
-#: etc/inc/priv.defs.inc:376
+#: etc/inc/priv.defs.inc:376 etc/inc/priv.defs.inc:372
+#: etc/inc/priv.defs.inc:372
msgid "WebCfg - Firewall: Traffic Shaper: Queues page"
msgstr ""
#: etc/inc/priv.defs.inc:353 etc/inc/priv.defs.inc:371
-#: etc/inc/priv.defs.inc:377
+#: etc/inc/priv.defs.inc:377 etc/inc/priv.defs.inc:373
+#: etc/inc/priv.defs.inc:373
msgid "Allow access to the 'Firewall: Traffic Shaper: Queues' page."
msgstr ""
#: etc/inc/priv.defs.inc:358 etc/inc/priv.defs.inc:376
-#: etc/inc/priv.defs.inc:382
+#: etc/inc/priv.defs.inc:382 etc/inc/priv.defs.inc:378
+#: etc/inc/priv.defs.inc:378
msgid "WebCfg - Firewall: Traffic Shaper: Limiter page"
msgstr ""
#: etc/inc/priv.defs.inc:359 etc/inc/priv.defs.inc:377
-#: etc/inc/priv.defs.inc:383
+#: etc/inc/priv.defs.inc:383 etc/inc/priv.defs.inc:379
+#: etc/inc/priv.defs.inc:379
msgid "Allow access to the 'Firewall: Traffic Shaper: Limiter' page."
msgstr ""
#: etc/inc/priv.defs.inc:364 etc/inc/priv.defs.inc:382
-#: etc/inc/priv.defs.inc:388
+#: etc/inc/priv.defs.inc:388 etc/inc/priv.defs.inc:384
+#: etc/inc/priv.defs.inc:384
msgid "WebCfg - Firewall: Traffic Shaper: Wizard page"
msgstr ""
#: etc/inc/priv.defs.inc:365 etc/inc/priv.defs.inc:383
-#: etc/inc/priv.defs.inc:389
+#: etc/inc/priv.defs.inc:389 etc/inc/priv.defs.inc:385
+#: etc/inc/priv.defs.inc:385
msgid "Allow access to the 'Firewall: Traffic Shaper: Wizard' page."
msgstr ""
#: etc/inc/priv.defs.inc:370 etc/inc/priv.defs.inc:388
-#: etc/inc/priv.defs.inc:394
+#: etc/inc/priv.defs.inc:394 etc/inc/priv.defs.inc:390
+#: etc/inc/priv.defs.inc:390
msgid "WebCfg - Firewall: Virtual IP Addresses page"
msgstr ""
#: etc/inc/priv.defs.inc:371 etc/inc/priv.defs.inc:389
-#: etc/inc/priv.defs.inc:395
+#: etc/inc/priv.defs.inc:395 etc/inc/priv.defs.inc:391
+#: etc/inc/priv.defs.inc:391
msgid "Allow access to the 'Firewall: Virtual IP Addresses' page."
msgstr ""
#: etc/inc/priv.defs.inc:376 etc/inc/priv.defs.inc:394
-#: etc/inc/priv.defs.inc:400
+#: etc/inc/priv.defs.inc:400 etc/inc/priv.defs.inc:396
+#: etc/inc/priv.defs.inc:396
msgid "WebCfg - Firewall: Virtual IP Address: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:377 etc/inc/priv.defs.inc:395
-#: etc/inc/priv.defs.inc:401
+#: etc/inc/priv.defs.inc:401 etc/inc/priv.defs.inc:397
+#: etc/inc/priv.defs.inc:397
msgid "Allow access to the 'Firewall: Virtual IP Address: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:382 etc/inc/priv.defs.inc:400
-#: etc/inc/priv.defs.inc:406
+#: etc/inc/priv.defs.inc:406 etc/inc/priv.defs.inc:402
+#: etc/inc/priv.defs.inc:402
msgid "WebCfg - AJAX: Get Service Providers"
msgstr ""
#: etc/inc/priv.defs.inc:383 etc/inc/priv.defs.inc:401
-#: etc/inc/priv.defs.inc:407
+#: etc/inc/priv.defs.inc:407 etc/inc/priv.defs.inc:403
+#: etc/inc/priv.defs.inc:403
msgid "Allow access to the 'AJAX: Service Providers' page."
msgstr ""
#: etc/inc/priv.defs.inc:388 etc/inc/priv.defs.inc:406
-#: etc/inc/priv.defs.inc:412
+#: etc/inc/priv.defs.inc:412 etc/inc/priv.defs.inc:408
+#: etc/inc/priv.defs.inc:408
msgid "WebCfg - AJAX: Get Stats"
msgstr ""
#: etc/inc/priv.defs.inc:389 etc/inc/priv.defs.inc:407
-#: etc/inc/priv.defs.inc:413
+#: etc/inc/priv.defs.inc:413 etc/inc/priv.defs.inc:409
+#: etc/inc/priv.defs.inc:409
msgid "Allow access to the 'AJAX: Get Stats' page."
msgstr ""
#: etc/inc/priv.defs.inc:394 etc/inc/priv.defs.inc:412
-#: etc/inc/priv.defs.inc:418
+#: etc/inc/priv.defs.inc:418 etc/inc/priv.defs.inc:414
+#: etc/inc/priv.defs.inc:414
msgid "WebCfg - Diagnostics: Interface Traffic page"
msgstr ""
#: etc/inc/priv.defs.inc:395 etc/inc/priv.defs.inc:413
-#: etc/inc/priv.defs.inc:419
+#: etc/inc/priv.defs.inc:419 etc/inc/priv.defs.inc:415
+#: etc/inc/priv.defs.inc:415
msgid "Allow access to the 'Diagnostics: Interface Traffic' page."
msgstr ""
#: etc/inc/priv.defs.inc:400 etc/inc/priv.defs.inc:814
#: etc/inc/priv.defs.inc:418 etc/inc/priv.defs.inc:832
#: etc/inc/priv.defs.inc:424 etc/inc/priv.defs.inc:838
+#: etc/inc/priv.defs.inc:420 etc/inc/priv.defs.inc:846
+#: etc/inc/priv.defs.inc:420 etc/inc/priv.defs.inc:846
msgid "WebCfg - Diagnostics: CPU Utilization page"
msgstr ""
#: etc/inc/priv.defs.inc:401 etc/inc/priv.defs.inc:815
#: etc/inc/priv.defs.inc:419 etc/inc/priv.defs.inc:833
#: etc/inc/priv.defs.inc:425 etc/inc/priv.defs.inc:839
+#: etc/inc/priv.defs.inc:421 etc/inc/priv.defs.inc:847
+#: etc/inc/priv.defs.inc:421 etc/inc/priv.defs.inc:847
msgid "Allow access to the 'Diagnostics: CPU Utilization' page."
msgstr ""
#: etc/inc/priv.defs.inc:406 etc/inc/priv.defs.inc:424
-#: etc/inc/priv.defs.inc:430
+#: etc/inc/priv.defs.inc:430 etc/inc/priv.defs.inc:426
+#: etc/inc/priv.defs.inc:426
msgid "WebCfg - Diagnostics: Halt system page"
msgstr ""
#: etc/inc/priv.defs.inc:407 etc/inc/priv.defs.inc:425
-#: etc/inc/priv.defs.inc:431
+#: etc/inc/priv.defs.inc:431 etc/inc/priv.defs.inc:427
+#: etc/inc/priv.defs.inc:427
msgid "Allow access to the 'Diagnostics: Halt system' page."
msgstr ""
#: etc/inc/priv.defs.inc:412 etc/inc/priv.defs.inc:430
-#: etc/inc/priv.defs.inc:436
+#: etc/inc/priv.defs.inc:436 etc/inc/priv.defs.inc:432
+#: etc/inc/priv.defs.inc:432
msgid "WebCfg - Required for javascript page"
msgstr ""
#: etc/inc/priv.defs.inc:413 etc/inc/priv.defs.inc:431
-#: etc/inc/priv.defs.inc:437
+#: etc/inc/priv.defs.inc:437 etc/inc/priv.defs.inc:433
+#: etc/inc/priv.defs.inc:433
msgid "Allow access to the 'Required for javascript' page."
msgstr ""
#: etc/inc/priv.defs.inc:418 etc/inc/priv.defs.inc:436
-#: etc/inc/priv.defs.inc:442
+#: etc/inc/priv.defs.inc:442 etc/inc/priv.defs.inc:438
+#: etc/inc/priv.defs.inc:438
msgid "WebCfg - XMLRPC Interface Stats page"
msgstr ""
#: etc/inc/priv.defs.inc:419 etc/inc/priv.defs.inc:437
-#: etc/inc/priv.defs.inc:443
+#: etc/inc/priv.defs.inc:443 etc/inc/priv.defs.inc:439
+#: etc/inc/priv.defs.inc:439
msgid "Allow access to the 'XMLRPC Interface Stats' page."
msgstr ""
#: etc/inc/priv.defs.inc:424 etc/inc/priv.defs.inc:442
-#: etc/inc/priv.defs.inc:448
+#: etc/inc/priv.defs.inc:448 etc/inc/priv.defs.inc:444
+#: etc/inc/priv.defs.inc:444
msgid "WebCfg - System: Login / Logout page / Dashboard"
msgstr ""
#: etc/inc/priv.defs.inc:425 etc/inc/priv.defs.inc:443
-#: etc/inc/priv.defs.inc:449
+#: etc/inc/priv.defs.inc:449 etc/inc/priv.defs.inc:445
+#: etc/inc/priv.defs.inc:445
msgid "Allow access to the 'System: Login / Logout' page and Dashboard."
msgstr ""
#: etc/inc/priv.defs.inc:430 etc/inc/priv.defs.inc:448
-#: etc/inc/priv.defs.inc:454
+#: etc/inc/priv.defs.inc:454 etc/inc/priv.defs.inc:450
+#: etc/inc/priv.defs.inc:450
msgid "WebCfg - Interfaces: WAN page"
msgstr ""
#: etc/inc/priv.defs.inc:431 etc/inc/priv.defs.inc:449
-#: etc/inc/priv.defs.inc:455
+#: etc/inc/priv.defs.inc:455 etc/inc/priv.defs.inc:451
+#: etc/inc/priv.defs.inc:451
msgid "Allow access to the 'Interfaces' page."
msgstr ""
#: etc/inc/priv.defs.inc:436 etc/inc/priv.defs.inc:454
-#: etc/inc/priv.defs.inc:460
+#: etc/inc/priv.defs.inc:460 etc/inc/priv.defs.inc:456
+#: etc/inc/priv.defs.inc:456
msgid "WebCfg - Interfaces: Assign network ports page"
msgstr ""
#: etc/inc/priv.defs.inc:437 etc/inc/priv.defs.inc:455
-#: etc/inc/priv.defs.inc:461
+#: etc/inc/priv.defs.inc:461 etc/inc/priv.defs.inc:457
+#: etc/inc/priv.defs.inc:457
msgid "Allow access to the 'Interfaces: Assign network ports' page."
msgstr ""
#: etc/inc/priv.defs.inc:442 etc/inc/priv.defs.inc:460
-#: etc/inc/priv.defs.inc:466
+#: etc/inc/priv.defs.inc:466 etc/inc/priv.defs.inc:462
+#: etc/inc/priv.defs.inc:462
msgid "WebCfg - Interfaces: Bridge page"
msgstr ""
#: etc/inc/priv.defs.inc:443 etc/inc/priv.defs.inc:461
-#: etc/inc/priv.defs.inc:467
+#: etc/inc/priv.defs.inc:467 etc/inc/priv.defs.inc:463
+#: etc/inc/priv.defs.inc:463
msgid "Allow access to the 'Interfaces: Bridge' page."
msgstr ""
#: etc/inc/priv.defs.inc:448 etc/inc/priv.defs.inc:466
-#: etc/inc/priv.defs.inc:472
+#: etc/inc/priv.defs.inc:472 etc/inc/priv.defs.inc:468
+#: etc/inc/priv.defs.inc:468
msgid "WebCfg - Interfaces: Bridge edit page"
msgstr ""
#: etc/inc/priv.defs.inc:449 etc/inc/priv.defs.inc:467
-#: etc/inc/priv.defs.inc:473
+#: etc/inc/priv.defs.inc:473 etc/inc/priv.defs.inc:469
+#: etc/inc/priv.defs.inc:469
msgid "Allow access to the 'Interfaces: Bridge : Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:454 etc/inc/priv.defs.inc:472
-#: etc/inc/priv.defs.inc:478
+#: etc/inc/priv.defs.inc:478 etc/inc/priv.defs.inc:474
+#: etc/inc/priv.defs.inc:474
msgid "WebCfg - Interfaces: GIF page"
msgstr ""
#: etc/inc/priv.defs.inc:455 etc/inc/priv.defs.inc:473
-#: etc/inc/priv.defs.inc:479
+#: etc/inc/priv.defs.inc:479 etc/inc/priv.defs.inc:475
+#: etc/inc/priv.defs.inc:475
msgid "Allow access to the 'Interfaces: GIF' page."
msgstr ""
#: etc/inc/priv.defs.inc:460 etc/inc/priv.defs.inc:478
-#: etc/inc/priv.defs.inc:484
+#: etc/inc/priv.defs.inc:484 etc/inc/priv.defs.inc:480
+#: etc/inc/priv.defs.inc:480
msgid "WebCfg - Interfaces: GIF: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:461 etc/inc/priv.defs.inc:479
-#: etc/inc/priv.defs.inc:485
+#: etc/inc/priv.defs.inc:485 etc/inc/priv.defs.inc:481
+#: etc/inc/priv.defs.inc:481
msgid "Allow access to the 'Interfaces: GIF: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:466 etc/inc/priv.defs.inc:484
-#: etc/inc/priv.defs.inc:490
+#: etc/inc/priv.defs.inc:490 etc/inc/priv.defs.inc:486
+#: etc/inc/priv.defs.inc:486
msgid "WebCfg - Interfaces: GRE page"
msgstr ""
#: etc/inc/priv.defs.inc:467 etc/inc/priv.defs.inc:485
-#: etc/inc/priv.defs.inc:491
+#: etc/inc/priv.defs.inc:491 etc/inc/priv.defs.inc:487
+#: etc/inc/priv.defs.inc:487
msgid "Allow access to the 'Interfaces: GRE' page."
msgstr ""
#: etc/inc/priv.defs.inc:472 etc/inc/priv.defs.inc:490
-#: etc/inc/priv.defs.inc:496
+#: etc/inc/priv.defs.inc:496 etc/inc/priv.defs.inc:492
+#: etc/inc/priv.defs.inc:492
msgid "WebCfg - Interfaces: GRE: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:473 etc/inc/priv.defs.inc:491
-#: etc/inc/priv.defs.inc:497
+#: etc/inc/priv.defs.inc:497 etc/inc/priv.defs.inc:493
+#: etc/inc/priv.defs.inc:493
msgid "Allow access to the 'Interfaces: GRE: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:478 etc/inc/priv.defs.inc:496
-#: etc/inc/priv.defs.inc:502
+#: etc/inc/priv.defs.inc:502 etc/inc/priv.defs.inc:498
+#: etc/inc/priv.defs.inc:498
msgid "WebCfg - Interfaces: Groups page"
msgstr ""
#: etc/inc/priv.defs.inc:479 etc/inc/priv.defs.inc:497
-#: etc/inc/priv.defs.inc:503
+#: etc/inc/priv.defs.inc:503 etc/inc/priv.defs.inc:499
+#: etc/inc/priv.defs.inc:499
msgid "Create interface groups"
msgstr ""
#: etc/inc/priv.defs.inc:484 etc/inc/priv.defs.inc:502
-#: etc/inc/priv.defs.inc:508
+#: etc/inc/priv.defs.inc:508 etc/inc/priv.defs.inc:504
+#: etc/inc/priv.defs.inc:504
msgid "WebCfg - Interfaces: Groups: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:485 etc/inc/priv.defs.inc:503
-#: etc/inc/priv.defs.inc:509
+#: etc/inc/priv.defs.inc:509 etc/inc/priv.defs.inc:505
+#: etc/inc/priv.defs.inc:505
msgid "Edit Interface groups"
msgstr ""
#: etc/inc/priv.defs.inc:490 etc/inc/priv.defs.inc:508
-#: etc/inc/priv.defs.inc:514
+#: etc/inc/priv.defs.inc:514 etc/inc/priv.defs.inc:510
+#: etc/inc/priv.defs.inc:510
msgid "WebCfg - Interfaces: LAGG: page"
msgstr ""
#: etc/inc/priv.defs.inc:491 etc/inc/priv.defs.inc:497
#: etc/inc/priv.defs.inc:509 etc/inc/priv.defs.inc:515
-#: etc/inc/priv.defs.inc:515 etc/inc/priv.defs.inc:521
+#: etc/inc/priv.defs.inc:521 etc/inc/priv.defs.inc:511
+#: etc/inc/priv.defs.inc:517 etc/inc/priv.defs.inc:511
+#: etc/inc/priv.defs.inc:517
msgid "Edit Interface LAGG"
msgstr ""
#: etc/inc/priv.defs.inc:496 etc/inc/priv.defs.inc:514
-#: etc/inc/priv.defs.inc:520
+#: etc/inc/priv.defs.inc:520 etc/inc/priv.defs.inc:516
+#: etc/inc/priv.defs.inc:516
msgid "WebCfg - Interfaces: LAGG: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:502 etc/inc/priv.defs.inc:520
-#: etc/inc/priv.defs.inc:526
+#: etc/inc/priv.defs.inc:526 etc/inc/priv.defs.inc:522
+#: etc/inc/priv.defs.inc:522
msgid "WebCfg - Interfaces: ppps page"
msgstr ""
#: etc/inc/priv.defs.inc:503 etc/inc/priv.defs.inc:521
-#: etc/inc/priv.defs.inc:527
+#: etc/inc/priv.defs.inc:527 etc/inc/priv.defs.inc:523
+#: etc/inc/priv.defs.inc:523
msgid "Allow access to the 'Interfaces: ppps' page."
msgstr ""
#: etc/inc/priv.defs.inc:508 etc/inc/priv.defs.inc:526
-#: etc/inc/priv.defs.inc:532
+#: etc/inc/priv.defs.inc:532 etc/inc/priv.defs.inc:528
+#: etc/inc/priv.defs.inc:528
msgid "WebCfg - Interfaces: PPPs: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:509 etc/inc/priv.defs.inc:527
-#: etc/inc/priv.defs.inc:533
+#: etc/inc/priv.defs.inc:533 etc/inc/priv.defs.inc:529
+#: etc/inc/priv.defs.inc:529
msgid "Allow access to the 'Interfaces: PPPs: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:514 etc/inc/priv.defs.inc:532
-#: etc/inc/priv.defs.inc:538
+#: etc/inc/priv.defs.inc:538 etc/inc/priv.defs.inc:534
+#: etc/inc/priv.defs.inc:534
msgid "WebCfg - Interfaces: QinQ page"
msgstr ""
#: etc/inc/priv.defs.inc:515 etc/inc/priv.defs.inc:533
-#: etc/inc/priv.defs.inc:539
+#: etc/inc/priv.defs.inc:539 etc/inc/priv.defs.inc:535
+#: etc/inc/priv.defs.inc:535
msgid "Allow access to the 'Interfaces: QinQ' page."
msgstr ""
#: etc/inc/priv.defs.inc:520 etc/inc/priv.defs.inc:538
-#: etc/inc/priv.defs.inc:544
+#: etc/inc/priv.defs.inc:544 etc/inc/priv.defs.inc:540
+#: etc/inc/priv.defs.inc:540
msgid "WebCfg - Interfaces: QinQ: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:521 etc/inc/priv.defs.inc:539
-#: etc/inc/priv.defs.inc:545
+#: etc/inc/priv.defs.inc:545 etc/inc/priv.defs.inc:541
+#: etc/inc/priv.defs.inc:541
msgid "Edit Interface qinq"
msgstr ""
#: etc/inc/priv.defs.inc:526 etc/inc/priv.defs.inc:544
-#: etc/inc/priv.defs.inc:550
+#: etc/inc/priv.defs.inc:550 etc/inc/priv.defs.inc:546
+#: etc/inc/priv.defs.inc:546
msgid "WebCfg - Interfaces: VLAN page"
msgstr ""
#: etc/inc/priv.defs.inc:527 etc/inc/priv.defs.inc:545
-#: etc/inc/priv.defs.inc:551
+#: etc/inc/priv.defs.inc:551 etc/inc/priv.defs.inc:547
+#: etc/inc/priv.defs.inc:547
msgid "Allow access to the 'Interfaces: VLAN' page."
msgstr ""
#: etc/inc/priv.defs.inc:532 etc/inc/priv.defs.inc:550
-#: etc/inc/priv.defs.inc:556
+#: etc/inc/priv.defs.inc:556 etc/inc/priv.defs.inc:552
+#: etc/inc/priv.defs.inc:552
msgid "WebCfg - Interfaces: VLAN: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:533 etc/inc/priv.defs.inc:551
-#: etc/inc/priv.defs.inc:557
+#: etc/inc/priv.defs.inc:557 etc/inc/priv.defs.inc:553
+#: etc/inc/priv.defs.inc:553
msgid "Allow access to the 'Interfaces: VLAN: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:538 etc/inc/priv.defs.inc:556
-#: etc/inc/priv.defs.inc:562
+#: etc/inc/priv.defs.inc:562 etc/inc/priv.defs.inc:558
+#: etc/inc/priv.defs.inc:558
msgid "WebCfg - Interfaces: Wireless page"
msgstr ""
#: etc/inc/priv.defs.inc:539 etc/inc/priv.defs.inc:557
-#: etc/inc/priv.defs.inc:563
+#: etc/inc/priv.defs.inc:563 etc/inc/priv.defs.inc:559
+#: etc/inc/priv.defs.inc:559
msgid "Allow access to the 'Interfaces: Wireless' page."
msgstr ""
#: etc/inc/priv.defs.inc:544 etc/inc/priv.defs.inc:562
-#: etc/inc/priv.defs.inc:568
+#: etc/inc/priv.defs.inc:568 etc/inc/priv.defs.inc:564
+#: etc/inc/priv.defs.inc:564
msgid "WebCfg - Interfaces: Wireless edit page"
msgstr ""
#: etc/inc/priv.defs.inc:545 etc/inc/priv.defs.inc:563
-#: etc/inc/priv.defs.inc:569
+#: etc/inc/priv.defs.inc:569 etc/inc/priv.defs.inc:565
+#: etc/inc/priv.defs.inc:565
msgid "Allow access to the 'Interfaces: Wireless : Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:550 etc/inc/priv.defs.inc:568
-#: etc/inc/priv.defs.inc:574
+#: etc/inc/priv.defs.inc:574 etc/inc/priv.defs.inc:570
+#: etc/inc/priv.defs.inc:570
msgid "WebCfg - System: License page"
msgstr ""
#: etc/inc/priv.defs.inc:551 etc/inc/priv.defs.inc:569
-#: etc/inc/priv.defs.inc:575
+#: etc/inc/priv.defs.inc:575 etc/inc/priv.defs.inc:571
+#: etc/inc/priv.defs.inc:571
msgid "Allow access to the 'System: License' page."
msgstr ""
#: etc/inc/priv.defs.inc:556 etc/inc/priv.defs.inc:574
-#: etc/inc/priv.defs.inc:580
+#: etc/inc/priv.defs.inc:580 etc/inc/priv.defs.inc:576
+#: etc/inc/priv.defs.inc:576
msgid "WebCfg - Services: Load Balancer: Monitors page"
msgstr ""
#: etc/inc/priv.defs.inc:557 etc/inc/priv.defs.inc:575
-#: etc/inc/priv.defs.inc:581
+#: etc/inc/priv.defs.inc:581 etc/inc/priv.defs.inc:577
+#: etc/inc/priv.defs.inc:577
msgid "Allow access to the 'Services: Load Balancer: Monitors' page."
msgstr ""
#: etc/inc/priv.defs.inc:562 etc/inc/priv.defs.inc:580
-#: etc/inc/priv.defs.inc:586
+#: etc/inc/priv.defs.inc:586 etc/inc/priv.defs.inc:582
+#: etc/inc/priv.defs.inc:582
msgid "WebCfg - Services: Load Balancer: Monitor: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:563 etc/inc/priv.defs.inc:581
-#: etc/inc/priv.defs.inc:587
+#: etc/inc/priv.defs.inc:587 etc/inc/priv.defs.inc:583
+#: etc/inc/priv.defs.inc:583
msgid "Allow access to the 'Services: Load Balancer: Monitor: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:568 etc/inc/priv.defs.inc:586
-#: etc/inc/priv.defs.inc:592
+#: etc/inc/priv.defs.inc:592 etc/inc/priv.defs.inc:588
+#: etc/inc/priv.defs.inc:588
msgid "WebCfg - Load Balancer: Pool page"
msgstr ""
#: etc/inc/priv.defs.inc:569 etc/inc/priv.defs.inc:587
-#: etc/inc/priv.defs.inc:593
+#: etc/inc/priv.defs.inc:593 etc/inc/priv.defs.inc:589
+#: etc/inc/priv.defs.inc:589
msgid "Allow access to the 'Load Balancer: Pool' page."
msgstr ""
#: etc/inc/priv.defs.inc:574 etc/inc/priv.defs.inc:592
-#: etc/inc/priv.defs.inc:598
+#: etc/inc/priv.defs.inc:598 etc/inc/priv.defs.inc:594
+#: etc/inc/priv.defs.inc:594
msgid "WebCfg - Load Balancer: Pool: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:575 etc/inc/priv.defs.inc:593
-#: etc/inc/priv.defs.inc:599
+#: etc/inc/priv.defs.inc:599 etc/inc/priv.defs.inc:595
+#: etc/inc/priv.defs.inc:595
msgid "Allow access to the 'Load Balancer: Pool: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:580 etc/inc/priv.defs.inc:598
-#: etc/inc/priv.defs.inc:604
+#: etc/inc/priv.defs.inc:604 etc/inc/priv.defs.inc:600
+#: etc/inc/priv.defs.inc:600
msgid "WebCfg - Services: Load Balancer: Relay Actions page"
msgstr ""
#: etc/inc/priv.defs.inc:581 etc/inc/priv.defs.inc:599
-#: etc/inc/priv.defs.inc:605
+#: etc/inc/priv.defs.inc:605 etc/inc/priv.defs.inc:601
+#: etc/inc/priv.defs.inc:601
msgid "Allow access to the 'Services: Load Balancer: Relay Actions' page."
msgstr ""
#: etc/inc/priv.defs.inc:586 etc/inc/priv.defs.inc:604
-#: etc/inc/priv.defs.inc:610
+#: etc/inc/priv.defs.inc:610 etc/inc/priv.defs.inc:606
+#: etc/inc/priv.defs.inc:606
msgid "WebCfg - Services: Load Balancer: Relay Action: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:587 etc/inc/priv.defs.inc:605
-#: etc/inc/priv.defs.inc:611
+#: etc/inc/priv.defs.inc:611 etc/inc/priv.defs.inc:607
+#: etc/inc/priv.defs.inc:607
msgid "Allow access to the 'Services: Load Balancer: Relay Action: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:592 etc/inc/priv.defs.inc:610
-#: etc/inc/priv.defs.inc:616
+#: etc/inc/priv.defs.inc:616 etc/inc/priv.defs.inc:612
+#: etc/inc/priv.defs.inc:612
msgid "WebCfg - Services: Load Balancer: Relay Protocols page"
msgstr ""
#: etc/inc/priv.defs.inc:593 etc/inc/priv.defs.inc:611
-#: etc/inc/priv.defs.inc:617
+#: etc/inc/priv.defs.inc:617 etc/inc/priv.defs.inc:613
+#: etc/inc/priv.defs.inc:613
msgid "Allow access to the 'Services: Load Balancer: Relay Protocols' page."
msgstr ""
#: etc/inc/priv.defs.inc:598 etc/inc/priv.defs.inc:616
-#: etc/inc/priv.defs.inc:622
+#: etc/inc/priv.defs.inc:622 etc/inc/priv.defs.inc:618
+#: etc/inc/priv.defs.inc:618
msgid "WebCfg - Services: Load Balancer: Relay Protocol: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:599 etc/inc/priv.defs.inc:617
-#: etc/inc/priv.defs.inc:623
+#: etc/inc/priv.defs.inc:623 etc/inc/priv.defs.inc:619
+#: etc/inc/priv.defs.inc:619
msgid ""
"Allow access to the 'Services: Load Balancer: Relay Protocol: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:604 etc/inc/priv.defs.inc:622
-#: etc/inc/priv.defs.inc:628
+#: etc/inc/priv.defs.inc:628 etc/inc/priv.defs.inc:624
+#: etc/inc/priv.defs.inc:624
msgid "WebCfg - Services: Load Balancer: Virtual Servers page"
msgstr ""
#: etc/inc/priv.defs.inc:605 etc/inc/priv.defs.inc:623
-#: etc/inc/priv.defs.inc:629
+#: etc/inc/priv.defs.inc:629 etc/inc/priv.defs.inc:625
+#: etc/inc/priv.defs.inc:625
msgid "Allow access to the 'Services: Load Balancer: Virtual Servers' page."
msgstr ""
#: etc/inc/priv.defs.inc:610 etc/inc/priv.defs.inc:628
-#: etc/inc/priv.defs.inc:634
+#: etc/inc/priv.defs.inc:634 etc/inc/priv.defs.inc:630
+#: etc/inc/priv.defs.inc:630
msgid "WebCfg - Load Balancer: Virtual Server: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:611 etc/inc/priv.defs.inc:629
-#: etc/inc/priv.defs.inc:635
+#: etc/inc/priv.defs.inc:635 etc/inc/priv.defs.inc:631
+#: etc/inc/priv.defs.inc:631
msgid "Allow access to the 'Load Balancer: Virtual Server: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:616 etc/inc/priv.defs.inc:634
-#: etc/inc/priv.defs.inc:640
+#: etc/inc/priv.defs.inc:640 etc/inc/priv.defs.inc:636
+#: etc/inc/priv.defs.inc:636
msgid "WebCfg - Package: Settings page"
msgstr ""
#: etc/inc/priv.defs.inc:617 etc/inc/priv.defs.inc:635
-#: etc/inc/priv.defs.inc:641
+#: etc/inc/priv.defs.inc:641 etc/inc/priv.defs.inc:637
+#: etc/inc/priv.defs.inc:637
msgid "Allow access to the 'Package: Settings' page."
msgstr ""
#: etc/inc/priv.defs.inc:622 etc/inc/priv.defs.inc:640
-#: etc/inc/priv.defs.inc:646
+#: etc/inc/priv.defs.inc:646 etc/inc/priv.defs.inc:642
+#: etc/inc/priv.defs.inc:642
msgid "WebCfg - Package: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:623 etc/inc/priv.defs.inc:641
-#: etc/inc/priv.defs.inc:647
+#: etc/inc/priv.defs.inc:647 etc/inc/priv.defs.inc:643
+#: etc/inc/priv.defs.inc:643
msgid "Allow access to the 'Package: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:628 etc/inc/priv.defs.inc:646
-#: etc/inc/priv.defs.inc:652
+#: etc/inc/priv.defs.inc:652 etc/inc/priv.defs.inc:648
+#: etc/inc/priv.defs.inc:648
msgid "WebCfg - System: Package Manager page"
msgstr ""
#: etc/inc/priv.defs.inc:629 etc/inc/priv.defs.inc:647
-#: etc/inc/priv.defs.inc:653
+#: etc/inc/priv.defs.inc:653 etc/inc/priv.defs.inc:649
+#: etc/inc/priv.defs.inc:649
msgid "Allow access to the 'System: Package Manager' page."
msgstr ""
#: etc/inc/priv.defs.inc:634 etc/inc/priv.defs.inc:652
-#: etc/inc/priv.defs.inc:658
+#: etc/inc/priv.defs.inc:658 etc/inc/priv.defs.inc:654
+#: etc/inc/priv.defs.inc:654
msgid "WebCfg - System: Package Manager: Install Package page"
msgstr ""
#: etc/inc/priv.defs.inc:635 etc/inc/priv.defs.inc:653
-#: etc/inc/priv.defs.inc:659
+#: etc/inc/priv.defs.inc:659 etc/inc/priv.defs.inc:655
+#: etc/inc/priv.defs.inc:655
msgid "Allow access to the 'System: Package Manager: Install Package' page."
msgstr ""
#: etc/inc/priv.defs.inc:640 etc/inc/priv.defs.inc:658
-#: etc/inc/priv.defs.inc:664
+#: etc/inc/priv.defs.inc:664 etc/inc/priv.defs.inc:660
+#: etc/inc/priv.defs.inc:660
msgid "WebCfg - System: Package Manager: Installed page"
msgstr ""
#: etc/inc/priv.defs.inc:641 etc/inc/priv.defs.inc:659
-#: etc/inc/priv.defs.inc:665
+#: etc/inc/priv.defs.inc:665 etc/inc/priv.defs.inc:661
+#: etc/inc/priv.defs.inc:661
msgid "Allow access to the 'System: Package Manager: Installed' page."
msgstr ""
#: etc/inc/priv.defs.inc:646 etc/inc/priv.defs.inc:664
-#: etc/inc/priv.defs.inc:670
+#: etc/inc/priv.defs.inc:670 etc/inc/priv.defs.inc:666
+#: etc/inc/priv.defs.inc:666
msgid "WebCfg - Packages: Settings page"
msgstr ""
#: etc/inc/priv.defs.inc:647 etc/inc/priv.defs.inc:665
-#: etc/inc/priv.defs.inc:671
+#: etc/inc/priv.defs.inc:671 etc/inc/priv.defs.inc:667
+#: etc/inc/priv.defs.inc:667
msgid "Allow access to the 'Packages: Settings' page."
msgstr ""
#: etc/inc/priv.defs.inc:652 etc/inc/priv.defs.inc:670
-#: etc/inc/priv.defs.inc:676
+#: etc/inc/priv.defs.inc:676 etc/inc/priv.defs.inc:672
+#: etc/inc/priv.defs.inc:672
msgid "WebCfg - Diagnostics: Reboot System page"
msgstr ""
#: etc/inc/priv.defs.inc:653 etc/inc/priv.defs.inc:671
-#: etc/inc/priv.defs.inc:677
+#: etc/inc/priv.defs.inc:677 etc/inc/priv.defs.inc:673
+#: etc/inc/priv.defs.inc:673
msgid "Allow access to the 'Diagnostics: Reboot System' page."
msgstr ""
#: etc/inc/priv.defs.inc:658 etc/inc/priv.defs.inc:676
-#: etc/inc/priv.defs.inc:682
+#: etc/inc/priv.defs.inc:682 etc/inc/priv.defs.inc:678
+#: etc/inc/priv.defs.inc:678
msgid "WebCfg - Diagnostics: Restart HTTPD : System page"
msgstr ""
#: etc/inc/priv.defs.inc:659 etc/inc/priv.defs.inc:677
-#: etc/inc/priv.defs.inc:683
+#: etc/inc/priv.defs.inc:683 etc/inc/priv.defs.inc:679
+#: etc/inc/priv.defs.inc:679
msgid "Allow access to the 'Diagnostics: Restart HTTPD: System' page."
msgstr ""
#: etc/inc/priv.defs.inc:664 etc/inc/priv.defs.inc:682
-#: etc/inc/priv.defs.inc:688
+#: etc/inc/priv.defs.inc:688 etc/inc/priv.defs.inc:684
+#: etc/inc/priv.defs.inc:684
msgid "WebCfg - Services: Captive portal page"
msgstr ""
#: etc/inc/priv.defs.inc:665 etc/inc/priv.defs.inc:683
-#: etc/inc/priv.defs.inc:689
+#: etc/inc/priv.defs.inc:689 etc/inc/priv.defs.inc:685
+#: etc/inc/priv.defs.inc:685
msgid "Allow access to the 'Services: Captive portal' page."
msgstr ""
#: etc/inc/priv.defs.inc:670 etc/inc/priv.defs.inc:688
-#: etc/inc/priv.defs.inc:694
+#: etc/inc/priv.defs.inc:694 etc/inc/priv.defs.inc:690
+#: etc/inc/priv.defs.inc:690
msgid "WebCfg - Services: Captive portal: File Manager page"
msgstr ""
#: etc/inc/priv.defs.inc:671 etc/inc/priv.defs.inc:689
-#: etc/inc/priv.defs.inc:695
+#: etc/inc/priv.defs.inc:695 etc/inc/priv.defs.inc:691
+#: etc/inc/priv.defs.inc:691
msgid "Allow access to the 'Services: Captive portal: File Manager' page."
msgstr ""
#: etc/inc/priv.defs.inc:676 etc/inc/priv.defs.inc:688
#: etc/inc/priv.defs.inc:694 etc/inc/priv.defs.inc:706
#: etc/inc/priv.defs.inc:700 etc/inc/priv.defs.inc:712
+#: etc/inc/priv.defs.inc:696 etc/inc/priv.defs.inc:708
+#: etc/inc/priv.defs.inc:696 etc/inc/priv.defs.inc:708
msgid "WebCfg - Services: Captive portal: Allowed IPs page"
msgstr ""
#: etc/inc/priv.defs.inc:677 etc/inc/priv.defs.inc:689
#: etc/inc/priv.defs.inc:695 etc/inc/priv.defs.inc:707
#: etc/inc/priv.defs.inc:701 etc/inc/priv.defs.inc:713
+#: etc/inc/priv.defs.inc:697 etc/inc/priv.defs.inc:709
+#: etc/inc/priv.defs.inc:697 etc/inc/priv.defs.inc:709
msgid "Allow access to the 'Services: Captive portal: Allowed IPs' page."
msgstr ""
#: etc/inc/priv.defs.inc:682 etc/inc/priv.defs.inc:694
#: etc/inc/priv.defs.inc:700 etc/inc/priv.defs.inc:712
#: etc/inc/priv.defs.inc:706 etc/inc/priv.defs.inc:718
+#: etc/inc/priv.defs.inc:702 etc/inc/priv.defs.inc:714
+#: etc/inc/priv.defs.inc:702 etc/inc/priv.defs.inc:714
msgid "WebCfg - Services: Captive portal: Edit Allowed IPs page"
msgstr ""
#: etc/inc/priv.defs.inc:683 etc/inc/priv.defs.inc:695
#: etc/inc/priv.defs.inc:701 etc/inc/priv.defs.inc:713
#: etc/inc/priv.defs.inc:707 etc/inc/priv.defs.inc:719
+#: etc/inc/priv.defs.inc:703 etc/inc/priv.defs.inc:715
+#: etc/inc/priv.defs.inc:703 etc/inc/priv.defs.inc:715
msgid "Allow access to the 'Services: Captive portal: Edit Allowed IPs' page."
msgstr ""
#: etc/inc/priv.defs.inc:700 etc/inc/priv.defs.inc:718
-#: etc/inc/priv.defs.inc:724
+#: etc/inc/priv.defs.inc:724 etc/inc/priv.defs.inc:720
+#: etc/inc/priv.defs.inc:720
msgid "WebCfg - Services: Captive portal: Mac Addresses page"
msgstr ""
#: etc/inc/priv.defs.inc:701 etc/inc/priv.defs.inc:719
-#: etc/inc/priv.defs.inc:725
+#: etc/inc/priv.defs.inc:725 etc/inc/priv.defs.inc:721
+#: etc/inc/priv.defs.inc:721
msgid "Allow access to the 'Services: Captive portal: Mac Addresses' page."
msgstr ""
#: etc/inc/priv.defs.inc:706 etc/inc/priv.defs.inc:724
-#: etc/inc/priv.defs.inc:730
+#: etc/inc/priv.defs.inc:730 etc/inc/priv.defs.inc:726
+#: etc/inc/priv.defs.inc:726
msgid "WebCfg - Services: Captive portal: Edit MAC Addresses page"
msgstr ""
#: etc/inc/priv.defs.inc:707 etc/inc/priv.defs.inc:725
-#: etc/inc/priv.defs.inc:731
+#: etc/inc/priv.defs.inc:731 etc/inc/priv.defs.inc:727
+#: etc/inc/priv.defs.inc:727
msgid ""
"Allow access to the 'Services: Captive portal: Edit MAC Addresses' page."
msgstr ""
#: etc/inc/priv.defs.inc:712 etc/inc/priv.defs.inc:730
-#: etc/inc/priv.defs.inc:736
+#: etc/inc/priv.defs.inc:736 etc/inc/priv.defs.inc:744
+#: etc/inc/priv.defs.inc:744
msgid "WebCfg - Services: Captive portal Vouchers page"
msgstr ""
#: etc/inc/priv.defs.inc:713 etc/inc/priv.defs.inc:731
-#: etc/inc/priv.defs.inc:737
+#: etc/inc/priv.defs.inc:737 etc/inc/priv.defs.inc:745
+#: etc/inc/priv.defs.inc:745
msgid "Allow access to the 'Services: Captive portal Vouchers' page."
msgstr ""
#: etc/inc/priv.defs.inc:724 etc/inc/priv.defs.inc:742
-#: etc/inc/priv.defs.inc:748
+#: etc/inc/priv.defs.inc:748 etc/inc/priv.defs.inc:756
+#: etc/inc/priv.defs.inc:756
msgid "WebCfg - Services: DHCP server page"
msgstr ""
#: etc/inc/priv.defs.inc:725 etc/inc/priv.defs.inc:743
-#: etc/inc/priv.defs.inc:749
+#: etc/inc/priv.defs.inc:749 etc/inc/priv.defs.inc:757
+#: etc/inc/priv.defs.inc:757
msgid "Allow access to the 'Services: DHCP server' page."
msgstr ""
#: etc/inc/priv.defs.inc:730 etc/inc/priv.defs.inc:748
-#: etc/inc/priv.defs.inc:754
+#: etc/inc/priv.defs.inc:754 etc/inc/priv.defs.inc:762
+#: etc/inc/priv.defs.inc:762
msgid "WebCfg - Services: DHCP Server : Edit static mapping page"
msgstr ""
#: etc/inc/priv.defs.inc:731 etc/inc/priv.defs.inc:749
-#: etc/inc/priv.defs.inc:755
+#: etc/inc/priv.defs.inc:755 etc/inc/priv.defs.inc:763
+#: etc/inc/priv.defs.inc:763
msgid "Allow access to the 'Services: DHCP Server : Edit static mapping' page."
msgstr ""
#: etc/inc/priv.defs.inc:736 etc/inc/priv.defs.inc:754
-#: etc/inc/priv.defs.inc:760
+#: etc/inc/priv.defs.inc:760 etc/inc/priv.defs.inc:768
+#: etc/inc/priv.defs.inc:768
msgid "WebCfg - Services: DHCP Relay page"
msgstr ""
#: etc/inc/priv.defs.inc:737 etc/inc/priv.defs.inc:755
-#: etc/inc/priv.defs.inc:761
+#: etc/inc/priv.defs.inc:761 etc/inc/priv.defs.inc:769
+#: etc/inc/priv.defs.inc:769
msgid "Allow access to the 'Services: DHCP Relay' page."
msgstr ""
#: etc/inc/priv.defs.inc:742 etc/inc/priv.defs.inc:760
-#: etc/inc/priv.defs.inc:766
+#: etc/inc/priv.defs.inc:766 etc/inc/priv.defs.inc:774
+#: etc/inc/priv.defs.inc:774
msgid "WebCfg - Services: DHCPv6 Relay page"
msgstr ""
#: etc/inc/priv.defs.inc:743 etc/inc/priv.defs.inc:761
-#: etc/inc/priv.defs.inc:767
+#: etc/inc/priv.defs.inc:767 etc/inc/priv.defs.inc:775
+#: etc/inc/priv.defs.inc:775
msgid "Allow access to the 'Services: DHCPv6 Relay' page."
msgstr ""
#: etc/inc/priv.defs.inc:748 etc/inc/priv.defs.inc:766
-#: etc/inc/priv.defs.inc:772
+#: etc/inc/priv.defs.inc:772 etc/inc/priv.defs.inc:780
+#: etc/inc/priv.defs.inc:780
msgid "WebCfg - Services: DNS Forwarder page"
msgstr ""
#: etc/inc/priv.defs.inc:749 etc/inc/priv.defs.inc:767
-#: etc/inc/priv.defs.inc:773
+#: etc/inc/priv.defs.inc:773 etc/inc/priv.defs.inc:781
+#: etc/inc/priv.defs.inc:781
msgid "Allow access to the 'Services: DNS Forwarder' page."
msgstr ""
#: etc/inc/priv.defs.inc:754 etc/inc/priv.defs.inc:772
-#: etc/inc/priv.defs.inc:778
+#: etc/inc/priv.defs.inc:778 etc/inc/priv.defs.inc:786
+#: etc/inc/priv.defs.inc:786
msgid "WebCfg - Services: DNS Forwarder: Edit Domain Override page"
msgstr ""
#: etc/inc/priv.defs.inc:755 etc/inc/priv.defs.inc:773
-#: etc/inc/priv.defs.inc:779
+#: etc/inc/priv.defs.inc:779 etc/inc/priv.defs.inc:787
+#: etc/inc/priv.defs.inc:787
msgid ""
"Allow access to the 'Services: DNS Forwarder: Edit Domain Override' page."
msgstr ""
#: etc/inc/priv.defs.inc:760 etc/inc/priv.defs.inc:778
-#: etc/inc/priv.defs.inc:784
+#: etc/inc/priv.defs.inc:784 etc/inc/priv.defs.inc:792
+#: etc/inc/priv.defs.inc:792
msgid "WebCfg - Services: DNS Forwarder: Edit host page"
msgstr ""
#: etc/inc/priv.defs.inc:761 etc/inc/priv.defs.inc:779
-#: etc/inc/priv.defs.inc:785
+#: etc/inc/priv.defs.inc:785 etc/inc/priv.defs.inc:793
+#: etc/inc/priv.defs.inc:793
msgid "Allow access to the 'Services: DNS Forwarder: Edit host' page."
msgstr ""
#: etc/inc/priv.defs.inc:766 etc/inc/priv.defs.inc:784
-#: etc/inc/priv.defs.inc:790
+#: etc/inc/priv.defs.inc:790 etc/inc/priv.defs.inc:798
+#: etc/inc/priv.defs.inc:798
msgid "WebCfg - Services: Dynamic DNS clients page"
msgstr ""
#: etc/inc/priv.defs.inc:767 etc/inc/priv.defs.inc:785
-#: etc/inc/priv.defs.inc:791
+#: etc/inc/priv.defs.inc:791 etc/inc/priv.defs.inc:799
+#: etc/inc/priv.defs.inc:799
msgid "Allow access to the 'Services: Dynamic DNS clients' page."
msgstr ""
#: etc/inc/priv.defs.inc:772 etc/inc/priv.defs.inc:790
-#: etc/inc/priv.defs.inc:796
+#: etc/inc/priv.defs.inc:796 etc/inc/priv.defs.inc:804
+#: etc/inc/priv.defs.inc:804
msgid "WebCfg - Services: Dynamic DNS client page"
msgstr ""
#: etc/inc/priv.defs.inc:773 etc/inc/priv.defs.inc:791
-#: etc/inc/priv.defs.inc:797
+#: etc/inc/priv.defs.inc:797 etc/inc/priv.defs.inc:805
+#: etc/inc/priv.defs.inc:805
msgid "Allow access to the 'Services: Dynamic DNS client' page."
msgstr ""
#: etc/inc/priv.defs.inc:778 etc/inc/priv.defs.inc:796
-#: etc/inc/priv.defs.inc:802
+#: etc/inc/priv.defs.inc:802 etc/inc/priv.defs.inc:810
+#: etc/inc/priv.defs.inc:810
msgid "WebCfg - Services: Igmpproxy page"
msgstr ""
#: etc/inc/priv.defs.inc:779 etc/inc/priv.defs.inc:797
-#: etc/inc/priv.defs.inc:803
+#: etc/inc/priv.defs.inc:803 etc/inc/priv.defs.inc:811
+#: etc/inc/priv.defs.inc:811
msgid "Allow access to the 'Services: Igmpproxy' page."
msgstr ""
#: etc/inc/priv.defs.inc:784 etc/inc/priv.defs.inc:802
-#: etc/inc/priv.defs.inc:808
+#: etc/inc/priv.defs.inc:808 etc/inc/priv.defs.inc:816
+#: etc/inc/priv.defs.inc:816
msgid "WebCfg - Firewall: Igmpproxy: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:785 etc/inc/priv.defs.inc:803
-#: etc/inc/priv.defs.inc:809
+#: etc/inc/priv.defs.inc:809 etc/inc/priv.defs.inc:817
+#: etc/inc/priv.defs.inc:817
msgid "Allow access to the 'Firewall: Igmpproxy' page."
msgstr ""
#: etc/inc/priv.defs.inc:790 etc/inc/priv.defs.inc:808
-#: etc/inc/priv.defs.inc:814
+#: etc/inc/priv.defs.inc:814 etc/inc/priv.defs.inc:822
+#: etc/inc/priv.defs.inc:822
msgid "WebCfg - Services: RFC 2136 clients page"
msgstr ""
#: etc/inc/priv.defs.inc:791 etc/inc/priv.defs.inc:809
-#: etc/inc/priv.defs.inc:815
+#: etc/inc/priv.defs.inc:815 etc/inc/priv.defs.inc:823
+#: etc/inc/priv.defs.inc:823
msgid "Allow access to the 'Services: RFC 2136 clients' page."
msgstr ""
#: etc/inc/priv.defs.inc:796 etc/inc/priv.defs.inc:814
-#: etc/inc/priv.defs.inc:820
+#: etc/inc/priv.defs.inc:820 etc/inc/priv.defs.inc:828
+#: etc/inc/priv.defs.inc:828
msgid "WebCfg - Services: SNMP page"
msgstr ""
#: etc/inc/priv.defs.inc:797 etc/inc/priv.defs.inc:815
-#: etc/inc/priv.defs.inc:821
+#: etc/inc/priv.defs.inc:821 etc/inc/priv.defs.inc:829
+#: etc/inc/priv.defs.inc:829
msgid "Allow access to the 'Services: SNMP' page."
msgstr ""
#: etc/inc/priv.defs.inc:802 etc/inc/priv.defs.inc:820
-#: etc/inc/priv.defs.inc:826
+#: etc/inc/priv.defs.inc:826 etc/inc/priv.defs.inc:834
+#: etc/inc/priv.defs.inc:834
msgid "WebCfg - Services: Wake on LAN page"
msgstr ""
#: etc/inc/priv.defs.inc:803 etc/inc/priv.defs.inc:821
-#: etc/inc/priv.defs.inc:827
+#: etc/inc/priv.defs.inc:827 etc/inc/priv.defs.inc:835
+#: etc/inc/priv.defs.inc:835
msgid "Allow access to the 'Services: Wake on LAN' page."
msgstr ""
#: etc/inc/priv.defs.inc:808 etc/inc/priv.defs.inc:826
-#: etc/inc/priv.defs.inc:832
+#: etc/inc/priv.defs.inc:832 etc/inc/priv.defs.inc:840
+#: etc/inc/priv.defs.inc:840
msgid "WebCfg - Services: Wake on LAN: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:809 etc/inc/priv.defs.inc:827
-#: etc/inc/priv.defs.inc:833
+#: etc/inc/priv.defs.inc:833 etc/inc/priv.defs.inc:841
+#: etc/inc/priv.defs.inc:841
msgid "Allow access to the 'Services: Wake on LAN: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:820 etc/inc/priv.defs.inc:838
-#: etc/inc/priv.defs.inc:844
+#: etc/inc/priv.defs.inc:844 etc/inc/priv.defs.inc:852
+#: etc/inc/priv.defs.inc:852
msgid "WebCfg - Hidden: Detailed Status page"
msgstr ""
#: etc/inc/priv.defs.inc:821 etc/inc/priv.defs.inc:839
-#: etc/inc/priv.defs.inc:845
+#: etc/inc/priv.defs.inc:845 etc/inc/priv.defs.inc:853
+#: etc/inc/priv.defs.inc:853
msgid "Allow access to the 'Hidden: Detailed Status' page."
msgstr ""
#: etc/inc/priv.defs.inc:826 etc/inc/priv.defs.inc:844
-#: etc/inc/priv.defs.inc:850
+#: etc/inc/priv.defs.inc:850 etc/inc/priv.defs.inc:858
+#: etc/inc/priv.defs.inc:858
msgid "WebCfg - Status: Captive portal page"
msgstr ""
#: etc/inc/priv.defs.inc:827 etc/inc/priv.defs.inc:845
-#: etc/inc/priv.defs.inc:851
+#: etc/inc/priv.defs.inc:851 etc/inc/priv.defs.inc:859
+#: etc/inc/priv.defs.inc:859
msgid "Allow access to the 'Status: Captive portal' page."
msgstr ""
#: etc/inc/priv.defs.inc:832 etc/inc/priv.defs.inc:850
-#: etc/inc/priv.defs.inc:856
+#: etc/inc/priv.defs.inc:856 etc/inc/priv.defs.inc:864
+#: etc/inc/priv.defs.inc:864
msgid "WebCfg - Status: Captive portal test Vouchers page"
msgstr ""
#: etc/inc/priv.defs.inc:833 etc/inc/priv.defs.inc:851
-#: etc/inc/priv.defs.inc:857
+#: etc/inc/priv.defs.inc:857 etc/inc/priv.defs.inc:865
+#: etc/inc/priv.defs.inc:865
msgid "Allow access to the 'Status: Captive portal Test Vouchers' page."
msgstr ""
#: etc/inc/priv.defs.inc:838 etc/inc/priv.defs.inc:856
-#: etc/inc/priv.defs.inc:862
+#: etc/inc/priv.defs.inc:862 etc/inc/priv.defs.inc:870
+#: etc/inc/priv.defs.inc:870
msgid "WebCfg - Status: Captive portal Voucher Rolls page"
msgstr ""
#: etc/inc/priv.defs.inc:839 etc/inc/priv.defs.inc:857
-#: etc/inc/priv.defs.inc:863
+#: etc/inc/priv.defs.inc:863 etc/inc/priv.defs.inc:871
+#: etc/inc/priv.defs.inc:871
msgid "Allow access to the 'Status: Captive portal Voucher Rolls' page."
msgstr ""
#: etc/inc/priv.defs.inc:844 etc/inc/priv.defs.inc:862
-#: etc/inc/priv.defs.inc:868
+#: etc/inc/priv.defs.inc:868 etc/inc/priv.defs.inc:876
+#: etc/inc/priv.defs.inc:876
msgid "WebCfg - Status: Captive portal Vouchers page"
msgstr ""
#: etc/inc/priv.defs.inc:845 etc/inc/priv.defs.inc:863
-#: etc/inc/priv.defs.inc:869
+#: etc/inc/priv.defs.inc:869 etc/inc/priv.defs.inc:877
+#: etc/inc/priv.defs.inc:877
msgid "Allow access to the 'Status: Captive portal Vouchers' page."
msgstr ""
#: etc/inc/priv.defs.inc:850 etc/inc/priv.defs.inc:868
-#: etc/inc/priv.defs.inc:874
+#: etc/inc/priv.defs.inc:874 etc/inc/priv.defs.inc:882
+#: etc/inc/priv.defs.inc:882
msgid "WebCfg - Status: DHCP leases page"
msgstr ""
#: etc/inc/priv.defs.inc:851 etc/inc/priv.defs.inc:869
-#: etc/inc/priv.defs.inc:875
+#: etc/inc/priv.defs.inc:875 etc/inc/priv.defs.inc:883
+#: etc/inc/priv.defs.inc:883
msgid "Allow access to the 'Status: DHCP leases' page."
msgstr ""
#: etc/inc/priv.defs.inc:856 etc/inc/priv.defs.inc:874
-#: etc/inc/priv.defs.inc:880
+#: etc/inc/priv.defs.inc:880 etc/inc/priv.defs.inc:888
+#: etc/inc/priv.defs.inc:888
msgid "WebCfg - Status: Filter Reload Status page"
msgstr ""
#: etc/inc/priv.defs.inc:857 etc/inc/priv.defs.inc:875
-#: etc/inc/priv.defs.inc:881
+#: etc/inc/priv.defs.inc:881 etc/inc/priv.defs.inc:889
+#: etc/inc/priv.defs.inc:889
msgid "Allow access to the 'Status: Filter Reload Status' page."
msgstr ""
#: etc/inc/priv.defs.inc:862 etc/inc/priv.defs.inc:880
-#: etc/inc/priv.defs.inc:886
+#: etc/inc/priv.defs.inc:886 etc/inc/priv.defs.inc:894
+#: etc/inc/priv.defs.inc:894
msgid "WebCfg - Status: Gateway Groups page"
msgstr ""
#: etc/inc/priv.defs.inc:863 etc/inc/priv.defs.inc:881
-#: etc/inc/priv.defs.inc:887
+#: etc/inc/priv.defs.inc:887 etc/inc/priv.defs.inc:895
+#: etc/inc/priv.defs.inc:895
msgid "Allow access to the 'Status: Gateway Groups' page."
msgstr ""
#: etc/inc/priv.defs.inc:868 etc/inc/priv.defs.inc:886
-#: etc/inc/priv.defs.inc:892
+#: etc/inc/priv.defs.inc:892 etc/inc/priv.defs.inc:900
+#: etc/inc/priv.defs.inc:900
msgid "WebCfg - Status: Gateways page"
msgstr ""
#: etc/inc/priv.defs.inc:869 etc/inc/priv.defs.inc:887
-#: etc/inc/priv.defs.inc:893
+#: etc/inc/priv.defs.inc:893 etc/inc/priv.defs.inc:901
+#: etc/inc/priv.defs.inc:901
msgid "Allow access to the 'Status: Gateways' page."
msgstr ""
#: etc/inc/priv.defs.inc:874 etc/inc/priv.defs.inc:892
-#: etc/inc/priv.defs.inc:898
+#: etc/inc/priv.defs.inc:898 etc/inc/priv.defs.inc:906
+#: etc/inc/priv.defs.inc:906
msgid "WebCfg - Status: Traffic Graph page"
msgstr ""
#: etc/inc/priv.defs.inc:875 etc/inc/priv.defs.inc:893
-#: etc/inc/priv.defs.inc:899
+#: etc/inc/priv.defs.inc:899 etc/inc/priv.defs.inc:907
+#: etc/inc/priv.defs.inc:907
msgid "Allow access to the 'Status: Traffic Graph' page."
msgstr ""
#: etc/inc/priv.defs.inc:881 etc/inc/priv.defs.inc:899
-#: etc/inc/priv.defs.inc:905
+#: etc/inc/priv.defs.inc:905 etc/inc/priv.defs.inc:913
+#: etc/inc/priv.defs.inc:913
msgid "WebCfg - Status: CPU load page"
msgstr ""
#: etc/inc/priv.defs.inc:882 etc/inc/priv.defs.inc:900
-#: etc/inc/priv.defs.inc:906
+#: etc/inc/priv.defs.inc:906 etc/inc/priv.defs.inc:914
+#: etc/inc/priv.defs.inc:914
msgid "Allow access to the 'Status: CPU load' page."
msgstr ""
#: etc/inc/priv.defs.inc:887 etc/inc/priv.defs.inc:905
-#: etc/inc/priv.defs.inc:911
+#: etc/inc/priv.defs.inc:911 etc/inc/priv.defs.inc:919
+#: etc/inc/priv.defs.inc:919
msgid "WebCfg - Status: Interfaces page"
msgstr ""
#: etc/inc/priv.defs.inc:888 etc/inc/priv.defs.inc:906
-#: etc/inc/priv.defs.inc:912
+#: etc/inc/priv.defs.inc:912 etc/inc/priv.defs.inc:920
+#: etc/inc/priv.defs.inc:920
msgid "Allow access to the 'Status: Interfaces' page."
msgstr ""
#: etc/inc/priv.defs.inc:893 etc/inc/priv.defs.inc:911
-#: etc/inc/priv.defs.inc:917
+#: etc/inc/priv.defs.inc:917 etc/inc/priv.defs.inc:925
+#: etc/inc/priv.defs.inc:925
msgid "WebCfg - Status: Load Balancer: Pool page"
msgstr ""
#: etc/inc/priv.defs.inc:894 etc/inc/priv.defs.inc:912
-#: etc/inc/priv.defs.inc:918
+#: etc/inc/priv.defs.inc:918 etc/inc/priv.defs.inc:926
+#: etc/inc/priv.defs.inc:926
msgid "Allow access to the 'Status: Load Balancer: Pool' page."
msgstr ""
#: etc/inc/priv.defs.inc:899 etc/inc/priv.defs.inc:917
-#: etc/inc/priv.defs.inc:923
+#: etc/inc/priv.defs.inc:923 etc/inc/priv.defs.inc:931
+#: etc/inc/priv.defs.inc:931
msgid "WebCfg - Status: Load Balancer: Virtual Server page"
msgstr ""
#: etc/inc/priv.defs.inc:900 etc/inc/priv.defs.inc:918
-#: etc/inc/priv.defs.inc:924
+#: etc/inc/priv.defs.inc:924 etc/inc/priv.defs.inc:932
+#: etc/inc/priv.defs.inc:932
msgid "Allow access to the 'Status: Load Balancer: Virtual Server' page."
msgstr ""
#: etc/inc/priv.defs.inc:905 etc/inc/priv.defs.inc:923
-#: etc/inc/priv.defs.inc:929
+#: etc/inc/priv.defs.inc:929 etc/inc/priv.defs.inc:937
+#: etc/inc/priv.defs.inc:937
msgid "WebCfg - Status: OpenVPN page"
msgstr ""
#: etc/inc/priv.defs.inc:906 etc/inc/priv.defs.inc:924
-#: etc/inc/priv.defs.inc:930
+#: etc/inc/priv.defs.inc:930 etc/inc/priv.defs.inc:938
+#: etc/inc/priv.defs.inc:938
msgid "Allow access to the 'Status: OpenVPN' page."
msgstr ""
#: etc/inc/priv.defs.inc:911 etc/inc/priv.defs.inc:929
-#: etc/inc/priv.defs.inc:935
+#: etc/inc/priv.defs.inc:935 etc/inc/priv.defs.inc:943
+#: etc/inc/priv.defs.inc:943
msgid "WebCfg - Status: Traffic shaper: Queues page"
msgstr ""
#: etc/inc/priv.defs.inc:912 etc/inc/priv.defs.inc:930
-#: etc/inc/priv.defs.inc:936
+#: etc/inc/priv.defs.inc:936 etc/inc/priv.defs.inc:944
+#: etc/inc/priv.defs.inc:944
msgid "Allow access to the 'Status: Traffic shaper: Queues' page."
msgstr ""
#: etc/inc/priv.defs.inc:917 etc/inc/priv.defs.inc:935
-#: etc/inc/priv.defs.inc:941
+#: etc/inc/priv.defs.inc:941 etc/inc/priv.defs.inc:949
+#: etc/inc/priv.defs.inc:949
msgid "WebCfg - Status: RRD Graphs page"
msgstr ""
#: etc/inc/priv.defs.inc:918 etc/inc/priv.defs.inc:936
-#: etc/inc/priv.defs.inc:942
+#: etc/inc/priv.defs.inc:942 etc/inc/priv.defs.inc:950
+#: etc/inc/priv.defs.inc:950
msgid "Allow access to the 'Status: RRD Graphs' page."
msgstr ""
#: etc/inc/priv.defs.inc:924 etc/inc/priv.defs.inc:942
-#: etc/inc/priv.defs.inc:948
+#: etc/inc/priv.defs.inc:948 etc/inc/priv.defs.inc:956
+#: etc/inc/priv.defs.inc:956
msgid "WebCfg - Status: RRD Graphs settings page"
msgstr ""
#: etc/inc/priv.defs.inc:925 etc/inc/priv.defs.inc:943
-#: etc/inc/priv.defs.inc:949
+#: etc/inc/priv.defs.inc:949 etc/inc/priv.defs.inc:957
+#: etc/inc/priv.defs.inc:957
msgid "Allow access to the 'Status: RRD Graphs: settings' page."
msgstr ""
#: etc/inc/priv.defs.inc:930 etc/inc/priv.defs.inc:948
-#: etc/inc/priv.defs.inc:954
+#: etc/inc/priv.defs.inc:954 etc/inc/priv.defs.inc:962
+#: etc/inc/priv.defs.inc:962
msgid "WebCfg - Status: Services page"
msgstr ""
#: etc/inc/priv.defs.inc:931 etc/inc/priv.defs.inc:949
-#: etc/inc/priv.defs.inc:955
+#: etc/inc/priv.defs.inc:955 etc/inc/priv.defs.inc:963
+#: etc/inc/priv.defs.inc:963
msgid "Allow access to the 'Status: Services' page."
msgstr ""
#: etc/inc/priv.defs.inc:936 etc/inc/priv.defs.inc:954
-#: etc/inc/priv.defs.inc:960
+#: etc/inc/priv.defs.inc:960 etc/inc/priv.defs.inc:968
+#: etc/inc/priv.defs.inc:968
msgid "WebCfg - Status: UPnP Status page"
msgstr ""
#: etc/inc/priv.defs.inc:937 etc/inc/priv.defs.inc:955
-#: etc/inc/priv.defs.inc:961
+#: etc/inc/priv.defs.inc:961 etc/inc/priv.defs.inc:969
+#: etc/inc/priv.defs.inc:969
msgid "Allow access to the 'Status: UPnP Status' page."
msgstr ""
#: etc/inc/priv.defs.inc:942 etc/inc/priv.defs.inc:960
-#: etc/inc/priv.defs.inc:966
+#: etc/inc/priv.defs.inc:966 etc/inc/priv.defs.inc:974
+#: etc/inc/priv.defs.inc:974
msgid "WebCfg - Status: Wireless page"
msgstr ""
#: etc/inc/priv.defs.inc:943 etc/inc/priv.defs.inc:961
-#: etc/inc/priv.defs.inc:967
+#: etc/inc/priv.defs.inc:967 etc/inc/priv.defs.inc:975
+#: etc/inc/priv.defs.inc:975
msgid "Allow access to the 'Status: Wireless' page."
msgstr ""
#: etc/inc/priv.defs.inc:948 etc/inc/priv.defs.inc:966
-#: etc/inc/priv.defs.inc:972
+#: etc/inc/priv.defs.inc:972 etc/inc/priv.defs.inc:980
+#: etc/inc/priv.defs.inc:980
msgid "WebCfg - System: General Setup page"
msgstr ""
#: etc/inc/priv.defs.inc:949 etc/inc/priv.defs.inc:967
-#: etc/inc/priv.defs.inc:973
+#: etc/inc/priv.defs.inc:973 etc/inc/priv.defs.inc:981
+#: etc/inc/priv.defs.inc:981
msgid "Allow access to the 'System: General Setup' page."
msgstr ""
#: etc/inc/priv.defs.inc:954 etc/inc/priv.defs.inc:972
-#: etc/inc/priv.defs.inc:978
+#: etc/inc/priv.defs.inc:978 etc/inc/priv.defs.inc:986
+#: etc/inc/priv.defs.inc:986
msgid "WebCfg - System: Advanced: Admin Access Page"
msgstr ""
#: etc/inc/priv.defs.inc:955 etc/inc/priv.defs.inc:973
-#: etc/inc/priv.defs.inc:979
+#: etc/inc/priv.defs.inc:979 etc/inc/priv.defs.inc:987
+#: etc/inc/priv.defs.inc:987
msgid "Allow access to the 'System: Advanced: Admin Access' page."
msgstr ""
#: etc/inc/priv.defs.inc:960 etc/inc/priv.defs.inc:978
-#: etc/inc/priv.defs.inc:984
+#: etc/inc/priv.defs.inc:984 etc/inc/priv.defs.inc:992
+#: etc/inc/priv.defs.inc:992
msgid "WebCfg - System: Advanced: Firewall and NAT page"
msgstr ""
#: etc/inc/priv.defs.inc:961 etc/inc/priv.defs.inc:979
-#: etc/inc/priv.defs.inc:985
+#: etc/inc/priv.defs.inc:985 etc/inc/priv.defs.inc:993
+#: etc/inc/priv.defs.inc:993
msgid "Allow access to the 'System: Advanced: Firewall and NAT' page."
msgstr ""
#: etc/inc/priv.defs.inc:966 etc/inc/priv.defs.inc:984
-#: etc/inc/priv.defs.inc:990
+#: etc/inc/priv.defs.inc:990 etc/inc/priv.defs.inc:998
+#: etc/inc/priv.defs.inc:998
msgid "WebCfg - System: Advanced: Miscellaneous page"
msgstr ""
#: etc/inc/priv.defs.inc:967 etc/inc/priv.defs.inc:985
-#: etc/inc/priv.defs.inc:991
+#: etc/inc/priv.defs.inc:991 etc/inc/priv.defs.inc:999
+#: etc/inc/priv.defs.inc:999
msgid "Allow access to the 'System: Advanced: Miscellaneous' page."
msgstr ""
#: etc/inc/priv.defs.inc:972 etc/inc/priv.defs.inc:990
-#: etc/inc/priv.defs.inc:996
+#: etc/inc/priv.defs.inc:996 etc/inc/priv.defs.inc:1004
+#: etc/inc/priv.defs.inc:1004
msgid "WebCfg - System: Advanced: Network page"
msgstr ""
#: etc/inc/priv.defs.inc:973 etc/inc/priv.defs.inc:991
-#: etc/inc/priv.defs.inc:997
+#: etc/inc/priv.defs.inc:997 etc/inc/priv.defs.inc:1005
+#: etc/inc/priv.defs.inc:1005
msgid "Allow access to the 'System: Advanced: Networking' page."
msgstr ""
#: etc/inc/priv.defs.inc:978 etc/inc/priv.defs.inc:984
#: etc/inc/priv.defs.inc:996 etc/inc/priv.defs.inc:1002
-#: etc/inc/priv.defs.inc:1002 etc/inc/priv.defs.inc:1008
+#: etc/inc/priv.defs.inc:1008 etc/inc/priv.defs.inc:1010
+#: etc/inc/priv.defs.inc:1016 etc/inc/priv.defs.inc:1010
+#: etc/inc/priv.defs.inc:1016
msgid "WebCfg - System: Advanced: Tunables page"
msgstr ""
#: etc/inc/priv.defs.inc:979 etc/inc/priv.defs.inc:985
#: etc/inc/priv.defs.inc:997 etc/inc/priv.defs.inc:1003
-#: etc/inc/priv.defs.inc:1003 etc/inc/priv.defs.inc:1009
+#: etc/inc/priv.defs.inc:1009 etc/inc/priv.defs.inc:1011
+#: etc/inc/priv.defs.inc:1017 etc/inc/priv.defs.inc:1011
+#: etc/inc/priv.defs.inc:1017
msgid "Allow access to the 'System: Advanced: Tunables' page."
msgstr ""
#: etc/inc/priv.defs.inc:990 etc/inc/priv.defs.inc:1008
-#: etc/inc/priv.defs.inc:1014
+#: etc/inc/priv.defs.inc:1014 etc/inc/priv.defs.inc:1022
+#: etc/inc/priv.defs.inc:1022
msgid "WebCfg - System: Authentication Servers"
msgstr ""
#: etc/inc/priv.defs.inc:991 etc/inc/priv.defs.inc:1009
-#: etc/inc/priv.defs.inc:1015
+#: etc/inc/priv.defs.inc:1015 etc/inc/priv.defs.inc:1023
+#: etc/inc/priv.defs.inc:1023
msgid "Allow access to the 'System: Authentication Servers' page."
msgstr ""
#: etc/inc/priv.defs.inc:996 etc/inc/priv.defs.inc:1014
-#: etc/inc/priv.defs.inc:1020
+#: etc/inc/priv.defs.inc:1020 etc/inc/priv.defs.inc:1028
+#: etc/inc/priv.defs.inc:1028
msgid "WebCfg - System: CA Manager"
msgstr ""
#: etc/inc/priv.defs.inc:997 etc/inc/priv.defs.inc:1015
-#: etc/inc/priv.defs.inc:1021
+#: etc/inc/priv.defs.inc:1021 etc/inc/priv.defs.inc:1029
+#: etc/inc/priv.defs.inc:1029
msgid "Allow access to the 'System: CA Manager' page."
msgstr ""
#: etc/inc/priv.defs.inc:1002 etc/inc/priv.defs.inc:1020
-#: etc/inc/priv.defs.inc:1026
+#: etc/inc/priv.defs.inc:1026 etc/inc/priv.defs.inc:1034
+#: etc/inc/priv.defs.inc:1034
msgid "WebCfg - System: Certificate Manager"
msgstr ""
#: etc/inc/priv.defs.inc:1003 etc/inc/priv.defs.inc:1021
-#: etc/inc/priv.defs.inc:1027
+#: etc/inc/priv.defs.inc:1027 etc/inc/priv.defs.inc:1035
+#: etc/inc/priv.defs.inc:1035
msgid "Allow access to the 'System: Certificate Manager' page."
msgstr ""
#: etc/inc/priv.defs.inc:1008 etc/inc/priv.defs.inc:1026
-#: etc/inc/priv.defs.inc:1032
+#: etc/inc/priv.defs.inc:1032 etc/inc/priv.defs.inc:1040
+#: etc/inc/priv.defs.inc:1040
msgid "WebCfg - System: CRL Manager"
msgstr ""
#: etc/inc/priv.defs.inc:1009 etc/inc/priv.defs.inc:1027
-#: etc/inc/priv.defs.inc:1033
+#: etc/inc/priv.defs.inc:1033 etc/inc/priv.defs.inc:1041
+#: etc/inc/priv.defs.inc:1041
msgid "Allow access to the 'System: CRL Manager' page."
msgstr ""
#: etc/inc/priv.defs.inc:1014 etc/inc/priv.defs.inc:1032
-#: etc/inc/priv.defs.inc:1038
+#: etc/inc/priv.defs.inc:1038 etc/inc/priv.defs.inc:1046
+#: etc/inc/priv.defs.inc:1046
msgid "WebCfg - System: Firmware: Manual Update page"
msgstr ""
#: etc/inc/priv.defs.inc:1015 etc/inc/priv.defs.inc:1033
-#: etc/inc/priv.defs.inc:1039
+#: etc/inc/priv.defs.inc:1039 etc/inc/priv.defs.inc:1047
+#: etc/inc/priv.defs.inc:1047
msgid "Allow access to the 'System: Firmware: Manual Update' page."
msgstr ""
#: etc/inc/priv.defs.inc:1020 etc/inc/priv.defs.inc:1038
-#: etc/inc/priv.defs.inc:1044
+#: etc/inc/priv.defs.inc:1044 etc/inc/priv.defs.inc:1052
+#: etc/inc/priv.defs.inc:1052
msgid "WebCfg - System: Firmware: Check For Update page"
msgstr ""
#: etc/inc/priv.defs.inc:1021 etc/inc/priv.defs.inc:1039
-#: etc/inc/priv.defs.inc:1045
+#: etc/inc/priv.defs.inc:1045 etc/inc/priv.defs.inc:1053
+#: etc/inc/priv.defs.inc:1053
msgid "Allow access to the 'System: Firmware: Check For Update' page."
msgstr ""
#: etc/inc/priv.defs.inc:1026 etc/inc/priv.defs.inc:1044
-#: etc/inc/priv.defs.inc:1050
+#: etc/inc/priv.defs.inc:1050 etc/inc/priv.defs.inc:1058
+#: etc/inc/priv.defs.inc:1058
msgid "WebCfg - System: Firmware: Auto Update page"
msgstr ""
#: etc/inc/priv.defs.inc:1027 etc/inc/priv.defs.inc:1045
-#: etc/inc/priv.defs.inc:1051
+#: etc/inc/priv.defs.inc:1051 etc/inc/priv.defs.inc:1059
+#: etc/inc/priv.defs.inc:1059
msgid "Allow access to the 'System: Firmware: Auto Update' page."
msgstr ""
#: etc/inc/priv.defs.inc:1032 etc/inc/priv.defs.inc:1050
-#: etc/inc/priv.defs.inc:1056
+#: etc/inc/priv.defs.inc:1056 etc/inc/priv.defs.inc:1064
+#: etc/inc/priv.defs.inc:1064
msgid "WebCfg - System: Firmware: Settings page"
msgstr ""
#: etc/inc/priv.defs.inc:1033 etc/inc/priv.defs.inc:1051
-#: etc/inc/priv.defs.inc:1057
+#: etc/inc/priv.defs.inc:1057 etc/inc/priv.defs.inc:1065
+#: etc/inc/priv.defs.inc:1065
msgid "Allow access to the 'System: Firmware: Settings' page."
msgstr ""
#: etc/inc/priv.defs.inc:1038 etc/inc/priv.defs.inc:1056
-#: etc/inc/priv.defs.inc:1062
+#: etc/inc/priv.defs.inc:1062 etc/inc/priv.defs.inc:1070
+#: etc/inc/priv.defs.inc:1070
msgid "WebCfg - System: Gateway Groups page"
msgstr ""
#: etc/inc/priv.defs.inc:1039 etc/inc/priv.defs.inc:1057
-#: etc/inc/priv.defs.inc:1063
+#: etc/inc/priv.defs.inc:1063 etc/inc/priv.defs.inc:1071
+#: etc/inc/priv.defs.inc:1071
msgid "Allow access to the 'System: Gateway Groups' page."
msgstr ""
#: etc/inc/priv.defs.inc:1044 etc/inc/priv.defs.inc:1062
-#: etc/inc/priv.defs.inc:1068
+#: etc/inc/priv.defs.inc:1068 etc/inc/priv.defs.inc:1076
+#: etc/inc/priv.defs.inc:1076
msgid "WebCfg - System: Gateways: Edit Gateway Groups page"
msgstr ""
#: etc/inc/priv.defs.inc:1045 etc/inc/priv.defs.inc:1063
-#: etc/inc/priv.defs.inc:1069
+#: etc/inc/priv.defs.inc:1069 etc/inc/priv.defs.inc:1077
+#: etc/inc/priv.defs.inc:1077
msgid "Allow access to the 'System: Gateways: Edit Gateway Groups' page."
msgstr ""
#: etc/inc/priv.defs.inc:1050 etc/inc/priv.defs.inc:1068
-#: etc/inc/priv.defs.inc:1074
+#: etc/inc/priv.defs.inc:1074 etc/inc/priv.defs.inc:1082
+#: etc/inc/priv.defs.inc:1082
msgid "WebCfg - System: Gateways page"
msgstr ""
#: etc/inc/priv.defs.inc:1051 etc/inc/priv.defs.inc:1069
-#: etc/inc/priv.defs.inc:1075
+#: etc/inc/priv.defs.inc:1075 etc/inc/priv.defs.inc:1083
+#: etc/inc/priv.defs.inc:1083
msgid "Allow access to the 'System: Gateways' page."
msgstr ""
#: etc/inc/priv.defs.inc:1056 etc/inc/priv.defs.inc:1074
-#: etc/inc/priv.defs.inc:1080
+#: etc/inc/priv.defs.inc:1080 etc/inc/priv.defs.inc:1088
+#: etc/inc/priv.defs.inc:1088
msgid "WebCfg - System: Gateways: Edit Gateway page"
msgstr ""
#: etc/inc/priv.defs.inc:1057 etc/inc/priv.defs.inc:1075
-#: etc/inc/priv.defs.inc:1081
+#: etc/inc/priv.defs.inc:1081 etc/inc/priv.defs.inc:1089
+#: etc/inc/priv.defs.inc:1089
msgid "Allow access to the 'System: Gateways: Edit Gateway' page."
msgstr ""
#: etc/inc/priv.defs.inc:1062 etc/inc/priv.defs.inc:1080
-#: etc/inc/priv.defs.inc:1086
+#: etc/inc/priv.defs.inc:1086 etc/inc/priv.defs.inc:1094
+#: etc/inc/priv.defs.inc:1094
msgid "WebCfg - System: Group manager page"
msgstr ""
#: etc/inc/priv.defs.inc:1063 etc/inc/priv.defs.inc:1081
-#: etc/inc/priv.defs.inc:1087
+#: etc/inc/priv.defs.inc:1087 etc/inc/priv.defs.inc:1095
+#: etc/inc/priv.defs.inc:1095
msgid "Allow access to the 'System: Group manager' page."
msgstr ""
#: etc/inc/priv.defs.inc:1068 etc/inc/priv.defs.inc:1086
-#: etc/inc/priv.defs.inc:1092
+#: etc/inc/priv.defs.inc:1092 etc/inc/priv.defs.inc:1100
+#: etc/inc/priv.defs.inc:1100
msgid "WebCfg - System: Group Manager: Add Privileges page"
msgstr ""
#: etc/inc/priv.defs.inc:1069 etc/inc/priv.defs.inc:1087
-#: etc/inc/priv.defs.inc:1093
+#: etc/inc/priv.defs.inc:1093 etc/inc/priv.defs.inc:1101
+#: etc/inc/priv.defs.inc:1101
msgid "Allow access to the 'System: Group Manager: Add Privileges' page."
msgstr ""
#: etc/inc/priv.defs.inc:1074 etc/inc/priv.defs.inc:1092
-#: etc/inc/priv.defs.inc:1098
+#: etc/inc/priv.defs.inc:1098 etc/inc/priv.defs.inc:1106
+#: etc/inc/priv.defs.inc:1106
msgid "WebCfg - System: Static Routes page"
msgstr ""
#: etc/inc/priv.defs.inc:1075 etc/inc/priv.defs.inc:1093
-#: etc/inc/priv.defs.inc:1099
+#: etc/inc/priv.defs.inc:1099 etc/inc/priv.defs.inc:1107
+#: etc/inc/priv.defs.inc:1107
msgid "Allow access to the 'System: Static Routes' page."
msgstr ""
#: etc/inc/priv.defs.inc:1080 etc/inc/priv.defs.inc:1098
-#: etc/inc/priv.defs.inc:1104
+#: etc/inc/priv.defs.inc:1104 etc/inc/priv.defs.inc:1112
+#: etc/inc/priv.defs.inc:1112
msgid "WebCfg - System: Static Routes: Edit route page"
msgstr ""
#: etc/inc/priv.defs.inc:1081 etc/inc/priv.defs.inc:1099
-#: etc/inc/priv.defs.inc:1105
+#: etc/inc/priv.defs.inc:1105 etc/inc/priv.defs.inc:1113
+#: etc/inc/priv.defs.inc:1113
msgid "Allow access to the 'System: Static Routes: Edit route' page."
msgstr ""
#: etc/inc/priv.defs.inc:1086 etc/inc/priv.defs.inc:1104
-#: etc/inc/priv.defs.inc:1110
+#: etc/inc/priv.defs.inc:1110 etc/inc/priv.defs.inc:1118
+#: etc/inc/priv.defs.inc:1118
msgid "WebCfg - System: User Manager page"
msgstr ""
#: etc/inc/priv.defs.inc:1087 etc/inc/priv.defs.inc:1105
-#: etc/inc/priv.defs.inc:1111
+#: etc/inc/priv.defs.inc:1111 etc/inc/priv.defs.inc:1119
+#: etc/inc/priv.defs.inc:1119
msgid "Allow access to the 'System: User Manager' page."
msgstr ""
#: etc/inc/priv.defs.inc:1092 etc/inc/priv.defs.inc:1110
-#: etc/inc/priv.defs.inc:1116
+#: etc/inc/priv.defs.inc:1116 etc/inc/priv.defs.inc:1124
+#: etc/inc/priv.defs.inc:1124
msgid "WebCfg - System: User Manager: Add Privileges page"
msgstr ""
#: etc/inc/priv.defs.inc:1093 etc/inc/priv.defs.inc:1111
-#: etc/inc/priv.defs.inc:1117
+#: etc/inc/priv.defs.inc:1117 etc/inc/priv.defs.inc:1125
+#: etc/inc/priv.defs.inc:1125
msgid "Allow access to the 'System: User Manager: Add Privileges' page."
msgstr ""
#: etc/inc/priv.defs.inc:1098 etc/inc/priv.defs.inc:1116
-#: etc/inc/priv.defs.inc:1122
+#: etc/inc/priv.defs.inc:1122 etc/inc/priv.defs.inc:1130
+#: etc/inc/priv.defs.inc:1130
msgid "WebCfg - System: User Password Manager page"
msgstr ""
#: etc/inc/priv.defs.inc:1099 etc/inc/priv.defs.inc:1117
-#: etc/inc/priv.defs.inc:1123
+#: etc/inc/priv.defs.inc:1123 etc/inc/priv.defs.inc:1131
+#: etc/inc/priv.defs.inc:1131
msgid "Allow access to the 'System: User Password Manager' page."
msgstr ""
@@ -5112,223 +6100,267 @@ msgid "Allow access to the 'System: User manager: settings' page."
msgstr ""
#: etc/inc/priv.defs.inc:1110 etc/inc/priv.defs.inc:1128
-#: etc/inc/priv.defs.inc:1134
+#: etc/inc/priv.defs.inc:1134 etc/inc/priv.defs.inc:1142
+#: etc/inc/priv.defs.inc:1142
msgid "WebCfg - System: User Manager: Settings: Test LDAP page"
msgstr ""
#: etc/inc/priv.defs.inc:1111 etc/inc/priv.defs.inc:1129
-#: etc/inc/priv.defs.inc:1135
+#: etc/inc/priv.defs.inc:1135 etc/inc/priv.defs.inc:1143
+#: etc/inc/priv.defs.inc:1143
msgid "Allow access to the 'System: User Manager: Settings: Test LDAP' page."
msgstr ""
#: etc/inc/priv.defs.inc:1116 etc/inc/priv.defs.inc:1134
-#: etc/inc/priv.defs.inc:1140
+#: etc/inc/priv.defs.inc:1140 etc/inc/priv.defs.inc:1148
+#: etc/inc/priv.defs.inc:1148
msgid "WebCfg - System: Firmware: Manual Update page (progress bar)"
msgstr ""
#: etc/inc/priv.defs.inc:1117 etc/inc/priv.defs.inc:1135
-#: etc/inc/priv.defs.inc:1141
+#: etc/inc/priv.defs.inc:1141 etc/inc/priv.defs.inc:1149
+#: etc/inc/priv.defs.inc:1149
msgid ""
"Allow access to the 'System: Firmware: Manual Update: Progress bar' page."
msgstr ""
#: etc/inc/priv.defs.inc:1122 etc/inc/priv.defs.inc:1140
-#: etc/inc/priv.defs.inc:1146
+#: etc/inc/priv.defs.inc:1146 etc/inc/priv.defs.inc:1154
+#: etc/inc/priv.defs.inc:1154
msgid "WebCfg - Hidden: Upload Configuration page"
msgstr ""
#: etc/inc/priv.defs.inc:1123 etc/inc/priv.defs.inc:1141
-#: etc/inc/priv.defs.inc:1147
+#: etc/inc/priv.defs.inc:1147 etc/inc/priv.defs.inc:1155
+#: etc/inc/priv.defs.inc:1155
msgid "Allow access to the 'Hidden: Upload Configuration' page."
msgstr ""
#: etc/inc/priv.defs.inc:1128 etc/inc/priv.defs.inc:1146
-#: etc/inc/priv.defs.inc:1152
+#: etc/inc/priv.defs.inc:1152 etc/inc/priv.defs.inc:1160
+#: etc/inc/priv.defs.inc:1160
msgid "WebCfg - VPN: IPsec page"
msgstr ""
#: etc/inc/priv.defs.inc:1129 etc/inc/priv.defs.inc:1147
-#: etc/inc/priv.defs.inc:1153
+#: etc/inc/priv.defs.inc:1153 etc/inc/priv.defs.inc:1161
+#: etc/inc/priv.defs.inc:1161
msgid "Allow access to the 'VPN: IPsec' page."
msgstr ""
#: etc/inc/priv.defs.inc:1134 etc/inc/priv.defs.inc:1152
-#: etc/inc/priv.defs.inc:1158
+#: etc/inc/priv.defs.inc:1158 etc/inc/priv.defs.inc:1166
+#: etc/inc/priv.defs.inc:1166
msgid "WebCfg - VPN: IPsec: Pre-Shared Keys List"
msgstr ""
#: etc/inc/priv.defs.inc:1135 etc/inc/priv.defs.inc:1153
-#: etc/inc/priv.defs.inc:1159
+#: etc/inc/priv.defs.inc:1159 etc/inc/priv.defs.inc:1167
+#: etc/inc/priv.defs.inc:1167
msgid "Allow access to the 'VPN: IPsec: Pre-Shared Keys List' page."
msgstr ""
#: etc/inc/priv.defs.inc:1140 etc/inc/priv.defs.inc:1158
-#: etc/inc/priv.defs.inc:1164
+#: etc/inc/priv.defs.inc:1164 etc/inc/priv.defs.inc:1172
+#: etc/inc/priv.defs.inc:1172
msgid "WebCfg - VPN: IPsec: Edit Pre-Shared Keys"
msgstr ""
#: etc/inc/priv.defs.inc:1141 etc/inc/priv.defs.inc:1159
-#: etc/inc/priv.defs.inc:1165
+#: etc/inc/priv.defs.inc:1165 etc/inc/priv.defs.inc:1173
+#: etc/inc/priv.defs.inc:1173
msgid "Allow access to the 'VPN: IPsec: Edit Pre-Shared Keys' page."
msgstr ""
#: etc/inc/priv.defs.inc:1146 etc/inc/priv.defs.inc:1164
-#: etc/inc/priv.defs.inc:1170
+#: etc/inc/priv.defs.inc:1170 etc/inc/priv.defs.inc:1178
+#: etc/inc/priv.defs.inc:1178
msgid "WebCfg - VPN: IPsec: Mobile page"
msgstr ""
#: etc/inc/priv.defs.inc:1147 etc/inc/priv.defs.inc:1165
-#: etc/inc/priv.defs.inc:1171
+#: etc/inc/priv.defs.inc:1171 etc/inc/priv.defs.inc:1179
+#: etc/inc/priv.defs.inc:1179
msgid "Allow access to the 'VPN: IPsec: Mobile' page."
msgstr ""
#: etc/inc/priv.defs.inc:1152 etc/inc/priv.defs.inc:1170
-#: etc/inc/priv.defs.inc:1176
+#: etc/inc/priv.defs.inc:1176 etc/inc/priv.defs.inc:1184
+#: etc/inc/priv.defs.inc:1184
msgid "WebCfg - VPN: IPsec: Edit Phase 1 page"
msgstr ""
#: etc/inc/priv.defs.inc:1153 etc/inc/priv.defs.inc:1171
-#: etc/inc/priv.defs.inc:1177
+#: etc/inc/priv.defs.inc:1177 etc/inc/priv.defs.inc:1185
+#: etc/inc/priv.defs.inc:1185
msgid "Allow access to the 'VPN: IPsec: Edit Phase 1' page."
msgstr ""
#: etc/inc/priv.defs.inc:1158 etc/inc/priv.defs.inc:1176
-#: etc/inc/priv.defs.inc:1182
+#: etc/inc/priv.defs.inc:1182 etc/inc/priv.defs.inc:1190
+#: etc/inc/priv.defs.inc:1190
msgid "WebCfg - VPN: IPsec: Edit Phase 2 page"
msgstr ""
#: etc/inc/priv.defs.inc:1159 etc/inc/priv.defs.inc:1177
-#: etc/inc/priv.defs.inc:1183
+#: etc/inc/priv.defs.inc:1183 etc/inc/priv.defs.inc:1191
+#: etc/inc/priv.defs.inc:1191
msgid "Allow access to the 'VPN: IPsec: Edit Phase 2' page."
msgstr ""
#: etc/inc/priv.defs.inc:1164 etc/inc/priv.defs.inc:1182
-#: etc/inc/priv.defs.inc:1188
+#: etc/inc/priv.defs.inc:1188 etc/inc/priv.defs.inc:1196
+#: etc/inc/priv.defs.inc:1196
msgid "WebCfg - VPN: VPN L2TP page"
msgstr ""
#: etc/inc/priv.defs.inc:1165 etc/inc/priv.defs.inc:1183
-#: etc/inc/priv.defs.inc:1189
+#: etc/inc/priv.defs.inc:1189 etc/inc/priv.defs.inc:1197
+#: etc/inc/priv.defs.inc:1197
msgid "Allow access to the 'VPN: VPN L2TP' page."
msgstr ""
#: etc/inc/priv.defs.inc:1170 etc/inc/priv.defs.inc:1188
-#: etc/inc/priv.defs.inc:1194
+#: etc/inc/priv.defs.inc:1194 etc/inc/priv.defs.inc:1202
+#: etc/inc/priv.defs.inc:1202
msgid "WebCfg - VPN: VPN L2TP : Users page"
msgstr ""
#: etc/inc/priv.defs.inc:1171 etc/inc/priv.defs.inc:1189
-#: etc/inc/priv.defs.inc:1195
+#: etc/inc/priv.defs.inc:1195 etc/inc/priv.defs.inc:1203
+#: etc/inc/priv.defs.inc:1203
msgid "Allow access to the 'VPN: VPN L2TP : Users' page."
msgstr ""
#: etc/inc/priv.defs.inc:1176 etc/inc/priv.defs.inc:1194
-#: etc/inc/priv.defs.inc:1200
+#: etc/inc/priv.defs.inc:1200 etc/inc/priv.defs.inc:1208
+#: etc/inc/priv.defs.inc:1208
msgid "WebCfg - VPN: VPN L2TP : Users : Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:1177 etc/inc/priv.defs.inc:1195
-#: etc/inc/priv.defs.inc:1201
+#: etc/inc/priv.defs.inc:1201 etc/inc/priv.defs.inc:1209
+#: etc/inc/priv.defs.inc:1209
msgid "Allow access to the 'VPN: VPN L2TP : Users : Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:1182 etc/inc/priv.defs.inc:1200
-#: etc/inc/priv.defs.inc:1206
+#: etc/inc/priv.defs.inc:1206 etc/inc/priv.defs.inc:1214
+#: etc/inc/priv.defs.inc:1214
msgid "WebCfg - OpenVPN: Client page"
msgstr ""
#: etc/inc/priv.defs.inc:1183 etc/inc/priv.defs.inc:1201
-#: etc/inc/priv.defs.inc:1207
+#: etc/inc/priv.defs.inc:1207 etc/inc/priv.defs.inc:1215
+#: etc/inc/priv.defs.inc:1215
msgid "Allow access to the 'OpenVPN: Client' page."
msgstr ""
#: etc/inc/priv.defs.inc:1188 etc/inc/priv.defs.inc:1206
-#: etc/inc/priv.defs.inc:1212
+#: etc/inc/priv.defs.inc:1212 etc/inc/priv.defs.inc:1220
+#: etc/inc/priv.defs.inc:1220
msgid "WebCfg - OpenVPN: Client Specific Override page"
msgstr ""
#: etc/inc/priv.defs.inc:1189 etc/inc/priv.defs.inc:1207
-#: etc/inc/priv.defs.inc:1213
+#: etc/inc/priv.defs.inc:1213 etc/inc/priv.defs.inc:1221
+#: etc/inc/priv.defs.inc:1221
msgid "Allow access to the 'OpenVPN: Client Specific Override' page."
msgstr ""
#: etc/inc/priv.defs.inc:1194 etc/inc/priv.defs.inc:1212
-#: etc/inc/priv.defs.inc:1218
+#: etc/inc/priv.defs.inc:1218 etc/inc/priv.defs.inc:1226
+#: etc/inc/priv.defs.inc:1226
msgid "WebCfg - OpenVPN: Server page"
msgstr ""
#: etc/inc/priv.defs.inc:1195 etc/inc/priv.defs.inc:1213
-#: etc/inc/priv.defs.inc:1219
+#: etc/inc/priv.defs.inc:1219 etc/inc/priv.defs.inc:1227
+#: etc/inc/priv.defs.inc:1227
msgid "Allow access to the 'OpenVPN: Server' page."
msgstr ""
#: etc/inc/priv.defs.inc:1200 etc/inc/priv.defs.inc:1218
-#: etc/inc/priv.defs.inc:1224
+#: etc/inc/priv.defs.inc:1224 etc/inc/priv.defs.inc:1232
+#: etc/inc/priv.defs.inc:1232
msgid "WebCfg - Services: PPPoE Server page"
msgstr ""
#: etc/inc/priv.defs.inc:1201 etc/inc/priv.defs.inc:1219
-#: etc/inc/priv.defs.inc:1225
+#: etc/inc/priv.defs.inc:1225 etc/inc/priv.defs.inc:1233
+#: etc/inc/priv.defs.inc:1233
msgid "Allow access to the 'Services: PPPoE Server' page."
msgstr ""
#: etc/inc/priv.defs.inc:1206 etc/inc/priv.defs.inc:1224
-#: etc/inc/priv.defs.inc:1230
+#: etc/inc/priv.defs.inc:1230 etc/inc/priv.defs.inc:1238
+#: etc/inc/priv.defs.inc:1238
msgid "WebCfg - Services: PPPoE Server: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:1207 etc/inc/priv.defs.inc:1225
-#: etc/inc/priv.defs.inc:1231
+#: etc/inc/priv.defs.inc:1231 etc/inc/priv.defs.inc:1239
+#: etc/inc/priv.defs.inc:1239
msgid "Allow access to the 'Services: PPPoE Server: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:1212 etc/inc/priv.defs.inc:1230
-#: etc/inc/priv.defs.inc:1236
+#: etc/inc/priv.defs.inc:1236 etc/inc/priv.defs.inc:1244
+#: etc/inc/priv.defs.inc:1244
msgid "WebCfg - VPN: VPN PPTP page"
msgstr ""
#: etc/inc/priv.defs.inc:1213 etc/inc/priv.defs.inc:1231
-#: etc/inc/priv.defs.inc:1237
+#: etc/inc/priv.defs.inc:1237 etc/inc/priv.defs.inc:1245
+#: etc/inc/priv.defs.inc:1245
msgid "Allow access to the 'VPN: VPN PPTP' page."
msgstr ""
#: etc/inc/priv.defs.inc:1218 etc/inc/priv.defs.inc:1236
-#: etc/inc/priv.defs.inc:1242
+#: etc/inc/priv.defs.inc:1242 etc/inc/priv.defs.inc:1250
+#: etc/inc/priv.defs.inc:1250
msgid "WebCfg - VPN: VPN PPTP: Users page"
msgstr ""
#: etc/inc/priv.defs.inc:1219 etc/inc/priv.defs.inc:1237
-#: etc/inc/priv.defs.inc:1243
+#: etc/inc/priv.defs.inc:1243 etc/inc/priv.defs.inc:1251
+#: etc/inc/priv.defs.inc:1251
msgid "Allow access to the 'VPN: VPN PPTP: Users' page."
msgstr ""
#: etc/inc/priv.defs.inc:1224 etc/inc/priv.defs.inc:1242
-#: etc/inc/priv.defs.inc:1248
+#: etc/inc/priv.defs.inc:1248 etc/inc/priv.defs.inc:1256
+#: etc/inc/priv.defs.inc:1256
msgid "WebCfg - VPN: VPN PPTP: User: Edit page"
msgstr ""
#: etc/inc/priv.defs.inc:1225 etc/inc/priv.defs.inc:1243
-#: etc/inc/priv.defs.inc:1249
+#: etc/inc/priv.defs.inc:1249 etc/inc/priv.defs.inc:1257
+#: etc/inc/priv.defs.inc:1257
msgid "Allow access to the 'VPN: VPN PPTP: User: Edit' page."
msgstr ""
#: etc/inc/priv.defs.inc:1230 etc/inc/priv.defs.inc:1248
-#: etc/inc/priv.defs.inc:1254
+#: etc/inc/priv.defs.inc:1254 etc/inc/priv.defs.inc:1262
+#: etc/inc/priv.defs.inc:1262
msgid "WebCfg - pfSense wizard subsystem page"
msgstr ""
#: etc/inc/priv.defs.inc:1231 etc/inc/priv.defs.inc:1249
-#: etc/inc/priv.defs.inc:1255
+#: etc/inc/priv.defs.inc:1255 etc/inc/priv.defs.inc:1263
+#: etc/inc/priv.defs.inc:1263
msgid "Allow access to the 'pfSense wizard subsystem' page."
msgstr ""
#: etc/inc/priv.defs.inc:1236 etc/inc/priv.defs.inc:1254
-#: etc/inc/priv.defs.inc:1260
+#: etc/inc/priv.defs.inc:1260 etc/inc/priv.defs.inc:1268
+#: etc/inc/priv.defs.inc:1268
msgid "WebCfg - XMLRPC Library page"
msgstr ""
#: etc/inc/priv.defs.inc:1237 etc/inc/priv.defs.inc:1255
-#: etc/inc/priv.defs.inc:1261
+#: etc/inc/priv.defs.inc:1261 etc/inc/priv.defs.inc:1269
+#: etc/inc/priv.defs.inc:1269
msgid "Allow access to the 'XMLRPC Library' page."
msgstr ""
@@ -5337,24 +6369,24 @@ msgstr ""
msgid "RRD dump failed exited with %1$s, the error is: %2$s"
msgstr ""
-#: etc/inc/rrd.inc:56 etc/inc/rrd.inc:92 etc/inc/rrd.inc:92
+#: etc/inc/rrd.inc:56 etc/inc/rrd.inc:92 etc/inc/rrd.inc:96
#, php-format
msgid "RRD create failed exited with %1$s, the error is: %2$s"
msgstr ""
-#: etc/inc/rrd.inc:70 etc/inc/rrd.inc:106 etc/inc/rrd.inc:106
+#: etc/inc/rrd.inc:70 etc/inc/rrd.inc:106 etc/inc/rrd.inc:110
#, php-format
msgid ""
"Import RRD has %1$s DS values and %2$s RRA databases, new format RRD has "
"%3$s DS values and %4$s RRA databases"
msgstr ""
-#: etc/inc/rrd.inc:154 etc/inc/rrd.inc:190 etc/inc/rrd.inc:190
+#: etc/inc/rrd.inc:154 etc/inc/rrd.inc:190 etc/inc/rrd.inc:194
#, php-format
msgid "The new RRD now has %1$s DS values and %2$s RRA databases"
msgstr ""
-#: etc/inc/rrd.inc:162 etc/inc/rrd.inc:198 etc/inc/rrd.inc:198
+#: etc/inc/rrd.inc:162 etc/inc/rrd.inc:198 etc/inc/rrd.inc:202
msgid "Generating RRD graphs..."
msgstr ""
@@ -5363,7 +6395,8 @@ msgstr ""
msgid "RRD restore failed exited with %1$s, the error is: %2$s%3$s"
msgstr ""
-#: etc/inc/rrd.inc:758 etc/inc/rrd.inc:782 etc/inc/rrd.inc:782
+#: etc/inc/rrd.inc:758 etc/inc/rrd.inc:782 etc/inc/rrd.inc:803
+#: etc/inc/rrd.inc:805
msgid "Creating rrd update script"
msgstr ""
@@ -5515,52 +6548,52 @@ msgstr ""
msgid "Connected to SMTP server \"%s\"."
msgstr ""
-#: etc/inc/smtp.inc:517 etc/inc/smtp.inc:519
+#: etc/inc/smtp.inc:517 etc/inc/smtp.inc:519 etc/inc/smtp.inc:519
msgid "server does not require authentication"
msgstr ""
-#: etc/inc/smtp.inc:581 etc/inc/smtp.inc:583
+#: etc/inc/smtp.inc:581 etc/inc/smtp.inc:583 etc/inc/smtp.inc:583
msgid ""
"it is not supported any of the authentication mechanisms required by the "
"server"
msgstr ""
-#: etc/inc/smtp.inc:613 etc/inc/smtp.inc:615
+#: etc/inc/smtp.inc:613 etc/inc/smtp.inc:615 etc/inc/smtp.inc:615
msgid ""
"direct delivery connection is already established and sender is already set"
msgstr ""
-#: etc/inc/smtp.inc:621 etc/inc/smtp.inc:623
+#: etc/inc/smtp.inc:621 etc/inc/smtp.inc:623 etc/inc/smtp.inc:623
msgid "connection is not in the initial state"
msgstr ""
-#: etc/inc/smtp.inc:643 etc/inc/smtp.inc:645
+#: etc/inc/smtp.inc:643 etc/inc/smtp.inc:645 etc/inc/smtp.inc:645
msgid "it was not specified a valid direct recipient"
msgstr ""
-#: etc/inc/smtp.inc:662 etc/inc/smtp.inc:664
+#: etc/inc/smtp.inc:662 etc/inc/smtp.inc:664 etc/inc/smtp.inc:664
msgid ""
"it is not possible to deliver directly to recipients of different domains"
msgstr ""
-#: etc/inc/smtp.inc:667 etc/inc/smtp.inc:669
+#: etc/inc/smtp.inc:667 etc/inc/smtp.inc:669 etc/inc/smtp.inc:669
msgid "connection is already established and the recipient is already set"
msgstr ""
-#: etc/inc/smtp.inc:679 etc/inc/smtp.inc:681
+#: etc/inc/smtp.inc:679 etc/inc/smtp.inc:681 etc/inc/smtp.inc:681
msgid "connection is not in the recipient setting state"
msgstr ""
-#: etc/inc/smtp.inc:708 etc/inc/smtp.inc:710
+#: etc/inc/smtp.inc:708 etc/inc/smtp.inc:710 etc/inc/smtp.inc:710
msgid "connection is not in the start sending data state"
msgstr ""
#: etc/inc/smtp.inc:738 etc/inc/smtp.inc:749 etc/inc/smtp.inc:740
-#: etc/inc/smtp.inc:751
+#: etc/inc/smtp.inc:751 etc/inc/smtp.inc:740 etc/inc/smtp.inc:751
msgid "connection is not in the sending data state"
msgstr ""
-#: etc/inc/smtp.inc:785 etc/inc/smtp.inc:787
+#: etc/inc/smtp.inc:785 etc/inc/smtp.inc:787 etc/inc/smtp.inc:787
msgid "it was not previously established a SMTP connection"
msgstr ""
@@ -5735,74 +6768,82 @@ msgstr ""
msgid "Interface %s Dynamic Gateway"
msgstr ""
-#: etc/inc/upgrade_config.inc:810 etc/inc/upgrade_config.inc:810
+#: etc/inc/upgrade_config.inc:810 etc/inc/upgrade_config.inc:811
+#: etc/inc/upgrade_config.inc:811
#, php-format
msgid "Upgraded static route for %s"
msgstr ""
-#: etc/inc/upgrade_config.inc:907 etc/inc/upgrade_config.inc:907
+#: etc/inc/upgrade_config.inc:907 etc/inc/upgrade_config.inc:908
+#: etc/inc/upgrade_config.inc:908
#, php-format
msgid "Sitedown pool for VS: %s"
msgstr ""
#: etc/inc/upgrade_config.inc:1060 etc/inc/upgrade_config.inc:1062
+#: etc/inc/upgrade_config.inc:1063 etc/inc/upgrade_config.inc:1063
#, php-format
msgid "phase2 for %s"
msgstr ""
#: etc/inc/upgrade_config.inc:1287 etc/inc/upgrade_config.inc:1289
+#: etc/inc/upgrade_config.inc:1290 etc/inc/upgrade_config.inc:1290
#, php-format
msgid "Upgraded Dyndns %s"
msgstr ""
#: etc/inc/upgrade_config.inc:1339 etc/inc/upgrade_config.inc:1341
+#: etc/inc/upgrade_config.inc:1342 etc/inc/upgrade_config.inc:1342
msgid "All Users"
msgstr ""
#: etc/inc/upgrade_config.inc:1471 etc/inc/upgrade_config.inc:1473
+#: etc/inc/upgrade_config.inc:1474 etc/inc/upgrade_config.inc:1474
#, php-format
msgid "Converted bridged %s"
msgstr ""
#: etc/inc/upgrade_config.inc:1797 etc/inc/upgrade_config.inc:1845
-#: etc/inc/upgrade_config.inc:1847
+#: etc/inc/upgrade_config.inc:1847 etc/inc/upgrade_config.inc:1848
+#: etc/inc/upgrade_config.inc:1848
msgid "Auto added OpenVPN rule from config upgrade."
msgstr ""
-#: etc/inc/voucher.inc:364 etc/inc/voucher.inc:364
+#: etc/inc/voucher.inc:364 etc/inc/voucher.inc:367 etc/inc/voucher.inc:367
#, php-format
msgid "%1$s (%2$s/%3$s) active and good for %4$d Minutes"
msgstr ""
-#: etc/inc/voucher.inc:401 etc/inc/voucher.inc:401
+#: etc/inc/voucher.inc:401 etc/inc/voucher.inc:404 etc/inc/voucher.inc:404
msgid "Access denied!"
msgstr ""
-#: etc/inc/voucher.inc:403 etc/inc/voucher.inc:403
+#: etc/inc/voucher.inc:403 etc/inc/voucher.inc:406 etc/inc/voucher.inc:406
#, php-format
msgid "Access granted for %d Minutes in total."
msgstr ""
-#: etc/inc/voucher.inc:466 etc/inc/voucher.inc:466
+#: etc/inc/voucher.inc:466 etc/inc/voucher.inc:469 etc/inc/voucher.inc:469
msgid "Enabling voucher support... "
msgstr ""
-#: etc/inc/voucher.inc:505 etc/inc/voucher.inc:505
+#: etc/inc/voucher.inc:505 etc/inc/voucher.inc:508 etc/inc/voucher.inc:508
#, php-format
msgid "Error: cannot write voucher.cfg"
msgstr ""
-#: etc/inc/voucher.inc:556 etc/inc/voucher.inc:556
+#: etc/inc/voucher.inc:556 etc/inc/voucher.inc:559 etc/inc/voucher.inc:559
#, php-format
msgid "cant write %1$s/voucher_%s_used_%2$s.db"
msgstr ""
-#: etc/inc/voucher.inc:635 etc/inc/voucher.inc:635
+#: etc/inc/voucher.inc:635 etc/inc/voucher.inc:638 etc/inc/voucher.inc:638
#, php-format
msgid "cant read %1$s/voucher_%s_used_%2$s.db"
msgstr ""
-#: etc/inc/voucher.inc:653 etc/inc/voucher.inc:652 etc/inc/voucher.inc:652
+#: etc/inc/voucher.inc:653 etc/inc/voucher.inc:652 etc/inc/voucher.inc:655
+#: etc/inc/voucher.inc:655
#, php-format
msgid "Voucher: %s"
msgstr ""
@@ -5872,51 +6913,77 @@ msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:136
#: usr/local/www/services_ntpd.php:71 usr/local/www/services_dhcp_edit.php:193
#: usr/local/www/load_balancer_pool_edit.php:159
-#: usr/local/www/services_dhcpv6.php:386 usr/local/www/vpn_pppoe_edit.php:234
-#: usr/local/www/services_rfc2136.php:55
-#: usr/local/www/services_dnsmasq.php:119
+#: usr/local/www/services_dhcpv6.php:386
#: usr/local/www/services_captiveportal_vouchers.php:82
-#: usr/local/www/services_dyndns_edit.php:156 usr/local/www/fbegin.inc:197
-#: usr/local/www/fbegin.inc:307 usr/local/www/services_dnsmasq_edit.php:166
-#: usr/local/www/load_balancer_relay_protocol_edit.php:137
+#: usr/local/www/fbegin.inc:197 usr/local/www/fbegin.inc:307
#: usr/local/www/services_captiveportal_vouchers_edit.php:45
-#: usr/local/www/services_dhcpv6_edit.php:175
#: usr/local/www/services_router_advertisements.php:194
#: usr/local/www/services_captiveportal_ip.php:61
-#: usr/local/www/load_balancer_setting.php:98
-#: usr/local/www/services_dhcp_relay.php:100
#: usr/local/www/services_captiveportal_hostname_edit.php:59
-#: usr/local/www/services_wol_edit.php:112
-#: usr/local/www/load_balancer_relay_action_edit.php:180
-#: usr/local/www/services_unbound.php:102
-#: usr/local/www/services_unbound_advanced.php:88
-#: usr/local/www/load_balancer_monitor_edit.php:193
#: usr/local/www/services_captiveportal_mac.php:60
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:118
#: usr/local/www/services_captiveportal_mac_edit.php:57
-#: usr/local/www/services_rfc2136_edit.php:109
#: usr/local/www/services_captiveportal_hostname.php:63
-#: usr/local/www/load_balancer_virtual_server.php:94
#: usr/local/www/status_services.php:222
#: usr/local/www/services_captiveportal.php:60
-#: usr/local/www/services_dhcpv6_relay.php:101
-#: usr/local/www/services_igmpproxy.php:80
#: usr/local/www/services_captiveportal_filemanager.php:71
-#: usr/local/www/load_balancer_monitor.php:88
-#: usr/local/www/services_dyndns.php:85
#: usr/local/www/services_captiveportal_ip_edit.php:60
-#: usr/local/www/load_balancer_relay_protocol.php:100
-#: usr/local/www/services_dhcp.php:527
+#: usr/local/www/services_dhcp.php:527 usr/local/www/services_ntpd.php:76
+#: usr/local/www/services_captiveportal_zones_edit.php:45
+#: usr/local/www/services_dhcpv6.php:367
+#: usr/local/www/system_authservers.php:187
+#: usr/local/www/status_services.php:220
+#: usr/local/www/services_dhcpv6_edit.php:178
+#: usr/local/www/services_dyndns_edit.php:160
+#: usr/local/www/services_dhcp_edit.php:301
+#: usr/local/www/services_captiveportal_vouchers.php:89
+#: usr/local/www/vpn_pppoe_edit.php:237 usr/local/www/services_dhcp.php:526
+#: usr/local/www/services_dhcpv6.php:362
+#: usr/local/www/system_authservers.php:188 usr/local/www/fbegin.inc:188
+#: usr/local/www/fbegin.inc:299 usr/local/www/services_dnsmasq.php:123
+#: usr/local/www/services_dyndns.php:64 usr/local/www/services_snmp.php:165
+#: usr/local/www/services_rfc2136.php:55 usr/local/www/status_services.php:63
+#: usr/local/www/services_router_advertisements.php:189
+#: usr/local/www/services_captiveportal_ip_edit.php:60
+#: usr/local/www/load_balancer_relay_protocol_edit.php:137
+#: usr/local/www/services_captiveportal_zones_edit.php:45
+#: usr/local/www/services_dhcpv6_edit.php:178
+#: usr/local/www/services_dyndns_edit.php:162
+#: usr/local/www/services_wol.php:115
#: usr/local/www/load_balancer_virtual_server_edit.php:136
+#: usr/local/www/services_captiveportal_ip.php:61
+#: usr/local/www/services_captiveportal_hostname_edit.php:59
+#: usr/local/www/services_dhcp_edit.php:301
+#: usr/local/www/services_wol_edit.php:112
+#: usr/local/www/load_balancer_relay_protocol.php:100
#: usr/local/www/services_ntpd.php:76
+#: usr/local/www/services_dhcpv6_relay.php:101
+#: usr/local/www/services_captiveportal_vouchers.php:89
#: usr/local/www/load_balancer_relay_action.php:104
-#: usr/local/www/services_wol.php:115
-#: usr/local/www/services_captiveportal_zones_edit.php:45
-#: usr/local/www/services_dhcp_edit.php:193
+#: usr/local/www/vpn_pppoe_edit.php:237 usr/local/www/services_dhcp.php:546
+#: usr/local/www/services_captiveportal_vouchers_edit.php:45
+#: usr/local/www/load_balancer_setting.php:98
+#: usr/local/www/load_balancer_relay_action_edit.php:180
+#: usr/local/www/services_captiveportal_mac_edit.php:57
+#: usr/local/www/load_balancer_pool.php:97
+#: usr/local/www/services_captiveportal_hostname.php:63
+#: usr/local/www/services_dhcpv6.php:362
+#: usr/local/www/services_captiveportal_filemanager.php:71
+#: usr/local/www/load_balancer_monitor_edit.php:193
+#: usr/local/www/system_authservers.php:188
+#: usr/local/www/services_captiveportal.php:60
+#: usr/local/www/services_igmpproxy.php:80
+#: usr/local/www/services_dnsmasq_edit.php:166 usr/local/www/fbegin.inc:188
+#: usr/local/www/fbegin.inc:299 usr/local/www/load_balancer_monitor.php:88
+#: usr/local/www/services_rfc2136_edit.php:109
+#: usr/local/www/services_dnsmasq.php:125
+#: usr/local/www/services_captiveportal_mac.php:60
+#: usr/local/www/load_balancer_virtual_server.php:94
#: usr/local/www/load_balancer_pool_edit.php:159
-#: usr/local/www/services_snmp.php:159 usr/local/www/load_balancer_pool.php:97
-#: usr/local/www/services_dhcpv6.php:367
-#: usr/local/www/system_authservers.php:187
+#: usr/local/www/services_dyndns.php:60
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:118
+#: usr/local/www/services_dhcp_relay.php:100
+#: usr/local/www/services_snmp.php:165
msgid "Services"
msgstr ""
@@ -5952,30 +7019,44 @@ msgstr ""
#: usr/local/www/diag_logs_filter_dynamic.php:105
#: usr/local/www/diag_logs_routing.php:73
#: usr/local/www/diag_logs_settings.php:229 usr/local/www/fbegin.inc:156
-#: usr/local/www/fbegin.inc:190 usr/local/www/status_lb_vs.php:56
-#: usr/local/www/diag_logs_relayd.php:55 usr/local/www/diag_logs_relayd.php:74
-#: usr/local/www/load_balancer_relay_protocol_edit.php:137
-#: usr/local/www/load_balancer_setting.php:98
-#: usr/local/www/diag_logs_auth.php:73
-#: usr/local/www/load_balancer_relay_action_edit.php:180
-#: usr/local/www/diag_logs_ipsec.php:110
-#: usr/local/www/load_balancer_monitor_edit.php:193
-#: usr/local/www/status_lb_pool.php:62 usr/local/www/diag_logs_vpn.php:133
-#: usr/local/www/diag_logs_ppp.php:77 usr/local/www/diag_logs_resolver.php:86
-#: usr/local/www/diag_logs_ntpd.php:73 usr/local/www/diag_logs.php:84
-#: usr/local/www/load_balancer_virtual_server.php:94
+#: usr/local/www/fbegin.inc:190 usr/local/www/diag_logs_relayd.php:74
+#: usr/local/www/diag_logs_auth.php:73 usr/local/www/diag_logs_ipsec.php:110
+#: usr/local/www/diag_logs_resolver.php:86 usr/local/www/diag_logs_ntpd.php:73
#: usr/local/www/diag_logs_dhcp.php:78 usr/local/www/diag_logs_wireless.php:75
-#: usr/local/www/load_balancer_monitor.php:88
-#: usr/local/www/load_balancer_relay_protocol.php:100
#: usr/local/www/diag_logs_filter_summary.php:192
-#: usr/local/www/load_balancer_virtual_server_edit.php:136
-#: usr/local/www/load_balancer_relay_action.php:104
#: usr/local/www/diag_logs_gateways.php:86
#: usr/local/www/diag_logs_openvpn.php:77
-#: usr/local/www/load_balancer_pool_edit.php:159
#: usr/local/www/diag_logs_filter_dynamic.php:106
-#: usr/local/www/load_balancer_pool.php:97
#: usr/local/www/diag_logs_filter.php:98
+#: usr/local/www/diag_logs_filter_dynamic.php:104
+#: usr/local/www/diag_logs_ppp.php:75 usr/local/www/fbegin.inc:148
+#: usr/local/www/fbegin.inc:181
+#: usr/local/www/load_balancer_relay_protocol_edit.php:137
+#: usr/local/www/diag_logs_auth.php:73
+#: usr/local/www/diag_logs_settings.php:229
+#: usr/local/www/load_balancer_virtual_server_edit.php:136
+#: usr/local/www/diag_logs_filter.php:128
+#: usr/local/www/diag_logs_routing.php:73 usr/local/www/diag_logs_dhcp.php:78
+#: usr/local/www/load_balancer_relay_protocol.php:100
+#: usr/local/www/diag_logs.php:84
+#: usr/local/www/diag_logs_filter_dynamic.php:104
+#: usr/local/www/diag_logs_ntpd.php:73
+#: usr/local/www/load_balancer_relay_action.php:104
+#: usr/local/www/diag_logs_openvpn.php:77 usr/local/www/status_lb_pool.php:62
+#: usr/local/www/load_balancer_setting.php:98
+#: usr/local/www/load_balancer_relay_action_edit.php:180
+#: usr/local/www/diag_logs_ppp.php:75 usr/local/www/load_balancer_pool.php:97
+#: usr/local/www/diag_logs_gateways.php:86
+#: usr/local/www/load_balancer_monitor_edit.php:193
+#: usr/local/www/fbegin.inc:148 usr/local/www/fbegin.inc:181
+#: usr/local/www/diag_logs_relayd.php:55 usr/local/www/diag_logs_relayd.php:74
+#: usr/local/www/diag_logs_vpn.php:133 usr/local/www/diag_logs_ipsec.php:110
+#: usr/local/www/load_balancer_monitor.php:88
+#: usr/local/www/load_balancer_virtual_server.php:94
+#: usr/local/www/load_balancer_pool_edit.php:159
+#: usr/local/www/status_lb_vs.php:56 usr/local/www/diag_logs_wireless.php:75
+#: usr/local/www/diag_logs_resolver.php:86
+#: usr/local/www/diag_logs_filter_summary.php:192
msgid "Load Balancer"
msgstr ""
@@ -5987,20 +7068,27 @@ msgstr ""
#: usr/local/www/load_balancer_relay_protocol.php:123
#: usr/local/www/status_lb_pool.php:121 usr/local/www/status_lb_vs.php:68
#: usr/local/www/load_balancer_setting.php:120
-#: usr/local/www/status_lb_vs.php:68
#: usr/local/www/load_balancer_setting.php:119
-#: usr/local/www/status_lb_pool.php:121
-#: usr/local/www/load_balancer_virtual_server.php:94
#: usr/local/www/load_balancer_virtual_server.php:114
#: usr/local/www/load_balancer_monitor.php:108
#: usr/local/www/load_balancer_relay_protocol.php:121
#: usr/local/www/load_balancer_relay_action.php:125
#: usr/local/www/load_balancer_pool.php:117
+#: usr/local/www/load_balancer_relay_protocol.php:121
+#: usr/local/www/load_balancer_relay_action.php:125
+#: usr/local/www/status_lb_pool.php:121
+#: usr/local/www/load_balancer_setting.php:119
+#: usr/local/www/load_balancer_pool.php:117
+#: usr/local/www/load_balancer_monitor.php:108
+#: usr/local/www/load_balancer_virtual_server.php:94
+#: usr/local/www/load_balancer_virtual_server.php:114
+#: usr/local/www/status_lb_vs.php:68
msgid "Virtual Servers"
msgstr ""
#: usr/local/www/load_balancer_virtual_server.php:108
#: usr/local/www/load_balancer_virtual_server.php:106
+#: usr/local/www/load_balancer_virtual_server.php:106
msgid "The virtual server configuration has been changed"
msgstr ""
@@ -6036,24 +7124,41 @@ msgstr ""
#: usr/local/www/load_balancer_setting.php:110 usr/local/www/vpn_pppoe.php:97
#: usr/local/www/vpn_ipsec.php:133 usr/local/www/vpn_ipsec_mobile.php:330
#: usr/local/www/firewall_nat.php:180 usr/local/www/firewall_shaper.php:404
-#: usr/local/www/services_unbound.php:129
-#: usr/local/www/services_unbound_advanced.php:116
-#: usr/local/www/vpn_ipsec_keys.php:85 usr/local/www/firewall_nat_npt.php:87
-#: usr/local/www/firewall_shaper_queues.php:187
-#: usr/local/www/firewall_nat_1to1.php:87
+#: usr/local/www/vpn_ipsec_keys.php:85
#: usr/local/www/firewall_shaper_vinterface.php:383
#: usr/local/www/load_balancer_virtual_server.php:106
-#: usr/local/www/firewall_shaper_layer7.php:401
-#: usr/local/www/firewall_shaper_wizards.php:96
-#: usr/local/www/system_gateways.php:134
-#: usr/local/www/services_igmpproxy.php:90
#: usr/local/www/load_balancer_monitor.php:100
#: usr/local/www/load_balancer_relay_protocol.php:112
#: usr/local/www/services_dhcp.php:653 usr/local/www/firewall_aliases.php:167
#: usr/local/www/interfaces.php:1314
#: usr/local/www/services_captiveportal_zones.php:48
#: usr/local/www/firewall_virtual_ip.php:167
-#: usr/local/www/services_dhcpv6.php:468
+#: usr/local/www/services_dhcpv6.php:468 usr/local/www/vpn_pppoe.php:98
+#: usr/local/www/vpn_ipsec.php:139 usr/local/www/firewall_virtual_ip.php:181
+#: usr/local/www/services_dhcp.php:655 usr/local/www/services_dhcpv6.php:463
+#: usr/local/www/services_dnsmasq.php:152 usr/local/www/interfaces.php:1327
+#: usr/local/www/firewall_shaper_layer7.php:401 usr/local/www/vpn_pppoe.php:98
+#: usr/local/www/firewall_shaper.php:405
+#: usr/local/www/firewall_shaper_vinterface.php:386
+#: usr/local/www/vpn_ipsec.php:139 usr/local/www/firewall_virtual_ip.php:181
+#: usr/local/www/firewall_shaper_queues.php:188
+#: usr/local/www/firewall_aliases.php:166
+#: usr/local/www/load_balancer_relay_protocol.php:112
+#: usr/local/www/firewall_shaper_wizards.php:97
+#: usr/local/www/services_dhcp.php:675 usr/local/www/firewall_nat.php:180
+#: usr/local/www/load_balancer_setting.php:110
+#: usr/local/www/services_dhcpv6.php:463
+#: usr/local/www/firewall_nat_out.php:312
+#: usr/local/www/firewall_nat_npt.php:87
+#: usr/local/www/firewall_nat_1to1.php:87
+#: usr/local/www/services_captiveportal_zones.php:48
+#: usr/local/www/services_igmpproxy.php:90
+#: usr/local/www/load_balancer_monitor.php:100
+#: usr/local/www/services_dnsmasq.php:154
+#: usr/local/www/vpn_ipsec_mobile.php:330
+#: usr/local/www/system_gateways.php:134
+#: usr/local/www/load_balancer_virtual_server.php:106
+#: usr/local/www/vpn_ipsec_keys.php:85 usr/local/www/interfaces.php:1369
msgid "You must apply the changes in order for them to take effect."
msgstr ""
@@ -6064,14 +7169,20 @@ msgstr ""
#: usr/local/www/load_balancer_relay_protocol.php:122
#: usr/local/www/status_lb_pool.php:120 usr/local/www/status_lb_vs.php:67
#: usr/local/www/load_balancer_setting.php:119
-#: usr/local/www/status_lb_vs.php:67
#: usr/local/www/load_balancer_setting.php:118
-#: usr/local/www/status_lb_pool.php:120
#: usr/local/www/load_balancer_virtual_server.php:113
#: usr/local/www/load_balancer_monitor.php:107
#: usr/local/www/load_balancer_relay_protocol.php:120
#: usr/local/www/load_balancer_relay_action.php:124
#: usr/local/www/load_balancer_pool.php:116
+#: usr/local/www/load_balancer_relay_protocol.php:120
+#: usr/local/www/load_balancer_relay_action.php:124
+#: usr/local/www/status_lb_pool.php:120
+#: usr/local/www/load_balancer_setting.php:118
+#: usr/local/www/load_balancer_pool.php:116
+#: usr/local/www/load_balancer_monitor.php:107
+#: usr/local/www/load_balancer_virtual_server.php:113
+#: usr/local/www/status_lb_vs.php:67
msgid "Pools"
msgstr ""
@@ -6087,6 +7198,12 @@ msgstr ""
#: usr/local/www/load_balancer_relay_protocol.php:119
#: usr/local/www/load_balancer_relay_action.php:123
#: usr/local/www/load_balancer_pool.php:118
+#: usr/local/www/load_balancer_relay_protocol.php:119
+#: usr/local/www/load_balancer_relay_action.php:123
+#: usr/local/www/load_balancer_setting.php:120
+#: usr/local/www/load_balancer_pool.php:118
+#: usr/local/www/load_balancer_monitor.php:109
+#: usr/local/www/load_balancer_virtual_server.php:115
msgid "Monitors"
msgstr ""
@@ -6120,26 +7237,49 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:525
#: usr/local/www/vpn_openvpn_client.php:426
#: usr/local/www/vpn_openvpn_client.php:866
-#: usr/local/www/firewall_nat_out_edit.php:130
-#: usr/local/www/firewall_nat_out_edit.php:469
-#: usr/local/www/load_balancer_relay_action_edit.php:117
#: usr/local/www/load_balancer_relay_action_edit.php:421
-#: usr/local/www/firewall_rules_edit.php:843
#: usr/local/www/diag_ipsec_sad.php:90
-#: usr/local/www/system_advanced_admin.php:300
-#: usr/local/www/services_rfc2136_edit.php:186
#: usr/local/www/load_balancer_virtual_server.php:128
-#: usr/local/www/firewall_shaper_layer7.php:466
#: usr/local/www/vpn_openvpn_server.php:747 usr/local/www/status_upnp.php:87
#: usr/local/www/interfaces_bridge_edit.php:301
#: usr/local/www/diag_packet_capture.php:207
#: usr/local/www/vpn_ipsec_phase2.php:644
-#: usr/local/www/firewall_nat_edit.php:182
-#: usr/local/www/firewall_nat_edit.php:185
#: usr/local/www/firewall_nat_edit.php:524
#: usr/local/www/vpn_openvpn_client.php:434
#: usr/local/www/vpn_openvpn_client.php:919
#: usr/local/www/diag_ipsec_spd.php:90
+#: usr/local/www/vpn_openvpn_client.php:452
+#: usr/local/www/vpn_openvpn_client.php:938
+#: usr/local/www/firewall_rules_edit.php:846
+#: usr/local/www/firewall_nat_edit.php:187
+#: usr/local/www/firewall_nat_edit.php:190
+#: usr/local/www/firewall_nat_edit.php:519
+#: usr/local/www/interfaces_bridge_edit.php:302
+#: usr/local/www/firewall_nat_out_edit.php:134
+#: usr/local/www/firewall_nat_out_edit.php:473
+#: usr/local/www/vpn_openvpn_server.php:773
+#: usr/local/www/vpn_ipsec_phase2.php:665
+#: usr/local/www/firewall_shaper_layer7.php:466
+#: usr/local/www/vpn_openvpn_client.php:452
+#: usr/local/www/vpn_openvpn_client.php:938
+#: usr/local/www/firewall_rules_edit.php:858
+#: usr/local/www/diag_logs_filter.php:171
+#: usr/local/www/firewall_nat_edit.php:192
+#: usr/local/www/firewall_nat_edit.php:195
+#: usr/local/www/firewall_nat_edit.php:531
+#: usr/local/www/diag_packet_capture.php:223
+#: usr/local/www/diag_ipsec_spd.php:90
+#: usr/local/www/system_advanced_admin.php:300
+#: usr/local/www/load_balancer_relay_action_edit.php:117
+#: usr/local/www/load_balancer_relay_action_edit.php:421
+#: usr/local/www/interfaces_bridge_edit.php:302
+#: usr/local/www/services_rfc2136_edit.php:186
+#: usr/local/www/load_balancer_virtual_server.php:128
+#: usr/local/www/firewall_nat_out_edit.php:140
+#: usr/local/www/firewall_nat_out_edit.php:485
+#: usr/local/www/diag_ipsec_sad.php:90
+#: usr/local/www/vpn_openvpn_server.php:773
+#: usr/local/www/vpn_ipsec_phase2.php:665 usr/local/www/status_upnp.php:87
msgid "Protocol"
msgstr ""
@@ -6154,13 +7294,17 @@ msgstr ""
#: usr/local/www/system_advanced_notifications.php:194
#: usr/local/www/load_balancer_virtual_server.php:131
#: usr/local/www/load_balancer_virtual_server_edit.php:169
-#: usr/local/www/diag_tables.php:133
#: usr/local/www/interfaces_ppps_edit.php:661
-#: usr/local/www/system_advanced_notifications.php:194
#: usr/local/www/load_balancer_virtual_server.php:129
+#: usr/local/www/load_balancer_virtual_server_edit.php:167
+#: usr/local/www/interfaces_ppps_edit.php:667
+#: usr/local/www/diag_tables.php:133
#: usr/local/www/load_balancer_virtual_server_edit.php:72
#: usr/local/www/load_balancer_virtual_server_edit.php:77
#: usr/local/www/load_balancer_virtual_server_edit.php:167
+#: usr/local/www/interfaces_ppps_edit.php:667 usr/local/www/diag_dns.php:153
+#: usr/local/www/system_advanced_notifications.php:194
+#: usr/local/www/load_balancer_virtual_server.php:129
msgid "IP Address"
msgstr ""
@@ -6200,9 +7344,27 @@ msgstr ""
#: usr/local/www/status_upnp.php:86
#: usr/local/www/load_balancer_virtual_server_edit.php:181
#: usr/local/www/diag_packet_capture.php:232
-#: usr/local/www/load_balancer_pool_edit.php:76
#: usr/local/www/load_balancer_pool_edit.php:209
+#: usr/local/www/load_balancer_pool.php:133 usr/local/www/diag_testport.php:60
+#: usr/local/www/diag_testport.php:123
+#: usr/local/www/services_captiveportal.php:642
+#: usr/local/www/services_captiveportal.php:663
+#: usr/local/www/services_captiveportal.php:685
+#: usr/local/www/services_captiveportal.php:704
+#: usr/local/www/diag_testport.php:60 usr/local/www/diag_testport.php:123
+#: usr/local/www/load_balancer_virtual_server_edit.php:181
+#: usr/local/www/diag_packet_capture.php:248
#: usr/local/www/load_balancer_pool.php:133
+#: usr/local/www/firewall_rules.php:360 usr/local/www/firewall_rules.php:362
+#: usr/local/www/services_captiveportal.php:658
+#: usr/local/www/services_captiveportal.php:679
+#: usr/local/www/services_captiveportal.php:701
+#: usr/local/www/services_captiveportal.php:720
+#: usr/local/www/firewall_aliases_edit.php:486
+#: usr/local/www/load_balancer_virtual_server.php:130
+#: usr/local/www/load_balancer_pool_edit.php:76
+#: usr/local/www/load_balancer_pool_edit.php:209
+#: usr/local/www/status_upnp.php:86
msgid "Port"
msgstr ""
@@ -6212,10 +7374,10 @@ msgstr ""
#: usr/local/www/status_lb_pool.php:62
#: usr/local/www/load_balancer_virtual_server.php:133
#: usr/local/www/load_balancer_pool_edit.php:159
-#: usr/local/www/status_lb_pool.php:62
+#: usr/local/www/load_balancer_virtual_server.php:131
+#: usr/local/www/status_lb_pool.php:62 usr/local/www/load_balancer_pool.php:97
#: usr/local/www/load_balancer_virtual_server.php:131
#: usr/local/www/load_balancer_pool_edit.php:159
-#: usr/local/www/load_balancer_pool.php:97
msgid "Pool"
msgstr ""
@@ -6225,6 +7387,8 @@ msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:217
#: usr/local/www/load_balancer_virtual_server.php:132
#: usr/local/www/load_balancer_virtual_server_edit.php:215
+#: usr/local/www/load_balancer_virtual_server_edit.php:215
+#: usr/local/www/load_balancer_virtual_server.php:132
msgid "Fall Back Pool"
msgstr ""
@@ -6247,33 +7411,41 @@ msgstr ""
#: usr/local/www/diag_backup.php:576 usr/local/www/reboot.php:48
#: usr/local/www/edit.php:42 usr/local/www/diag_dump_states.php:75
#: usr/local/www/halt.php:54 usr/local/www/diag_states_summary.php:174
-#: usr/local/www/diag_tables.php:44 usr/local/www/fbegin.inc:331
-#: usr/local/www/diag_sockets.php:44 usr/local/www/exec.php:93
-#: usr/local/www/diag_defaults.php:58
-#: usr/local/www/system_firmware_auto.php:60
-#: usr/local/www/diag_resetstate.php:64 usr/local/www/diag_backup.php:576
-#: usr/local/www/diag_ndp.php:103 usr/local/www/reboot.php:48
-#: usr/local/www/diag_arp.php:261 usr/local/www/diag_traceroute.php:45
-#: usr/local/www/crash_reporter.php:82 usr/local/www/diag_dns.php:34
-#: usr/local/www/diag_routes.php:45
-#: usr/local/www/diag_dump_states_sources.php:65 usr/local/www/edit.php:42
-#: usr/local/www/diag_dump_states.php:75
-#: usr/local/www/diag_authentication.php:69 usr/local/www/halt.php:54
-#: usr/local/www/diag_packet_capture.php:43 usr/local/www/diag_smart.php:14
-#: usr/local/www/diag_confbak.php:98
+#: usr/local/www/fbegin.inc:331 usr/local/www/diag_sockets.php:44
+#: usr/local/www/exec.php:93 usr/local/www/diag_packet_capture.php:43
+#: usr/local/www/diag_states_summary.php:176
+#: usr/local/www/diag_testport.php:49 usr/local/www/diag_defaults.php:52
+#: usr/local/www/diag_backup.php:581 usr/local/www/edit.php:41
+#: usr/local/www/fbegin.inc:323 usr/local/www/diag_ndp.php:103
+#: usr/local/www/reboot.php:48 usr/local/www/diag_arp.php:261
+#: usr/local/www/diag_authentication.php:69 usr/local/www/diag_tables.php:44
+#: usr/local/www/diag_testport.php:49 usr/local/www/diag_dump_states.php:67
+#: usr/local/www/diag_states_summary.php:176
+#: usr/local/www/system_firmware_auto.php:61
+#: usr/local/www/diag_defaults.php:52
+#: usr/local/www/diag_dump_states_sources.php:65
+#: usr/local/www/diag_packet_capture.php:43 usr/local/www/diag_routes.php:45
+#: usr/local/www/diag_traceroute.php:46 usr/local/www/diag_smart.php:14
+#: usr/local/www/exec.php:93 usr/local/www/halt.php:54
+#: usr/local/www/diag_patterns.php:58 usr/local/www/diag_backup.php:581
+#: usr/local/www/diag_ping.php:44 usr/local/www/diag_resetstate.php:64
#: usr/local/www/system_firmware_restorefullbackup.php:104
-#: usr/local/www/diag_ping.php:43 usr/local/www/diag_patterns.php:58
-#: usr/local/www/diag_nanobsd.php:49 usr/local/www/diag_states_summary.php:176
+#: usr/local/www/diag_dns.php:34 usr/local/www/edit.php:41
+#: usr/local/www/fbegin.inc:323 usr/local/www/diag_confbak.php:98
+#: usr/local/www/diag_sockets.php:44 usr/local/www/diag_nanobsd.php:49
+#: usr/local/www/crash_reporter.php:82
msgid "Diagnostics"
msgstr ""
#: usr/local/www/diag_tables.php:44 usr/local/www/fbegin.inc:199
-#: usr/local/www/fbegin.inc:217 usr/local/www/diag_tables.php:44
-#: usr/local/www/fbegin.inc:225
+#: usr/local/www/fbegin.inc:217 usr/local/www/fbegin.inc:225
+#: usr/local/www/fbegin.inc:216 usr/local/www/diag_tables.php:44
+#: usr/local/www/fbegin.inc:216
msgid "Tables"
msgstr ""
#: usr/local/www/diag_tables.php:86 usr/local/www/diag_tables.php:87
+#: usr/local/www/diag_tables.php:87
msgid "The bogons database has been updated."
msgstr ""
@@ -6283,7 +7455,8 @@ msgid "Table:"
msgstr ""
#: usr/local/www/diag_tables.php:152 usr/local/www/diag_tables.php:151
-#: usr/local/www/diag_tables.php:152
+#: usr/local/www/diag_tables.php:153 usr/local/www/diag_tables.php:155
+#: usr/local/www/diag_tables.php:153 usr/local/www/diag_tables.php:155
msgid "No entries exist in this table."
msgstr ""
@@ -6291,14 +7464,18 @@ msgstr ""
#: usr/local/www/exec.php:273 usr/local/www/exec.php:283
#: usr/local/www/system_firmware_restorefullbackup.php:166
#: usr/local/www/diag_tables.php:159 usr/local/www/diag_backup.php:250
-#: usr/local/www/diag_tables.php:160 usr/local/www/exec.php:275
-#: usr/local/www/exec.php:285 usr/local/www/diag_backup.php:250
+#: usr/local/www/exec.php:275 usr/local/www/exec.php:285
+#: usr/local/www/diag_tables.php:153 usr/local/www/diag_tables.php:162
+#: usr/local/www/diag_tables.php:153 usr/local/www/diag_tables.php:162
+#: usr/local/www/exec.php:275 usr/local/www/exec.php:285
+#: usr/local/www/diag_backup.php:250
#: usr/local/www/system_firmware_restorefullbackup.php:166
msgid "Download"
msgstr ""
#: usr/local/www/diag_tables.php:160 usr/local/www/diag_tables.php:159
-#: usr/local/www/diag_tables.php:160
+#: usr/local/www/diag_tables.php:153 usr/local/www/diag_tables.php:162
+#: usr/local/www/diag_tables.php:153 usr/local/www/diag_tables.php:162
msgid " the latest bogon data."
msgstr ""
@@ -6307,20 +7484,22 @@ msgstr ""
#: usr/local/www/services_dhcpv6.php:758
#: usr/local/www/system_firmware_restorefullbackup.php:163
#: usr/local/www/diag_tables.php:161 usr/local/www/services_dhcpv6.php:853
-#: usr/local/www/diag_tables.php:162
-#: usr/local/www/firewall_shaper_layer7.php:576
+#: usr/local/www/services_dhcpv6.php:784 usr/local/www/diag_tables.php:165
+#: usr/local/www/services_dhcpv6.php:801
+#: usr/local/www/firewall_shaper_layer7.php:571
+#: usr/local/www/diag_tables.php:165 usr/local/www/services_dhcpv6.php:801
#: usr/local/www/system_firmware_restorefullbackup.php:163
-#: usr/local/www/services_dhcpv6.php:784
msgid "Delete"
msgstr ""
#: usr/local/www/diag_tables.php:162 usr/local/www/diag_tables.php:161
-#: usr/local/www/diag_tables.php:162
+#: usr/local/www/diag_tables.php:165 usr/local/www/diag_tables.php:165
msgid "all"
msgstr ""
#: usr/local/www/diag_tables.php:162 usr/local/www/diag_tables.php:161
-#: usr/local/www/diag_tables.php:162
+#: usr/local/www/diag_tables.php:165 usr/local/www/diag_tables.php:162
+#: usr/local/www/diag_tables.php:165
msgid "entries in this table."
msgstr ""
@@ -6368,39 +7547,55 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:445
#: usr/local/www/load_balancer_pool_edit.php:159
#: usr/local/www/firewall_virtual_ip_edit.php:268
-#: usr/local/www/vpn_pppoe_edit.php:234
-#: usr/local/www/interfaces_vlan_edit.php:139
-#: usr/local/www/load_balancer_relay_protocol_edit.php:137
#: usr/local/www/firewall_nat_1to1_edit.php:221
#: usr/local/www/firewall_nat_npt_edit.php:144 usr/local/www/pkg_edit.php:254
-#: usr/local/www/interfaces_qinq_edit.php:39
-#: usr/local/www/firewall_nat_out_edit.php:313
-#: usr/local/www/interfaces_gif_edit.php:125
+#: usr/local/www/firewall_rules_edit.php:661
+#: usr/local/www/firewall_nat_edit.php:444
+#: usr/local/www/firewall_virtual_ip_edit.php:261
+#: usr/local/www/interfaces_wireless_edit.php:147
+#: usr/local/www/firewall_rules_edit.php:664
+#: usr/local/www/interfaces_vlan_edit.php:142
+#: usr/local/www/interfaces_ppps_edit.php:384
+#: usr/local/www/interfaces_lagg_edit.php:133
+#: usr/local/www/firewall_nat_edit.php:439
+#: usr/local/www/interfaces_gif_edit.php:133
+#: usr/local/www/firewall_virtual_ip_edit.php:253
+#: usr/local/www/vpn_pppoe_edit.php:237
+#: usr/local/www/interfaces_bridge_edit.php:236
+#: usr/local/www/firewall_nat_out_edit.php:317
+#: usr/local/www/interfaces_wireless_edit.php:147
+#: usr/local/www/load_balancer_relay_protocol_edit.php:137
+#: usr/local/www/interfaces_gre_edit.php:127
+#: usr/local/www/firewall_rules_edit.php:676
+#: usr/local/www/load_balancer_virtual_server_edit.php:136
+#: usr/local/www/interfaces_vlan_edit.php:142
+#: usr/local/www/interfaces_ppps_edit.php:384
+#: usr/local/www/interfaces_lagg_edit.php:133
+#: usr/local/www/firewall_schedule_edit.php:61
+#: usr/local/www/firewall_nat_edit.php:451
+#: usr/local/www/interfaces_gif_edit.php:133
#: usr/local/www/services_wol_edit.php:112
+#: usr/local/www/firewall_virtual_ip_edit.php:273
+#: usr/local/www/vpn_pppoe_edit.php:237
#: usr/local/www/load_balancer_relay_action_edit.php:180
-#: usr/local/www/firewall_rules_edit.php:661
+#: usr/local/www/firewall_nat_npt_edit.php:144
+#: usr/local/www/interfaces_groups_edit.php:44
#: usr/local/www/load_balancer_monitor_edit.php:193
-#: usr/local/www/firewall_schedule_edit.php:61
-#: usr/local/www/interfaces_ppps_edit.php:378
+#: usr/local/www/firewall_aliases_edit.php:56 usr/local/www/pkg_edit.php:254
+#: usr/local/www/vpn_l2tp_users_edit.php:38
+#: usr/local/www/interfaces_bridge_edit.php:236
#: usr/local/www/services_igmpproxy_edit.php:46
-#: usr/local/www/firewall_aliases_edit.php:56
-#: usr/local/www/interfaces_lagg_edit.php:120
-#: usr/local/www/services_rfc2136_edit.php:109
-#: usr/local/www/load_balancer_virtual_server_edit.php:136
-#: usr/local/www/interfaces_bridge_edit.php:235
-#: usr/local/www/interfaces_groups_edit.php:44
-#: usr/local/www/firewall_nat_edit.php:444
+#: usr/local/www/firewall_nat_1to1_edit.php:221
#: usr/local/www/vpn_pptp_users_edit.php:135
-#: usr/local/www/interfaces_wireless_edit.php:145
+#: usr/local/www/services_rfc2136_edit.php:109
#: usr/local/www/load_balancer_pool_edit.php:159
-#: usr/local/www/vpn_l2tp_users_edit.php:38
-#: usr/local/www/firewall_virtual_ip_edit.php:261
-#: usr/local/www/interfaces_gre_edit.php:127
+#: usr/local/www/firewall_nat_out_edit.php:329
+#: usr/local/www/interfaces_qinq_edit.php:39
msgid "Edit"
msgstr ""
#: usr/local/www/pkg_edit.php:260 usr/local/www/pkg_edit.php:255
-#: usr/local/www/pkg_edit.php:258
+#: usr/local/www/pkg_edit.php:258 usr/local/www/pkg_edit.php:258
msgid "Package Editor"
msgstr ""
@@ -6543,16 +7738,12 @@ msgstr ""
#: usr/local/www/services_dhcpv6.php:574 usr/local/www/services_dhcpv6.php:879
#: usr/local/www/vpn_pppoe_edit.php:590
#: usr/local/www/system_routes_edit.php:316
-#: usr/local/www/services_unbound_acls.php:101
-#: usr/local/www/services_unbound_acls.php:306
#: usr/local/www/diag_logs_settings.php:348
#: usr/local/www/system_gateway_groups_edit.php:343
#: usr/local/www/interfaces_vlan_edit.php:190
#: usr/local/www/services_dnsmasq.php:210
#: usr/local/www/services_captiveportal_vouchers.php:618
-#: usr/local/www/services_dyndns_edit.php:366
#: usr/local/www/firewall_nat_out.php:331
-#: usr/local/www/system_groupmanager.php:390
#: usr/local/www/services_dnsmasq_edit.php:285
#: usr/local/www/load_balancer_relay_protocol_edit.php:278
#: usr/local/www/services_captiveportal_vouchers_edit.php:205
@@ -6563,86 +7754,192 @@ msgstr ""
#: usr/local/www/load_balancer_setting.php:160 usr/local/www/vpn_ipsec.php:167
#: usr/local/www/services_dhcp_relay.php:190
#: usr/local/www/services_captiveportal_hostname_edit.php:201
-#: usr/local/www/status_rrd_graph_settings.php:226
#: usr/local/www/vpn_ipsec_mobile.php:657 usr/local/www/pkg_edit.php:416
#: usr/local/www/interfaces_qinq_edit.php:395
-#: usr/local/www/firewall_nat_out_edit.php:662
#: usr/local/www/interfaces_gif_edit.php:219
-#: usr/local/www/system_certmanager.php:183
-#: usr/local/www/system_certmanager.php:568
-#: usr/local/www/system_certmanager.php:953
-#: usr/local/www/services_wol_edit.php:157
#: usr/local/www/firewall_shaper.php:350
#: usr/local/www/load_balancer_relay_action_edit.php:554
-#: usr/local/www/firewall_rules_edit.php:1100
-#: usr/local/www/firewall_rules_edit.php:1551
-#: usr/local/www/services_unbound.php:245
#: usr/local/www/load_balancer_monitor_edit.php:354
-#: usr/local/www/system_usermanager.php:772
-#: usr/local/www/status_lb_pool.php:217
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:160
#: usr/local/www/services_captiveportal_mac_edit.php:201
#: usr/local/www/firewall_schedule_edit.php:1155
#: usr/local/www/interfaces_ppps_edit.php:784
-#: usr/local/www/services_igmpproxy_edit.php:282
#: usr/local/www/system_crlmanager.php:295
#: usr/local/www/system_crlmanager.php:388
#: usr/local/www/system_crlmanager.php:420
-#: usr/local/www/system_advanced_firewall.php:475
#: usr/local/www/firewall_aliases_edit.php:694 usr/local/www/vpn_pptp.php:474
-#: usr/local/www/system_advanced_admin.php:535
#: usr/local/www/interfaces_lagg_edit.php:219
#: usr/local/www/vpn_openvpn_csc.php:657
-#: usr/local/www/services_rfc2136_edit.php:200
-#: usr/local/www/system_advanced_notifications.php:96
-#: usr/local/www/system_advanced_notifications.php:281
-#: usr/local/www/system_usermanager_addprivs.php:205
#: usr/local/www/system_advanced_misc.php:534
#: usr/local/www/firewall_shaper_vinterface.php:319
-#: usr/local/www/system_groupmanager_addprivs.php:222
-#: usr/local/www/system_usermanager_settings_ldapacpicker.php:124
-#: usr/local/www/edit.php:184 usr/local/www/services_captiveportal.php:964
-#: usr/local/www/firewall_shaper_layer7.php:569
+#: usr/local/www/services_captiveportal.php:964
#: usr/local/www/system_gateways_edit.php:627
#: usr/local/www/services_dhcpv6_relay.php:191
#: usr/local/www/system_usermanager_passwordmg.php:120
-#: usr/local/www/services_igmpproxy.php:155
#: usr/local/www/interfaces_assign.php:495
-#: usr/local/www/system_advanced_sysctl.php:104
-#: usr/local/www/system_advanced_sysctl.php:257
#: usr/local/www/services_captiveportal_ip_edit.php:229
#: usr/local/www/vpn_openvpn_server.php:1616
#: usr/local/www/services_dhcp.php:1113
-#: usr/local/www/system_usermanager_settings.php:161
#: usr/local/www/system_firmware_settings.php:251
#: usr/local/www/services_ntpd.php:151
#: usr/local/www/interfaces_bridge_edit.php:593
#: usr/local/www/interfaces_groups_edit.php:323
-#: usr/local/www/system_camanager.php:359
-#: usr/local/www/system_camanager.php:553
#: usr/local/www/vpn_ipsec_phase2.php:770
#: usr/local/www/firewall_nat_edit.php:853
#: usr/local/www/vpn_pptp_users_edit.php:169
-#: usr/local/www/firewall_aliases_import.php:154
#: usr/local/www/vpn_ipsec_keys_edit.php:143
-#: usr/local/www/system_advanced_network.php:304
-#: usr/local/www/interfaces_wireless_edit.php:195
-#: usr/local/www/services_dhcp_edit.php:262 usr/local/www/diag_smart.php:219
-#: usr/local/www/interfaces.php:2632 usr/local/www/vpn_openvpn_client.php:903
+#: usr/local/www/services_dhcp_edit.php:262 usr/local/www/interfaces.php:2632
+#: usr/local/www/vpn_openvpn_client.php:903
#: usr/local/www/load_balancer_pool_edit.php:326
#: usr/local/www/vpn_l2tp_users_edit.php:177 usr/local/www/vpn_l2tp.php:446
#: usr/local/www/firewall_virtual_ip_edit.php:479
-#: usr/local/www/services_snmp.php:415 usr/local/www/pkg_mgr_settings.php:120
-#: usr/local/www/system.php:469 usr/local/www/interfaces_gre_edit.php:229
+#: usr/local/www/services_snmp.php:415 usr/local/www/system.php:469
#: usr/local/www/vpn_ipsec_phase1.php:865 usr/local/www/diag_nanobsd.php:209
#: usr/local/www/diag_nanobsd.php:277 usr/local/www/services_dhcpv6.php:810
-#: usr/local/www/system_authservers.php:729
+#: usr/local/www/system_authservers.php:729 usr/local/www/vpn_l2tp.php:449
+#: usr/local/www/system_gateways_edit.php:632
+#: usr/local/www/system_camanager.php:366
+#: usr/local/www/system_camanager.php:577
+#: usr/local/www/services_captiveportal_ip_edit.php:223
+#: usr/local/www/interfaces_wireless_edit.php:197
+#: usr/local/www/vpn_openvpn_client.php:922
+#: usr/local/www/services_dhcpv6_edit.php:242
+#: usr/local/www/services_dyndns_edit.php:370
+#: usr/local/www/firewall_rules_edit.php:1115
+#: usr/local/www/firewall_rules_edit.php:1566
+#: usr/local/www/interfaces_vlan_edit.php:193
+#: usr/local/www/interfaces_ppps_edit.php:790 usr/local/www/vpn_ipsec.php:173
+#: usr/local/www/system_firmware_settings.php:260
+#: usr/local/www/interfaces_lagg_edit.php:232
+#: usr/local/www/firewall_nat_edit.php:849
+#: usr/local/www/interfaces_gif_edit.php:230
+#: usr/local/www/services_dhcp_edit.php:494
+#: usr/local/www/firewall_virtual_ip_edit.php:471
+#: usr/local/www/diag_smart.php:240
+#: usr/local/www/services_captiveportal_vouchers.php:627
+#: usr/local/www/vpn_pppoe_edit.php:593 usr/local/www/services_dhcp.php:1126
+#: usr/local/www/system_certmanager.php:186
+#: usr/local/www/system_certmanager.php:577
+#: usr/local/www/system_certmanager.php:995
+#: usr/local/www/system_advanced_misc.php:546
+#: usr/local/www/services_captiveportal_mac_edit.php:214
+#: usr/local/www/services_dhcpv6.php:827
+#: usr/local/www/system_usermanager_passwordmg.php:125
+#: usr/local/www/system_authservers.php:745
+#: usr/local/www/system_advanced_firewall.php:537
+#: usr/local/www/services_captiveportal.php:966 usr/local/www/vpn_pptp.php:477
+#: usr/local/www/pkg_edit.php:420 usr/local/www/edit.php:185
+#: usr/local/www/interfaces_bridge_edit.php:594
+#: usr/local/www/services_dnsmasq.php:235
+#: usr/local/www/vpn_ipsec_phase1.php:886
+#: usr/local/www/firewall_nat_out_edit.php:664
+#: usr/local/www/vpn_openvpn_server.php:1668
+#: usr/local/www/vpn_ipsec_phase2.php:791 usr/local/www/services_snmp.php:430
+#: usr/local/www/interfaces_qinq_edit.php:398
+#: usr/local/www/interfaces.php:2664
+#: usr/local/www/firewall_shaper_layer7.php:565 usr/local/www/vpn_l2tp.php:449
+#: usr/local/www/services_router_advertisements.php:395
+#: usr/local/www/system_gateways_edit.php:634
+#: usr/local/www/system_camanager.php:366
+#: usr/local/www/system_camanager.php:577
+#: usr/local/www/services_captiveportal_ip_edit.php:223
+#: usr/local/www/interfaces_wireless_edit.php:197
+#: usr/local/www/firewall_shaper.php:350
+#: usr/local/www/load_balancer_relay_protocol_edit.php:278
+#: usr/local/www/system_groupmanager.php:390
+#: usr/local/www/diag_logs_settings.php:348
+#: usr/local/www/interfaces_gre_edit.php:229
+#: usr/local/www/firewall_shaper_vinterface.php:319
+#: usr/local/www/vpn_openvpn_client.php:922
+#: usr/local/www/system_usermanager_addprivs.php:205
+#: usr/local/www/services_dhcpv6_edit.php:242
+#: usr/local/www/services_dyndns_edit.php:378
+#: usr/local/www/firewall_rules_edit.php:1128
+#: usr/local/www/firewall_rules_edit.php:1602
+#: usr/local/www/interfaces_vlan_edit.php:193
+#: usr/local/www/interfaces_ppps_edit.php:790 usr/local/www/vpn_ipsec.php:173
+#: usr/local/www/system_firmware_settings.php:266
+#: usr/local/www/vpn_openvpn_csc.php:657
+#: usr/local/www/interfaces_lagg_edit.php:232 usr/local/www/system.php:467
+#: usr/local/www/firewall_schedule_edit.php:1155
+#: usr/local/www/firewall_nat_edit.php:889
+#: usr/local/www/services_captiveportal_hostname_edit.php:203
+#: usr/local/www/interfaces_gif_edit.php:230
+#: usr/local/www/services_dhcp_edit.php:494
+#: usr/local/www/vpn_ipsec_keys_edit.php:143
+#: usr/local/www/services_wol_edit.php:157
+#: usr/local/www/firewall_virtual_ip_edit.php:491
+#: usr/local/www/services_ntpd.php:151
+#: usr/local/www/status_rrd_graph_settings.php:226
+#: usr/local/www/services_dhcpv6_relay.php:191
+#: usr/local/www/firewall_aliases_import.php:154
+#: usr/local/www/diag_smart.php:240
+#: usr/local/www/services_captiveportal_vouchers.php:627
+#: usr/local/www/vpn_pppoe_edit.php:593 usr/local/www/services_dhcp.php:1146
+#: usr/local/www/services_captiveportal_vouchers_edit.php:205
+#: usr/local/www/system_certmanager.php:186
+#: usr/local/www/system_certmanager.php:578
+#: usr/local/www/system_certmanager.php:999
+#: usr/local/www/status_lb_pool.php:217
+#: usr/local/www/load_balancer_setting.php:160
+#: usr/local/www/system_advanced_admin.php:535
+#: usr/local/www/load_balancer_relay_action_edit.php:554
+#: usr/local/www/system_advanced_misc.php:667
+#: usr/local/www/system_routes_edit.php:339
+#: usr/local/www/services_captiveportal_mac_edit.php:214
+#: usr/local/www/system_crlmanager.php:295
+#: usr/local/www/system_crlmanager.php:388
+#: usr/local/www/system_crlmanager.php:420
+#: usr/local/www/services_dhcpv6.php:827
+#: usr/local/www/firewall_nat_out.php:338
+#: usr/local/www/system_usermanager_passwordmg.php:125
+#: usr/local/www/firewall_nat_npt_edit.php:274
+#: usr/local/www/interfaces_groups_edit.php:323
+#: usr/local/www/load_balancer_monitor_edit.php:354
+#: usr/local/www/system_gateway_groups_edit.php:344
+#: usr/local/www/system_authservers.php:745
+#: usr/local/www/system_advanced_firewall.php:538
+#: usr/local/www/services_captiveportal.php:982
+#: usr/local/www/system_groupmanager_addprivs.php:224
+#: usr/local/www/firewall_aliases_edit.php:725 usr/local/www/vpn_pptp.php:477
+#: usr/local/www/pkg_mgr_settings.php:123
+#: usr/local/www/system_usermanager_settings.php:164
+#: usr/local/www/pkg_edit.php:420 usr/local/www/edit.php:185
+#: usr/local/www/vpn_l2tp_users_edit.php:177
+#: usr/local/www/interfaces_bridge_edit.php:594
+#: usr/local/www/services_igmpproxy_edit.php:282
+#: usr/local/www/services_igmpproxy.php:155
+#: usr/local/www/firewall_nat_1to1_edit.php:464
+#: usr/local/www/services_dnsmasq_edit.php:285
+#: usr/local/www/system_usermanager_settings_ldapacpicker.php:124
+#: usr/local/www/system_advanced_notifications.php:96
+#: usr/local/www/system_advanced_notifications.php:281
+#: usr/local/www/vpn_pptp_users_edit.php:169
+#: usr/local/www/services_rfc2136_edit.php:200
+#: usr/local/www/services_dnsmasq.php:248
+#: usr/local/www/vpn_ipsec_phase1.php:886
+#: usr/local/www/system_usermanager.php:772
+#: usr/local/www/vpn_ipsec_mobile.php:657
+#: usr/local/www/load_balancer_pool_edit.php:326
+#: usr/local/www/system_advanced_network.php:305
+#: usr/local/www/firewall_nat_out_edit.php:704
+#: usr/local/www/vpn_openvpn_server.php:1668
+#: usr/local/www/vpn_ipsec_phase2.php:791 usr/local/www/diag_nanobsd.php:200
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:160
+#: usr/local/www/services_dhcp_relay.php:190
+#: usr/local/www/interfaces_assign.php:501 usr/local/www/services_snmp.php:430
+#: usr/local/www/interfaces_qinq_edit.php:398
+#: usr/local/www/system_advanced_sysctl.php:104
+#: usr/local/www/system_advanced_sysctl.php:257
+#: usr/local/www/interfaces.php:2710
msgid "Save"
msgstr ""
#: usr/local/www/pkg_edit.php:415 usr/local/www/firewall_rules_edit.php:1077
#: usr/local/www/pkg_edit.php:424 usr/local/www/firewall_rules_edit.php:1112
-#: usr/local/www/pkg_edit.php:427 usr/local/www/firewall_rules_edit.php:1112
+#: usr/local/www/pkg_edit.php:427 usr/local/www/firewall_rules_edit.php:1127
+#: usr/local/www/pkg_edit.php:431 usr/local/www/firewall_rules_edit.php:1140
+#: usr/local/www/pkg_edit.php:431
msgid "Advanced features"
msgstr ""
@@ -6659,9 +7956,19 @@ msgstr ""
#: usr/local/www/vpn_ipsec.php:432 usr/local/www/status_graph.php:297
#: usr/local/www/pkg_edit.php:873 usr/local/www/status_queues.php:181
#: usr/local/www/vpn_pptp.php:479 usr/local/www/interfaces_wireless.php:134
-#: usr/local/www/firewall_shaper_layer7.php:65
-#: usr/local/www/status_graph_cpu.php:53
-#: usr/local/www/diag_packet_capture.php:270
+#: usr/local/www/diag_packet_capture.php:270 usr/local/www/vpn_ipsec.php:438
+#: usr/local/www/status_graph.php:308
+#: usr/local/www/interfaces_wireless.php:136
+#: usr/local/www/vpn_pppoe_edit.php:599 usr/local/www/vpn_pptp.php:482
+#: usr/local/www/pkg_edit.php:917 usr/local/www/status_queues.php:163
+#: usr/local/www/firewall_shaper_layer7.php:65 usr/local/www/vpn_ipsec.php:438
+#: usr/local/www/status_graph_cpu.php:53 usr/local/www/status_graph.php:330
+#: usr/local/www/diag_packet_capture.php:208
+#: usr/local/www/diag_packet_capture.php:288
+#: usr/local/www/interfaces_wireless.php:136
+#: usr/local/www/vpn_pppoe_edit.php:599 usr/local/www/vpn_pptp.php:482
+#: usr/local/www/pkg_edit.php:917 usr/local/www/status_queues.php:163
+#: usr/local/www/carp_status.php:187
msgid "Note"
msgstr ""
@@ -6742,49 +8049,101 @@ msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:591
#: usr/local/www/system_routes_edit.php:288
#: usr/local/www/system_routes_edit.php:316
-#: usr/local/www/services_unbound_acls.php:306
#: usr/local/www/system_gateway_groups_edit.php:343
#: usr/local/www/interfaces_vlan_edit.php:190
#: usr/local/www/services_captiveportal_vouchers.php:619
-#: usr/local/www/services_dyndns_edit.php:367
#: usr/local/www/services_dnsmasq_edit.php:285
#: usr/local/www/load_balancer_relay_protocol_edit.php:278
#: usr/local/www/firewall_nat_1to1_edit.php:464
#: usr/local/www/services_dhcpv6_edit.php:239
#: usr/local/www/firewall_nat_npt_edit.php:274 usr/local/www/pkg_edit.php:879
#: usr/local/www/interfaces_qinq_edit.php:396
-#: usr/local/www/firewall_nat_out_edit.php:662
#: usr/local/www/interfaces_gif_edit.php:219
-#: usr/local/www/services_wol_edit.php:157
#: usr/local/www/load_balancer_relay_action_edit.php:554
-#: usr/local/www/firewall_rules_edit.php:1100
-#: usr/local/www/firewall_rules_edit.php:1551
#: usr/local/www/load_balancer_monitor_edit.php:354
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:160
#: usr/local/www/firewall_schedule_edit.php:1156
#: usr/local/www/interfaces_ppps_edit.php:785
-#: usr/local/www/services_igmpproxy_edit.php:283
#: usr/local/www/firewall_aliases_edit.php:695
#: usr/local/www/interfaces_lagg_edit.php:219
-#: usr/local/www/services_rfc2136_edit.php:201
-#: usr/local/www/system_usermanager_addprivs.php:206
-#: usr/local/www/system_groupmanager_addprivs.php:223
#: usr/local/www/services_captiveportal.php:965
-#: usr/local/www/firewall_shaper_layer7.php:573
#: usr/local/www/system_gateways_edit.php:627
-#: usr/local/www/system_advanced_sysctl.php:258
#: usr/local/www/load_balancer_virtual_server_edit.php:267
#: usr/local/www/interfaces_bridge_edit.php:593
#: usr/local/www/interfaces_groups_edit.php:324
#: usr/local/www/firewall_nat_edit.php:853
-#: usr/local/www/firewall_aliases_import.php:155
-#: usr/local/www/interfaces_wireless_edit.php:195
#: usr/local/www/services_dhcp_edit.php:262 usr/local/www/interfaces.php:1537
#: usr/local/www/interfaces.php:1643 usr/local/www/interfaces.php:2633
#: usr/local/www/load_balancer_pool_edit.php:327
#: usr/local/www/vpn_l2tp_users_edit.php:178
#: usr/local/www/firewall_virtual_ip_edit.php:479
+#: usr/local/www/system_gateways_edit.php:632
+#: usr/local/www/interfaces_wireless_edit.php:197
+#: usr/local/www/services_dhcpv6_edit.php:242
+#: usr/local/www/services_dyndns_edit.php:371
+#: usr/local/www/firewall_rules_edit.php:1115
+#: usr/local/www/firewall_rules_edit.php:1566
+#: usr/local/www/interfaces_vlan_edit.php:193
+#: usr/local/www/interfaces_ppps_edit.php:791
+#: usr/local/www/interfaces_lagg_edit.php:232
+#: usr/local/www/firewall_nat_edit.php:849
+#: usr/local/www/interfaces_gif_edit.php:230
+#: usr/local/www/services_dhcp_edit.php:494
+#: usr/local/www/firewall_virtual_ip_edit.php:471
+#: usr/local/www/services_captiveportal_vouchers.php:628
+#: usr/local/www/vpn_pppoe_edit.php:594
+#: usr/local/www/services_captiveportal.php:967 usr/local/www/pkg_edit.php:923
+#: usr/local/www/interfaces_bridge_edit.php:594
+#: usr/local/www/firewall_nat_out_edit.php:664
+#: usr/local/www/interfaces_qinq_edit.php:399
+#: usr/local/www/interfaces.php:1547 usr/local/www/interfaces.php:1652
+#: usr/local/www/interfaces.php:2665
+#: usr/local/www/firewall_shaper_layer7.php:568
+#: usr/local/www/system_gateways_edit.php:634
+#: usr/local/www/interfaces_wireless_edit.php:197
+#: usr/local/www/load_balancer_relay_protocol_edit.php:278
#: usr/local/www/interfaces_gre_edit.php:229
+#: usr/local/www/system_usermanager_addprivs.php:206
+#: usr/local/www/services_dhcpv6_edit.php:242
+#: usr/local/www/services_dyndns_edit.php:379
+#: usr/local/www/firewall_rules_edit.php:1128
+#: usr/local/www/firewall_rules_edit.php:1602
+#: usr/local/www/load_balancer_virtual_server_edit.php:267
+#: usr/local/www/interfaces_vlan_edit.php:193
+#: usr/local/www/interfaces_ppps_edit.php:791
+#: usr/local/www/interfaces_lagg_edit.php:232
+#: usr/local/www/firewall_schedule_edit.php:1156
+#: usr/local/www/firewall_nat_edit.php:889
+#: usr/local/www/interfaces_gif_edit.php:230
+#: usr/local/www/services_dhcp_edit.php:494
+#: usr/local/www/services_wol_edit.php:157
+#: usr/local/www/firewall_virtual_ip_edit.php:491
+#: usr/local/www/firewall_aliases_import.php:155
+#: usr/local/www/services_captiveportal_vouchers.php:628
+#: usr/local/www/vpn_pppoe_edit.php:594
+#: usr/local/www/load_balancer_relay_action_edit.php:554
+#: usr/local/www/system_routes_edit.php:313
+#: usr/local/www/system_routes_edit.php:339
+#: usr/local/www/firewall_nat_npt_edit.php:274
+#: usr/local/www/interfaces_groups_edit.php:324
+#: usr/local/www/load_balancer_monitor_edit.php:354
+#: usr/local/www/system_gateway_groups_edit.php:344
+#: usr/local/www/services_captiveportal.php:983
+#: usr/local/www/system_groupmanager_addprivs.php:225
+#: usr/local/www/firewall_aliases_edit.php:726 usr/local/www/pkg_edit.php:923
+#: usr/local/www/vpn_l2tp_users_edit.php:178
+#: usr/local/www/interfaces_bridge_edit.php:594
+#: usr/local/www/services_igmpproxy_edit.php:283
+#: usr/local/www/firewall_nat_1to1_edit.php:464
+#: usr/local/www/services_dnsmasq_edit.php:285
+#: usr/local/www/services_rfc2136_edit.php:201
+#: usr/local/www/load_balancer_pool_edit.php:327
+#: usr/local/www/firewall_nat_out_edit.php:704
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:160
+#: usr/local/www/interfaces_qinq_edit.php:399
+#: usr/local/www/system_advanced_sysctl.php:258
+#: usr/local/www/interfaces.php:1592 usr/local/www/interfaces.php:1698
+#: usr/local/www/interfaces.php:2711
msgid "Cancel"
msgstr ""
@@ -6843,21 +8202,7 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:195
#: usr/local/www/services_dnsmasq.php:198
#: usr/local/www/services_dnsmasq.php:201 usr/local/www/fbegin.inc:108
-#: usr/local/www/pkg_edit.php:1063 usr/local/www/firewall_rules_edit.php:943
-#: usr/local/www/firewall_rules_edit.php:1118
-#: usr/local/www/firewall_rules_edit.php:1152
-#: usr/local/www/firewall_rules_edit.php:1168
-#: usr/local/www/firewall_rules_edit.php:1210
-#: usr/local/www/firewall_rules_edit.php:1252
-#: usr/local/www/firewall_rules_edit.php:1276
-#: usr/local/www/firewall_rules_edit.php:1288
-#: usr/local/www/firewall_rules_edit.php:1331
-#: usr/local/www/firewall_rules_edit.php:1358
-#: usr/local/www/firewall_rules_edit.php:1413
-#: usr/local/www/firewall_rules_edit.php:1463
-#: usr/local/www/firewall_rules_edit.php:1517
-#: usr/local/www/services_unbound_advanced.php:88
-#: usr/local/www/vpn_openvpn_csc.php:641
+#: usr/local/www/pkg_edit.php:1063 usr/local/www/vpn_openvpn_csc.php:641
#: usr/local/www/system_gateways_edit.php:542
#: usr/local/www/vpn_openvpn_server.php:1596
#: usr/local/www/services_dhcp.php:945 usr/local/www/services_dhcp.php:961
@@ -6866,9 +8211,70 @@ msgstr ""
#: usr/local/www/services_dhcp.php:1034
#: usr/local/www/firewall_nat_edit.php:537 usr/local/www/interfaces.php:1422
#: usr/local/www/interfaces.php:2106 usr/local/www/vpn_openvpn_client.php:883
-#: usr/local/www/services_dhcpv6.php:675 usr/local/www/services_dhcpv6.php:691
-#: usr/local/www/services_dhcpv6.php:704 usr/local/www/services_dhcpv6.php:717
-#: usr/local/www/services_dhcpv6.php:729 usr/local/www/services_dhcpv6.php:751
+#: usr/local/www/services_dhcpv6.php:675 usr/local/www/services_dhcpv6.php:704
+#: usr/local/www/services_dhcpv6.php:717 usr/local/www/services_dhcpv6.php:729
+#: usr/local/www/services_dhcpv6.php:751
+#: usr/local/www/system_gateways_edit.php:546
+#: usr/local/www/vpn_openvpn_client.php:902
+#: usr/local/www/firewall_rules_edit.php:952
+#: usr/local/www/firewall_rules_edit.php:1167
+#: usr/local/www/firewall_rules_edit.php:1183
+#: usr/local/www/firewall_rules_edit.php:1225
+#: usr/local/www/firewall_rules_edit.php:1267
+#: usr/local/www/firewall_rules_edit.php:1303
+#: usr/local/www/firewall_rules_edit.php:1346
+#: usr/local/www/firewall_rules_edit.php:1373
+#: usr/local/www/firewall_rules_edit.php:1428
+#: usr/local/www/firewall_rules_edit.php:1478
+#: usr/local/www/firewall_rules_edit.php:1532
+#: usr/local/www/firewall_nat_edit.php:532
+#: usr/local/www/services_dhcp_edit.php:454
+#: usr/local/www/services_dhcp_edit.php:470
+#: usr/local/www/services_dhcp_edit.php:482
+#: usr/local/www/services_dhcp.php:958 usr/local/www/services_dhcp.php:974
+#: usr/local/www/services_dhcp.php:988 usr/local/www/services_dhcp.php:1000
+#: usr/local/www/services_dhcp.php:1012 usr/local/www/services_dhcp.php:1024
+#: usr/local/www/services_dhcp.php:1047 usr/local/www/services_dhcpv6.php:692
+#: usr/local/www/services_dhcpv6.php:708 usr/local/www/services_dhcpv6.php:721
+#: usr/local/www/services_dhcpv6.php:734 usr/local/www/services_dhcpv6.php:746
+#: usr/local/www/services_dhcpv6.php:768 usr/local/www/pkg_edit.php:1107
+#: usr/local/www/fbegin.inc:100 usr/local/www/services_dnsmasq.php:220
+#: usr/local/www/services_dnsmasq.php:223
+#: usr/local/www/services_dnsmasq.php:226
+#: usr/local/www/vpn_openvpn_server.php:1648 usr/local/www/interfaces.php:1435
+#: usr/local/www/interfaces.php:2136
+#: usr/local/www/system_gateways_edit.php:548
+#: usr/local/www/vpn_openvpn_client.php:902
+#: usr/local/www/firewall_rules_edit.php:964
+#: usr/local/www/firewall_rules_edit.php:1146
+#: usr/local/www/firewall_rules_edit.php:1180
+#: usr/local/www/firewall_rules_edit.php:1196
+#: usr/local/www/firewall_rules_edit.php:1236
+#: usr/local/www/firewall_rules_edit.php:1276
+#: usr/local/www/firewall_rules_edit.php:1298
+#: usr/local/www/firewall_rules_edit.php:1310
+#: usr/local/www/firewall_rules_edit.php:1353
+#: usr/local/www/firewall_rules_edit.php:1380
+#: usr/local/www/firewall_rules_edit.php:1435
+#: usr/local/www/firewall_rules_edit.php:1485
+#: usr/local/www/firewall_rules_edit.php:1540
+#: usr/local/www/vpn_openvpn_csc.php:641
+#: usr/local/www/firewall_nat_edit.php:544
+#: usr/local/www/services_dhcp_edit.php:454
+#: usr/local/www/services_dhcp_edit.php:470
+#: usr/local/www/services_dhcp_edit.php:482
+#: usr/local/www/services_dhcp.php:978 usr/local/www/services_dhcp.php:994
+#: usr/local/www/services_dhcp.php:1008 usr/local/www/services_dhcp.php:1020
+#: usr/local/www/services_dhcp.php:1032 usr/local/www/services_dhcp.php:1044
+#: usr/local/www/services_dhcp.php:1067 usr/local/www/services_dhcpv6.php:692
+#: usr/local/www/services_dhcpv6.php:708 usr/local/www/services_dhcpv6.php:721
+#: usr/local/www/services_dhcpv6.php:734 usr/local/www/services_dhcpv6.php:746
+#: usr/local/www/services_dhcpv6.php:768 usr/local/www/pkg_edit.php:1107
+#: usr/local/www/fbegin.inc:100 usr/local/www/services_dnsmasq.php:233
+#: usr/local/www/services_dnsmasq.php:236
+#: usr/local/www/services_dnsmasq.php:239
+#: usr/local/www/vpn_openvpn_server.php:1648 usr/local/www/interfaces.php:1479
+#: usr/local/www/interfaces.php:2182
msgid "Advanced"
msgstr ""
@@ -6897,19 +8303,31 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1463
#: usr/local/www/firewall_rules_edit.php:1517
#: usr/local/www/interfaces.php:1434 usr/local/www/services_dnsmasq.php:198
-#: usr/local/www/pkg_edit.php:1063 usr/local/www/firewall_rules_edit.php:1118
-#: usr/local/www/firewall_rules_edit.php:1152
-#: usr/local/www/firewall_rules_edit.php:1168
-#: usr/local/www/firewall_rules_edit.php:1210
-#: usr/local/www/firewall_rules_edit.php:1252
+#: usr/local/www/pkg_edit.php:1063 usr/local/www/interfaces.php:1422
+#: usr/local/www/firewall_rules_edit.php:1167
+#: usr/local/www/firewall_rules_edit.php:1183
+#: usr/local/www/firewall_rules_edit.php:1225
+#: usr/local/www/firewall_rules_edit.php:1267
+#: usr/local/www/firewall_rules_edit.php:1303
+#: usr/local/www/firewall_rules_edit.php:1346
+#: usr/local/www/firewall_rules_edit.php:1373
+#: usr/local/www/firewall_rules_edit.php:1428
+#: usr/local/www/firewall_rules_edit.php:1478
+#: usr/local/www/firewall_rules_edit.php:1532 usr/local/www/pkg_edit.php:1107
+#: usr/local/www/services_dnsmasq.php:223 usr/local/www/interfaces.php:1435
+#: usr/local/www/firewall_rules_edit.php:1146
+#: usr/local/www/firewall_rules_edit.php:1180
+#: usr/local/www/firewall_rules_edit.php:1196
+#: usr/local/www/firewall_rules_edit.php:1236
#: usr/local/www/firewall_rules_edit.php:1276
-#: usr/local/www/firewall_rules_edit.php:1288
-#: usr/local/www/firewall_rules_edit.php:1331
-#: usr/local/www/firewall_rules_edit.php:1358
-#: usr/local/www/firewall_rules_edit.php:1413
-#: usr/local/www/firewall_rules_edit.php:1463
-#: usr/local/www/firewall_rules_edit.php:1517
-#: usr/local/www/interfaces.php:1422
+#: usr/local/www/firewall_rules_edit.php:1298
+#: usr/local/www/firewall_rules_edit.php:1310
+#: usr/local/www/firewall_rules_edit.php:1353
+#: usr/local/www/firewall_rules_edit.php:1380
+#: usr/local/www/firewall_rules_edit.php:1435
+#: usr/local/www/firewall_rules_edit.php:1485
+#: usr/local/www/firewall_rules_edit.php:1540 usr/local/www/pkg_edit.php:1107
+#: usr/local/www/services_dnsmasq.php:236 usr/local/www/interfaces.php:1479
msgid "Show advanced option"
msgstr ""
@@ -6976,51 +8394,82 @@ msgstr ""
#: usr/local/www/diag_logs_filter_dynamic.php:98 usr/local/www/system.php:75
#: usr/local/www/system.php:242 usr/local/www/system.php:262
#: usr/local/www/diag_logs_routing.php:66
-#: usr/local/www/system_routes_edit.php:198 usr/local/www/pkg_mgr.php:55
-#: usr/local/www/pkg_mgr.php:93 usr/local/www/diag_logs_settings.php:222
+#: usr/local/www/diag_logs_settings.php:222
#: usr/local/www/system_gateway_groups_edit.php:146
#: usr/local/www/fbegin.inc:283 usr/local/www/fbegin.inc:428
-#: usr/local/www/diag_logs_relayd.php:67
-#: usr/local/www/system_groupmanager.php:49 usr/local/www/system_routes.php:94
-#: usr/local/www/status_rrd_graph_settings.php:53
-#: usr/local/www/status_rrd_graph_settings.php:129
-#: usr/local/www/system_certmanager.php:56 usr/local/www/diag_backup.php:195
-#: usr/local/www/diag_logs_auth.php:66 usr/local/www/diag_logs_ipsec.php:103
-#: usr/local/www/system_usermanager.php:54 usr/local/www/diag_logs_vpn.php:126
-#: usr/local/www/diag_logs_ppp.php:70 usr/local/www/diag_logs_resolver.php:79
-#: usr/local/www/system_crlmanager.php:46
-#: usr/local/www/system_advanced_firewall.php:192
-#: usr/local/www/diag_logs_ntpd.php:66
-#: usr/local/www/system_advanced_admin.php:242
-#: usr/local/www/pkg_mgr_installed.php:51
-#: usr/local/www/pkg_mgr_installed.php:80 usr/local/www/diag_logs.php:77
-#: usr/local/www/system_advanced_notifications.php:140
-#: usr/local/www/status_rrd_graph.php:377
+#: usr/local/www/diag_logs_relayd.php:67 usr/local/www/diag_logs_auth.php:66
+#: usr/local/www/diag_logs_ipsec.php:103
+#: usr/local/www/diag_logs_resolver.php:79 usr/local/www/diag_logs_ntpd.php:66
#: usr/local/www/system_advanced_misc.php:218
-#: usr/local/www/system_groupmanager_addprivs.php:56
#: usr/local/www/diag_logs_dhcp.php:71
-#: usr/local/www/status_rrd_graph_img.php:41
#: usr/local/www/system_gateway_groups.php:89
-#: usr/local/www/system_firmware_check.php:49
#: usr/local/www/system_gateways_edit.php:425
-#: usr/local/www/pkg_mgr_install.php:57
-#: usr/local/www/system_usermanager_passwordmg.php:43
-#: usr/local/www/system_gateways.php:120
#: usr/local/www/diag_logs_wireless.php:68
#: usr/local/www/system_firmware.php:109 usr/local/www/system_firmware.php:210
-#: usr/local/www/system_advanced_sysctl.php:125
#: usr/local/www/diag_logs_filter_summary.php:185
-#: usr/local/www/system_usermanager_settings.php:51
#: usr/local/www/system_firmware_settings.php:79
-#: usr/local/www/system_hasync.php:96 usr/local/www/system_camanager.php:50
#: usr/local/www/diag_logs_gateways.php:79
-#: usr/local/www/system_advanced_network.php:148
#: usr/local/www/diag_logs_openvpn.php:70
-#: usr/local/www/diag_logs_filter_dynamic.php:99
-#: usr/local/www/pkg_mgr_settings.php:62 usr/local/www/system.php:75
+#: usr/local/www/diag_logs_filter_dynamic.php:99 usr/local/www/system.php:235
+#: usr/local/www/system.php:255 usr/local/www/diag_logs_filter.php:91
+#: usr/local/www/system_firmware.php:108 usr/local/www/system_camanager.php:51
+#: usr/local/www/status_rrd_graph_img.php:43
+#: usr/local/www/status_rrd_graph.php:402
+#: usr/local/www/diag_logs_filter_dynamic.php:97
+#: usr/local/www/system_routes.php:98 usr/local/www/system_hasync.php:97
+#: usr/local/www/system_certmanager.php:57
+#: usr/local/www/system_advanced_misc.php:222
+#: usr/local/www/diag_logs_ppp.php:68
+#: usr/local/www/system_advanced_firewall.php:221
+#: usr/local/www/pkg_mgr_install.php:55 usr/local/www/fbegin.inc:275
+#: usr/local/www/fbegin.inc:420 usr/local/www/system_firmware.php:108
+#: usr/local/www/system_firmware.php:210
+#: usr/local/www/system_gateways_edit.php:425
+#: usr/local/www/system_camanager.php:51 usr/local/www/diag_logs_auth.php:66
+#: usr/local/www/system_groupmanager.php:49
+#: usr/local/www/diag_logs_settings.php:222
+#: usr/local/www/system_firmware_check.php:49
+#: usr/local/www/diag_logs_filter.php:121
+#: usr/local/www/status_rrd_graph_img.php:43
+#: usr/local/www/system_firmware_settings.php:79
+#: usr/local/www/diag_logs_routing.php:66 usr/local/www/system.php:75
#: usr/local/www/system.php:235 usr/local/www/system.php:255
+#: usr/local/www/diag_logs_dhcp.php:71 usr/local/www/status_rrd_graph.php:402
+#: usr/local/www/pkg_mgr_installed.php:51
+#: usr/local/www/pkg_mgr_installed.php:80
+#: usr/local/www/status_rrd_graph_settings.php:53
+#: usr/local/www/status_rrd_graph_settings.php:129
+#: usr/local/www/diag_logs.php:77
+#: usr/local/www/diag_logs_filter_dynamic.php:97
+#: usr/local/www/system_routes.php:98 usr/local/www/diag_logs_ntpd.php:66
+#: usr/local/www/system_hasync.php:97 usr/local/www/system_certmanager.php:57
+#: usr/local/www/diag_logs_openvpn.php:70
+#: usr/local/www/system_advanced_admin.php:242
+#: usr/local/www/system_advanced_misc.php:254 usr/local/www/pkg_mgr.php:55
+#: usr/local/www/pkg_mgr.php:94 usr/local/www/diag_logs_ppp.php:68
+#: usr/local/www/system_routes_edit.php:227
+#: usr/local/www/system_crlmanager.php:46
+#: usr/local/www/system_usermanager_passwordmg.php:43
+#: usr/local/www/diag_logs_gateways.php:79
+#: usr/local/www/system_gateway_groups_edit.php:150
#: usr/local/www/system_authservers.php:44
-#: usr/local/www/diag_logs_filter.php:91
+#: usr/local/www/system_advanced_firewall.php:221
+#: usr/local/www/system_groupmanager_addprivs.php:56
+#: usr/local/www/diag_backup.php:195 usr/local/www/pkg_mgr_settings.php:62
+#: usr/local/www/system_usermanager_settings.php:51
+#: usr/local/www/pkg_mgr_install.php:55 usr/local/www/fbegin.inc:275
+#: usr/local/www/fbegin.inc:420 usr/local/www/diag_logs_relayd.php:67
+#: usr/local/www/diag_logs_vpn.php:126
+#: usr/local/www/system_advanced_notifications.php:140
+#: usr/local/www/diag_logs_ipsec.php:103
+#: usr/local/www/system_usermanager.php:54
+#: usr/local/www/system_gateways.php:120
+#: usr/local/www/system_advanced_network.php:148
+#: usr/local/www/diag_logs_wireless.php:68
+#: usr/local/www/system_gateway_groups.php:98
+#: usr/local/www/diag_logs_resolver.php:79
+#: usr/local/www/system_advanced_sysctl.php:125
+#: usr/local/www/diag_logs_filter_summary.php:185
msgid "System"
msgstr ""
@@ -7031,24 +8480,26 @@ msgstr ""
#: usr/local/www/pkg_mgr.php:55 usr/local/www/pkg_mgr.php:93
#: usr/local/www/fbegin.inc:458 usr/local/www/diag_backup.php:190
#: usr/local/www/pkg_mgr_installed.php:51
+#: usr/local/www/pkg_mgr_installed.php:80 usr/local/www/fbegin.inc:428
+#: usr/local/www/pkg_mgr_install.php:55 usr/local/www/fbegin.inc:420
+#: usr/local/www/pkg_mgr_installed.php:51
#: usr/local/www/pkg_mgr_installed.php:80 usr/local/www/pkg_mgr.php:55
-#: usr/local/www/pkg_mgr.php:93 usr/local/www/fbegin.inc:428
-#: usr/local/www/diag_backup.php:190 usr/local/www/pkg_mgr_installed.php:51
-#: usr/local/www/pkg_mgr_installed.php:80 usr/local/www/pkg_mgr_install.php:57
+#: usr/local/www/pkg_mgr.php:94 usr/local/www/diag_backup.php:190
+#: usr/local/www/pkg_mgr_install.php:55 usr/local/www/fbegin.inc:420
msgid "Package Manager"
msgstr ""
#: usr/local/www/pkg_mgr_installed.php:76 usr/local/www/pkg_mgr.php:99
#: usr/local/www/pkg_mgr.php:115 usr/local/www/pkg_mgr_installed.php:97
-#: usr/local/www/pkg_mgr.php:115 usr/local/www/pkg_mgr_installed.php:97
+#: usr/local/www/pkg_mgr_installed.php:99 usr/local/www/pkg_mgr.php:118
msgid "Available Packages"
msgstr ""
#: usr/local/www/pkg_mgr_installed.php:80 usr/local/www/pkg_mgr.php:103
#: usr/local/www/pkg_mgr_settings.php:93 usr/local/www/pkg_mgr.php:119
-#: usr/local/www/pkg_mgr_installed.php:101 usr/local/www/pkg_mgr.php:119
#: usr/local/www/pkg_mgr_installed.php:101
-#: usr/local/www/pkg_mgr_settings.php:93
+#: usr/local/www/pkg_mgr_installed.php:103 usr/local/www/pkg_mgr.php:122
+#: usr/local/www/pkg_mgr_settings.php:92
msgid "Installed Packages"
msgstr ""
@@ -7058,7 +8509,7 @@ msgstr ""
#: usr/local/www/pkg_mgr_installed.php:91 usr/local/www/pkg_mgr.php:114
#: usr/local/www/pkg_mgr.php:130 usr/local/www/pkg_mgr_installed.php:112
-#: usr/local/www/pkg_mgr.php:130 usr/local/www/pkg_mgr_installed.php:112
+#: usr/local/www/pkg_mgr_installed.php:114 usr/local/www/pkg_mgr.php:133
msgid "Category"
msgstr ""
@@ -7078,10 +8529,10 @@ msgstr ""
#: usr/local/www/pkg_mgr_installed.php:144
#: usr/local/www/pkg_mgr_installed.php:151
#: usr/local/www/pkg_mgr_installed.php:153
-#: usr/local/www/pkg_mgr_installed.php:142
#: usr/local/www/pkg_mgr_installed.php:144
-#: usr/local/www/pkg_mgr_installed.php:151
+#: usr/local/www/pkg_mgr_installed.php:146
#: usr/local/www/pkg_mgr_installed.php:153
+#: usr/local/www/pkg_mgr_installed.php:155
msgid "Available"
msgstr ""
@@ -7089,8 +8540,8 @@ msgstr ""
#: usr/local/www/pkg_mgr_installed.php:123
#: usr/local/www/pkg_mgr_installed.php:145
#: usr/local/www/pkg_mgr_installed.php:154
-#: usr/local/www/pkg_mgr_installed.php:145
-#: usr/local/www/pkg_mgr_installed.php:154
+#: usr/local/www/pkg_mgr_installed.php:147
+#: usr/local/www/pkg_mgr_installed.php:156
msgid "Installed"
msgstr ""
@@ -7121,6 +8572,7 @@ msgstr ""
#: usr/local/www/pkg_mgr_installed.php:181
#: usr/local/www/pkg_mgr_installed.php:222
#: usr/local/www/pkg_mgr_installed.php:225
+#: usr/local/www/pkg_mgr_installed.php:227
msgid "There are no packages currently installed."
msgstr ""
@@ -7188,43 +8640,58 @@ msgstr ""
#: usr/local/www/status_ntpd.php:107 usr/local/www/status_dhcpv6_leases.php:50
#: usr/local/www/status_dhcp_leases.php:49
#: usr/local/www/diag_logs_gateways.php:66
-#: usr/local/www/diag_logs_routing.php:54 usr/local/www/status_openvpn.php:46
#: usr/local/www/status_openvpn.php:215 usr/local/www/status_openvpn.php:266
-#: usr/local/www/pkg_mgr.php:131 usr/local/www/diag_logs_settings.php:143
-#: usr/local/www/status_captiveportal_vouchers.php:57
-#: usr/local/www/fbegin.inc:323 usr/local/www/status_lb_vs.php:56
-#: usr/local/www/status_lb_vs.php:80 usr/local/www/diag_logs_relayd.php:55
+#: usr/local/www/diag_logs_settings.php:143 usr/local/www/fbegin.inc:323
#: usr/local/www/status_interfaces.php:60
#: usr/local/www/status_interfaces.php:88 usr/local/www/carp_status.php:92
#: usr/local/www/carp_status.php:133 usr/local/www/status_graph.php:90
-#: usr/local/www/status_rrd_graph_settings.php:114
-#: usr/local/www/status_queues.php:101 usr/local/www/diag_ipsec.php:48
-#: usr/local/www/diag_ipsec.php:108 usr/local/www/diag_logs_auth.php:54
-#: usr/local/www/diag_ipsec_sad.php:49 usr/local/www/diag_logs_ipsec.php:91
-#: usr/local/www/status_lb_pool.php:62 usr/local/www/diag_logs_vpn.php:44
-#: usr/local/www/diag_logs_ppp.php:59 usr/local/www/diag_logs_resolver.php:66
-#: usr/local/www/diag_logs_ntpd.php:54
-#: usr/local/www/status_captiveportal_test.php:58
-#: usr/local/www/diag_logs.php:65 usr/local/www/status_rrd_graph.php:244
-#: usr/local/www/status_wireless.php:41 usr/local/www/status_wireless.php:78
+#: usr/local/www/diag_ipsec.php:108 usr/local/www/status_wireless.php:78
#: usr/local/www/status_ntpd.php:109 usr/local/www/status_ntpd.php:123
-#: usr/local/www/status_filter_reload.php:44 usr/local/www/easyrule.php:75
-#: usr/local/www/diag_logs_dhcp.php:59 usr/local/www/status_services.php:222
-#: usr/local/www/status_services.php:242
+#: usr/local/www/status_services.php:222 usr/local/www/status_services.php:242
+#: usr/local/www/status_gateways.php:78 usr/local/www/diag_logs_filter.php:79
+#: usr/local/www/status_services.php:220 usr/local/www/status_services.php:240
+#: usr/local/www/status_openvpn.php:314
+#: usr/local/www/status_captiveportal_expire.php:58
+#: usr/local/www/status_graph.php:101 usr/local/www/diag_ipsec.php:110
+#: usr/local/www/status_rrd_graph.php:248 usr/local/www/diag_logs_ppp.php:57
+#: usr/local/www/status_queues.php:109 usr/local/www/fbegin.inc:315
+#: usr/local/www/status_services.php:63 usr/local/www/status_services.php:81
#: usr/local/www/status_dhcpv6_leases.php:50
-#: usr/local/www/status_graph_cpu.php:41 usr/local/www/status_gateways.php:51
-#: usr/local/www/status_gateways.php:78
-#: usr/local/www/diag_logs_wireless.php:56
-#: usr/local/www/status_dhcp_leases.php:49 usr/local/www/status_upnp.php:58
-#: usr/local/www/diag_logs_filter_summary.php:34
-#: usr/local/www/diag_pkglogs.php:81
-#: usr/local/www/status_captiveportal_voucher_rolls.php:57
-#: usr/local/www/diag_logs_gateways.php:66
-#: usr/local/www/diag_logs_openvpn.php:45
-#: usr/local/www/status_gateway_groups.php:52
+#: usr/local/www/status_wireless.php:41 usr/local/www/status_wireless.php:78
+#: usr/local/www/diag_logs_auth.php:54
+#: usr/local/www/diag_logs_settings.php:143
+#: usr/local/www/status_openvpn.php:46 usr/local/www/status_openvpn.php:273
+#: usr/local/www/status_openvpn.php:334 usr/local/www/diag_logs_filter.php:109
+#: usr/local/www/status_captiveportal_expire.php:58
+#: usr/local/www/status_graph_cpu.php:41
+#: usr/local/www/diag_logs_routing.php:54 usr/local/www/status_graph.php:111
+#: usr/local/www/diag_logs_dhcp.php:59
+#: usr/local/www/status_filter_reload.php:44 usr/local/www/diag_ipsec.php:48
+#: usr/local/www/diag_ipsec.php:110 usr/local/www/status_rrd_graph.php:248
+#: usr/local/www/status_rrd_graph_settings.php:114
+#: usr/local/www/diag_logs.php:65
#: usr/local/www/diag_logs_filter_dynamic.php:61
+#: usr/local/www/diag_logs_ntpd.php:54 usr/local/www/status_interfaces.php:60
+#: usr/local/www/status_interfaces.php:88 usr/local/www/diag_ipsec_spd.php:49
+#: usr/local/www/diag_logs_openvpn.php:45 usr/local/www/status_lb_pool.php:62
+#: usr/local/www/pkg_mgr.php:134 usr/local/www/diag_logs_ppp.php:57
+#: usr/local/www/status_captiveportal_vouchers.php:57
+#: usr/local/www/diag_pkglogs.php:81 usr/local/www/status_ntpd.php:115
+#: usr/local/www/status_ntpd.php:129 usr/local/www/diag_logs_gateways.php:66
+#: usr/local/www/status_captiveportal_test.php:58
+#: usr/local/www/status_dhcp_leases.php:49 usr/local/www/status_queues.php:109
+#: usr/local/www/status_gateway_groups.php:52 usr/local/www/fbegin.inc:315
+#: usr/local/www/diag_logs_relayd.php:55 usr/local/www/diag_logs_vpn.php:44
+#: usr/local/www/diag_logs_ipsec.php:91
#: usr/local/www/widgets/widgets/wake_on_lan.widget.php:43
-#: usr/local/www/diag_ipsec_spd.php:49 usr/local/www/diag_logs_filter.php:79
+#: usr/local/www/status_captiveportal_voucher_rolls.php:57
+#: usr/local/www/status_lb_vs.php:56 usr/local/www/status_lb_vs.php:80
+#: usr/local/www/diag_ipsec_sad.php:49 usr/local/www/status_gateways.php:51
+#: usr/local/www/status_gateways.php:78
+#: usr/local/www/diag_logs_wireless.php:56 usr/local/www/status_upnp.php:58
+#: usr/local/www/easyrule.php:75 usr/local/www/diag_logs_resolver.php:66
+#: usr/local/www/diag_logs_filter_summary.php:34
+#: usr/local/www/carp_status.php:92 usr/local/www/carp_status.php:133
msgid "Status"
msgstr ""
@@ -7283,33 +8750,61 @@ msgstr ""
#: usr/local/www/firewall_nat_out.php:294
#: usr/local/www/firewall_nat_1to1_edit.php:221
#: usr/local/www/firewall_nat_npt_edit.php:144
-#: usr/local/www/firewall_nat_out_edit.php:313
#: usr/local/www/firewall_nat.php:165 usr/local/www/diag_logs_auth.php:67
-#: usr/local/www/firewall_shaper.php:54
#: usr/local/www/firewall_rules_edit.php:661
-#: usr/local/www/diag_logs_ipsec.php:104 usr/local/www/firewall_nat_npt.php:78
-#: usr/local/www/diag_logs_vpn.php:127
-#: usr/local/www/firewall_schedule_edit.php:61
-#: usr/local/www/diag_logs_ppp.php:71
-#: usr/local/www/services_igmpproxy_edit.php:46
+#: usr/local/www/diag_logs_ipsec.php:104
#: usr/local/www/diag_logs_resolver.php:80 usr/local/www/diag_logs_ntpd.php:67
-#: usr/local/www/firewall_aliases_edit.php:56 usr/local/www/diag_logs.php:78
-#: usr/local/www/firewall_nat_1to1.php:78 usr/local/www/firewall_rules.php:49
-#: usr/local/www/firewall_shaper_vinterface.php:54
-#: usr/local/www/diag_logs_dhcp.php:72 usr/local/www/firewall_schedule.php:50
-#: usr/local/www/firewall_shaper_layer7.php:59
-#: usr/local/www/firewall_shaper_wizards.php:73
+#: usr/local/www/firewall_rules.php:49 usr/local/www/diag_logs_dhcp.php:72
#: usr/local/www/diag_logs_wireless.php:69
#: usr/local/www/diag_logs_filter_summary.php:186
#: usr/local/www/firewall_aliases.php:155
#: usr/local/www/diag_logs_gateways.php:80
#: usr/local/www/firewall_nat_edit.php:444
-#: usr/local/www/firewall_aliases_import.php:48
#: usr/local/www/diag_logs_openvpn.php:71
#: usr/local/www/firewall_virtual_ip_edit.php:261
#: usr/local/www/diag_logs_filter_dynamic.php:100
#: usr/local/www/firewall_virtual_ip.php:152
#: usr/local/www/diag_logs_filter.php:79 usr/local/www/diag_logs_filter.php:92
+#: usr/local/www/firewall_rules_edit.php:664
+#: usr/local/www/firewall_virtual_ip.php:166
+#: usr/local/www/firewall_nat_edit.php:439
+#: usr/local/www/firewall_virtual_ip_edit.php:253
+#: usr/local/www/diag_logs_filter_dynamic.php:98
+#: usr/local/www/diag_logs_ppp.php:69 usr/local/www/fbegin.inc:291
+#: usr/local/www/firewall_nat_out_edit.php:317
+#: usr/local/www/firewall_shaper_layer7.php:59
+#: usr/local/www/firewall_shaper.php:54 usr/local/www/diag_logs_auth.php:67
+#: usr/local/www/diag_logs_settings.php:223
+#: usr/local/www/firewall_shaper_vinterface.php:54
+#: usr/local/www/firewall_schedule.php:50
+#: usr/local/www/firewall_rules_edit.php:676
+#: usr/local/www/diag_logs_filter.php:109
+#: usr/local/www/diag_logs_filter.php:122
+#: usr/local/www/firewall_virtual_ip.php:166
+#: usr/local/www/diag_logs_routing.php:67
+#: usr/local/www/firewall_schedule_edit.php:61
+#: usr/local/www/firewall_nat_edit.php:451
+#: usr/local/www/firewall_aliases.php:154 usr/local/www/diag_logs_dhcp.php:72
+#: usr/local/www/firewall_virtual_ip_edit.php:273
+#: usr/local/www/firewall_shaper_wizards.php:73 usr/local/www/diag_logs.php:78
+#: usr/local/www/diag_logs_filter_dynamic.php:98
+#: usr/local/www/firewall_aliases_import.php:48
+#: usr/local/www/diag_logs_ntpd.php:67 usr/local/www/firewall_nat.php:165
+#: usr/local/www/diag_logs_openvpn.php:71 usr/local/www/diag_logs_ppp.php:69
+#: usr/local/www/firewall_nat_out.php:301 usr/local/www/firewall_rules.php:49
+#: usr/local/www/firewall_nat_npt.php:78
+#: usr/local/www/firewall_nat_1to1.php:78
+#: usr/local/www/firewall_nat_npt_edit.php:144
+#: usr/local/www/diag_logs_gateways.php:80
+#: usr/local/www/firewall_aliases_edit.php:56
+#: usr/local/www/services_igmpproxy_edit.php:46
+#: usr/local/www/firewall_nat_1to1_edit.php:221 usr/local/www/fbegin.inc:291
+#: usr/local/www/diag_logs_relayd.php:68 usr/local/www/diag_logs_vpn.php:127
+#: usr/local/www/diag_logs_ipsec.php:104
+#: usr/local/www/firewall_nat_out_edit.php:329
+#: usr/local/www/diag_logs_wireless.php:69
+#: usr/local/www/diag_logs_resolver.php:80
+#: usr/local/www/diag_logs_filter_summary.php:186
msgid "Firewall"
msgstr ""
@@ -7321,11 +8816,13 @@ msgstr ""
#: usr/local/www/fbegin.inc:127 usr/local/www/services_dnsmasq_edit.php:225
#: usr/local/www/diag_backup.php:180 usr/local/www/firewall_aliases.php:153
#: usr/local/www/fbegin.inc:136 usr/local/www/services_dnsmasq_edit.php:226
-#: usr/local/www/diag_backup.php:180
-#: usr/local/www/firewall_aliases_edit.php:56
-#: usr/local/www/firewall_aliases.php:155
+#: usr/local/www/firewall_aliases.php:155 usr/local/www/fbegin.inc:128
+#: usr/local/www/firewall_aliases.php:154
#: usr/local/www/firewall_aliases_import.php:48
#: usr/local/www/firewall_aliases_import.php:59
+#: usr/local/www/firewall_aliases_edit.php:56
+#: usr/local/www/diag_backup.php:180
+#: usr/local/www/services_dnsmasq_edit.php:226 usr/local/www/fbegin.inc:128
msgid "Aliases"
msgstr ""
@@ -7341,23 +8838,23 @@ msgstr ""
#: usr/local/www/firewall_aliases_import.php:68
#: usr/local/www/firewall_aliases_edit.php:151
-#: usr/local/www/firewall_aliases_edit.php:151
#: usr/local/www/firewall_aliases_import.php:68
+#: usr/local/www/firewall_aliases_edit.php:145
msgid "An alias with this name already exists."
msgstr ""
#: usr/local/www/firewall_aliases_import.php:74
#: usr/local/www/firewall_aliases_edit.php:160
-#: usr/local/www/firewall_aliases_edit.php:160
#: usr/local/www/firewall_aliases_import.php:74
+#: usr/local/www/firewall_aliases_edit.php:154
#, php-format
msgid "Cannot use a reserved keyword as alias name %s"
msgstr ""
#: usr/local/www/firewall_aliases_import.php:79
#: usr/local/www/firewall_aliases_edit.php:165
-#: usr/local/www/firewall_aliases_edit.php:165
#: usr/local/www/firewall_aliases_import.php:79
+#: usr/local/www/firewall_aliases_edit.php:159
msgid "An interface description with this name already exists."
msgstr ""
@@ -7411,9 +8908,28 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:827
#: usr/local/www/services_captiveportal_zones_edit.php:111
#: usr/local/www/vpn_ipsec_phase2.php:630
-#: usr/local/www/firewall_aliases_import.php:142
#: usr/local/www/vpn_openvpn_client.php:600
#: usr/local/www/vpn_ipsec_phase1.php:592
+#: usr/local/www/system_gateways_edit.php:626
+#: usr/local/www/services_captiveportal_ip_edit.php:203
+#: usr/local/www/vpn_openvpn_client.php:619
+#: usr/local/www/interfaces_lagg_edit.php:225
+#: usr/local/www/services_captiveportal_mac_edit.php:196
+#: usr/local/www/vpn_ipsec_phase1.php:613
+#: usr/local/www/vpn_openvpn_server.php:854
+#: usr/local/www/vpn_ipsec_phase2.php:651
+#: usr/local/www/system_gateways_edit.php:628
+#: usr/local/www/services_captiveportal_ip_edit.php:203
+#: usr/local/www/services_captiveportal_zones_edit.php:109
+#: usr/local/www/vpn_openvpn_client.php:619
+#: usr/local/www/vpn_openvpn_csc.php:345
+#: usr/local/www/interfaces_lagg_edit.php:225
+#: usr/local/www/services_captiveportal_hostname_edit.php:186
+#: usr/local/www/firewall_aliases_import.php:142
+#: usr/local/www/services_captiveportal_mac_edit.php:196
+#: usr/local/www/vpn_ipsec_phase1.php:613
+#: usr/local/www/vpn_openvpn_server.php:854
+#: usr/local/www/vpn_ipsec_phase2.php:651
msgid "You may enter a description here for your reference (not parsed)"
msgstr ""
@@ -7440,10 +8956,11 @@ msgstr ""
#: usr/local/www/firewall_shaper.php:54 usr/local/www/diag_backup.php:121
#: usr/local/www/fbegin.inc:114 usr/local/www/fbegin.inc:131
#: usr/local/www/diag_backup.php:199 usr/local/www/fbegin.inc:140
-#: usr/local/www/diag_backup.php:199 usr/local/www/firewall_shaper.php:54
+#: usr/local/www/fbegin.inc:132 usr/local/www/firewall_shaper_layer7.php:59
+#: usr/local/www/firewall_shaper.php:54
#: usr/local/www/firewall_shaper_vinterface.php:54
-#: usr/local/www/firewall_shaper_layer7.php:59
#: usr/local/www/firewall_shaper_wizards.php:73
+#: usr/local/www/diag_backup.php:199 usr/local/www/fbegin.inc:132
msgid "Traffic Shaper"
msgstr ""
@@ -7457,12 +8974,15 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1514
#: usr/local/www/firewall_shaper_vinterface.php:385
#: usr/local/www/firewall_shaper.php:413
-#: usr/local/www/firewall_rules_edit.php:1514
-#: usr/local/www/firewall_shaper_queues.php:196
#: usr/local/www/firewall_shaper_vinterface.php:392
+#: usr/local/www/firewall_rules_edit.php:1529
#: usr/local/www/firewall_shaper_layer7.php:59
#: usr/local/www/firewall_shaper_layer7.php:410
-#: usr/local/www/firewall_shaper_wizards.php:105
+#: usr/local/www/firewall_shaper.php:414
+#: usr/local/www/firewall_shaper_vinterface.php:395
+#: usr/local/www/firewall_rules_edit.php:1537
+#: usr/local/www/firewall_shaper_queues.php:197
+#: usr/local/www/firewall_shaper_wizards.php:106
msgid "Layer7"
msgstr ""
@@ -7477,9 +8997,15 @@ msgstr ""
#: usr/local/www/status_queues.php:174 usr/local/www/status_queues.php:182
#: usr/local/www/interfaces.php:2752 usr/local/www/interfaces.php:2761
#: usr/local/www/carp_status.php:189 usr/local/www/status_queues.php:183
-#: usr/local/www/firewall_shaper_layer7.php:66
#: usr/local/www/interfaces.php:2740 usr/local/www/interfaces.php:2749
#: usr/local/www/firewall_virtual_ip.php:249
+#: usr/local/www/firewall_virtual_ip.php:269
+#: usr/local/www/status_queues.php:165 usr/local/www/interfaces.php:2774
+#: usr/local/www/interfaces.php:2783
+#: usr/local/www/firewall_shaper_layer7.php:66
+#: usr/local/www/firewall_virtual_ip.php:269
+#: usr/local/www/status_queues.php:165 usr/local/www/interfaces.php:2820
+#: usr/local/www/interfaces.php:2829 usr/local/www/carp_status.php:189
msgid "here"
msgstr ""
@@ -7495,8 +9021,8 @@ msgstr ""
#: usr/local/www/firewall_shaper_layer7.php:401
#: usr/local/www/firewall_shaper_queues.php:187
-#: usr/local/www/firewall_shaper_queues.php:187
#: usr/local/www/firewall_shaper_layer7.php:401
+#: usr/local/www/firewall_shaper_queues.php:188
msgid "The traffic shaper configuration has been changed"
msgstr ""
@@ -7507,10 +9033,12 @@ msgstr ""
#: usr/local/www/firewall_shaper_queues.php:193
#: usr/local/www/firewall_shaper_vinterface.php:382
#: usr/local/www/firewall_shaper.php:410
-#: usr/local/www/firewall_shaper_queues.php:193
#: usr/local/www/firewall_shaper_vinterface.php:389
#: usr/local/www/firewall_shaper_layer7.php:407
-#: usr/local/www/firewall_shaper_wizards.php:102
+#: usr/local/www/firewall_shaper.php:411
+#: usr/local/www/firewall_shaper_vinterface.php:392
+#: usr/local/www/firewall_shaper_queues.php:194
+#: usr/local/www/firewall_shaper_wizards.php:103
msgid "By Interface"
msgstr ""
@@ -7521,10 +9049,12 @@ msgstr ""
#: usr/local/www/firewall_shaper_queues.php:194
#: usr/local/www/firewall_shaper_vinterface.php:383
#: usr/local/www/firewall_shaper.php:411
-#: usr/local/www/firewall_shaper_queues.php:194
#: usr/local/www/firewall_shaper_vinterface.php:390
#: usr/local/www/firewall_shaper_layer7.php:408
-#: usr/local/www/firewall_shaper_wizards.php:103
+#: usr/local/www/firewall_shaper.php:412
+#: usr/local/www/firewall_shaper_vinterface.php:393
+#: usr/local/www/firewall_shaper_queues.php:195
+#: usr/local/www/firewall_shaper_wizards.php:104
msgid "By Queue"
msgstr ""
@@ -7536,11 +9066,13 @@ msgstr ""
#: usr/local/www/firewall_shaper_queues.php:195
#: usr/local/www/firewall_shaper_vinterface.php:384
#: usr/local/www/firewall_shaper.php:412
-#: usr/local/www/firewall_shaper_queues.php:195
-#: usr/local/www/firewall_shaper_vinterface.php:54
#: usr/local/www/firewall_shaper_vinterface.php:391
#: usr/local/www/firewall_shaper_layer7.php:409
-#: usr/local/www/firewall_shaper_wizards.php:104
+#: usr/local/www/firewall_shaper.php:413
+#: usr/local/www/firewall_shaper_vinterface.php:54
+#: usr/local/www/firewall_shaper_vinterface.php:394
+#: usr/local/www/firewall_shaper_queues.php:196
+#: usr/local/www/firewall_shaper_wizards.php:105
msgid "Limiter"
msgstr ""
@@ -7556,15 +9088,21 @@ msgstr ""
#: usr/local/www/firewall_shaper_vinterface.php:386
#: usr/local/www/vpn_openvpn_server.php:659
#: usr/local/www/vpn_openvpn_client.php:373
-#: usr/local/www/firewall_shaper.php:414
-#: usr/local/www/firewall_shaper_queues.php:197
-#: usr/local/www/vpn_openvpn_csc.php:295
+#: usr/local/www/firewall_shaper.php:414 usr/local/www/vpn_openvpn_csc.php:295
#: usr/local/www/firewall_shaper_vinterface.php:393
-#: usr/local/www/firewall_shaper_layer7.php:411
-#: usr/local/www/firewall_shaper_wizards.php:73
-#: usr/local/www/firewall_shaper_wizards.php:106
#: usr/local/www/vpn_openvpn_server.php:677
#: usr/local/www/vpn_openvpn_client.php:381
+#: usr/local/www/vpn_openvpn_client.php:399
+#: usr/local/www/vpn_openvpn_server.php:703
+#: usr/local/www/firewall_shaper_layer7.php:411
+#: usr/local/www/firewall_shaper.php:415
+#: usr/local/www/firewall_shaper_vinterface.php:396
+#: usr/local/www/vpn_openvpn_client.php:399
+#: usr/local/www/vpn_openvpn_csc.php:295
+#: usr/local/www/firewall_shaper_queues.php:198
+#: usr/local/www/firewall_shaper_wizards.php:73
+#: usr/local/www/firewall_shaper_wizards.php:107
+#: usr/local/www/vpn_openvpn_server.php:703
msgid "Wizards"
msgstr ""
@@ -7607,17 +9145,27 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:685
#: usr/local/www/services_dhcp.php:893 usr/local/www/services_dhcpv6.php:863
#: usr/local/www/vpn_pppoe_edit.php:574
-#: usr/local/www/services_unbound_acls.php:279
#: usr/local/www/services_dnsmasq_edit.php:272
#: usr/local/www/services_router_advertisements.php:358
#: usr/local/www/interfaces_qinq_edit.php:388
-#: usr/local/www/system_certmanager.php:793
-#: usr/local/www/services_igmpproxy_edit.php:275
#: usr/local/www/firewall_aliases_edit.php:688
-#: usr/local/www/firewall_shaper_layer7.php:558
#: usr/local/www/services_dhcp.php:1090
#: usr/local/www/interfaces_groups_edit.php:316
-#: usr/local/www/services_dhcpv6.php:794
+#: usr/local/www/services_dhcpv6.php:794 usr/local/www/vpn_pppoe_edit.php:577
+#: usr/local/www/services_dhcp.php:1103
+#: usr/local/www/system_certmanager.php:818
+#: usr/local/www/services_dhcpv6.php:811
+#: usr/local/www/interfaces_qinq_edit.php:391
+#: usr/local/www/firewall_shaper_layer7.php:555
+#: usr/local/www/services_router_advertisements.php:353
+#: usr/local/www/vpn_pppoe_edit.php:577 usr/local/www/services_dhcp.php:1123
+#: usr/local/www/system_certmanager.php:820
+#: usr/local/www/services_dhcpv6.php:811
+#: usr/local/www/interfaces_groups_edit.php:316
+#: usr/local/www/firewall_aliases_edit.php:717
+#: usr/local/www/services_igmpproxy_edit.php:275
+#: usr/local/www/services_dnsmasq_edit.php:272
+#: usr/local/www/interfaces_qinq_edit.php:391
msgid "add another entry"
msgstr ""
@@ -7636,6 +9184,7 @@ msgstr ""
#: usr/local/www/firewall_shaper_vinterface.php:160
#: usr/local/www/firewall_shaper.php:159 usr/local/www/firewall_shaper.php:160
+#: usr/local/www/firewall_shaper.php:160
#: usr/local/www/firewall_shaper_vinterface.php:160
msgid "Could not create new queue/discipline!"
msgstr ""
@@ -7652,6 +9201,11 @@ msgstr ""
#: usr/local/www/firewall_shaper_vinterface.php:173
#: usr/local/www/firewall_shaper_vinterface.php:183
#: usr/local/www/firewall_shaper_vinterface.php:193
+#: usr/local/www/firewall_shaper.php:176 usr/local/www/firewall_shaper.php:185
+#: usr/local/www/firewall_shaper.php:194
+#: usr/local/www/firewall_shaper_vinterface.php:173
+#: usr/local/www/firewall_shaper_vinterface.php:183
+#: usr/local/www/firewall_shaper_vinterface.php:193
msgid "Queue not found!"
msgstr ""
@@ -7660,6 +9214,8 @@ msgstr ""
#: usr/local/www/firewall_shaper_vinterface.php:245
#: usr/local/www/firewall_shaper.php:271
#: usr/local/www/firewall_shaper_vinterface.php:247
+#: usr/local/www/firewall_shaper.php:271
+#: usr/local/www/firewall_shaper_vinterface.php:247
msgid "Could not add new queue."
msgstr ""
@@ -7668,6 +9224,8 @@ msgstr ""
#: usr/local/www/firewall_shaper_vinterface.php:314
#: usr/local/www/firewall_shaper.php:347
#: usr/local/www/firewall_shaper_vinterface.php:316
+#: usr/local/www/firewall_shaper.php:347
+#: usr/local/www/firewall_shaper_vinterface.php:316
msgid "Queue Actions"
msgstr ""
@@ -7676,6 +9234,8 @@ msgstr ""
#: usr/local/www/firewall_shaper_vinterface.php:325
#: usr/local/www/firewall_shaper.php:358
#: usr/local/www/firewall_shaper_vinterface.php:327
+#: usr/local/www/firewall_shaper.php:358
+#: usr/local/www/firewall_shaper_vinterface.php:327
msgid "Add new queue"
msgstr ""
@@ -7684,12 +9244,15 @@ msgstr ""
#: usr/local/www/firewall_shaper_vinterface.php:336
#: usr/local/www/firewall_shaper.php:368
#: usr/local/www/firewall_shaper_vinterface.php:338
+#: usr/local/www/firewall_shaper.php:368
+#: usr/local/www/firewall_shaper_vinterface.php:338
msgid "Delete this queue"
msgstr ""
#: usr/local/www/firewall_shaper_vinterface.php:328
#: usr/local/www/firewall_shaper_vinterface.php:338
#: usr/local/www/firewall_shaper_vinterface.php:340
+#: usr/local/www/firewall_shaper_vinterface.php:340
msgid "Delete virtual interface"
msgstr ""
@@ -7699,13 +9262,16 @@ msgstr ""
#: usr/local/www/firewall_shaper_vinterface.php:376
#: usr/local/www/firewall_shaper.php:404
#: usr/local/www/firewall_shaper_vinterface.php:383
-#: usr/local/www/firewall_shaper_wizards.php:96
+#: usr/local/www/firewall_shaper.php:405
+#: usr/local/www/firewall_shaper_vinterface.php:386
+#: usr/local/www/firewall_shaper_wizards.php:97
msgid "The traffic shaper configuration has been changed."
msgstr ""
#: usr/local/www/firewall_shaper_vinterface.php:395
#: usr/local/www/firewall_shaper_vinterface.php:405
#: usr/local/www/firewall_shaper_vinterface.php:412
+#: usr/local/www/firewall_shaper_vinterface.php:415
msgid "Create new limiter"
msgstr ""
@@ -7730,12 +9296,12 @@ msgid "Dedicated Links"
msgstr ""
#: usr/local/www/firewall_shaper_wizards.php:115
-#: usr/local/www/firewall_shaper_wizards.php:115
+#: usr/local/www/firewall_shaper_wizards.php:116
msgid "Wizard function"
msgstr ""
#: usr/local/www/firewall_shaper_wizards.php:116
-#: usr/local/www/firewall_shaper_wizards.php:116
+#: usr/local/www/firewall_shaper_wizards.php:117
msgid "Wizard Link"
msgstr ""
@@ -7754,20 +9320,27 @@ msgstr ""
#: usr/local/www/services_unbound.php:347 usr/local/www/system.php:114
#: usr/local/www/system.php:276 usr/local/www/services_dnsmasq.php:245
#: usr/local/www/services_dnsmasq.php:333
-#: usr/local/www/services_dnsmasq_edit.php:81
#: usr/local/www/services_dnsmasq_edit.php:205
#: usr/local/www/services_dnsmasq_edit.php:239
-#: usr/local/www/services_unbound.php:280
-#: usr/local/www/services_unbound.php:347
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:72
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:130
#: usr/local/www/system.php:107 usr/local/www/system.php:269
+#: usr/local/www/services_dnsmasq.php:270
+#: usr/local/www/services_dnsmasq.php:358 usr/local/www/system.php:107
+#: usr/local/www/system.php:269 usr/local/www/services_dnsmasq_edit.php:81
+#: usr/local/www/services_dnsmasq_edit.php:205
+#: usr/local/www/services_dnsmasq_edit.php:239
+#: usr/local/www/services_dnsmasq.php:283
+#: usr/local/www/services_dnsmasq.php:371
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:72
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:130
msgid "Domain"
msgstr ""
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:70
#: usr/local/www/services_dnsmasq_edit.php:88
#: usr/local/www/services_dnsmasq_edit.php:89
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:87
#: usr/local/www/services_dnsmasq_edit.php:89
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:87
msgid "A valid domain must be specified."
@@ -7784,20 +9357,26 @@ msgstr ""
#: usr/local/www/services_dhcpv6.php:791
#: usr/local/www/services_dnsmasq_edit.php:166
#: usr/local/www/services_dhcp.php:916 usr/local/www/services_dhcpv6.php:886
-#: usr/local/www/services_dnsmasq.php:119
-#: usr/local/www/services_dnsmasq_edit.php:166
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:118
#: usr/local/www/services_dhcp.php:1120 usr/local/www/services_dhcpv6.php:817
+#: usr/local/www/services_dhcp.php:1133 usr/local/www/services_dhcpv6.php:834
+#: usr/local/www/services_dnsmasq.php:123 usr/local/www/services_dhcp.php:1153
+#: usr/local/www/services_dhcpv6.php:834
+#: usr/local/www/services_dnsmasq_edit.php:166
+#: usr/local/www/services_dnsmasq.php:125
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:118
msgid "DNS forwarder"
msgstr ""
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:96
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:118
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:118
msgid "Edit Domain Override"
msgstr ""
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:110
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:133
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:133
msgid "Domain to override (NOTE: this does not have to be a valid TLD!)"
msgstr ""
@@ -7817,22 +9396,32 @@ msgstr ""
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:134
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:141
#: usr/local/www/firewall_nat_edit.php:751 usr/local/www/system.php:264
-#: usr/local/www/system.php:275
+#: usr/local/www/system.php:275 usr/local/www/firewall_nat_edit.php:746
+#: usr/local/www/system.php:264 usr/local/www/system.php:275
+#: usr/local/www/firewall_nat_edit.php:758
+#: usr/local/www/services_dnsmasq_edit.php:202
+#: usr/local/www/services_dnsmasq_edit.php:209
+#: usr/local/www/services_dnsmasq_edit.php:216
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:134
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:141
msgid "e.g."
msgstr ""
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:111
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:134
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:134
msgid "test"
msgstr ""
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:117
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:140
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:140
msgid "IP address of the authoritative DNS server for this domain"
msgstr ""
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:118
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:141
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:141
msgid ""
"Or enter # for an exclusion to pass through this host/subdomain to standard "
"nameservers instead of a previous override."
@@ -7870,17 +9459,12 @@ msgstr ""
#: usr/local/www/services_dhcp.php:851 usr/local/www/vpn_ipsec_phase2.php:449
#: usr/local/www/vpn_ipsec_phase2.php:491
#: usr/local/www/firewall_virtual_ip_edit.php:403
-#: usr/local/www/load_balancer_relay_protocol_edit.php:79
#: usr/local/www/load_balancer_relay_protocol_edit.php:199
-#: usr/local/www/system_certmanager.php:762
#: usr/local/www/load_balancer_relay_action_edit.php:460
-#: usr/local/www/load_balancer_monitor_edit.php:88
#: usr/local/www/load_balancer_monitor_edit.php:245
-#: usr/local/www/services_igmpproxy_edit.php:187
#: usr/local/www/firewall_aliases_edit.php:609
#: usr/local/www/status_ntpd.php:127
#: usr/local/www/services_captiveportal.php:817
-#: usr/local/www/services_igmpproxy.php:96
#: usr/local/www/load_balancer_monitor.php:122
#: usr/local/www/load_balancer_relay_protocol.php:133
#: usr/local/www/services_dhcp.php:1048
@@ -7888,13 +9472,49 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:515
#: usr/local/www/vpn_ipsec_phase2.php:551
#: usr/local/www/vpn_ipsec_phase2.php:593
-#: usr/local/www/firewall_virtual_ip_edit.php:106
#: usr/local/www/firewall_virtual_ip_edit.php:355
#: usr/local/www/firewall_virtual_ip.php:190
#: usr/local/www/system_authservers.php:162
#: usr/local/www/system_authservers.php:185
#: usr/local/www/system_authservers.php:454
#: usr/local/www/system_authservers.php:744
+#: usr/local/www/firewall_virtual_ip.php:204
+#: usr/local/www/firewall_virtual_ip_edit.php:347
+#: usr/local/www/services_dhcp.php:1061
+#: usr/local/www/system_certmanager.php:787
+#: usr/local/www/system_authservers.php:163
+#: usr/local/www/system_authservers.php:186
+#: usr/local/www/system_authservers.php:461
+#: usr/local/www/system_authservers.php:760
+#: usr/local/www/services_captiveportal.php:805
+#: usr/local/www/vpn_ipsec_phase2.php:537
+#: usr/local/www/vpn_ipsec_phase2.php:572
+#: usr/local/www/vpn_ipsec_phase2.php:614
+#: usr/local/www/load_balancer_relay_protocol_edit.php:79
+#: usr/local/www/load_balancer_relay_protocol_edit.php:199
+#: usr/local/www/firewall_virtual_ip.php:204
+#: usr/local/www/firewall_virtual_ip_edit.php:106
+#: usr/local/www/firewall_virtual_ip_edit.php:367
+#: usr/local/www/load_balancer_relay_protocol.php:133
+#: usr/local/www/load_balancer_relay_action.php:139
+#: usr/local/www/services_dhcp.php:1081
+#: usr/local/www/system_certmanager.php:788
+#: usr/local/www/load_balancer_relay_action_edit.php:460
+#: usr/local/www/status_ntpd.php:133
+#: usr/local/www/load_balancer_monitor_edit.php:88
+#: usr/local/www/load_balancer_monitor_edit.php:245
+#: usr/local/www/system_authservers.php:163
+#: usr/local/www/system_authservers.php:186
+#: usr/local/www/system_authservers.php:461
+#: usr/local/www/system_authservers.php:760
+#: usr/local/www/services_captiveportal.php:821
+#: usr/local/www/firewall_aliases_edit.php:640
+#: usr/local/www/services_igmpproxy_edit.php:187
+#: usr/local/www/services_igmpproxy.php:96
+#: usr/local/www/load_balancer_monitor.php:122
+#: usr/local/www/vpn_ipsec_phase2.php:537
+#: usr/local/www/vpn_ipsec_phase2.php:572
+#: usr/local/www/vpn_ipsec_phase2.php:614
msgid "Type"
msgstr ""
@@ -7905,15 +9525,18 @@ msgstr ""
#: usr/local/www/services_dnsmasq_edit.php:92
#: usr/local/www/services_dhcp_edit.php:128
#: usr/local/www/firewall_virtual_ip_edit.php:114
+#: usr/local/www/services_dhcp_edit.php:162
+#: usr/local/www/firewall_virtual_ip_edit.php:115
+#: usr/local/www/services_dhcp_edit.php:162
+#: usr/local/www/firewall_virtual_ip_edit.php:115
#: usr/local/www/services_dnsmasq_edit.php:92
-#: usr/local/www/services_dhcp_edit.php:128
-#: usr/local/www/firewall_virtual_ip_edit.php:114
msgid "A valid IP address must be specified."
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:116
#: usr/local/www/firewall_virtual_ip_edit.php:119
-#: usr/local/www/firewall_virtual_ip_edit.php:119
+#: usr/local/www/firewall_virtual_ip_edit.php:123
+#: usr/local/www/firewall_virtual_ip_edit.php:123
msgid ""
"The interface chosen for the VIP has no IPv4 or IPv6 address configured so "
"it cannot be used as a parent for the VIP."
@@ -7921,7 +9544,6 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:118
#: usr/local/www/firewall_virtual_ip_edit.php:121
-#: usr/local/www/firewall_virtual_ip_edit.php:121
#, php-format
msgid "The %s IP address may not be used in a virtual entry."
msgstr ""
@@ -7938,7 +9560,6 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:135
#: usr/local/www/firewall_virtual_ip_edit.php:138
-#: usr/local/www/firewall_virtual_ip_edit.php:138
msgid "There is already a virtual IP entry for the specified IP address."
msgstr ""
@@ -7950,6 +9571,8 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:154
#: usr/local/www/firewall_virtual_ip_edit.php:157
#: usr/local/www/firewall_virtual_ip_edit.php:156
+#: usr/local/www/firewall_virtual_ip_edit.php:148
+#: usr/local/www/firewall_virtual_ip_edit.php:164
msgid ""
"You must specify a CARP password that is shared between the two VHID members."
msgstr ""
@@ -7963,6 +9586,10 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:163
#: usr/local/www/firewall_virtual_ip_edit.php:172
#: usr/local/www/firewall_virtual_ip_edit.php:184
+#: usr/local/www/firewall_virtual_ip_edit.php:155
+#: usr/local/www/firewall_virtual_ip_edit.php:176
+#: usr/local/www/firewall_virtual_ip_edit.php:178
+#: usr/local/www/firewall_virtual_ip_edit.php:197
#, php-format
msgid ""
"Sorry, we could not locate an interface with a matching subnet for %s. "
@@ -7972,12 +9599,16 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:174
#: usr/local/www/firewall_virtual_ip_edit.php:177
#: usr/local/www/firewall_virtual_ip_edit.php:176
+#: usr/local/www/firewall_virtual_ip_edit.php:168
+#: usr/local/www/firewall_virtual_ip_edit.php:182
msgid "For this type of vip a carp parent is not allowed."
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:188
#: usr/local/www/firewall_virtual_ip_edit.php:191
#: usr/local/www/firewall_virtual_ip_edit.php:190
+#: usr/local/www/firewall_virtual_ip_edit.php:182
+#: usr/local/www/firewall_virtual_ip_edit.php:203
msgid "For this type of VIP, a CARP parent is not allowed."
msgstr ""
@@ -7988,6 +9619,8 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:281
#: usr/local/www/firewall_virtual_ip_edit.php:268
#: usr/local/www/firewall_virtual_ip_edit.php:261
+#: usr/local/www/firewall_virtual_ip_edit.php:253
+#: usr/local/www/firewall_virtual_ip_edit.php:273
msgid "Virtual IP Address"
msgstr ""
@@ -7997,6 +9630,10 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:290
#: usr/local/www/firewall_virtual_ip_edit.php:287
#: usr/local/www/firewall_virtual_ip_edit.php:289
+#: usr/local/www/firewall_virtual_ip_edit.php:279
+#: usr/local/www/firewall_virtual_ip_edit.php:281
+#: usr/local/www/firewall_virtual_ip_edit.php:299
+#: usr/local/www/firewall_virtual_ip_edit.php:301
msgid ""
"This must be the network's subnet mask. It does not specify a CIDR range."
msgstr ""
@@ -8004,18 +9641,24 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:301
#: usr/local/www/firewall_virtual_ip_edit.php:289
#: usr/local/www/firewall_virtual_ip_edit.php:288
+#: usr/local/www/firewall_virtual_ip_edit.php:280
+#: usr/local/www/firewall_virtual_ip_edit.php:300
msgid "This is a CIDR block of proxy ARP addresses."
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:412
#: usr/local/www/firewall_virtual_ip_edit.php:400
#: usr/local/www/firewall_virtual_ip_edit.php:352
+#: usr/local/www/firewall_virtual_ip_edit.php:344
+#: usr/local/www/firewall_virtual_ip_edit.php:364
msgid "Edit Virtual IP"
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:418
#: usr/local/www/firewall_virtual_ip_edit.php:406
#: usr/local/www/firewall_virtual_ip_edit.php:362
+#: usr/local/www/firewall_virtual_ip_edit.php:354
+#: usr/local/www/firewall_virtual_ip_edit.php:374
msgid "Proxy ARP"
msgstr ""
@@ -8024,18 +9667,25 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:408
#: usr/local/www/carp_status.php:92
#: usr/local/www/firewall_virtual_ip_edit.php:360
+#: usr/local/www/firewall_virtual_ip_edit.php:352
+#: usr/local/www/firewall_virtual_ip_edit.php:372
+#: usr/local/www/carp_status.php:92
msgid "CARP"
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:422
#: usr/local/www/firewall_virtual_ip_edit.php:410
#: usr/local/www/firewall_virtual_ip_edit.php:364
+#: usr/local/www/firewall_virtual_ip_edit.php:356
+#: usr/local/www/firewall_virtual_ip_edit.php:376
msgid "Other"
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:424
#: usr/local/www/firewall_virtual_ip_edit.php:412
#: usr/local/www/firewall_virtual_ip_edit.php:358
+#: usr/local/www/firewall_virtual_ip_edit.php:350
+#: usr/local/www/firewall_virtual_ip_edit.php:370
msgid "IP Alias"
msgstr ""
@@ -8095,53 +9745,97 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:456
#: usr/local/www/firewall_virtual_ip_edit.php:423
#: usr/local/www/vpn_pppoe_edit.php:373 usr/local/www/firewall_nat_out.php:352
-#: usr/local/www/system_routes.php:128
-#: usr/local/www/firewall_nat_1to1_edit.php:114
#: usr/local/www/firewall_nat_1to1_edit.php:285
-#: usr/local/www/firewall_nat_npt_edit.php:104
#: usr/local/www/firewall_nat_npt_edit.php:170 usr/local/www/vpn_pppoe.php:102
-#: usr/local/www/status_graph.php:183 usr/local/www/services_dhcp_relay.php:72
-#: usr/local/www/firewall_nat_out_edit.php:130
-#: usr/local/www/firewall_nat_out_edit.php:430
-#: usr/local/www/services_wol_edit.php:82
-#: usr/local/www/services_wol_edit.php:126
-#: usr/local/www/interfaces_qinq.php:117
-#: usr/local/www/firewall_rules_edit.php:760 usr/local/www/diag_ndp.php:132
+#: usr/local/www/status_graph.php:183 usr/local/www/interfaces_qinq.php:117
#: usr/local/www/interfaces_ppps.php:109
-#: usr/local/www/firewall_nat_npt.php:104
#: usr/local/www/interfaces_bridge.php:108
-#: usr/local/www/services_igmpproxy_edit.php:163
-#: usr/local/www/interfaces_lagg.php:113 usr/local/www/diag_arp.php:316
-#: usr/local/www/firewall_nat_1to1.php:104
-#: usr/local/www/interfaces_gre.php:108
+#: usr/local/www/interfaces_lagg.php:113 usr/local/www/interfaces_gre.php:108
#: usr/local/www/interfaces_wireless.php:107
#: usr/local/www/services_captiveportal.php:153
#: usr/local/www/system_gateways_edit.php:100
#: usr/local/www/system_gateways_edit.php:459
-#: usr/local/www/services_dhcpv6_relay.php:73
-#: usr/local/www/system_gateways.php:153
#: usr/local/www/interfaces_assign.php:414
-#: usr/local/www/services_dyndns.php:108
-#: usr/local/www/vpn_openvpn_server.php:782 usr/local/www/services_wol.php:130
-#: usr/local/www/services_wol.php:161
+#: usr/local/www/vpn_openvpn_server.php:782
#: usr/local/www/interfaces_groups_edit.php:275
#: usr/local/www/diag_packet_capture.php:181
#: usr/local/www/interfaces_vlan.php:109
-#: usr/local/www/firewall_nat_edit.php:182
-#: usr/local/www/firewall_nat_edit.php:185
#: usr/local/www/firewall_nat_edit.php:482
#: usr/local/www/vpn_openvpn_client.php:464 usr/local/www/vpn_l2tp.php:305
#: usr/local/www/firewall_virtual_ip_edit.php:368
#: usr/local/www/interfaces_gif.php:107
+#: usr/local/www/firewall_virtual_ip.php:189
+#: usr/local/www/vpn_ipsec_phase1.php:537 usr/local/www/vpn_l2tp.php:308
+#: usr/local/www/vpn_pppoe.php:103 usr/local/www/vpn_openvpn_client.php:482
+#: usr/local/www/diag_testport.php:143
+#: usr/local/www/firewall_rules_edit.php:763
+#: usr/local/www/interfaces_qinq.php:120
+#: usr/local/www/firewall_virtual_ip.php:203
+#: usr/local/www/firewall_nat_edit.php:187
+#: usr/local/www/firewall_nat_edit.php:190
+#: usr/local/www/firewall_nat_edit.php:477 usr/local/www/status_graph.php:196
+#: usr/local/www/interfaces_lagg.php:117 usr/local/www/interfaces_vlan.php:115
+#: usr/local/www/firewall_virtual_ip_edit.php:360
+#: usr/local/www/interfaces_bridge.php:114
+#: usr/local/www/interfaces_wireless.php:109
+#: usr/local/www/system_routes.php:132 usr/local/www/vpn_pppoe_edit.php:376
+#: usr/local/www/services_captiveportal.php:155
+#: usr/local/www/vpn_ipsec_phase1.php:558 usr/local/www/interfaces_gre.php:112
+#: usr/local/www/firewall_nat_out_edit.php:134
+#: usr/local/www/firewall_nat_out_edit.php:434
+#: usr/local/www/vpn_openvpn_server.php:808
+#: usr/local/www/services_dyndns.php:89 usr/local/www/interfaces_gif.php:111
+#: usr/local/www/diag_ndp.php:132 usr/local/www/vpn_l2tp.php:308
+#: usr/local/www/system_gateways_edit.php:100
+#: usr/local/www/system_gateways_edit.php:461 usr/local/www/vpn_pppoe.php:103
+#: usr/local/www/diag_arp.php:316 usr/local/www/vpn_openvpn_client.php:482
+#: usr/local/www/services_wol.php:130 usr/local/www/services_wol.php:161
+#: usr/local/www/firewall_rules_edit.php:775
+#: usr/local/www/interfaces_qinq.php:120
+#: usr/local/www/diag_logs_filter.php:181
+#: usr/local/www/diag_logs_filter.php:215
+#: usr/local/www/firewall_virtual_ip.php:203
+#: usr/local/www/firewall_nat_edit.php:192
+#: usr/local/www/firewall_nat_edit.php:195
+#: usr/local/www/firewall_nat_edit.php:489 usr/local/www/status_graph.php:206
+#: usr/local/www/interfaces_lagg.php:117 usr/local/www/interfaces_vlan.php:115
+#: usr/local/www/services_wol_edit.php:82
+#: usr/local/www/services_wol_edit.php:126
+#: usr/local/www/firewall_virtual_ip_edit.php:380
+#: usr/local/www/services_dhcpv6_relay.php:73
+#: usr/local/www/diag_packet_capture.php:189
+#: usr/local/www/interfaces_bridge.php:114
+#: usr/local/www/interfaces_wireless.php:109
+#: usr/local/www/system_routes.php:132 usr/local/www/vpn_pppoe_edit.php:376
+#: usr/local/www/firewall_nat_out.php:359
+#: usr/local/www/interfaces_ppps.php:109
+#: usr/local/www/firewall_nat_npt.php:104
+#: usr/local/www/firewall_nat_1to1.php:104
+#: usr/local/www/firewall_nat_npt_edit.php:104
+#: usr/local/www/firewall_nat_npt_edit.php:170
+#: usr/local/www/interfaces_groups_edit.php:275
+#: usr/local/www/services_captiveportal.php:155
+#: usr/local/www/services_igmpproxy_edit.php:163
+#: usr/local/www/firewall_nat_1to1_edit.php:114
+#: usr/local/www/firewall_nat_1to1_edit.php:285
#: usr/local/www/widgets/widgets/wake_on_lan.widget.php:42
-#: usr/local/www/diag_ping.php:95 usr/local/www/firewall_virtual_ip.php:189
-#: usr/local/www/vpn_ipsec_phase1.php:537
+#: usr/local/www/vpn_ipsec_phase1.php:558 usr/local/www/interfaces_gre.php:112
+#: usr/local/www/system_gateways.php:153
+#: usr/local/www/firewall_nat_out_edit.php:140
+#: usr/local/www/firewall_nat_out_edit.php:446
+#: usr/local/www/vpn_openvpn_server.php:808
+#: usr/local/www/services_dyndns.php:85
+#: usr/local/www/services_dhcp_relay.php:72
+#: usr/local/www/interfaces_gif.php:111
+#: usr/local/www/interfaces_assign.php:420
msgid "Interface"
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:452
#: usr/local/www/firewall_virtual_ip_edit.php:440
#: usr/local/www/firewall_virtual_ip_edit.php:385
+#: usr/local/www/firewall_virtual_ip_edit.php:377
+#: usr/local/www/firewall_virtual_ip_edit.php:397
msgid "IP Address(es)"
msgstr ""
@@ -8165,19 +9859,33 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:444
#: usr/local/www/firewall_nat_1to1_edit.php:343
#: usr/local/www/firewall_nat_1to1_edit.php:398
-#: usr/local/www/firewall_nat_out_edit.php:485
-#: usr/local/www/firewall_nat_out_edit.php:519
-#: usr/local/www/firewall_rules_edit.php:900
-#: usr/local/www/firewall_rules_edit.php:993
#: usr/local/www/firewall_nat_edit.php:551
#: usr/local/www/firewall_nat_edit.php:640
#: usr/local/www/firewall_virtual_ip_edit.php:389
+#: usr/local/www/firewall_rules_edit.php:903
+#: usr/local/www/firewall_rules_edit.php:1002
+#: usr/local/www/firewall_nat_edit.php:546
+#: usr/local/www/firewall_nat_edit.php:635
+#: usr/local/www/firewall_virtual_ip_edit.php:381
+#: usr/local/www/firewall_nat_out_edit.php:489
+#: usr/local/www/firewall_nat_out_edit.php:523
+#: usr/local/www/firewall_rules_edit.php:915
+#: usr/local/www/firewall_rules_edit.php:1015
+#: usr/local/www/firewall_nat_edit.php:558
+#: usr/local/www/firewall_nat_edit.php:647
+#: usr/local/www/firewall_virtual_ip_edit.php:401
+#: usr/local/www/firewall_nat_1to1_edit.php:343
+#: usr/local/www/firewall_nat_1to1_edit.php:398
+#: usr/local/www/firewall_nat_out_edit.php:501
+#: usr/local/www/firewall_nat_out_edit.php:535
msgid "Type:"
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:459
#: usr/local/www/firewall_virtual_ip_edit.php:447
#: usr/local/www/firewall_virtual_ip_edit.php:392
+#: usr/local/www/firewall_virtual_ip_edit.php:384
+#: usr/local/www/firewall_virtual_ip_edit.php:404
msgid "Single address"
msgstr ""
@@ -8211,16 +9919,9 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:559
#: usr/local/www/firewall_nat_edit.php:648
#: usr/local/www/firewall_virtual_ip_edit.php:449
-#: usr/local/www/services_unbound_acls.php:236
-#: usr/local/www/system_routes.php:126
#: usr/local/www/firewall_nat_1to1_edit.php:350
#: usr/local/www/firewall_nat_1to1_edit.php:405
#: usr/local/www/vpn_ipsec_mobile.php:433
-#: usr/local/www/firewall_nat_out_edit.php:489
-#: usr/local/www/firewall_nat_out_edit.php:524
-#: usr/local/www/firewall_rules_edit.php:907
-#: usr/local/www/firewall_rules_edit.php:1000
-#: usr/local/www/services_igmpproxy_edit.php:225
#: usr/local/www/firewall_aliases_edit.php:457
#: usr/local/www/firewall_aliases_edit.php:632
#: usr/local/www/vpn_ipsec_phase2.php:520
@@ -8229,6 +9930,34 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:558
#: usr/local/www/firewall_nat_edit.php:647
#: usr/local/www/firewall_virtual_ip_edit.php:394
+#: usr/local/www/firewall_rules_edit.php:916
+#: usr/local/www/firewall_rules_edit.php:1015
+#: usr/local/www/firewall_nat_edit.php:553
+#: usr/local/www/firewall_nat_edit.php:642
+#: usr/local/www/firewall_virtual_ip_edit.php:386
+#: usr/local/www/system_routes.php:130
+#: usr/local/www/firewall_nat_out_edit.php:493
+#: usr/local/www/firewall_nat_out_edit.php:528
+#: usr/local/www/vpn_ipsec_phase2.php:542
+#: usr/local/www/vpn_ipsec_phase2.php:577
+#: usr/local/www/vpn_ipsec_phase2.php:619
+#: usr/local/www/firewall_rules_edit.php:928
+#: usr/local/www/firewall_rules_edit.php:1028
+#: usr/local/www/firewall_nat_edit.php:565
+#: usr/local/www/firewall_nat_edit.php:654
+#: usr/local/www/firewall_virtual_ip_edit.php:406
+#: usr/local/www/system_routes.php:130
+#: usr/local/www/firewall_aliases_edit.php:479
+#: usr/local/www/firewall_aliases_edit.php:663
+#: usr/local/www/services_igmpproxy_edit.php:225
+#: usr/local/www/firewall_nat_1to1_edit.php:350
+#: usr/local/www/firewall_nat_1to1_edit.php:405
+#: usr/local/www/vpn_ipsec_mobile.php:433
+#: usr/local/www/firewall_nat_out_edit.php:505
+#: usr/local/www/firewall_nat_out_edit.php:540
+#: usr/local/www/vpn_ipsec_phase2.php:542
+#: usr/local/www/vpn_ipsec_phase2.php:577
+#: usr/local/www/vpn_ipsec_phase2.php:619
msgid "Network"
msgstr ""
@@ -8262,58 +9991,91 @@ msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:427
#: usr/local/www/firewall_nat_npt_edit.php:220
#: usr/local/www/firewall_nat_npt_edit.php:248
-#: usr/local/www/firewall_nat_out_edit.php:492
-#: usr/local/www/firewall_nat_out_edit.php:528
-#: usr/local/www/firewall_nat_out_edit.php:555
-#: usr/local/www/firewall_rules_edit.php:930
-#: usr/local/www/firewall_rules_edit.php:1023
#: usr/local/www/vpn_ipsec_phase2.php:532
#: usr/local/www/vpn_ipsec_phase2.php:568
#: usr/local/www/firewall_nat_edit.php:581
#: usr/local/www/firewall_nat_edit.php:691
#: usr/local/www/firewall_virtual_ip_edit.php:400
+#: usr/local/www/firewall_rules_edit.php:939
+#: usr/local/www/firewall_rules_edit.php:1038
+#: usr/local/www/firewall_nat_edit.php:576
+#: usr/local/www/firewall_nat_edit.php:686
+#: usr/local/www/firewall_virtual_ip_edit.php:392
+#: usr/local/www/firewall_nat_out_edit.php:496
+#: usr/local/www/firewall_nat_out_edit.php:532
+#: usr/local/www/firewall_nat_out_edit.php:559
+#: usr/local/www/vpn_ipsec_phase2.php:553
+#: usr/local/www/vpn_ipsec_phase2.php:589
+#: usr/local/www/firewall_rules_edit.php:951
+#: usr/local/www/firewall_rules_edit.php:1051
+#: usr/local/www/firewall_nat_edit.php:588
+#: usr/local/www/firewall_nat_edit.php:698
+#: usr/local/www/firewall_virtual_ip_edit.php:412
+#: usr/local/www/firewall_nat_npt_edit.php:220
+#: usr/local/www/firewall_nat_npt_edit.php:248
+#: usr/local/www/firewall_nat_1to1_edit.php:372
+#: usr/local/www/firewall_nat_1to1_edit.php:427
+#: usr/local/www/firewall_nat_out_edit.php:508
+#: usr/local/www/firewall_nat_out_edit.php:544
+#: usr/local/www/firewall_nat_out_edit.php:571
+#: usr/local/www/vpn_ipsec_phase2.php:553
+#: usr/local/www/vpn_ipsec_phase2.php:589
msgid "Address:"
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:479
#: usr/local/www/firewall_virtual_ip_edit.php:467
#: usr/local/www/firewall_virtual_ip_edit.php:412
+#: usr/local/www/firewall_virtual_ip_edit.php:404
+#: usr/local/www/firewall_virtual_ip_edit.php:424
msgid "Expansion:"
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:499
#: usr/local/www/firewall_virtual_ip_edit.php:487
#: usr/local/www/firewall_virtual_ip_edit.php:432
+#: usr/local/www/firewall_virtual_ip_edit.php:424
+#: usr/local/www/firewall_virtual_ip_edit.php:444
msgid "Virtual IP Password"
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:501
#: usr/local/www/firewall_virtual_ip_edit.php:489
#: usr/local/www/firewall_virtual_ip_edit.php:434
+#: usr/local/www/firewall_virtual_ip_edit.php:426
+#: usr/local/www/firewall_virtual_ip_edit.php:446
msgid "Enter the VHID group password."
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:505
#: usr/local/www/firewall_virtual_ip_edit.php:493
#: usr/local/www/firewall_virtual_ip_edit.php:438
+#: usr/local/www/firewall_virtual_ip_edit.php:430
+#: usr/local/www/firewall_virtual_ip_edit.php:450
msgid "VHID Group"
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:513
#: usr/local/www/firewall_virtual_ip_edit.php:501
#: usr/local/www/firewall_virtual_ip_edit.php:446
+#: usr/local/www/firewall_virtual_ip_edit.php:438
+#: usr/local/www/firewall_virtual_ip_edit.php:458
msgid "Enter the VHID group that the machines will share"
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:517
#: usr/local/www/firewall_virtual_ip_edit.php:505
#: usr/local/www/firewall_virtual_ip_edit.php:450
+#: usr/local/www/firewall_virtual_ip_edit.php:442
+#: usr/local/www/firewall_virtual_ip_edit.php:462
msgid "Advertising Frequency"
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:534
#: usr/local/www/firewall_virtual_ip_edit.php:522
#: usr/local/www/firewall_virtual_ip_edit.php:467
+#: usr/local/www/firewall_virtual_ip_edit.php:459
+#: usr/local/www/firewall_virtual_ip_edit.php:479
msgid ""
"The frequency that this machine will advertise. 0 means usually master. "
"Otherwise the lowest combination of both values in the cluster determines "
@@ -8380,35 +10142,26 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:353
#: usr/local/www/services_dnsmasq.php:215
#: usr/local/www/services_captiveportal_vouchers.php:624
-#: usr/local/www/services_dyndns_edit.php:272
-#: usr/local/www/services_dyndns_edit.php:376
-#: usr/local/www/firewall_nat_out.php:471 usr/local/www/system_routes.php:199
+#: usr/local/www/firewall_nat_out.php:471
#: usr/local/www/services_captiveportal_ip.php:168
-#: usr/local/www/interfaces_groups.php:149
-#: usr/local/www/status_rrd_graph_settings.php:237
-#: usr/local/www/diag_ipsec.php:222 usr/local/www/diag_backup.php:736
+#: usr/local/www/interfaces_groups.php:149 usr/local/www/diag_ipsec.php:222
#: usr/local/www/interfaces_qinq.php:152 usr/local/www/diag_ipsec_sad.php:135
-#: usr/local/www/services_unbound.php:253
#: usr/local/www/services_captiveportal_mac.php:188
#: usr/local/www/interfaces_bridge.php:145
#: usr/local/www/interfaces_ppps_edit.php:621
#: usr/local/www/interfaces_lagg.php:139
-#: usr/local/www/services_rfc2136_edit.php:209
#: usr/local/www/services_captiveportal_hostname.php:169
-#: usr/local/www/firewall_nat_1to1.php:179
#: usr/local/www/interfaces_gre.php:134 usr/local/www/diag_routes.php:73
#: usr/local/www/system_gateway_groups.php:196
-#: usr/local/www/firewall_schedule.php:240
#: usr/local/www/services_captiveportal.php:970
-#: usr/local/www/services_igmpproxy.php:161
#: usr/local/www/services_captiveportal_filemanager.php:212
-#: usr/local/www/services_dyndns.php:181 usr/local/www/services_dhcp.php:907
-#: usr/local/www/services_dhcp.php:932 usr/local/www/services_dhcp.php:1118
+#: usr/local/www/services_dhcp.php:907 usr/local/www/services_dhcp.php:932
+#: usr/local/www/services_dhcp.php:1118
#: usr/local/www/load_balancer_virtual_server_edit.php:276
#: usr/local/www/interfaces_bridge_edit.php:456
#: usr/local/www/interfaces_bridge_edit.php:500
#: usr/local/www/interfaces_bridge_edit.php:544
-#: usr/local/www/firewall_aliases.php:284 usr/local/www/services_wol.php:210
+#: usr/local/www/firewall_aliases.php:284
#: usr/local/www/diag_packet_capture.php:262
#: usr/local/www/interfaces_vlan.php:135 usr/local/www/interfaces.php:2011
#: usr/local/www/vpn_l2tp.php:452
@@ -8416,12 +10169,76 @@ msgstr ""
#: usr/local/www/interfaces_gif.php:133 usr/local/www/diag_ipsec_spd.php:144
#: usr/local/www/firewall_virtual_ip.php:247
#: usr/local/www/services_dhcpv6.php:663 usr/local/www/services_dhcpv6.php:815
+#: usr/local/www/vpn_l2tp.php:455 usr/local/www/services_dyndns_edit.php:276
+#: usr/local/www/services_dyndns_edit.php:380
+#: usr/local/www/interfaces_qinq.php:155
+#: usr/local/www/interfaces_ppps_edit.php:627
+#: usr/local/www/firewall_virtual_ip.php:267
+#: usr/local/www/interfaces_lagg.php:143 usr/local/www/interfaces_vlan.php:141
+#: usr/local/www/firewall_virtual_ip_edit.php:482
+#: usr/local/www/diag_ipsec.php:223 usr/local/www/interfaces_bridge.php:151
+#: usr/local/www/services_captiveportal_vouchers.php:633
+#: usr/local/www/system_routes.php:203 usr/local/www/services_dhcp.php:921
+#: usr/local/www/services_dhcp.php:946 usr/local/www/services_dhcp.php:1131
+#: usr/local/www/services_dhcpv6.php:680 usr/local/www/services_dhcpv6.php:832
+#: usr/local/www/firewall_nat_out.php:468
+#: usr/local/www/services_captiveportal.php:972
+#: usr/local/www/diag_backup.php:741
+#: usr/local/www/interfaces_bridge_edit.php:457
+#: usr/local/www/interfaces_bridge_edit.php:501
+#: usr/local/www/interfaces_bridge_edit.php:545
+#: usr/local/www/services_dnsmasq.php:240
+#: usr/local/www/services_captiveportal_mac.php:198
+#: usr/local/www/interfaces_gre.php:138 usr/local/www/interfaces_gif.php:137
+#: usr/local/www/interfaces.php:2038 usr/local/www/vpn_l2tp.php:455
+#: usr/local/www/diag_logs_settings.php:353
+#: usr/local/www/firewall_schedule.php:240
+#: usr/local/www/services_dyndns_edit.php:278
+#: usr/local/www/services_dyndns_edit.php:388
+#: usr/local/www/services_wol.php:210
+#: usr/local/www/load_balancer_virtual_server_edit.php:276
+#: usr/local/www/services_captiveportal_ip.php:168
+#: usr/local/www/interfaces_qinq.php:155
+#: usr/local/www/interfaces_ppps_edit.php:627
+#: usr/local/www/firewall_virtual_ip.php:267
+#: usr/local/www/interfaces_lagg.php:143 usr/local/www/interfaces_vlan.php:141
+#: usr/local/www/firewall_aliases.php:287
+#: usr/local/www/firewall_virtual_ip_edit.php:501
+#: usr/local/www/diag_ipsec.php:223
+#: usr/local/www/status_rrd_graph_settings.php:237
+#: usr/local/www/diag_packet_capture.php:279 usr/local/www/diag_routes.php:73
+#: usr/local/www/interfaces_bridge.php:151
+#: usr/local/www/services_captiveportal_vouchers.php:633
+#: usr/local/www/system_routes.php:203 usr/local/www/services_dhcp.php:941
+#: usr/local/www/services_dhcp.php:966 usr/local/www/services_dhcp.php:1151
+#: usr/local/www/diag_ipsec_spd.php:144
+#: usr/local/www/interfaces_groups.php:149
+#: usr/local/www/services_captiveportal_hostname.php:169
+#: usr/local/www/services_dhcpv6.php:680 usr/local/www/services_dhcpv6.php:832
+#: usr/local/www/firewall_nat_out.php:475
+#: usr/local/www/services_captiveportal_filemanager.php:212
+#: usr/local/www/firewall_nat_1to1.php:179
+#: usr/local/www/services_captiveportal.php:988
+#: usr/local/www/diag_backup.php:741
+#: usr/local/www/interfaces_bridge_edit.php:457
+#: usr/local/www/interfaces_bridge_edit.php:501
+#: usr/local/www/interfaces_bridge_edit.php:545
+#: usr/local/www/services_igmpproxy.php:161
+#: usr/local/www/services_rfc2136_edit.php:209
+#: usr/local/www/services_dnsmasq.php:253
+#: usr/local/www/services_captiveportal_mac.php:198
+#: usr/local/www/interfaces_gre.php:138 usr/local/www/diag_ipsec_sad.php:135
+#: usr/local/www/services_dyndns.php:177 usr/local/www/interfaces_gif.php:137
+#: usr/local/www/system_gateway_groups.php:205
+#: usr/local/www/interfaces.php:2084
msgid "Note:"
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:559
#: usr/local/www/firewall_virtual_ip_edit.php:547
#: usr/local/www/firewall_virtual_ip_edit.php:492
+#: usr/local/www/firewall_virtual_ip_edit.php:484
+#: usr/local/www/firewall_virtual_ip_edit.php:503
msgid ""
"Proxy ARP and Other type Virtual IPs cannot be bound to by anything running "
"on the firewall, such as IPsec, OpenVPN, etc. Use a CARP or IP Alias type "
@@ -8431,12 +10248,16 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:560
#: usr/local/www/firewall_virtual_ip_edit.php:548
#: usr/local/www/firewall_virtual_ip_edit.php:493
+#: usr/local/www/firewall_virtual_ip_edit.php:485
+#: usr/local/www/firewall_virtual_ip_edit.php:504
msgid "For more information on CARP and the above values, visit the OpenBSD "
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:560
#: usr/local/www/firewall_virtual_ip_edit.php:548
#: usr/local/www/firewall_virtual_ip_edit.php:493
+#: usr/local/www/firewall_virtual_ip_edit.php:485
+#: usr/local/www/firewall_virtual_ip_edit.php:504
msgid "CARP FAQ"
msgstr ""
@@ -8449,13 +10270,14 @@ msgstr ""
#: usr/local/www/load_balancer_relay_action.php:104
#: usr/local/www/load_balancer_relay_action_edit.php:180
-#: usr/local/www/load_balancer_relay_action_edit.php:180
#: usr/local/www/load_balancer_relay_action.php:104
+#: usr/local/www/load_balancer_relay_action_edit.php:180
msgid "Relay Action"
msgstr ""
#: usr/local/www/load_balancer_relay_action.php:118
#: usr/local/www/load_balancer_relay_action.php:116
+#: usr/local/www/load_balancer_relay_action.php:116
msgid ""
"The load balancer configuration has been changed.<br>You must apply the "
"changes in order for them to take effect."
@@ -8463,11 +10285,13 @@ msgstr ""
#: usr/local/www/load_balancer_relay_action.php:128
#: usr/local/www/load_balancer_relay_action.php:126
+#: usr/local/www/load_balancer_relay_action.php:126
msgid "Relay Actions"
msgstr ""
#: usr/local/www/load_balancer_relay_action.php:129
#: usr/local/www/load_balancer_relay_action.php:127
+#: usr/local/www/load_balancer_relay_action.php:127
msgid "Relay Protocols"
msgstr ""
@@ -8483,6 +10307,12 @@ msgstr ""
#: usr/local/www/load_balancer_relay_action_edit.php:532
#: usr/local/www/load_balancer_relay_protocol.php:134
#: usr/local/www/load_balancer_relay_action.php:140
+#: usr/local/www/interfaces_qinq_edit.php:322
+#: usr/local/www/load_balancer_relay_protocol.php:134
+#: usr/local/www/load_balancer_relay_action.php:140
+#: usr/local/www/load_balancer_relay_action_edit.php:512
+#: usr/local/www/load_balancer_relay_action_edit.php:532
+#: usr/local/www/interfaces_qinq_edit.php:322
msgid "Options"
msgstr ""
@@ -8492,11 +10322,13 @@ msgid ""
"take one minute."
msgstr ""
-#: usr/local/www/diag_defaults.php:58 usr/local/www/diag_defaults.php:58
+#: usr/local/www/diag_defaults.php:58 usr/local/www/diag_defaults.php:52
+#: usr/local/www/diag_defaults.php:52
msgid "Factory defaults"
msgstr ""
-#: usr/local/www/diag_defaults.php:67 usr/local/www/diag_defaults.php:67
+#: usr/local/www/diag_defaults.php:67 usr/local/www/diag_defaults.php:70
+#: usr/local/www/diag_defaults.php:70
msgid "If you click"
msgstr ""
@@ -8506,49 +10338,61 @@ msgstr ""
#: usr/local/www/reboot.php:61 usr/local/www/reboot.php:72
#: usr/local/www/pkg.php:424 usr/local/www/reboot.php:53
#: usr/local/www/reboot.php:64 usr/local/www/halt.php:60
-#: usr/local/www/pkg.php:424 usr/local/www/diag_defaults.php:67
-#: usr/local/www/diag_defaults.php:81 usr/local/www/reboot.php:53
-#: usr/local/www/reboot.php:64 usr/local/www/crash_reporter.php:76
-#: usr/local/www/system_firmware.php:236 usr/local/www/halt.php:60
-#: usr/local/www/halt.php:69
+#: usr/local/www/system_firmware.php:236 usr/local/www/system_firmware.php:239
+#: usr/local/www/diag_defaults.php:60 usr/local/www/diag_defaults.php:70
+#: usr/local/www/diag_defaults.php:82 usr/local/www/system_firmware.php:239
+#: usr/local/www/reboot.php:53 usr/local/www/reboot.php:64
+#: usr/local/www/pkg.php:424 usr/local/www/diag_defaults.php:60
+#: usr/local/www/diag_defaults.php:70 usr/local/www/diag_defaults.php:82
+#: usr/local/www/halt.php:60 usr/local/www/halt.php:69
+#: usr/local/www/crash_reporter.php:76
msgid "Yes"
msgstr ""
-#: usr/local/www/diag_defaults.php:67 usr/local/www/diag_defaults.php:67
+#: usr/local/www/diag_defaults.php:67 usr/local/www/diag_defaults.php:70
+#: usr/local/www/diag_defaults.php:70
msgid "the firewall will:"
msgstr ""
-#: usr/local/www/diag_defaults.php:70 usr/local/www/diag_defaults.php:70
+#: usr/local/www/diag_defaults.php:70 usr/local/www/diag_defaults.php:72
+#: usr/local/www/diag_defaults.php:72
msgid "Reset to factory defaults"
msgstr ""
-#: usr/local/www/diag_defaults.php:71 usr/local/www/diag_defaults.php:71
+#: usr/local/www/diag_defaults.php:71 usr/local/www/diag_defaults.php:73
+#: usr/local/www/diag_defaults.php:73
msgid "LAN IP address will be reset to 192.168.1.1"
msgstr ""
-#: usr/local/www/diag_defaults.php:72 usr/local/www/diag_defaults.php:72
+#: usr/local/www/diag_defaults.php:72 usr/local/www/diag_defaults.php:74
+#: usr/local/www/diag_defaults.php:74
msgid "System will be configured as a DHCP server on the default LAN interface"
msgstr ""
-#: usr/local/www/diag_defaults.php:73 usr/local/www/diag_defaults.php:73
+#: usr/local/www/diag_defaults.php:73 usr/local/www/diag_defaults.php:75
+#: usr/local/www/diag_defaults.php:75
msgid "Reboot after changes are installed"
msgstr ""
-#: usr/local/www/diag_defaults.php:74 usr/local/www/diag_defaults.php:74
+#: usr/local/www/diag_defaults.php:74 usr/local/www/diag_defaults.php:76
+#: usr/local/www/diag_defaults.php:76
msgid ""
"WAN interface will be set to obtain an address automatically from a DHCP "
"server"
msgstr ""
-#: usr/local/www/diag_defaults.php:75 usr/local/www/diag_defaults.php:75
+#: usr/local/www/diag_defaults.php:75 usr/local/www/diag_defaults.php:77
+#: usr/local/www/diag_defaults.php:77
msgid "webConfigurator admin username will be reset to 'admin'"
msgstr ""
-#: usr/local/www/diag_defaults.php:76 usr/local/www/diag_defaults.php:76
+#: usr/local/www/diag_defaults.php:76 usr/local/www/diag_defaults.php:78
+#: usr/local/www/diag_defaults.php:78
msgid "webConfigurator admin password will be reset to"
msgstr ""
-#: usr/local/www/diag_defaults.php:79 usr/local/www/diag_defaults.php:79
+#: usr/local/www/diag_defaults.php:79 usr/local/www/diag_defaults.php:80
+#: usr/local/www/diag_defaults.php:80
msgid "Are you sure you want to proceed?"
msgstr ""
@@ -8557,10 +10401,13 @@ msgstr ""
#: usr/local/www/system_firmware.php:230 usr/local/www/reboot.php:62
#: usr/local/www/pkg.php:422 usr/local/www/reboot.php:43
#: usr/local/www/reboot.php:65 usr/local/www/halt.php:49
-#: usr/local/www/pkg.php:422 usr/local/www/diag_defaults.php:82
-#: usr/local/www/reboot.php:43 usr/local/www/reboot.php:65
-#: usr/local/www/crash_reporter.php:77 usr/local/www/system_firmware.php:237
+#: usr/local/www/system_firmware.php:237 usr/local/www/system_firmware.php:240
+#: usr/local/www/diag_defaults.php:47 usr/local/www/diag_defaults.php:83
+#: usr/local/www/system_firmware.php:240 usr/local/www/reboot.php:43
+#: usr/local/www/reboot.php:65 usr/local/www/pkg.php:422
+#: usr/local/www/diag_defaults.php:47 usr/local/www/diag_defaults.php:83
#: usr/local/www/halt.php:49 usr/local/www/halt.php:70
+#: usr/local/www/crash_reporter.php:77
msgid "No"
msgstr ""
@@ -8577,18 +10424,21 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:136
#: usr/local/www/diag_logs_resolver.php:66
#: usr/local/www/diag_logs_gateways.php:66
-#: usr/local/www/diag_logs_routing.php:54
#: usr/local/www/diag_logs_settings.php:143
-#: usr/local/www/diag_logs_relayd.php:55 usr/local/www/diag_logs_auth.php:54
-#: usr/local/www/diag_logs_ipsec.php:91 usr/local/www/diag_logs_vpn.php:44
-#: usr/local/www/diag_logs_ppp.php:59 usr/local/www/diag_logs_resolver.php:66
-#: usr/local/www/diag_logs_ntpd.php:54 usr/local/www/diag_logs.php:65
-#: usr/local/www/diag_logs_dhcp.php:59 usr/local/www/diag_logs_wireless.php:56
-#: usr/local/www/diag_logs_filter_summary.php:34
-#: usr/local/www/diag_logs_gateways.php:66
-#: usr/local/www/diag_logs_openvpn.php:45
+#: usr/local/www/diag_logs_filter.php:79 usr/local/www/diag_logs_ppp.php:57
+#: usr/local/www/diag_logs_auth.php:54
+#: usr/local/www/diag_logs_settings.php:143
+#: usr/local/www/diag_logs_filter.php:109
+#: usr/local/www/diag_logs_routing.php:54 usr/local/www/diag_logs_dhcp.php:59
+#: usr/local/www/diag_logs.php:65
#: usr/local/www/diag_logs_filter_dynamic.php:61
-#: usr/local/www/diag_logs_filter.php:79
+#: usr/local/www/diag_logs_ntpd.php:54 usr/local/www/diag_logs_openvpn.php:45
+#: usr/local/www/diag_logs_ppp.php:57 usr/local/www/diag_logs_gateways.php:66
+#: usr/local/www/diag_logs_relayd.php:55 usr/local/www/diag_logs_vpn.php:44
+#: usr/local/www/diag_logs_ipsec.php:91
+#: usr/local/www/diag_logs_wireless.php:56
+#: usr/local/www/diag_logs_resolver.php:66
+#: usr/local/www/diag_logs_filter_summary.php:34
msgid "System logs"
msgstr ""
@@ -8613,17 +10463,33 @@ msgstr ""
#: usr/local/www/diag_logs_routing.php:68
#: usr/local/www/diag_logs_settings.php:224
#: usr/local/www/diag_logs_relayd.php:69 usr/local/www/diag_logs_auth.php:68
-#: usr/local/www/diag_logs_ipsec.php:105 usr/local/www/diag_logs_vpn.php:128
-#: usr/local/www/diag_logs_ppp.php:72 usr/local/www/diag_logs_resolver.php:81
-#: usr/local/www/diag_logs_ntpd.php:68 usr/local/www/diag_logs.php:79
-#: usr/local/www/diag_logs_dhcp.php:59 usr/local/www/diag_logs_dhcp.php:73
-#: usr/local/www/diag_logs_wireless.php:70
+#: usr/local/www/diag_logs_ipsec.php:105
+#: usr/local/www/diag_logs_resolver.php:81 usr/local/www/diag_logs_ntpd.php:68
+#: usr/local/www/diag_logs_dhcp.php:73 usr/local/www/diag_logs_wireless.php:70
#: usr/local/www/diag_logs_filter_summary.php:187
#: usr/local/www/diag_logs_gateways.php:81
-#: usr/local/www/services_dhcp_edit.php:193
#: usr/local/www/diag_logs_openvpn.php:72 usr/local/www/interfaces.php:1106
#: usr/local/www/diag_logs_filter_dynamic.php:101
#: usr/local/www/diag_logs_filter.php:93
+#: usr/local/www/services_dhcp_edit.php:301
+#: usr/local/www/diag_logs_filter_dynamic.php:99
+#: usr/local/www/diag_logs_ppp.php:70 usr/local/www/interfaces.php:1120
+#: usr/local/www/diag_logs_auth.php:68
+#: usr/local/www/diag_logs_settings.php:224
+#: usr/local/www/diag_logs_filter.php:123
+#: usr/local/www/diag_logs_routing.php:68
+#: usr/local/www/services_dhcp_edit.php:301
+#: usr/local/www/diag_logs_dhcp.php:59 usr/local/www/diag_logs_dhcp.php:73
+#: usr/local/www/diag_logs.php:79
+#: usr/local/www/diag_logs_filter_dynamic.php:99
+#: usr/local/www/diag_logs_ntpd.php:68 usr/local/www/diag_logs_openvpn.php:72
+#: usr/local/www/diag_logs_ppp.php:70 usr/local/www/diag_logs_gateways.php:81
+#: usr/local/www/diag_logs_relayd.php:69 usr/local/www/diag_logs_vpn.php:128
+#: usr/local/www/diag_logs_ipsec.php:105
+#: usr/local/www/diag_logs_wireless.php:70
+#: usr/local/www/diag_logs_resolver.php:81
+#: usr/local/www/diag_logs_filter_summary.php:187
+#: usr/local/www/interfaces.php:1162
msgid "DHCP"
msgstr ""
@@ -8645,17 +10511,30 @@ msgstr ""
#: usr/local/www/diag_logs_filter_dynamic.php:101
#: usr/local/www/diag_logs_routing.php:69
#: usr/local/www/diag_logs_settings.php:225
-#: usr/local/www/diag_logs_relayd.php:70 usr/local/www/diag_logs_auth.php:54
-#: usr/local/www/diag_logs_auth.php:69 usr/local/www/diag_logs_ipsec.php:106
-#: usr/local/www/diag_logs_vpn.php:129 usr/local/www/diag_logs_ppp.php:73
+#: usr/local/www/diag_logs_relayd.php:70 usr/local/www/diag_logs_auth.php:69
+#: usr/local/www/diag_logs_ipsec.php:106
#: usr/local/www/diag_logs_resolver.php:82 usr/local/www/diag_logs_ntpd.php:69
-#: usr/local/www/diag_logs.php:80 usr/local/www/diag_logs_dhcp.php:74
-#: usr/local/www/diag_logs_wireless.php:71
+#: usr/local/www/diag_logs_dhcp.php:74 usr/local/www/diag_logs_wireless.php:71
#: usr/local/www/diag_logs_filter_summary.php:188
#: usr/local/www/diag_logs_gateways.php:82
#: usr/local/www/diag_logs_openvpn.php:73
#: usr/local/www/diag_logs_filter_dynamic.php:102
#: usr/local/www/diag_logs_filter.php:94
+#: usr/local/www/diag_logs_filter_dynamic.php:100
+#: usr/local/www/diag_logs_ppp.php:71 usr/local/www/diag_logs_auth.php:54
+#: usr/local/www/diag_logs_auth.php:69
+#: usr/local/www/diag_logs_settings.php:225
+#: usr/local/www/diag_logs_filter.php:124
+#: usr/local/www/diag_logs_routing.php:69 usr/local/www/diag_logs_dhcp.php:74
+#: usr/local/www/diag_logs.php:80
+#: usr/local/www/diag_logs_filter_dynamic.php:100
+#: usr/local/www/diag_logs_ntpd.php:69 usr/local/www/diag_logs_openvpn.php:73
+#: usr/local/www/diag_logs_ppp.php:71 usr/local/www/diag_logs_gateways.php:82
+#: usr/local/www/diag_logs_relayd.php:70 usr/local/www/diag_logs_vpn.php:129
+#: usr/local/www/diag_logs_ipsec.php:106
+#: usr/local/www/diag_logs_wireless.php:71
+#: usr/local/www/diag_logs_resolver.php:82
+#: usr/local/www/diag_logs_filter_summary.php:188
msgid "Portal Auth"
msgstr ""
@@ -8687,22 +10566,41 @@ msgstr ""
#: usr/local/www/diag_logs_routing.php:70
#: usr/local/www/diag_logs_settings.php:226 usr/local/www/fbegin.inc:172
#: usr/local/www/fbegin.inc:189 usr/local/www/diag_logs_relayd.php:71
-#: usr/local/www/vpn_ipsec.php:119 usr/local/www/vpn_ipsec_mobile.php:240
-#: usr/local/www/diag_ipsec.php:48 usr/local/www/diag_logs_auth.php:70
-#: usr/local/www/diag_ipsec_sad.php:49 usr/local/www/diag_logs_ipsec.php:107
-#: usr/local/www/diag_logs_vpn.php:130 usr/local/www/diag_logs_ppp.php:74
+#: usr/local/www/vpn_ipsec_mobile.php:240 usr/local/www/diag_logs_auth.php:70
+#: usr/local/www/diag_logs_ipsec.php:107
#: usr/local/www/diag_logs_resolver.php:83 usr/local/www/diag_logs_ntpd.php:70
-#: usr/local/www/diag_logs.php:81 usr/local/www/diag_logs_dhcp.php:75
-#: usr/local/www/diag_logs_wireless.php:72
+#: usr/local/www/diag_logs_dhcp.php:75 usr/local/www/diag_logs_wireless.php:72
#: usr/local/www/diag_logs_filter_summary.php:189
#: usr/local/www/vpn_ipsec_phase2.php:294
#: usr/local/www/vpn_ipsec_phase2.php:296
#: usr/local/www/diag_logs_gateways.php:83
#: usr/local/www/diag_logs_openvpn.php:74
#: usr/local/www/diag_logs_filter_dynamic.php:103
-#: usr/local/www/diag_ipsec_spd.php:49 usr/local/www/vpn_ipsec_phase1.php:358
-#: usr/local/www/vpn_ipsec_phase1.php:360
-#: usr/local/www/diag_logs_filter.php:95
+#: usr/local/www/diag_logs_filter.php:95 usr/local/www/vpn_ipsec.php:125
+#: usr/local/www/diag_logs_filter_dynamic.php:101
+#: usr/local/www/diag_logs_ppp.php:72 usr/local/www/fbegin.inc:163
+#: usr/local/www/fbegin.inc:180 usr/local/www/vpn_ipsec_phase1.php:379
+#: usr/local/www/vpn_ipsec_phase1.php:381
+#: usr/local/www/vpn_ipsec_phase2.php:316
+#: usr/local/www/vpn_ipsec_phase2.php:318 usr/local/www/diag_logs_auth.php:70
+#: usr/local/www/diag_logs_settings.php:226
+#: usr/local/www/diag_logs_filter.php:125 usr/local/www/vpn_ipsec.php:125
+#: usr/local/www/diag_logs_routing.php:70 usr/local/www/diag_logs_dhcp.php:75
+#: usr/local/www/diag_ipsec.php:48 usr/local/www/diag_logs.php:81
+#: usr/local/www/diag_logs_filter_dynamic.php:101
+#: usr/local/www/diag_logs_ntpd.php:70 usr/local/www/diag_ipsec_spd.php:49
+#: usr/local/www/diag_logs_openvpn.php:74 usr/local/www/diag_logs_ppp.php:72
+#: usr/local/www/diag_logs_gateways.php:83 usr/local/www/fbegin.inc:163
+#: usr/local/www/fbegin.inc:180 usr/local/www/diag_logs_relayd.php:71
+#: usr/local/www/diag_logs_vpn.php:130 usr/local/www/diag_logs_ipsec.php:107
+#: usr/local/www/vpn_ipsec_phase1.php:379
+#: usr/local/www/vpn_ipsec_phase1.php:381
+#: usr/local/www/vpn_ipsec_mobile.php:240 usr/local/www/diag_ipsec_sad.php:49
+#: usr/local/www/vpn_ipsec_phase2.php:316
+#: usr/local/www/vpn_ipsec_phase2.php:318
+#: usr/local/www/diag_logs_wireless.php:72
+#: usr/local/www/diag_logs_resolver.php:83
+#: usr/local/www/diag_logs_filter_summary.php:189
msgid "IPsec"
msgstr ""
@@ -8728,16 +10626,31 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:227
#: usr/local/www/diag_logs_relayd.php:72
#: usr/local/www/status_interfaces.php:175 usr/local/www/diag_logs_auth.php:71
-#: usr/local/www/diag_logs_ipsec.php:108 usr/local/www/diag_logs_vpn.php:131
-#: usr/local/www/diag_logs_ppp.php:59 usr/local/www/diag_logs_ppp.php:75
+#: usr/local/www/diag_logs_ipsec.php:108
#: usr/local/www/diag_logs_resolver.php:84 usr/local/www/diag_logs_ntpd.php:71
-#: usr/local/www/diag_logs.php:82 usr/local/www/diag_logs_dhcp.php:76
-#: usr/local/www/diag_logs_wireless.php:73
+#: usr/local/www/diag_logs_dhcp.php:76 usr/local/www/diag_logs_wireless.php:73
#: usr/local/www/diag_logs_filter_summary.php:190
#: usr/local/www/diag_logs_gateways.php:84
#: usr/local/www/diag_logs_openvpn.php:75 usr/local/www/interfaces.php:1106
#: usr/local/www/diag_logs_filter_dynamic.php:104
#: usr/local/www/diag_logs_filter.php:96
+#: usr/local/www/diag_logs_filter_dynamic.php:102
+#: usr/local/www/diag_logs_ppp.php:57 usr/local/www/diag_logs_ppp.php:73
+#: usr/local/www/interfaces.php:1120 usr/local/www/diag_logs_auth.php:71
+#: usr/local/www/diag_logs_settings.php:227
+#: usr/local/www/diag_logs_filter.php:126
+#: usr/local/www/diag_logs_routing.php:71 usr/local/www/diag_logs_dhcp.php:76
+#: usr/local/www/diag_logs.php:82
+#: usr/local/www/diag_logs_filter_dynamic.php:102
+#: usr/local/www/diag_logs_ntpd.php:71 usr/local/www/status_interfaces.php:175
+#: usr/local/www/diag_logs_openvpn.php:75 usr/local/www/diag_logs_ppp.php:57
+#: usr/local/www/diag_logs_ppp.php:73 usr/local/www/diag_logs_gateways.php:84
+#: usr/local/www/diag_logs_relayd.php:72 usr/local/www/diag_logs_vpn.php:131
+#: usr/local/www/diag_logs_ipsec.php:108
+#: usr/local/www/diag_logs_wireless.php:73
+#: usr/local/www/diag_logs_resolver.php:84
+#: usr/local/www/diag_logs_filter_summary.php:190
+#: usr/local/www/interfaces.php:1162
msgid "PPP"
msgstr ""
@@ -8772,27 +10685,49 @@ msgstr ""
#: usr/local/www/diag_logs_filter_dynamic.php:104
#: usr/local/www/diag_logs_routing.php:72
#: usr/local/www/diag_logs_settings.php:228 usr/local/www/fbegin.inc:315
-#: usr/local/www/diag_logs_relayd.php:73 usr/local/www/vpn_pppoe.php:86
-#: usr/local/www/vpn_ipsec.php:119
-#: usr/local/www/status_rrd_graph_settings.php:152
+#: usr/local/www/diag_logs_relayd.php:73
#: usr/local/www/vpn_ipsec_mobile.php:240 usr/local/www/diag_logs_auth.php:72
-#: usr/local/www/diag_logs_ipsec.php:109 usr/local/www/diag_logs_vpn.php:44
-#: usr/local/www/diag_logs_vpn.php:132 usr/local/www/diag_logs_ppp.php:76
+#: usr/local/www/diag_logs_ipsec.php:109
#: usr/local/www/diag_logs_resolver.php:85 usr/local/www/diag_logs_ntpd.php:72
-#: usr/local/www/vpn_pptp.php:193 usr/local/www/diag_logs.php:83
-#: usr/local/www/vpn_l2tp_users.php:38 usr/local/www/diag_logs_dhcp.php:77
-#: usr/local/www/diag_logs_wireless.php:74
+#: usr/local/www/diag_logs_dhcp.php:77 usr/local/www/diag_logs_wireless.php:74
#: usr/local/www/diag_logs_filter_summary.php:191
#: usr/local/www/vpn_ipsec_phase2.php:294
#: usr/local/www/vpn_ipsec_phase2.php:296
#: usr/local/www/diag_logs_gateways.php:85
-#: usr/local/www/vpn_pptp_users_edit.php:135
#: usr/local/www/diag_logs_openvpn.php:76
-#: usr/local/www/vpn_l2tp_users_edit.php:38 usr/local/www/vpn_l2tp.php:38
#: usr/local/www/diag_logs_filter_dynamic.php:105
-#: usr/local/www/vpn_pptp_users.php:71 usr/local/www/vpn_ipsec_phase1.php:358
-#: usr/local/www/vpn_ipsec_phase1.php:360
-#: usr/local/www/diag_logs_filter.php:97
+#: usr/local/www/diag_logs_filter.php:97 usr/local/www/vpn_pppoe.php:87
+#: usr/local/www/vpn_ipsec.php:125
+#: usr/local/www/diag_logs_filter_dynamic.php:103
+#: usr/local/www/diag_logs_ppp.php:74 usr/local/www/vpn_pptp.php:196
+#: usr/local/www/fbegin.inc:307 usr/local/www/vpn_ipsec_phase1.php:379
+#: usr/local/www/vpn_ipsec_phase1.php:381
+#: usr/local/www/vpn_ipsec_phase2.php:316
+#: usr/local/www/vpn_ipsec_phase2.php:318 usr/local/www/vpn_l2tp.php:38
+#: usr/local/www/vpn_pppoe.php:87 usr/local/www/diag_logs_auth.php:72
+#: usr/local/www/diag_logs_settings.php:228
+#: usr/local/www/vpn_pptp_users.php:71 usr/local/www/diag_logs_filter.php:127
+#: usr/local/www/vpn_ipsec.php:125 usr/local/www/diag_logs_routing.php:72
+#: usr/local/www/diag_logs_dhcp.php:77
+#: usr/local/www/status_rrd_graph_settings.php:152
+#: usr/local/www/diag_logs.php:83
+#: usr/local/www/diag_logs_filter_dynamic.php:103
+#: usr/local/www/diag_logs_ntpd.php:72 usr/local/www/vpn_l2tp_users.php:38
+#: usr/local/www/diag_logs_openvpn.php:76 usr/local/www/diag_logs_ppp.php:74
+#: usr/local/www/diag_logs_gateways.php:85 usr/local/www/vpn_pptp.php:196
+#: usr/local/www/vpn_l2tp_users_edit.php:38 usr/local/www/fbegin.inc:307
+#: usr/local/www/diag_logs_relayd.php:73 usr/local/www/diag_logs_vpn.php:44
+#: usr/local/www/diag_logs_vpn.php:132
+#: usr/local/www/vpn_pptp_users_edit.php:135
+#: usr/local/www/diag_logs_ipsec.php:109
+#: usr/local/www/vpn_ipsec_phase1.php:379
+#: usr/local/www/vpn_ipsec_phase1.php:381
+#: usr/local/www/vpn_ipsec_mobile.php:240
+#: usr/local/www/vpn_ipsec_phase2.php:316
+#: usr/local/www/vpn_ipsec_phase2.php:318
+#: usr/local/www/diag_logs_wireless.php:74
+#: usr/local/www/diag_logs_resolver.php:85
+#: usr/local/www/diag_logs_filter_summary.php:191
msgid "VPN"
msgstr ""
@@ -8823,25 +10758,41 @@ msgstr ""
#: usr/local/www/diag_logs_gateways.php:86
#: usr/local/www/diag_logs_filter_dynamic.php:106
#: etc/inc/service-utils.inc:333 usr/local/www/diag_logs_routing.php:74
-#: usr/local/www/status_openvpn.php:46
#: usr/local/www/diag_logs_settings.php:230 usr/local/www/fbegin.inc:173
#: usr/local/www/fbegin.inc:192 usr/local/www/diag_logs_relayd.php:75
-#: usr/local/www/status_graph.php:66 usr/local/www/diag_backup.php:189
#: usr/local/www/diag_logs_auth.php:74 usr/local/www/diag_logs_ipsec.php:111
-#: usr/local/www/diag_logs_vpn.php:134 usr/local/www/diag_logs_ppp.php:78
#: usr/local/www/diag_logs_resolver.php:87 usr/local/www/diag_logs_ntpd.php:74
-#: usr/local/www/diag_logs.php:85 usr/local/www/vpn_openvpn_csc.php:40
-#: usr/local/www/license.php:213 usr/local/www/diag_logs_dhcp.php:79
-#: usr/local/www/diag_logs_wireless.php:76
+#: usr/local/www/diag_logs_dhcp.php:79 usr/local/www/diag_logs_wireless.php:76
#: usr/local/www/vpn_openvpn_server.php:423
#: usr/local/www/diag_logs_filter_summary.php:193
#: usr/local/www/diag_packet_capture.php:64
#: usr/local/www/diag_logs_gateways.php:87
-#: usr/local/www/diag_logs_openvpn.php:45
#: usr/local/www/diag_logs_openvpn.php:78
-#: usr/local/www/vpn_openvpn_client.php:40
#: usr/local/www/diag_logs_filter_dynamic.php:107
#: usr/local/www/diag_logs_filter.php:99
+#: usr/local/www/diag_logs_filter_dynamic.php:105
+#: usr/local/www/diag_logs_ppp.php:76 usr/local/www/fbegin.inc:164
+#: usr/local/www/fbegin.inc:183 usr/local/www/vpn_openvpn_server.php:445
+#: etc/inc/service-utils.inc:332 usr/local/www/diag_logs_auth.php:74
+#: usr/local/www/diag_logs_settings.php:230
+#: usr/local/www/vpn_openvpn_client.php:40 usr/local/www/status_openvpn.php:46
+#: usr/local/www/diag_logs_filter.php:129 usr/local/www/vpn_openvpn_csc.php:40
+#: usr/local/www/diag_logs_routing.php:74 usr/local/www/status_graph.php:66
+#: usr/local/www/diag_logs_dhcp.php:79
+#: usr/local/www/diag_packet_capture.php:64 usr/local/www/diag_logs.php:85
+#: usr/local/www/diag_logs_filter_dynamic.php:105
+#: usr/local/www/diag_logs_ntpd.php:74 usr/local/www/license.php:213
+#: usr/local/www/diag_logs_openvpn.php:45
+#: usr/local/www/diag_logs_openvpn.php:78 usr/local/www/diag_logs_ppp.php:76
+#: usr/local/www/diag_logs_gateways.php:87 usr/local/www/diag_backup.php:189
+#: usr/local/www/fbegin.inc:164 usr/local/www/fbegin.inc:183
+#: usr/local/www/diag_logs_relayd.php:75 usr/local/www/diag_logs_vpn.php:134
+#: usr/local/www/diag_logs_ipsec.php:111
+#: usr/local/www/vpn_openvpn_server.php:445
+#: usr/local/www/diag_logs_wireless.php:76
+#: usr/local/www/diag_logs_resolver.php:87
+#: usr/local/www/diag_logs_filter_summary.php:193 etc/inc/system.inc:1627
+#: etc/inc/service-utils.inc:349
msgid "OpenVPN"
msgstr ""
@@ -8889,23 +10840,41 @@ msgstr ""
#: usr/local/www/diag_logs_filter_dynamic.php:108
#: usr/local/www/diag_logs_routing.php:87 usr/local/www/fbegin.inc:209
#: usr/local/www/interfaces_groups.php:78
-#: usr/local/www/status_rrd_graph_settings.php:144
#: usr/local/www/interfaces_qinq.php:101 usr/local/www/interfaces_ppps.php:93
#: usr/local/www/interfaces_bridge.php:92
#: usr/local/www/diag_logs_resolver.php:101
-#: usr/local/www/interfaces_lagg.php:97 usr/local/www/diag_logs.php:99
-#: usr/local/www/status_rrd_graph.php:392 usr/local/www/status_wireless.php:41
-#: usr/local/www/interfaces_gre.php:92
-#: usr/local/www/interfaces_wireless.php:76
+#: usr/local/www/interfaces_lagg.php:97 usr/local/www/interfaces_gre.php:92
#: usr/local/www/interfaces_wireless.php:91
-#: usr/local/www/diag_logs_wireless.php:56
#: usr/local/www/diag_logs_wireless.php:89
#: usr/local/www/interfaces_assign.php:398
#: usr/local/www/diag_logs_gateways.php:101
#: usr/local/www/interfaces_vlan.php:93
-#: usr/local/www/interfaces_wireless_edit.php:145
#: usr/local/www/diag_logs_filter_dynamic.php:109
#: usr/local/www/interfaces_gif.php:91
+#: usr/local/www/interfaces_wireless_edit.php:147
+#: usr/local/www/interfaces_qinq.php:104 usr/local/www/interfaces_lagg.php:101
+#: usr/local/www/interfaces_vlan.php:99 usr/local/www/status_rrd_graph.php:417
+#: usr/local/www/interfaces_bridge.php:98
+#: usr/local/www/interfaces_wireless.php:78
+#: usr/local/www/interfaces_wireless.php:93 usr/local/www/fbegin.inc:200
+#: usr/local/www/interfaces_gre.php:96 usr/local/www/interfaces_gif.php:95
+#: usr/local/www/status_wireless.php:41
+#: usr/local/www/interfaces_wireless_edit.php:147
+#: usr/local/www/interfaces_qinq.php:104
+#: usr/local/www/diag_logs_routing.php:87
+#: usr/local/www/interfaces_lagg.php:101 usr/local/www/interfaces_vlan.php:99
+#: usr/local/www/status_rrd_graph.php:417
+#: usr/local/www/status_rrd_graph_settings.php:144
+#: usr/local/www/diag_logs.php:99 usr/local/www/interfaces_bridge.php:98
+#: usr/local/www/interfaces_wireless.php:78
+#: usr/local/www/interfaces_wireless.php:93
+#: usr/local/www/interfaces_groups.php:78 usr/local/www/interfaces_ppps.php:93
+#: usr/local/www/diag_logs_gateways.php:101 usr/local/www/fbegin.inc:200
+#: usr/local/www/interfaces_gre.php:96 usr/local/www/interfaces_gif.php:95
+#: usr/local/www/interfaces_assign.php:404
+#: usr/local/www/diag_logs_wireless.php:56
+#: usr/local/www/diag_logs_wireless.php:89
+#: usr/local/www/diag_logs_resolver.php:101
msgid "Wireless"
msgstr ""
@@ -8954,37 +10923,56 @@ msgstr ""
#: usr/local/www/diag_logs_routing.php:76
#: usr/local/www/diag_logs_settings.php:143
#: usr/local/www/diag_logs_settings.php:232
-#: usr/local/www/diag_logs_relayd.php:77
-#: usr/local/www/system_groupmanager.php:242
-#: usr/local/www/load_balancer_setting.php:98
#: usr/local/www/load_balancer_setting.php:121
-#: usr/local/www/status_rrd_graph_settings.php:161
-#: usr/local/www/diag_logs_auth.php:76 usr/local/www/diag_logs_ipsec.php:113
-#: usr/local/www/system_usermanager.php:440
-#: usr/local/www/diag_logs_vpn.php:136 usr/local/www/diag_logs_ppp.php:80
-#: usr/local/www/diag_logs_resolver.php:89 usr/local/www/diag_logs_ntpd.php:76
-#: usr/local/www/diag_logs.php:87 usr/local/www/status_rrd_graph.php:409
-#: usr/local/www/system_usermanager_addprivs.php:169
+#: usr/local/www/diag_logs_resolver.php:89
#: usr/local/www/load_balancer_virtual_server.php:116
-#: usr/local/www/system_groupmanager_addprivs.php:168
-#: usr/local/www/diag_logs_dhcp.php:81 usr/local/www/diag_logs_wireless.php:78
#: usr/local/www/load_balancer_monitor.php:110
-#: usr/local/www/diag_logs_filter_summary.php:195
-#: usr/local/www/system_usermanager_settings.php:115
#: usr/local/www/system_firmware_settings.php:79
#: usr/local/www/diag_logs_gateways.php:89
-#: usr/local/www/diag_logs_openvpn.php:80
#: usr/local/www/diag_logs_filter_dynamic.php:110
#: usr/local/www/load_balancer_pool.php:119
#: usr/local/www/system_authservers.php:428
#: usr/local/www/diag_logs_filter.php:101
+#: usr/local/www/status_rrd_graph.php:434
+#: usr/local/www/diag_logs_filter_dynamic.php:107
+#: usr/local/www/diag_logs_ppp.php:78 usr/local/www/system_authservers.php:435
+#: usr/local/www/diag_logs_auth.php:76
+#: usr/local/www/system_groupmanager.php:242
+#: usr/local/www/diag_logs_settings.php:143
+#: usr/local/www/diag_logs_settings.php:232
+#: usr/local/www/system_usermanager_addprivs.php:169
+#: usr/local/www/diag_logs_filter.php:131
+#: usr/local/www/system_firmware_settings.php:79
+#: usr/local/www/diag_logs_routing.php:76 usr/local/www/diag_logs_dhcp.php:81
+#: usr/local/www/status_rrd_graph.php:434
+#: usr/local/www/status_rrd_graph_settings.php:161
+#: usr/local/www/diag_logs.php:87
+#: usr/local/www/diag_logs_filter_dynamic.php:107
+#: usr/local/www/diag_logs_ntpd.php:76 usr/local/www/diag_logs_openvpn.php:80
+#: usr/local/www/load_balancer_setting.php:98
+#: usr/local/www/load_balancer_setting.php:121
+#: usr/local/www/diag_logs_ppp.php:78 usr/local/www/load_balancer_pool.php:119
+#: usr/local/www/diag_logs_gateways.php:89
+#: usr/local/www/system_authservers.php:435
+#: usr/local/www/system_groupmanager_addprivs.php:168
+#: usr/local/www/system_usermanager_settings.php:117
+#: usr/local/www/diag_logs_relayd.php:77 usr/local/www/diag_logs_vpn.php:136
+#: usr/local/www/diag_logs_ipsec.php:113
+#: usr/local/www/load_balancer_monitor.php:110
+#: usr/local/www/system_usermanager.php:440
+#: usr/local/www/load_balancer_virtual_server.php:116
+#: usr/local/www/diag_logs_wireless.php:78
+#: usr/local/www/diag_logs_resolver.php:89
+#: usr/local/www/diag_logs_filter_summary.php:195
msgid "Settings"
msgstr ""
#: usr/local/www/diag_logs.php:98 usr/local/www/diag_logs_resolver.php:110
#: usr/local/www/diag_logs.php:109 usr/local/www/diag_logs_gateways.php:110
-#: usr/local/www/diag_logs_resolver.php:111 usr/local/www/diag_logs.php:109
+#: usr/local/www/diag_logs_resolver.php:111
+#: usr/local/www/diag_logs_gateways.php:111 usr/local/www/diag_logs.php:109
#: usr/local/www/diag_logs_gateways.php:111
+#: usr/local/www/diag_logs_resolver.php:111
#, php-format
msgid "Last %s system log entries"
msgstr ""
@@ -9007,16 +10995,20 @@ msgstr ""
#: usr/local/www/diag_logs_openvpn.php:96
#: usr/local/www/diag_logs_filter.php:205
#: usr/local/www/diag_logs_routing.php:102
-#: usr/local/www/diag_logs_relayd.php:91 usr/local/www/diag_logs_auth.php:90
-#: usr/local/www/diag_logs_ipsec.php:150 usr/local/www/diag_logs_vpn.php:187
-#: usr/local/www/diag_logs_ppp.php:113
#: usr/local/www/diag_logs_resolver.php:122
-#: usr/local/www/diag_logs_ntpd.php:91 usr/local/www/diag_logs.php:120
-#: usr/local/www/diag_logs_dhcp.php:95
#: usr/local/www/diag_logs_wireless.php:104
#: usr/local/www/diag_logs_gateways.php:122
-#: usr/local/www/diag_logs_openvpn.php:97
-#: usr/local/www/diag_logs_filter.php:264
+#: usr/local/www/diag_logs_filter.php:264 usr/local/www/diag_logs_ppp.php:95
+#: usr/local/www/diag_logs_ipsec.php:151 usr/local/www/diag_logs_auth.php:90
+#: usr/local/www/diag_logs_filter.php:398
+#: usr/local/www/diag_logs_routing.php:102 usr/local/www/diag_logs_dhcp.php:95
+#: usr/local/www/diag_logs.php:120 usr/local/www/diag_logs_ntpd.php:91
+#: usr/local/www/diag_logs_openvpn.php:97 usr/local/www/diag_logs_ppp.php:95
+#: usr/local/www/diag_logs_gateways.php:122
+#: usr/local/www/diag_logs_relayd.php:91 usr/local/www/diag_logs_vpn.php:187
+#: usr/local/www/diag_logs_ipsec.php:151
+#: usr/local/www/diag_logs_wireless.php:104
+#: usr/local/www/diag_logs_resolver.php:122
msgid "Clear log"
msgstr ""
@@ -9027,11 +11019,17 @@ msgstr ""
#: usr/local/www/diag_dump_states.php:153
#: usr/local/www/diag_logs_gateways.php:127
#: usr/local/www/diag_logs_filter.php:127
-#: usr/local/www/diag_logs_resolver.php:128 usr/local/www/diag_logs.php:126
+#: usr/local/www/diag_logs_resolver.php:128
#: usr/local/www/diag_dump_states_sources.php:132
#: usr/local/www/diag_dump_states.php:152
#: usr/local/www/diag_logs_gateways.php:128
#: usr/local/www/diag_logs_filter.php:147
+#: usr/local/www/diag_logs_filter.php:197
+#: usr/local/www/diag_logs_filter.php:260
+#: usr/local/www/diag_dump_states.php:141
+#: usr/local/www/diag_dump_states_sources.php:132
+#: usr/local/www/diag_logs.php:126 usr/local/www/diag_logs_gateways.php:128
+#: usr/local/www/diag_logs_resolver.php:128
msgid "Filter"
msgstr ""
@@ -9048,6 +11046,7 @@ msgid "Last %s DHCP service log entries"
msgstr ""
#: usr/local/www/diag_logs_filter.php:56 usr/local/www/diag_logs_filter.php:63
+#: usr/local/www/diag_logs_filter.php:63
msgid "The rule that triggered this action is"
msgstr ""
@@ -9057,9 +11056,11 @@ msgstr ""
#: usr/local/www/diag_logs_filter_summary.php:203
#: usr/local/www/diag_logs_filter_dynamic.php:117
#: usr/local/www/diag_logs_filter.php:121
-#: usr/local/www/diag_logs_filter_summary.php:204
#: usr/local/www/diag_logs_filter_dynamic.php:118
#: usr/local/www/diag_logs_filter.php:152
+#: usr/local/www/diag_logs_filter.php:274
+#: usr/local/www/diag_logs_filter_dynamic.php:118
+#: usr/local/www/diag_logs_filter_summary.php:204
msgid "Normal View"
msgstr ""
@@ -9069,9 +11070,11 @@ msgstr ""
#: usr/local/www/diag_logs_filter_summary.php:203
#: usr/local/www/diag_logs_filter_dynamic.php:117
#: usr/local/www/diag_logs_filter.php:121
-#: usr/local/www/diag_logs_filter_summary.php:204
#: usr/local/www/diag_logs_filter_dynamic.php:118
#: usr/local/www/diag_logs_filter.php:152
+#: usr/local/www/diag_logs_filter.php:274
+#: usr/local/www/diag_logs_filter_dynamic.php:118
+#: usr/local/www/diag_logs_filter_summary.php:204
msgid "Dynamic View"
msgstr ""
@@ -9081,15 +11084,18 @@ msgstr ""
#: usr/local/www/diag_logs_filter_summary.php:203
#: usr/local/www/diag_logs_filter_dynamic.php:117
#: usr/local/www/diag_logs_filter.php:121
-#: usr/local/www/diag_logs_filter_summary.php:204
#: usr/local/www/diag_logs_filter_dynamic.php:118
#: usr/local/www/diag_logs_filter.php:152
+#: usr/local/www/diag_logs_filter.php:274
+#: usr/local/www/diag_logs_filter_dynamic.php:118
+#: usr/local/www/diag_logs_filter_summary.php:204
msgid "Summary View"
msgstr ""
#: usr/local/www/diag_logs_filter.php:139
#: usr/local/www/diag_logs_filter.php:138
#: usr/local/www/diag_logs_filter.php:170
+#: usr/local/www/diag_logs_filter.php:296
#, php-format
msgid "Last %s firewall log entries."
msgstr ""
@@ -9097,12 +11103,14 @@ msgstr ""
#: usr/local/www/diag_logs_filter.php:141
#: usr/local/www/diag_logs_filter.php:140
#: usr/local/www/diag_logs_filter.php:172
+#: usr/local/www/diag_logs_filter.php:298
msgid "matched log entries."
msgstr ""
#: usr/local/www/diag_logs_filter.php:143
#: usr/local/www/diag_logs_filter.php:142
#: usr/local/www/diag_logs_filter.php:173
+#: usr/local/www/diag_logs_filter.php:299
#, php-format
msgid "Max(%s)"
msgstr ""
@@ -9113,6 +11121,11 @@ msgstr ""
#: usr/local/www/diag_logs_filter.php:145
#: usr/local/www/diag_logs_filter_dynamic.php:125
#: usr/local/www/diag_logs_filter.php:177
+#: usr/local/www/diag_logs_filter_dynamic.php:128
+#: usr/local/www/widgets/widgets/log.widget.php:163
+#: usr/local/www/diag_logs_filter.php:303
+#: usr/local/www/diag_logs_filter_dynamic.php:128
+#: usr/local/www/widgets/widgets/log.widget.php:167
msgid "Act"
msgstr ""
@@ -9122,10 +11135,17 @@ msgstr ""
#: usr/local/www/firewall_schedule_edit.php:910
#: usr/local/www/diag_logs_vpn.php:174
#: usr/local/www/diag_logs_filter_dynamic.php:125
-#: usr/local/www/diag_logs_filter.php:146 usr/local/www/diag_logs_vpn.php:174
+#: usr/local/www/diag_logs_filter.php:146
#: usr/local/www/firewall_schedule_edit.php:909
#: usr/local/www/diag_logs_filter_dynamic.php:126
#: usr/local/www/diag_logs_filter.php:178
+#: usr/local/www/diag_logs_filter_dynamic.php:129
+#: usr/local/www/diag_system_pftop.php:143
+#: usr/local/www/diag_logs_filter.php:159
+#: usr/local/www/diag_logs_filter.php:304
+#: usr/local/www/firewall_schedule_edit.php:909
+#: usr/local/www/diag_logs_filter_dynamic.php:129
+#: usr/local/www/diag_system_pftop.php:143 usr/local/www/diag_logs_vpn.php:174
msgid "Time"
msgstr ""
@@ -9136,6 +11156,10 @@ msgstr ""
#: usr/local/www/diag_logs_filter.php:147 usr/local/www/firewall_nat.php:200
#: usr/local/www/diag_logs_filter_dynamic.php:127
#: usr/local/www/diag_logs_filter.php:179
+#: usr/local/www/diag_logs_filter_dynamic.php:130
+#: usr/local/www/diag_logs_filter.php:305
+#: usr/local/www/diag_logs_filter_dynamic.php:130
+#: usr/local/www/firewall_nat.php:200
msgid "If"
msgstr ""
@@ -9160,15 +11184,30 @@ msgstr ""
#: usr/local/www/diag_logs_filter.php:148
#: usr/local/www/firewall_nat_out.php:353
#: usr/local/www/vpn_ipsec_mobile.php:383
-#: usr/local/www/vpn_ipsec_mobile.php:401
-#: usr/local/www/firewall_nat_out_edit.php:130
-#: usr/local/www/firewall_nat_out_edit.php:481
-#: usr/local/www/firewall_rules_edit.php:890
-#: usr/local/www/diag_ipsec_sad.php:88 usr/local/www/firewall_rules.php:361
-#: usr/local/www/firewall_nat_edit.php:535
+#: usr/local/www/vpn_ipsec_mobile.php:401 usr/local/www/diag_ipsec_sad.php:88
+#: usr/local/www/firewall_rules.php:361
#: usr/local/www/firewall_nat_edit.php:541
#: usr/local/www/diag_logs_filter_dynamic.php:128
#: usr/local/www/diag_ipsec_spd.php:87 usr/local/www/diag_logs_filter.php:183
+#: usr/local/www/firewall_rules_edit.php:893
+#: usr/local/www/firewall_nat_edit.php:530
+#: usr/local/www/diag_logs_filter_dynamic.php:131
+#: usr/local/www/widgets/widgets/log.widget.php:165
+#: usr/local/www/firewall_nat_out_edit.php:134
+#: usr/local/www/firewall_nat_out_edit.php:485
+#: usr/local/www/firewall_rules_edit.php:905
+#: usr/local/www/diag_logs_filter.php:309
+#: usr/local/www/firewall_nat_edit.php:542
+#: usr/local/www/firewall_nat_edit.php:548
+#: usr/local/www/diag_logs_filter_dynamic.php:131
+#: usr/local/www/diag_ipsec_spd.php:87 usr/local/www/firewall_nat_out.php:360
+#: usr/local/www/firewall_rules.php:359
+#: usr/local/www/widgets/widgets/log.widget.php:169
+#: usr/local/www/vpn_ipsec_mobile.php:383
+#: usr/local/www/vpn_ipsec_mobile.php:401
+#: usr/local/www/firewall_nat_out_edit.php:140
+#: usr/local/www/firewall_nat_out_edit.php:497
+#: usr/local/www/diag_ipsec_sad.php:88
msgid "Source"
msgstr ""
@@ -9192,13 +11231,27 @@ msgstr ""
#: usr/local/www/diag_logs_filter.php:149
#: usr/local/www/firewall_nat_out.php:355
#: usr/local/www/firewall_nat_1to1_edit.php:388
-#: usr/local/www/firewall_nat_out_edit.php:130
-#: usr/local/www/firewall_nat_out_edit.php:511
-#: usr/local/www/firewall_rules_edit.php:983
#: usr/local/www/diag_ipsec_sad.php:89 usr/local/www/firewall_rules.php:363
#: usr/local/www/firewall_nat_edit.php:630
#: usr/local/www/diag_logs_filter_dynamic.php:129
#: usr/local/www/diag_ipsec_spd.php:88 usr/local/www/diag_logs_filter.php:184
+#: usr/local/www/firewall_rules_edit.php:992
+#: usr/local/www/firewall_nat_edit.php:625
+#: usr/local/www/diag_logs_filter_dynamic.php:132
+#: usr/local/www/widgets/widgets/log.widget.php:166
+#: usr/local/www/firewall_nat_out_edit.php:134
+#: usr/local/www/firewall_nat_out_edit.php:515
+#: usr/local/www/firewall_rules_edit.php:1005
+#: usr/local/www/diag_logs_filter.php:310
+#: usr/local/www/firewall_nat_edit.php:637
+#: usr/local/www/diag_logs_filter_dynamic.php:132
+#: usr/local/www/diag_ipsec_spd.php:88 usr/local/www/firewall_nat_out.php:362
+#: usr/local/www/firewall_rules.php:361
+#: usr/local/www/firewall_nat_1to1_edit.php:388
+#: usr/local/www/widgets/widgets/log.widget.php:170
+#: usr/local/www/firewall_nat_out_edit.php:140
+#: usr/local/www/firewall_nat_out_edit.php:527
+#: usr/local/www/diag_ipsec_sad.php:89
msgid "Destination"
msgstr ""
@@ -9215,6 +11268,12 @@ msgstr ""
#: usr/local/www/diag_logs_filter_dynamic.php:130
#: usr/local/www/diag_states_summary.php:143
#: usr/local/www/diag_logs_filter.php:185
+#: usr/local/www/diag_logs_filter_dynamic.php:133
+#: usr/local/www/diag_logs_filter.php:311
+#: usr/local/www/diag_dump_states.php:156
+#: usr/local/www/diag_states_summary.php:143
+#: usr/local/www/diag_logs_filter_dynamic.php:133
+#: usr/local/www/firewall_nat.php:201 usr/local/www/firewall_rules.php:358
msgid "Proto"
msgstr ""
@@ -9226,18 +11285,27 @@ msgstr ""
#: usr/local/www/diag_logs_filter_summary.php:82
#: usr/local/www/diag_logs_filter.php:221
#: usr/local/www/diag_logs_filter.php:228
+#: usr/local/www/diag_logs_filter.php:351
+#: usr/local/www/diag_logs_filter.php:353
+#: usr/local/www/diag_logs_filter.php:360
+#: usr/local/www/diag_logs_filter.php:362
+#: usr/local/www/widgets/widgets/log.widget.php:189
+#: usr/local/www/widgets/widgets/log.widget.php:192
+#: usr/local/www/diag_logs_filter_summary.php:82
msgid "Reverse Resolve with DNS"
msgstr ""
#: usr/local/www/diag_logs_filter.php:179
#: usr/local/www/diag_logs_filter.php:176
#: usr/local/www/diag_logs_filter.php:223
+#: usr/local/www/diag_logs_filter.php:355
msgid "Easy Rule: Add to Block List"
msgstr ""
#: usr/local/www/diag_logs_filter.php:179
#: usr/local/www/diag_logs_filter.php:176
#: usr/local/www/diag_logs_filter.php:223
+#: usr/local/www/diag_logs_filter.php:355
msgid "Do you really want to add this BLOCK rule?"
msgstr ""
@@ -9247,6 +11315,8 @@ msgstr ""
#: usr/local/www/diag_logs_filter.php:181
#: usr/local/www/diag_logs_filter.php:223
#: usr/local/www/diag_logs_filter.php:230
+#: usr/local/www/diag_logs_filter.php:355
+#: usr/local/www/diag_logs_filter.php:364
msgid "Easy Rule is still experimental."
msgstr ""
@@ -9256,6 +11326,8 @@ msgstr ""
#: usr/local/www/diag_logs_filter.php:181
#: usr/local/www/diag_logs_filter.php:223
#: usr/local/www/diag_logs_filter.php:230
+#: usr/local/www/diag_logs_filter.php:355
+#: usr/local/www/diag_logs_filter.php:364
msgid "Continue at risk of your own peril."
msgstr ""
@@ -9265,24 +11337,29 @@ msgstr ""
#: usr/local/www/diag_logs_filter.php:181
#: usr/local/www/diag_logs_filter.php:223
#: usr/local/www/diag_logs_filter.php:230
+#: usr/local/www/diag_logs_filter.php:355
+#: usr/local/www/diag_logs_filter.php:364
msgid "Backups are also nice."
msgstr ""
#: usr/local/www/diag_logs_filter.php:184
#: usr/local/www/diag_logs_filter.php:181
#: usr/local/www/diag_logs_filter.php:230
+#: usr/local/www/diag_logs_filter.php:364
msgid "Easy Rule: Pass this traffic"
msgstr ""
#: usr/local/www/diag_logs_filter.php:184
#: usr/local/www/diag_logs_filter.php:181
#: usr/local/www/diag_logs_filter.php:230
+#: usr/local/www/diag_logs_filter.php:364
msgid "Do you really want to add this PASS rule?"
msgstr ""
#: usr/local/www/diag_logs_filter.php:196
#: usr/local/www/diag_logs_filter.php:193
#: usr/local/www/diag_logs_filter.php:251
+#: usr/local/www/diag_logs_filter.php:385
#, php-format
msgid "Last %s firewall log entries"
msgstr ""
@@ -9295,6 +11372,8 @@ msgstr ""
#: usr/local/www/diag_logs_filter_dynamic.php:122
#: usr/local/www/diag_logs_filter_dynamic.php:120
#: usr/local/www/diag_logs_filter_dynamic.php:121
+#: usr/local/www/diag_logs_filter_dynamic.php:124
+#: usr/local/www/diag_logs_filter_dynamic.php:124
#, php-format
msgid "Last %s records"
msgstr ""
@@ -9302,18 +11381,23 @@ msgstr ""
#: usr/local/www/diag_logs_filter_dynamic.php:122
#: usr/local/www/diag_logs_filter_dynamic.php:120
#: usr/local/www/diag_logs_filter_dynamic.php:121
+#: usr/local/www/diag_logs_filter_dynamic.php:124
+#: usr/local/www/diag_logs_filter_dynamic.php:124
msgid "Pause:"
msgstr ""
#: usr/local/www/diag_logs_filter_dynamic.php:153
#: usr/local/www/diag_logs_filter_dynamic.php:151
#: usr/local/www/diag_logs_filter_dynamic.php:152
+#: usr/local/www/diag_logs_filter_dynamic.php:165
+#: usr/local/www/diag_logs_filter_dynamic.php:165
msgid "TCP Flags"
msgstr ""
#: usr/local/www/diag_logs_ipsec.php:91 usr/local/www/status_services.php:330
#: usr/local/www/widgets/widgets/services_status.widget.php:135
-#: etc/inc/service-utils.inc:320 usr/local/www/diag_logs_ipsec.php:91
+#: etc/inc/service-utils.inc:320 etc/inc/service-utils.inc:319
+#: usr/local/www/diag_logs_ipsec.php:91 etc/inc/service-utils.inc:336
msgid "IPsec VPN"
msgstr ""
@@ -9325,7 +11409,7 @@ msgstr ""
#: usr/local/www/diag_logs_ipsec.php:135 usr/local/www/diag_logs_ppp.php:99
#: usr/local/www/diag_logs_ipsec.php:134 usr/local/www/diag_logs_ppp.php:98
-#: usr/local/www/diag_logs_ipsec.php:135 usr/local/www/diag_logs_ppp.php:98
+#: usr/local/www/diag_logs_ipsec.php:136 usr/local/www/diag_logs_ipsec.php:136
msgid "Unknown Gateway/Dynamic"
msgstr ""
@@ -9345,15 +11429,15 @@ msgstr ""
#: usr/local/www/widgets/widgets/openvpn.widget.php:16
#: usr/local/www/diag_dump_states_sources.php:51
#: usr/local/www/widgets/widgets/openvpn.widget.php:17
-#: usr/local/www/status_openvpn.php:61
-#: usr/local/www/diag_dump_states_sources.php:51
+#: usr/local/www/status_openvpn.php:61 usr/local/www/status_openvpn.php:62
#: usr/local/www/diag_dump_states.php:51
+#: usr/local/www/diag_dump_states_sources.php:51
#: usr/local/www/widgets/widgets/openvpn.widget.php:17
msgid "invalid input"
msgstr ""
#: usr/local/www/diag_dump_states.php:65 usr/local/www/diag_dump_states.php:75
-#: usr/local/www/diag_dump_states.php:75
+#: usr/local/www/diag_dump_states.php:67
msgid "Show States"
msgstr ""
@@ -9364,7 +11448,9 @@ msgstr ""
#: usr/local/www/widgets/widgets/openvpn.widget.php:85
#: usr/local/www/status_openvpn.php:131
#: usr/local/www/diag_dump_states_sources.php:94
-#: usr/local/www/diag_dump_states.php:104
+#: usr/local/www/diag_dump_states.php:104 usr/local/www/status_openvpn.php:132
+#: usr/local/www/diag_dump_states.php:96
+#: usr/local/www/diag_dump_states_sources.php:94
#: usr/local/www/widgets/widgets/openvpn.widget.php:84
msgid "An error occurred."
msgstr ""
@@ -9379,28 +11465,39 @@ msgstr ""
#: usr/local/www/diag_dump_states.php:120
#: usr/local/www/diag_states_summary.php:140
#: usr/local/www/diag_states_summary.php:142 usr/local/www/fbegin.inc:233
-#: usr/local/www/diag_resetstate.php:77
#: usr/local/www/system_advanced_misc.php:490
#: usr/local/www/diag_dump_states_sources.php:109
#: usr/local/www/diag_dump_states.php:119
+#: usr/local/www/diag_states_summary.php:144
+#: usr/local/www/system_advanced_misc.php:502 usr/local/www/fbegin.inc:225
+#: usr/local/www/diag_dump_states.php:111
#: usr/local/www/diag_states_summary.php:142
#: usr/local/www/diag_states_summary.php:144
+#: usr/local/www/diag_dump_states_sources.php:109
+#: usr/local/www/system_advanced_misc.php:549
+#: usr/local/www/diag_resetstate.php:77 usr/local/www/fbegin.inc:225
msgid "States"
msgstr ""
#: usr/local/www/diag_dump_states.php:112 usr/local/www/diag_resetstate.php:79
#: usr/local/www/diag_dump_states_sources.php:111
-#: usr/local/www/diag_dump_states.php:122 usr/local/www/diag_resetstate.php:79
+#: usr/local/www/diag_dump_states.php:122
#: usr/local/www/diag_dump_states_sources.php:110
#: usr/local/www/diag_dump_states.php:121
+#: usr/local/www/diag_dump_states.php:113
+#: usr/local/www/diag_dump_states_sources.php:110
+#: usr/local/www/diag_resetstate.php:79
msgid "Source Tracking"
msgstr ""
#: usr/local/www/diag_dump_states.php:113 usr/local/www/diag_resetstate.php:80
#: usr/local/www/diag_dump_states_sources.php:112
-#: usr/local/www/diag_dump_states.php:123 usr/local/www/diag_resetstate.php:80
+#: usr/local/www/diag_dump_states.php:123
#: usr/local/www/diag_dump_states_sources.php:111
#: usr/local/www/diag_dump_states.php:122
+#: usr/local/www/diag_dump_states.php:114
+#: usr/local/www/diag_dump_states_sources.php:111
+#: usr/local/www/diag_resetstate.php:80
msgid "Reset States"
msgstr ""
@@ -9413,12 +11510,15 @@ msgstr ""
#: usr/local/www/diag_dump_states.php:151
#: usr/local/www/diag_dump_states_sources.php:130
#: usr/local/www/diag_dump_states.php:150
+#: usr/local/www/diag_dump_states.php:139
+#: usr/local/www/diag_dump_states_sources.php:130
msgid "Filter expression:"
msgstr ""
#: usr/local/www/diag_dump_states.php:151
#: usr/local/www/diag_dump_states.php:169
#: usr/local/www/diag_dump_states.php:168
+#: usr/local/www/diag_dump_states.php:157
msgid "Source -> Router -> Destination"
msgstr ""
@@ -9427,12 +11527,18 @@ msgstr ""
#: usr/local/www/diag_dump_states.php:170
#: usr/local/www/status_dhcpv6_leases.php:487
#: usr/local/www/diag_dump_states.php:169
+#: usr/local/www/status_dhcpv6_leases.php:490
+#: usr/local/www/diag_system_pftop.php:142
+#: usr/local/www/status_dhcpv6_leases.php:490
+#: usr/local/www/diag_dump_states.php:158
+#: usr/local/www/diag_system_pftop.php:142
msgid "State"
msgstr ""
#: usr/local/www/diag_dump_states.php:185
#: usr/local/www/diag_dump_states.php:203
#: usr/local/www/diag_dump_states.php:202
+#: usr/local/www/diag_dump_states.php:194
msgid "Remove all state entries from"
msgstr ""
@@ -9453,14 +11559,27 @@ msgstr ""
#: usr/local/www/diag_dump_states_sources.php:179
#: usr/local/www/diag_dump_states.php:202 usr/local/www/services_dhcp.php:770
#: usr/local/www/firewall_nat_edit.php:626
-#: usr/local/www/firewall_nat_edit.php:741 usr/local/www/diag_confbak.php:111
+#: usr/local/www/firewall_nat_edit.php:741
#: usr/local/www/services_dhcpv6.php:576 usr/local/www/services_dhcpv6.php:583
+#: usr/local/www/firewall_nat_edit.php:621
+#: usr/local/www/firewall_nat_edit.php:736 usr/local/www/services_dhcp.php:780
+#: usr/local/www/services_dhcpv6.php:593 usr/local/www/services_dhcpv6.php:600
+#: usr/local/www/services_captiveportal_ip.php:174
+#: usr/local/www/diag_dump_states.php:194
+#: usr/local/www/firewall_nat_edit.php:633
+#: usr/local/www/firewall_nat_edit.php:748
+#: usr/local/www/diag_dump_states_sources.php:179
+#: usr/local/www/services_dhcp.php:800
+#: usr/local/www/services_captiveportal_hostname.php:175
+#: usr/local/www/services_dhcpv6.php:593 usr/local/www/services_dhcpv6.php:600
+#: usr/local/www/diag_confbak.php:111
msgid "to"
msgstr ""
#: usr/local/www/diag_dump_states.php:194
#: usr/local/www/diag_dump_states.php:212
#: usr/local/www/diag_dump_states.php:211
+#: usr/local/www/diag_dump_states.php:205
msgid "No states were found."
msgstr ""
@@ -9479,12 +11598,14 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:92
#: usr/local/www/diag_logs_settings.php:96
#: usr/local/www/diag_logs_settings.php:97
+#: usr/local/www/diag_logs_settings.php:97
msgid "Number of log entries to show must be between 5 and 2000."
msgstr ""
#: usr/local/www/diag_logs_settings.php:232
#: usr/local/www/diag_logs_settings.php:239
#: usr/local/www/diag_logs_settings.php:246
+#: usr/local/www/diag_logs_settings.php:246
msgid "Show log entries in reverse order (newest entries on top)"
msgstr ""
@@ -9495,6 +11616,7 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:242
#: usr/local/www/diag_logs_settings.php:250
#: usr/local/www/diag_logs_settings.php:257
+#: usr/local/www/diag_logs_settings.php:257
msgid "Log packets blocked by the default rule"
msgstr ""
@@ -9508,6 +11630,7 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:250
#: usr/local/www/diag_logs_settings.php:258
#: usr/local/www/diag_logs_settings.php:265
+#: usr/local/www/diag_logs_settings.php:265
msgid "Show raw filter logs"
msgstr ""
@@ -9520,6 +11643,7 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:256
#: usr/local/www/diag_logs_settings.php:267
#: usr/local/www/diag_logs_settings.php:287
+#: usr/local/www/diag_logs_settings.php:287
msgid "Disable writing log files to the local RAM disk"
msgstr ""
@@ -9585,9 +11709,7 @@ msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:484 usr/local/www/vpn_openvpn_csc.php:492
#: usr/local/www/vpn_openvpn_csc.php:500 usr/local/www/vpn_openvpn_csc.php:528
#: usr/local/www/vpn_openvpn_csc.php:536 usr/local/www/vpn_openvpn_csc.php:624
-#: usr/local/www/vpn_openvpn_csc.php:632
-#: usr/local/www/services_rfc2136_edit.php:180
-#: usr/local/www/status_ntpd.php:124 usr/local/www/diag_dns.php:207
+#: usr/local/www/vpn_openvpn_csc.php:632 usr/local/www/status_ntpd.php:124
#: usr/local/www/vpn_openvpn_server.php:423
#: usr/local/www/vpn_openvpn_server.php:674
#: usr/local/www/vpn_openvpn_server.php:1422
@@ -9600,6 +11722,44 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1578
#: usr/local/www/vpn_openvpn_client.php:378
#: usr/local/www/vpn_openvpn_client.php:920
+#: usr/local/www/vpn_openvpn_client.php:396
+#: usr/local/www/vpn_openvpn_client.php:939
+#: usr/local/www/vpn_openvpn_server.php:445
+#: usr/local/www/vpn_openvpn_server.php:700
+#: usr/local/www/vpn_openvpn_server.php:1490
+#: usr/local/www/vpn_openvpn_server.php:1498
+#: usr/local/www/vpn_openvpn_server.php:1526
+#: usr/local/www/vpn_openvpn_server.php:1534
+#: usr/local/www/vpn_openvpn_server.php:1622
+#: usr/local/www/vpn_openvpn_server.php:1630
+#: usr/local/www/diag_logs_settings.php:306
+#: usr/local/www/diag_logs_settings.php:310
+#: usr/local/www/diag_logs_settings.php:314
+#: usr/local/www/vpn_openvpn_client.php:396
+#: usr/local/www/vpn_openvpn_client.php:939
+#: usr/local/www/vpn_openvpn_csc.php:292 usr/local/www/vpn_openvpn_csc.php:476
+#: usr/local/www/vpn_openvpn_csc.php:484 usr/local/www/vpn_openvpn_csc.php:492
+#: usr/local/www/vpn_openvpn_csc.php:500 usr/local/www/vpn_openvpn_csc.php:528
+#: usr/local/www/vpn_openvpn_csc.php:536 usr/local/www/vpn_openvpn_csc.php:624
+#: usr/local/www/vpn_openvpn_csc.php:632 usr/local/www/status_ntpd.php:130
+#: usr/local/www/diag_dns.php:156 usr/local/www/diag_dns.php:224
+#: usr/local/www/services_rfc2136_edit.php:180
+#: usr/local/www/vpn_ipsec_mobile.php:545
+#: usr/local/www/vpn_ipsec_mobile.php:551
+#: usr/local/www/vpn_ipsec_mobile.php:557
+#: usr/local/www/vpn_ipsec_mobile.php:563
+#: usr/local/www/vpn_ipsec_mobile.php:587
+#: usr/local/www/vpn_ipsec_mobile.php:593
+#: usr/local/www/vpn_openvpn_server.php:445
+#: usr/local/www/vpn_openvpn_server.php:700
+#: usr/local/www/vpn_openvpn_server.php:1474
+#: usr/local/www/vpn_openvpn_server.php:1482
+#: usr/local/www/vpn_openvpn_server.php:1490
+#: usr/local/www/vpn_openvpn_server.php:1498
+#: usr/local/www/vpn_openvpn_server.php:1526
+#: usr/local/www/vpn_openvpn_server.php:1534
+#: usr/local/www/vpn_openvpn_server.php:1622
+#: usr/local/www/vpn_openvpn_server.php:1630
msgid "Server"
msgstr ""
@@ -9610,54 +11770,63 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:300
#: usr/local/www/diag_logs_settings.php:309
#: usr/local/www/diag_logs_settings.php:329
+#: usr/local/www/diag_logs_settings.php:329
msgid "System events"
msgstr ""
#: usr/local/www/diag_logs_settings.php:302
#: usr/local/www/diag_logs_settings.php:311
#: usr/local/www/diag_logs_settings.php:331
+#: usr/local/www/diag_logs_settings.php:331
msgid "Firewall events"
msgstr ""
#: usr/local/www/diag_logs_settings.php:304
#: usr/local/www/diag_logs_settings.php:313
#: usr/local/www/diag_logs_settings.php:333
+#: usr/local/www/diag_logs_settings.php:333
msgid "DHCP service events"
msgstr ""
#: usr/local/www/diag_logs_settings.php:306
#: usr/local/www/diag_logs_settings.php:315
#: usr/local/www/diag_logs_settings.php:335
+#: usr/local/www/diag_logs_settings.php:335
msgid "Portal Auth events"
msgstr ""
#: usr/local/www/diag_logs_settings.php:308
#: usr/local/www/diag_logs_settings.php:317
#: usr/local/www/diag_logs_settings.php:337
+#: usr/local/www/diag_logs_settings.php:337
msgid "VPN (PPTP, IPsec, OpenVPN) events"
msgstr ""
#: usr/local/www/diag_logs_settings.php:310
#: usr/local/www/diag_logs_settings.php:319
#: usr/local/www/diag_logs_settings.php:339
+#: usr/local/www/diag_logs_settings.php:339
msgid "Gateway Monitor events"
msgstr ""
#: usr/local/www/diag_logs_settings.php:312
#: usr/local/www/diag_logs_settings.php:321
#: usr/local/www/diag_logs_settings.php:341
+#: usr/local/www/diag_logs_settings.php:341
msgid "Server Load Balancer events"
msgstr ""
#: usr/local/www/diag_logs_settings.php:314
#: usr/local/www/diag_logs_settings.php:323
#: usr/local/www/diag_logs_settings.php:343
+#: usr/local/www/diag_logs_settings.php:343
msgid "Wireless events"
msgstr ""
#: usr/local/www/diag_logs_settings.php:316
#: usr/local/www/diag_logs_settings.php:307
#: usr/local/www/diag_logs_settings.php:327
+#: usr/local/www/diag_logs_settings.php:327
msgid "Everything"
msgstr ""
@@ -9713,11 +11882,12 @@ msgstr ""
#: usr/local/www/load_balancer_relay_action_edit.php:483
#: usr/local/www/firewall_rules_edit.php:692
#: usr/local/www/diag_logs_vpn.php:175
-#: usr/local/www/services_unbound_acls.php:211
-#: usr/local/www/services_unbound_acls.php:318
+#: usr/local/www/load_balancer_relay_action_edit.php:481
+#: usr/local/www/firewall_rules_edit.php:695
+#: usr/local/www/firewall_rules_edit.php:707
+#: usr/local/www/diag_logs_filter.php:151
#: usr/local/www/load_balancer_relay_action_edit.php:117
#: usr/local/www/load_balancer_relay_action_edit.php:481
-#: usr/local/www/firewall_rules_edit.php:692
#: usr/local/www/diag_logs_vpn.php:175
msgid "Action"
msgstr ""
@@ -9732,17 +11902,20 @@ msgstr ""
#: usr/local/www/system_usermanager.php:806
#: usr/local/www/diag_logs_vpn.php:176
#: usr/local/www/system_groupmanager.php:429
-#: usr/local/www/system_usermanager.php:89
#: usr/local/www/system_usermanager.php:809
-#: usr/local/www/diag_logs_vpn.php:176
#: usr/local/www/diag_authentication.php:59
-#: usr/local/www/vpn_pptp_users_edit.php:135
+#: usr/local/www/system_groupmanager.php:448
#: usr/local/www/vpn_l2tp_users_edit.php:38
+#: usr/local/www/diag_logs_vpn.php:176
+#: usr/local/www/vpn_pptp_users_edit.php:135
+#: usr/local/www/system_usermanager.php:89
+#: usr/local/www/system_usermanager.php:832
msgid "User"
msgstr ""
#: usr/local/www/diag_nanobsd.php:49 usr/local/www/fbegin.inc:212
#: usr/local/www/fbegin.inc:230 usr/local/www/fbegin.inc:239
+#: usr/local/www/fbegin.inc:231 usr/local/www/fbegin.inc:231
#: usr/local/www/diag_nanobsd.php:49
msgid "NanoBSD"
msgstr ""
@@ -9799,17 +11972,28 @@ msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:233
#: usr/local/www/interfaces.php:2752 usr/local/www/interfaces.php:2761
#: usr/local/www/diag_nanobsd.php:127 usr/local/www/system_routes_edit.php:375
-#: usr/local/www/system_advanced_firewall.php:245
-#: usr/local/www/system_advanced_admin.php:289
#: usr/local/www/system_advanced_misc.php:266
-#: usr/local/www/system_advanced_sysctl.php:163
#: usr/local/www/load_balancer_virtual_server_edit.php:199
#: usr/local/www/load_balancer_virtual_server_edit.php:218
-#: usr/local/www/load_balancer_virtual_server_edit.php:231
#: usr/local/www/system_firmware_settings.php:156
-#: usr/local/www/system_advanced_network.php:197
#: usr/local/www/interfaces.php:2740 usr/local/www/interfaces.php:2749
#: usr/local/www/diag_nanobsd.php:148
+#: usr/local/www/system_firmware_settings.php:165
+#: usr/local/www/system_advanced_misc.php:270
+#: usr/local/www/system_advanced_firewall.php:274
+#: usr/local/www/interfaces.php:2774 usr/local/www/interfaces.php:2783
+#: usr/local/www/load_balancer_virtual_server_edit.php:199
+#: usr/local/www/load_balancer_virtual_server_edit.php:218
+#: usr/local/www/load_balancer_virtual_server_edit.php:231
+#: usr/local/www/system_firmware_settings.php:167
+#: usr/local/www/system_advanced_admin.php:289
+#: usr/local/www/system_advanced_misc.php:317
+#: usr/local/www/system_routes_edit.php:399
+#: usr/local/www/system_advanced_firewall.php:273
+#: usr/local/www/system_advanced_network.php:197
+#: usr/local/www/diag_nanobsd.php:139
+#: usr/local/www/system_advanced_sysctl.php:163
+#: usr/local/www/interfaces.php:2820 usr/local/www/interfaces.php:2829
msgid "NOTE:"
msgstr ""
@@ -9822,57 +12006,61 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:247
#: usr/local/www/system_advanced_misc.php:249
#: usr/local/www/diag_nanobsd.php:129
-#: usr/local/www/system_advanced_firewall.php:247
-#: usr/local/www/system_advanced_admin.php:291
#: usr/local/www/system_advanced_misc.php:268
-#: usr/local/www/system_advanced_sysctl.php:165
-#: usr/local/www/system_advanced_network.php:199
#: usr/local/www/diag_nanobsd.php:150
+#: usr/local/www/system_advanced_misc.php:272
+#: usr/local/www/system_advanced_firewall.php:276
+#: usr/local/www/system_advanced_admin.php:291
+#: usr/local/www/system_advanced_misc.php:319
+#: usr/local/www/system_advanced_firewall.php:275
+#: usr/local/www/system_advanced_network.php:199
+#: usr/local/www/diag_nanobsd.php:141
+#: usr/local/www/system_advanced_sysctl.php:165
msgid "The options on this page are intended for use by advanced users only."
msgstr ""
#: usr/local/www/diag_nanobsd.php:136 usr/local/www/diag_nanobsd.php:135
-#: usr/local/www/diag_nanobsd.php:156
+#: usr/local/www/diag_nanobsd.php:156 usr/local/www/diag_nanobsd.php:147
msgid "Bootup information"
msgstr ""
#: usr/local/www/diag_nanobsd.php:139 usr/local/www/diag_nanobsd.php:138
-#: usr/local/www/diag_nanobsd.php:159
+#: usr/local/www/diag_nanobsd.php:159 usr/local/www/diag_nanobsd.php:150
msgid "NanoBSD Image size"
msgstr ""
#: usr/local/www/diag_nanobsd.php:145 usr/local/www/diag_nanobsd.php:144
-#: usr/local/www/diag_nanobsd.php:165
+#: usr/local/www/diag_nanobsd.php:165 usr/local/www/diag_nanobsd.php:156
msgid "Bootup"
msgstr ""
#: usr/local/www/diag_nanobsd.php:148 usr/local/www/diag_nanobsd.php:147
-#: usr/local/www/diag_nanobsd.php:168
+#: usr/local/www/diag_nanobsd.php:168 usr/local/www/diag_nanobsd.php:159
msgid "Bootup slice is currently:"
msgstr ""
#: usr/local/www/diag_nanobsd.php:149 usr/local/www/diag_nanobsd.php:148
-#: usr/local/www/diag_nanobsd.php:169
+#: usr/local/www/diag_nanobsd.php:169 usr/local/www/diag_nanobsd.php:160
msgid "This will switch the bootup slice to the alternate slice."
msgstr ""
#: usr/local/www/diag_nanobsd.php:159 usr/local/www/diag_nanobsd.php:158
-#: usr/local/www/diag_nanobsd.php:217
+#: usr/local/www/diag_nanobsd.php:217 usr/local/www/diag_nanobsd.php:208
msgid "Duplicate bootup slice to alternate"
msgstr ""
#: usr/local/www/diag_nanobsd.php:162 usr/local/www/diag_nanobsd.php:161
-#: usr/local/www/diag_nanobsd.php:220
+#: usr/local/www/diag_nanobsd.php:220 usr/local/www/diag_nanobsd.php:211
msgid "Duplicate bootup slice"
msgstr ""
#: usr/local/www/diag_nanobsd.php:165 usr/local/www/diag_nanobsd.php:164
-#: usr/local/www/diag_nanobsd.php:223
+#: usr/local/www/diag_nanobsd.php:223 usr/local/www/diag_nanobsd.php:214
msgid "Destination slice:"
msgstr ""
#: usr/local/www/diag_nanobsd.php:172 usr/local/www/diag_nanobsd.php:171
-#: usr/local/www/diag_nanobsd.php:230
+#: usr/local/www/diag_nanobsd.php:230 usr/local/www/diag_nanobsd.php:221
msgid ""
"This will duplicate the bootup slice to the alternate slice. Use this if "
"you would like to duplicate the known good working boot partition to the "
@@ -9880,7 +12068,7 @@ msgid ""
msgstr ""
#: usr/local/www/diag_nanobsd.php:182 usr/local/www/diag_nanobsd.php:181
-#: usr/local/www/diag_nanobsd.php:240
+#: usr/local/www/diag_nanobsd.php:240 usr/local/www/diag_nanobsd.php:231
msgid "Periodic Data Backup"
msgstr ""
@@ -9892,6 +12080,8 @@ msgstr ""
#: usr/local/www/diag_nanobsd.php:188 usr/local/www/diag_nanobsd.php:205
#: usr/local/www/diag_nanobsd.php:187 usr/local/www/diag_nanobsd.php:204
#: usr/local/www/diag_nanobsd.php:246 usr/local/www/diag_nanobsd.php:263
+#: usr/local/www/system_advanced_misc.php:602
+#: usr/local/www/system_advanced_misc.php:618
msgid "Frequency:"
msgstr ""
@@ -9903,24 +12093,35 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:410
#: usr/local/www/firewall_nat_edit.php:796
#: usr/local/www/vpn_ipsec_phase1.php:825 usr/local/www/diag_nanobsd.php:189
-#: usr/local/www/diag_nanobsd.php:206
-#: usr/local/www/services_dyndns_edit.php:210
-#: usr/local/www/system_advanced_firewall.php:410
-#: usr/local/www/system_firmware.php:140
+#: usr/local/www/diag_nanobsd.php:206 usr/local/www/system_firmware.php:140
#: usr/local/www/firewall_nat_edit.php:795
#: usr/local/www/vpn_ipsec_phase1.php:822 usr/local/www/diag_nanobsd.php:248
-#: usr/local/www/diag_nanobsd.php:265
+#: usr/local/www/diag_nanobsd.php:265 usr/local/www/system_firmware.php:135
+#: usr/local/www/services_dyndns_edit.php:214
+#: usr/local/www/firewall_nat_edit.php:790
+#: usr/local/www/system_advanced_firewall.php:472
+#: usr/local/www/vpn_ipsec_phase1.php:843
+#: usr/local/www/system_firmware.php:135
+#: usr/local/www/services_dyndns_edit.php:216
+#: usr/local/www/firewall_nat_edit.php:802
+#: usr/local/www/system_advanced_misc.php:604
+#: usr/local/www/system_advanced_misc.php:620
+#: usr/local/www/system_advanced_firewall.php:473
+#: usr/local/www/vpn_ipsec_phase1.php:843
msgid "Disable"
msgstr ""
#: usr/local/www/diag_nanobsd.php:192 usr/local/www/diag_nanobsd.php:209
#: usr/local/www/diag_nanobsd.php:191 usr/local/www/diag_nanobsd.php:208
#: usr/local/www/diag_nanobsd.php:250 usr/local/www/diag_nanobsd.php:267
+#: usr/local/www/system_advanced_misc.php:606
+#: usr/local/www/system_advanced_misc.php:622
msgid "hour"
msgstr ""
#: usr/local/www/diag_nanobsd.php:196 usr/local/www/diag_nanobsd.php:195
#: usr/local/www/diag_nanobsd.php:254
+#: usr/local/www/system_advanced_misc.php:610
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 "
@@ -9934,6 +12135,7 @@ msgstr ""
#: usr/local/www/diag_nanobsd.php:213 usr/local/www/diag_nanobsd.php:212
#: usr/local/www/diag_nanobsd.php:271
+#: usr/local/www/system_advanced_misc.php:626
msgid ""
"This will periodically backup the DHCP leases data so it can be restored "
"automatically on the next boot. Keep in mind that the more frequent the "
@@ -9941,12 +12143,12 @@ msgid ""
msgstr ""
#: usr/local/www/diag_nanobsd.php:226 usr/local/www/diag_nanobsd.php:225
-#: usr/local/www/diag_nanobsd.php:284
+#: usr/local/www/diag_nanobsd.php:284 usr/local/www/diag_nanobsd.php:244
msgid "View upgrade log"
msgstr ""
#: usr/local/www/diag_nanobsd.php:229 usr/local/www/diag_nanobsd.php:228
-#: usr/local/www/diag_nanobsd.php:287
+#: usr/local/www/diag_nanobsd.php:287 usr/local/www/diag_nanobsd.php:247
msgid "View previous upgrade log"
msgstr ""
@@ -9955,12 +12157,15 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:246
#: usr/local/www/diag_packet_capture.php:40
#: usr/local/www/diag_packet_capture.php:293
+#: usr/local/www/diag_packet_capture.php:40
+#: usr/local/www/diag_packet_capture.php:311
msgid "Download Capture"
msgstr ""
#: usr/local/www/diag_packet_capture.php:41 usr/local/www/fbegin.inc:210
#: usr/local/www/fbegin.inc:228 usr/local/www/fbegin.inc:237
-#: usr/local/www/diag_packet_capture.php:43
+#: usr/local/www/diag_packet_capture.php:43 usr/local/www/fbegin.inc:229
+#: usr/local/www/diag_packet_capture.php:43 usr/local/www/fbegin.inc:229
msgid "Packet Capture"
msgstr ""
@@ -9981,6 +12186,14 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:129
#: usr/local/www/diag_packet_capture.php:287
#: usr/local/www/diag_packet_capture.php:341
+#: usr/local/www/status_dhcpv6_leases.php:411
+#: usr/local/www/status_dhcpv6_leases.php:488
+#: usr/local/www/status_dhcpv6_leases.php:411
+#: usr/local/www/status_dhcpv6_leases.php:488
+#: usr/local/www/diag_packet_capture.php:137
+#: usr/local/www/diag_packet_capture.php:305
+#: usr/local/www/diag_packet_capture.php:359
+#: usr/local/www/status_dhcp_leases.php:344
msgid "Start"
msgstr ""
@@ -9993,18 +12206,23 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:136
#: usr/local/www/diag_packet_capture.php:286
#: usr/local/www/diag_packet_capture.php:289
+#: usr/local/www/diag_packet_capture.php:144
+#: usr/local/www/diag_packet_capture.php:304
+#: usr/local/www/diag_packet_capture.php:307
msgid "Stop"
msgstr ""
#: usr/local/www/diag_packet_capture.php:116
#: usr/local/www/diag_packet_capture.php:120
#: usr/local/www/diag_packet_capture.php:178
+#: usr/local/www/diag_packet_capture.php:186
msgid "Packet capture"
msgstr ""
#: usr/local/www/diag_packet_capture.php:141
#: usr/local/www/diag_packet_capture.php:145
#: usr/local/www/diag_packet_capture.php:192
+#: usr/local/www/diag_packet_capture.php:200
msgid "Select the interface on which to capture traffic."
msgstr ""
@@ -10013,12 +12231,15 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:149
#: usr/local/www/system_gateways_edit.php:482
#: usr/local/www/diag_packet_capture.php:196
+#: usr/local/www/system_gateways_edit.php:484
+#: usr/local/www/diag_packet_capture.php:212
msgid "Address Family"
msgstr ""
#: usr/local/www/diag_packet_capture.php:152
#: usr/local/www/diag_packet_capture.php:156
#: usr/local/www/diag_packet_capture.php:203
+#: usr/local/www/diag_packet_capture.php:219
msgid ""
"Select the type of traffic to be captured, either Any, IPv4 only or IPv6 "
"only."
@@ -10027,12 +12248,14 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:156
#: usr/local/www/diag_packet_capture.php:176
#: usr/local/www/diag_packet_capture.php:223
+#: usr/local/www/diag_packet_capture.php:239
msgid "Host Address"
msgstr ""
#: usr/local/www/diag_packet_capture.php:159
#: usr/local/www/diag_packet_capture.php:179
#: usr/local/www/diag_packet_capture.php:226
+#: usr/local/www/diag_packet_capture.php:242
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."
@@ -10041,6 +12264,7 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:160
#: usr/local/www/diag_packet_capture.php:180
#: usr/local/www/diag_packet_capture.php:227
+#: usr/local/www/diag_packet_capture.php:243
msgid ""
"This value can be a domain name or IP address, or subnet in CIDR notation."
msgstr ""
@@ -10048,6 +12272,7 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:161
#: usr/local/www/diag_packet_capture.php:181
#: usr/local/www/diag_packet_capture.php:228
+#: usr/local/www/diag_packet_capture.php:244
msgid ""
"If you leave this field blank, all packets on the specified interface will "
"be captured."
@@ -10056,6 +12281,7 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:168
#: usr/local/www/diag_packet_capture.php:188
#: usr/local/www/diag_packet_capture.php:235
+#: usr/local/www/diag_packet_capture.php:251
msgid ""
"The port can be either the source or destination port. The packet capture "
"will look for this port in either field."
@@ -10064,18 +12290,21 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:169
#: usr/local/www/diag_packet_capture.php:189
#: usr/local/www/diag_packet_capture.php:236
+#: usr/local/www/diag_packet_capture.php:252
msgid "Leave blank if you do not want to filter by port."
msgstr ""
#: usr/local/www/diag_packet_capture.php:173
#: usr/local/www/diag_packet_capture.php:193
#: usr/local/www/diag_packet_capture.php:240
+#: usr/local/www/diag_packet_capture.php:256
msgid "Packet Length"
msgstr ""
#: usr/local/www/diag_packet_capture.php:176
#: usr/local/www/diag_packet_capture.php:196
#: usr/local/www/diag_packet_capture.php:243
+#: usr/local/www/diag_packet_capture.php:259
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 "
@@ -10089,14 +12318,18 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:200
#: usr/local/www/services_captiveportal_vouchers_edit.php:92
#: usr/local/www/services_captiveportal_vouchers_edit.php:187
-#: usr/local/www/diag_packet_capture.php:247 usr/local/www/diag_ping.php:55
-#: usr/local/www/diag_ping.php:108
+#: usr/local/www/diag_packet_capture.php:247
+#: usr/local/www/diag_packet_capture.php:263
+#: usr/local/www/services_captiveportal_vouchers_edit.php:92
+#: usr/local/www/services_captiveportal_vouchers_edit.php:187
+#: usr/local/www/diag_ping.php:57 usr/local/www/diag_ping.php:129
msgid "Count"
msgstr ""
#: usr/local/www/diag_packet_capture.php:183
#: usr/local/www/diag_packet_capture.php:203
#: usr/local/www/diag_packet_capture.php:250
+#: usr/local/www/diag_packet_capture.php:266
msgid ""
"This is the number of packets the packet capture will grab. Default value is "
"100."
@@ -10105,42 +12338,49 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:183
#: usr/local/www/diag_packet_capture.php:203
#: usr/local/www/diag_packet_capture.php:250
+#: usr/local/www/diag_packet_capture.php:266
msgid "Enter 0 (zero) for no count limit."
msgstr ""
#: usr/local/www/diag_packet_capture.php:186
#: usr/local/www/diag_packet_capture.php:206
#: usr/local/www/diag_packet_capture.php:253
+#: usr/local/www/diag_packet_capture.php:270
msgid "Level of Detail"
msgstr ""
#: usr/local/www/diag_packet_capture.php:189
#: usr/local/www/diag_packet_capture.php:209
#: usr/local/www/diag_packet_capture.php:256
+#: usr/local/www/diag_packet_capture.php:273
msgid "Normal"
msgstr ""
#: usr/local/www/diag_packet_capture.php:190
#: usr/local/www/diag_packet_capture.php:210
#: usr/local/www/diag_packet_capture.php:257
+#: usr/local/www/diag_packet_capture.php:274
msgid "Medium"
msgstr ""
#: usr/local/www/diag_packet_capture.php:191
#: usr/local/www/diag_packet_capture.php:211
#: usr/local/www/diag_packet_capture.php:258
+#: usr/local/www/diag_packet_capture.php:275
msgid "High"
msgstr ""
#: usr/local/www/diag_packet_capture.php:192
#: usr/local/www/diag_packet_capture.php:212
#: usr/local/www/diag_packet_capture.php:259
+#: usr/local/www/diag_packet_capture.php:276
msgid "Full"
msgstr ""
#: usr/local/www/diag_packet_capture.php:194
#: usr/local/www/diag_packet_capture.php:214
#: usr/local/www/diag_packet_capture.php:261
+#: usr/local/www/diag_packet_capture.php:278
msgid ""
"This is the level of detail that will be displayed after hitting 'Stop' when "
"the packets have been captured."
@@ -10149,6 +12389,7 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:196
#: usr/local/www/diag_packet_capture.php:216
#: usr/local/www/diag_packet_capture.php:263
+#: usr/local/www/diag_packet_capture.php:280
msgid ""
"This option does not affect the level of detail when downloading the packet "
"capture."
@@ -10157,12 +12398,14 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:199
#: usr/local/www/diag_packet_capture.php:219
#: usr/local/www/diag_packet_capture.php:266
+#: usr/local/www/diag_packet_capture.php:284
msgid "Reverse DNS Lookup"
msgstr ""
#: usr/local/www/diag_packet_capture.php:202
#: usr/local/www/diag_packet_capture.php:222
#: usr/local/www/diag_packet_capture.php:269
+#: usr/local/www/diag_packet_capture.php:287
msgid ""
"This check box will cause the packet capture to perform a reverse DNS lookup "
"associated with all IP addresses."
@@ -10171,12 +12414,14 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:203
#: usr/local/www/diag_packet_capture.php:223
#: usr/local/www/diag_packet_capture.php:270
+#: usr/local/www/diag_packet_capture.php:288
msgid "This option can cause delays for large packet captures."
msgstr ""
#: usr/local/www/diag_packet_capture.php:226
#: usr/local/www/diag_packet_capture.php:247
#: usr/local/www/diag_packet_capture.php:294
+#: usr/local/www/diag_packet_capture.php:312
msgid "The packet capture file was last updated:"
msgstr ""
@@ -10186,18 +12431,22 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:296
#: usr/local/www/diag_packet_capture.php:307
#: usr/local/www/diag_packet_capture.php:343
+#: usr/local/www/diag_packet_capture.php:325
+#: usr/local/www/diag_packet_capture.php:361
msgid "Packet Capture is running."
msgstr ""
#: usr/local/www/diag_packet_capture.php:272
#: usr/local/www/diag_packet_capture.php:301
#: usr/local/www/diag_packet_capture.php:347
+#: usr/local/www/diag_packet_capture.php:365
msgid "Packet Capture stopped."
msgstr ""
#: usr/local/www/diag_packet_capture.php:272
#: usr/local/www/diag_packet_capture.php:301
#: usr/local/www/diag_packet_capture.php:347
+#: usr/local/www/diag_packet_capture.php:365
msgid "Packets Captured:"
msgstr ""
@@ -10239,19 +12488,22 @@ msgid "Processing..."
msgstr ""
#: usr/local/www/crash_reporter.php:108 usr/local/www/crash_reporter.php:110
-#: usr/local/www/crash_reporter.php:110
+#: usr/local/www/crash_reporter.php:112 usr/local/www/crash_reporter.php:112
msgid "Uploading..."
msgstr ""
#: usr/local/www/crash_reporter.php:116
#: usr/local/www/services_captiveportal_zones_edit.php:115
-#: usr/local/www/crash_reporter.php:120 usr/local/www/crash_reporter.php:120
+#: usr/local/www/crash_reporter.php:120
#: usr/local/www/services_captiveportal_zones_edit.php:117
+#: usr/local/www/crash_reporter.php:122
+#: usr/local/www/services_captiveportal_zones_edit.php:115
+#: usr/local/www/crash_reporter.php:122
msgid "Continue"
msgstr ""
#: usr/local/www/crash_reporter.php:116 usr/local/www/crash_reporter.php:120
-#: usr/local/www/crash_reporter.php:120
+#: usr/local/www/crash_reporter.php:122 usr/local/www/crash_reporter.php:122
msgid " and delete crash report files from local disk."
msgstr ""
@@ -10288,7 +12540,13 @@ msgstr ""
#: usr/local/www/interfaces.php:2505 usr/local/www/fbegin.inc:215
#: usr/local/www/services_captiveportal.php:581
#: usr/local/www/services_captiveportal.php:934
-#: usr/local/www/diag_authentication.php:69 usr/local/www/interfaces.php:2493
+#: usr/local/www/interfaces.php:2493
+#: usr/local/www/services_captiveportal.php:575
+#: usr/local/www/services_captiveportal.php:936 usr/local/www/fbegin.inc:206
+#: usr/local/www/interfaces.php:2523 usr/local/www/diag_authentication.php:69
+#: usr/local/www/services_captiveportal.php:591
+#: usr/local/www/services_captiveportal.php:952 usr/local/www/fbegin.inc:206
+#: usr/local/www/interfaces.php:2569
msgid "Authentication"
msgstr ""
@@ -10296,8 +12554,10 @@ msgstr ""
#: usr/local/www/system_authservers.php:82
#: usr/local/www/system_usermanager_settings.php:140
#: usr/local/www/diag_authentication.php:91
-#: usr/local/www/system_usermanager_settings.php:140
#: usr/local/www/system_authservers.php:83
+#: usr/local/www/diag_authentication.php:91
+#: usr/local/www/system_authservers.php:83
+#: usr/local/www/system_usermanager_settings.php:143
msgid "Authentication Server"
msgstr ""
@@ -10337,24 +12597,11 @@ msgstr ""
#: usr/local/www/interfaces.php:1902 usr/local/www/interfaces.php:1967
#: usr/local/www/interfaces.php:2073 usr/local/www/vpn_openvpn_client.php:536
#: usr/local/www/vpn_pppoe_edit.php:537
-#: usr/local/www/services_dyndns_edit.php:99
-#: usr/local/www/services_dyndns_edit.php:296
-#: usr/local/www/system_usermanager.php:177
-#: usr/local/www/system_usermanager.php:182
-#: usr/local/www/system_usermanager.php:187
-#: usr/local/www/system_usermanager.php:473
#: usr/local/www/system_usermanager.php:786
-#: usr/local/www/interfaces_ppps_edit.php:188
-#: usr/local/www/interfaces_ppps_edit.php:191
-#: usr/local/www/interfaces_ppps_edit.php:199
-#: usr/local/www/interfaces_ppps_edit.php:202
#: usr/local/www/interfaces_ppps_edit.php:511
#: usr/local/www/firewall_aliases_edit.php:475
-#: usr/local/www/status_captiveportal.php:162
#: usr/local/www/vpn_l2tp_users.php:102
#: usr/local/www/diag_authentication.php:107
-#: usr/local/www/vpn_pptp_users_edit.php:76
-#: usr/local/www/vpn_pptp_users_edit.php:79
#: usr/local/www/vpn_pptp_users_edit.php:147 usr/local/www/interfaces.php:1890
#: usr/local/www/interfaces.php:1955 usr/local/www/interfaces.php:2061
#: usr/local/www/vpn_openvpn_client.php:554
@@ -10363,6 +12610,42 @@ msgstr ""
#: usr/local/www/vpn_l2tp_users_edit.php:155
#: usr/local/www/widgets/widgets/captive_portal_status.widget.php:97
#: usr/local/www/vpn_pptp_users.php:99
+#: usr/local/www/vpn_openvpn_client.php:573
+#: usr/local/www/services_dyndns_edit.php:300
+#: usr/local/www/interfaces_ppps_edit.php:194
+#: usr/local/www/interfaces_ppps_edit.php:197
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
+#: usr/local/www/interfaces_ppps_edit.php:517
+#: usr/local/www/vpn_pppoe_edit.php:540
+#: usr/local/www/status_captiveportal.php:148
+#: usr/local/www/interfaces.php:1914 usr/local/www/interfaces.php:1982
+#: usr/local/www/interfaces.php:2091 usr/local/www/diag_authentication.php:107
+#: usr/local/www/vpn_pptp_users.php:99
+#: usr/local/www/vpn_openvpn_client.php:573
+#: usr/local/www/services_dyndns_edit.php:100
+#: usr/local/www/services_dyndns_edit.php:308
+#: usr/local/www/interfaces_ppps_edit.php:194
+#: usr/local/www/interfaces_ppps_edit.php:197
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
+#: usr/local/www/interfaces_ppps_edit.php:517
+#: usr/local/www/vpn_pppoe_edit.php:540 usr/local/www/vpn_l2tp_users.php:102
+#: usr/local/www/status_captiveportal.php:148
+#: usr/local/www/firewall_aliases_edit.php:497
+#: usr/local/www/vpn_l2tp_users_edit.php:79
+#: usr/local/www/vpn_l2tp_users_edit.php:82
+#: usr/local/www/vpn_l2tp_users_edit.php:155
+#: usr/local/www/vpn_pptp_users_edit.php:76
+#: usr/local/www/vpn_pptp_users_edit.php:79
+#: usr/local/www/vpn_pptp_users_edit.php:147
+#: usr/local/www/widgets/widgets/captive_portal_status.widget.php:95
+#: usr/local/www/system_usermanager.php:177
+#: usr/local/www/system_usermanager.php:182
+#: usr/local/www/system_usermanager.php:187
+#: usr/local/www/system_usermanager.php:473
+#: usr/local/www/system_usermanager.php:786 usr/local/www/interfaces.php:1960
+#: usr/local/www/interfaces.php:2028 usr/local/www/interfaces.php:2137
msgid "Username"
msgstr ""
@@ -10395,55 +12678,84 @@ msgstr ""
#: usr/local/www/interfaces.php:1908 usr/local/www/interfaces.php:1973
#: usr/local/www/interfaces.php:2079 usr/local/www/vpn_openvpn_client.php:546
#: usr/local/www/vpn_pppoe_edit.php:538
-#: usr/local/www/services_dyndns_edit.php:97
-#: usr/local/www/services_dyndns_edit.php:305
-#: usr/local/www/system_usermanager.php:183
-#: usr/local/www/system_usermanager.php:188
-#: usr/local/www/system_usermanager.php:480
-#: usr/local/www/interfaces_ppps_edit.php:188
-#: usr/local/www/interfaces_ppps_edit.php:191
-#: usr/local/www/interfaces_ppps_edit.php:199
-#: usr/local/www/interfaces_ppps_edit.php:202
#: usr/local/www/interfaces_ppps_edit.php:517
-#: usr/local/www/system_advanced_notifications.php:201
-#: usr/local/www/system_usermanager_passwordmg.php:50
#: usr/local/www/system_usermanager_passwordmg.php:99
#: usr/local/www/system_usermanager_passwordmg.php:102
#: usr/local/www/diag_authentication.php:113
-#: usr/local/www/vpn_pptp_users_edit.php:79
#: usr/local/www/vpn_pptp_users_edit.php:152 usr/local/www/interfaces.php:1896
#: usr/local/www/interfaces.php:1961 usr/local/www/interfaces.php:2067
#: usr/local/www/vpn_openvpn_client.php:564
#: usr/local/www/vpn_l2tp_users_edit.php:82
#: usr/local/www/vpn_l2tp_users_edit.php:160
+#: usr/local/www/vpn_openvpn_client.php:583
+#: usr/local/www/services_dyndns_edit.php:309
+#: usr/local/www/interfaces_ppps_edit.php:194
+#: usr/local/www/interfaces_ppps_edit.php:197
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
+#: usr/local/www/interfaces_ppps_edit.php:523
+#: usr/local/www/vpn_pppoe_edit.php:541
+#: usr/local/www/system_usermanager_passwordmg.php:104
+#: usr/local/www/system_usermanager_passwordmg.php:107
+#: usr/local/www/interfaces.php:1920 usr/local/www/interfaces.php:1988
+#: usr/local/www/interfaces.php:2097 usr/local/www/diag_authentication.php:113
+#: usr/local/www/vpn_openvpn_client.php:583
+#: usr/local/www/services_dyndns_edit.php:98
+#: usr/local/www/services_dyndns_edit.php:317
+#: usr/local/www/interfaces_ppps_edit.php:194
+#: usr/local/www/interfaces_ppps_edit.php:197
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
+#: usr/local/www/interfaces_ppps_edit.php:523
+#: usr/local/www/vpn_pppoe_edit.php:541
+#: usr/local/www/system_usermanager_passwordmg.php:50
+#: usr/local/www/system_usermanager_passwordmg.php:104
+#: usr/local/www/system_usermanager_passwordmg.php:107
+#: usr/local/www/vpn_l2tp_users_edit.php:82
+#: usr/local/www/vpn_l2tp_users_edit.php:160
+#: usr/local/www/system_advanced_notifications.php:201
+#: usr/local/www/vpn_pptp_users_edit.php:79
+#: usr/local/www/vpn_pptp_users_edit.php:152
+#: usr/local/www/system_usermanager.php:183
+#: usr/local/www/system_usermanager.php:188
+#: usr/local/www/system_usermanager.php:480 usr/local/www/interfaces.php:1966
+#: usr/local/www/interfaces.php:2034 usr/local/www/interfaces.php:2143
msgid "Password"
msgstr ""
#: usr/local/www/diag_authentication.php:120 usr/local/www/diag_smart.php:346
-#: usr/local/www/diag_authentication.php:121 usr/local/www/diag_smart.php:346
+#: usr/local/www/diag_authentication.php:121
+#: usr/local/www/diag_testport.php:179 usr/local/www/diag_smart.php:367
+#: usr/local/www/diag_authentication.php:121
+#: usr/local/www/diag_testport.php:181 usr/local/www/diag_smart.php:367
msgid "Test"
msgstr ""
#: usr/local/www/services_dyndns.php:76 usr/local/www/services_dyndns.php:85
-#: usr/local/www/services_dyndns.php:85
+#: usr/local/www/services_dyndns.php:64 usr/local/www/services_dyndns.php:60
msgid "Dynamic DNS clients"
msgstr ""
#: usr/local/www/services_dyndns.php:89 usr/local/www/services_rfc2136.php:68
-#: usr/local/www/services_dyndns.php:98 usr/local/www/services_rfc2136.php:68
-#: usr/local/www/services_dyndns.php:98
+#: usr/local/www/services_dyndns.php:98 usr/local/www/services_dyndns.php:78
+#: usr/local/www/services_rfc2136.php:68 usr/local/www/services_dyndns.php:74
msgid "DynDns"
msgstr ""
#: usr/local/www/services_dyndns.php:90 usr/local/www/services_rfc2136.php:69
-#: usr/local/www/services_dyndns.php:99 usr/local/www/services_rfc2136.php:69
-#: usr/local/www/services_dyndns.php:99
+#: usr/local/www/services_dyndns.php:99 usr/local/www/services_dyndns.php:79
+#: usr/local/www/services_rfc2136.php:69 usr/local/www/services_dyndns.php:75
msgid "RFC 2136"
msgstr ""
#: usr/local/www/services_dyndns.php:100 usr/local/www/status_services.php:244
#: usr/local/www/services_dyndns.php:109 usr/local/www/status_services.php:240
-#: usr/local/www/services_dyndns.php:109
+#: usr/local/www/status_services.php:238
+#: usr/local/www/widgets/widgets/dyn_dns_status.widget.php:52
+#: usr/local/www/services_dyndns.php:90 usr/local/www/status_services.php:79
+#: usr/local/www/status_openvpn.php:279 usr/local/www/status_openvpn.php:340
+#: usr/local/www/widgets/widgets/dyn_dns_status.widget.php:79
+#: usr/local/www/services_dyndns.php:86
msgid "Service"
msgstr ""
@@ -10469,26 +12781,46 @@ msgstr ""
#: usr/local/www/services_dyndns.php:110 usr/local/www/services_dhcp.php:930
#: usr/local/www/services_dhcp_edit.php:231 usr/local/www/interfaces.php:1690
#: usr/local/www/system.php:114 usr/local/www/system.php:265
-#: usr/local/www/services_dhcpv6.php:900 usr/local/www/services_rfc2136.php:79
-#: usr/local/www/services_dyndns_edit.php:95
-#: usr/local/www/services_dyndns_edit.php:267
+#: usr/local/www/services_dhcpv6.php:900
#: usr/local/www/services_dhcpv6_edit.php:210
#: usr/local/www/services_captiveportal_hostname_edit.php:174
#: usr/local/www/services_captiveportal_hostname_edit.php:178
-#: usr/local/www/diag_ndp.php:131 usr/local/www/diag_arp.php:315
-#: usr/local/www/services_rfc2136_edit.php:71
-#: usr/local/www/services_rfc2136_edit.php:146
#: usr/local/www/services_captiveportal_hostname.php:120
#: usr/local/www/status_dhcp_leases.php:343
-#: usr/local/www/services_dyndns.php:110 usr/local/www/services_dhcp.php:1134
+#: usr/local/www/services_dhcp.php:1134
#: usr/local/www/services_dhcp_edit.php:233 usr/local/www/interfaces.php:1678
#: usr/local/www/system.php:107 usr/local/www/system.php:258
-#: usr/local/www/services_dhcpv6.php:831
+#: usr/local/www/services_dhcpv6.php:831 usr/local/www/services_rfc2136.php:80
+#: usr/local/www/services_dhcpv6_edit.php:213
+#: usr/local/www/services_dyndns_edit.php:271
+#: usr/local/www/services_dhcp_edit.php:361
+#: usr/local/www/services_dhcp.php:1153 usr/local/www/services_dhcpv6.php:852
+#: usr/local/www/widgets/widgets/dyn_dns_status.widget.php:53
+#: usr/local/www/services_dyndns.php:91 usr/local/www/services_rfc2136.php:80
+#: usr/local/www/diag_ndp.php:131 usr/local/www/diag_arp.php:315
+#: usr/local/www/services_dhcpv6_edit.php:213
+#: usr/local/www/services_dyndns_edit.php:96
+#: usr/local/www/services_dyndns_edit.php:273 usr/local/www/system.php:107
+#: usr/local/www/system.php:258
+#: usr/local/www/services_captiveportal_hostname_edit.php:176
+#: usr/local/www/services_captiveportal_hostname_edit.php:180
+#: usr/local/www/services_dhcp_edit.php:361
+#: usr/local/www/services_dhcp.php:1173
+#: usr/local/www/services_captiveportal_hostname.php:120
+#: usr/local/www/services_dhcpv6.php:852
+#: usr/local/www/status_dhcp_leases.php:343
+#: usr/local/www/widgets/widgets/dyn_dns_status.widget.php:80
+#: usr/local/www/services_rfc2136_edit.php:71
+#: usr/local/www/services_rfc2136_edit.php:146
+#: usr/local/www/services_dyndns.php:87 usr/local/www/interfaces.php:1736
msgid "Hostname"
msgstr ""
#: usr/local/www/services_dyndns.php:102 usr/local/www/services_dyndns.php:111
-#: usr/local/www/services_dyndns.php:111
+#: usr/local/www/widgets/widgets/dyn_dns_status.widget.php:54
+#: usr/local/www/services_dyndns.php:92
+#: usr/local/www/widgets/widgets/dyn_dns_status.widget.php:81
+#: usr/local/www/services_dyndns.php:88
msgid "Cached IP"
msgstr ""
@@ -10496,16 +12828,20 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip.php:221
#: usr/local/www/system_advanced_sysctl.php:199
#: usr/local/www/services_captiveportal_zones.php:89
-#: usr/local/www/services_dyndns.php:172 usr/local/www/services_dyndns.php:172
-#: usr/local/www/system_advanced_sysctl.php:199
-#: usr/local/www/services_wol.php:188
+#: usr/local/www/services_dyndns.php:172
#: usr/local/www/services_captiveportal_zones.php:90
#: usr/local/www/firewall_virtual_ip.php:227
+#: usr/local/www/firewall_virtual_ip.php:247
+#: usr/local/www/services_dyndns.php:171 usr/local/www/services_wol.php:188
+#: usr/local/www/firewall_virtual_ip.php:247
+#: usr/local/www/services_captiveportal_zones.php:90
+#: usr/local/www/services_dyndns.php:167
+#: usr/local/www/system_advanced_sysctl.php:199
msgid "Do you really want to delete this entry?"
msgstr ""
#: usr/local/www/services_dyndns.php:162 usr/local/www/services_dyndns.php:183
-#: usr/local/www/services_dyndns.php:183
+#: usr/local/www/services_dyndns.php:179
msgid ""
"IP addresses appearing in green are up to date with Dynamic DNS provider."
msgstr ""
@@ -10515,103 +12851,120 @@ msgid "Cannot get CPU load"
msgstr ""
#: usr/local/www/graph_cpu.php:84 usr/local/www/graph.php:123
-#: usr/local/www/graph_cpu.php:84 usr/local/www/graph.php:123
+#: usr/local/www/graph.php:123 usr/local/www/graph_cpu.php:84
msgid "Collecting initial data, please wait"
msgstr ""
#: usr/local/www/graph_cpu.php:96 usr/local/www/graph.php:135
-#: usr/local/www/graph_cpu.php:96 usr/local/www/graph.php:135
+#: usr/local/www/graph.php:135 usr/local/www/graph_cpu.php:96
msgid "No URL for getURL"
msgstr ""
#: usr/local/www/graph_cpu.php:103 usr/local/www/graph.php:142
-#: usr/local/www/graph_cpu.php:103 usr/local/www/graph.php:142
+#: usr/local/www/graph.php:142 usr/local/www/graph_cpu.php:103
msgid "No callback function for getURL"
msgstr ""
#: usr/local/www/graph_cpu.php:119 usr/local/www/graph.php:158
-#: usr/local/www/graph_cpu.php:119 usr/local/www/graph.php:158
+#: usr/local/www/graph.php:158 usr/local/www/graph_cpu.php:119
msgid "Both getURL and XMLHttpRequest are undefined"
msgstr ""
-#: usr/local/www/services_snmp.php:87 usr/local/www/services_snmp.php:87
+#: usr/local/www/services_snmp.php:87 usr/local/www/services_snmp.php:91
+#: usr/local/www/services_snmp.php:91
msgid "Invalid character '#' in system location"
msgstr ""
-#: usr/local/www/services_snmp.php:88 usr/local/www/services_snmp.php:88
+#: usr/local/www/services_snmp.php:88 usr/local/www/services_snmp.php:92
+#: usr/local/www/services_snmp.php:92
msgid "Invalid character '#' in system contact"
msgstr ""
-#: usr/local/www/services_snmp.php:89 usr/local/www/services_snmp.php:89
+#: usr/local/www/services_snmp.php:89 usr/local/www/services_snmp.php:93
+#: usr/local/www/services_snmp.php:93
msgid "Invalid character '#' in read community string"
msgstr ""
-#: usr/local/www/services_snmp.php:92 usr/local/www/services_snmp.php:92
+#: usr/local/www/services_snmp.php:92 usr/local/www/services_snmp.php:96
+#: usr/local/www/services_snmp.php:96
msgid "Community"
msgstr ""
-#: usr/local/www/services_snmp.php:96 usr/local/www/services_snmp.php:96
+#: usr/local/www/services_snmp.php:96 usr/local/www/services_snmp.php:100
+#: usr/local/www/services_snmp.php:100
msgid "Polling Port"
msgstr ""
-#: usr/local/www/services_snmp.php:103 usr/local/www/services_snmp.php:103
+#: usr/local/www/services_snmp.php:103 usr/local/www/services_snmp.php:107
+#: usr/local/www/services_snmp.php:107
msgid "Invalid character '#' in SNMP trap string"
msgstr ""
#: usr/local/www/services_snmp.php:106 usr/local/www/services_snmp.php:342
-#: usr/local/www/services_snmp.php:340 usr/local/www/services_snmp.php:106
-#: usr/local/www/services_snmp.php:341
+#: usr/local/www/services_snmp.php:340 usr/local/www/services_snmp.php:341
+#: usr/local/www/services_snmp.php:110 usr/local/www/services_snmp.php:351
+#: usr/local/www/services_snmp.php:110 usr/local/www/services_snmp.php:351
msgid "Trap server"
msgstr ""
-#: usr/local/www/services_snmp.php:110 usr/local/www/services_snmp.php:110
+#: usr/local/www/services_snmp.php:110 usr/local/www/services_snmp.php:114
+#: usr/local/www/services_snmp.php:114
msgid "Trap server port"
msgstr ""
#: usr/local/www/services_snmp.php:114 usr/local/www/services_snmp.php:361
-#: usr/local/www/services_snmp.php:359 usr/local/www/services_snmp.php:114
-#: usr/local/www/services_snmp.php:360
+#: usr/local/www/services_snmp.php:359 usr/local/www/services_snmp.php:360
+#: usr/local/www/services_snmp.php:118 usr/local/www/services_snmp.php:370
+#: usr/local/www/services_snmp.php:118 usr/local/www/services_snmp.php:370
msgid "Trap string"
msgstr ""
#: usr/local/www/services_snmp.php:159 usr/local/www/fbegin.inc:134
#: usr/local/www/fbegin.inc:152 usr/local/www/fbegin.inc:160
-#: usr/local/www/services_snmp.php:159
+#: usr/local/www/fbegin.inc:151 usr/local/www/services_snmp.php:165
+#: usr/local/www/fbegin.inc:151 usr/local/www/services_snmp.php:165
msgid "SNMP"
msgstr ""
#: usr/local/www/services_snmp.php:275 usr/local/www/services_snmp.php:273
-#: usr/local/www/services_snmp.php:274
+#: usr/local/www/services_snmp.php:274 usr/local/www/services_snmp.php:284
+#: usr/local/www/services_snmp.php:284
msgid "SNMP Daemon"
msgstr ""
#: usr/local/www/services_snmp.php:281 usr/local/www/services_snmp.php:279
-#: usr/local/www/services_snmp.php:280
+#: usr/local/www/services_snmp.php:280 usr/local/www/services_snmp.php:290
+#: usr/local/www/services_snmp.php:290
msgid "Polling Port "
msgstr ""
#: usr/local/www/services_snmp.php:284 usr/local/www/services_snmp.php:282
-#: usr/local/www/services_snmp.php:283
+#: usr/local/www/services_snmp.php:283 usr/local/www/services_snmp.php:293
+#: usr/local/www/services_snmp.php:293
msgid "Enter the port to accept polling events on (default 161)"
msgstr ""
#: usr/local/www/services_snmp.php:289 usr/local/www/services_snmp.php:287
-#: usr/local/www/services_snmp.php:288
+#: usr/local/www/services_snmp.php:288 usr/local/www/services_snmp.php:298
+#: usr/local/www/services_snmp.php:298
msgid "System location"
msgstr ""
#: usr/local/www/services_snmp.php:296 usr/local/www/services_snmp.php:294
-#: usr/local/www/services_snmp.php:295
+#: usr/local/www/services_snmp.php:295 usr/local/www/services_snmp.php:305
+#: usr/local/www/services_snmp.php:305
msgid "System contact"
msgstr ""
#: usr/local/www/services_snmp.php:303 usr/local/www/services_snmp.php:301
-#: usr/local/www/services_snmp.php:302
+#: usr/local/www/services_snmp.php:302 usr/local/www/services_snmp.php:312
+#: usr/local/www/services_snmp.php:312
msgid "Read Community String"
msgstr ""
#: usr/local/www/services_snmp.php:306 usr/local/www/services_snmp.php:304
-#: usr/local/www/services_snmp.php:305
+#: usr/local/www/services_snmp.php:305 usr/local/www/services_snmp.php:315
+#: usr/local/www/services_snmp.php:315
msgid ""
"The community string is like a password, restricting access to querying SNMP "
"to hosts knowing the community string. Use a strong value here to protect "
@@ -10619,58 +12972,69 @@ msgid ""
msgstr ""
#: usr/local/www/services_snmp.php:335 usr/local/www/services_snmp.php:333
-#: usr/local/www/services_snmp.php:334
+#: usr/local/www/services_snmp.php:334 usr/local/www/services_snmp.php:344
+#: usr/local/www/services_snmp.php:344
msgid "SNMP Traps"
msgstr ""
#: usr/local/www/services_snmp.php:345 usr/local/www/services_snmp.php:343
-#: usr/local/www/services_snmp.php:344
+#: usr/local/www/services_snmp.php:344 usr/local/www/services_snmp.php:354
+#: usr/local/www/services_snmp.php:354
msgid "Enter trap server name"
msgstr ""
#: usr/local/www/services_snmp.php:350 usr/local/www/services_snmp.php:348
-#: usr/local/www/services_snmp.php:349
+#: usr/local/www/services_snmp.php:349 usr/local/www/services_snmp.php:359
+#: usr/local/www/services_snmp.php:359
msgid "Trap server port "
msgstr ""
#: usr/local/www/services_snmp.php:353 usr/local/www/services_snmp.php:351
-#: usr/local/www/services_snmp.php:352
+#: usr/local/www/services_snmp.php:352 usr/local/www/services_snmp.php:362
+#: usr/local/www/services_snmp.php:362
msgid "Enter the port to send the traps to (default 162)"
msgstr ""
#: usr/local/www/services_snmp.php:358 usr/local/www/services_snmp.php:356
-#: usr/local/www/services_snmp.php:357
+#: usr/local/www/services_snmp.php:357 usr/local/www/services_snmp.php:367
+#: usr/local/www/services_snmp.php:367
msgid "Enter the SNMP trap string"
msgstr ""
#: usr/local/www/services_snmp.php:370 usr/local/www/services_snmp.php:368
-#: usr/local/www/services_snmp.php:369
+#: usr/local/www/services_snmp.php:369 usr/local/www/services_snmp.php:379
+#: usr/local/www/services_snmp.php:379
msgid "Modules"
msgstr ""
#: usr/local/www/services_snmp.php:376 usr/local/www/services_snmp.php:374
-#: usr/local/www/services_snmp.php:375
+#: usr/local/www/services_snmp.php:375 usr/local/www/services_snmp.php:385
+#: usr/local/www/services_snmp.php:385
msgid "SNMP Modules"
msgstr ""
#: usr/local/www/services_snmp.php:378 usr/local/www/services_snmp.php:376
-#: usr/local/www/services_snmp.php:377
+#: usr/local/www/services_snmp.php:377 usr/local/www/services_snmp.php:387
+#: usr/local/www/services_snmp.php:387
msgid "MibII"
msgstr ""
#: usr/local/www/services_snmp.php:380 usr/local/www/services_snmp.php:378
-#: usr/local/www/services_snmp.php:379
+#: usr/local/www/services_snmp.php:379 usr/local/www/services_snmp.php:389
+#: usr/local/www/services_snmp.php:389
msgid "Netgraph"
msgstr ""
#: usr/local/www/services_snmp.php:382 usr/local/www/license.php:171
-#: usr/local/www/services_snmp.php:380 usr/local/www/license.php:171
-#: usr/local/www/services_snmp.php:381
+#: usr/local/www/services_snmp.php:380 usr/local/www/services_snmp.php:381
+#: usr/local/www/services_snmp.php:391 usr/local/www/license.php:171
+#: usr/local/www/services_snmp.php:391
msgid "PF"
msgstr ""
#: usr/local/www/services_snmp.php:384 usr/local/www/services_snmp.php:382
-#: usr/local/www/services_snmp.php:383
+#: usr/local/www/services_snmp.php:383 usr/local/www/services_snmp.php:393
+#: usr/local/www/services_snmp.php:393
msgid "Host Resources (Requires MibII)"
msgstr ""
@@ -10686,8 +13050,10 @@ msgstr ""
#: usr/local/www/headjs.php:143 usr/local/www/firewall_rules.php:315
#: usr/local/www/firewall_rules.php:319 usr/local/www/guiconfig.inc:302
-#: usr/local/www/firewall_rules.php:312 usr/local/www/headjs.php:143
-#: usr/local/www/guiconfig.inc:291
+#: usr/local/www/firewall_rules.php:312 usr/local/www/guiconfig.inc:291
+#: usr/local/www/guiconfig.inc:290 usr/local/www/headjs.php:146
+#: usr/local/www/firewall_rules.php:311 usr/local/www/guiconfig.inc:290
+#: usr/local/www/headjs.php:146
msgid "Apply changes"
msgstr ""
@@ -10706,8 +13072,10 @@ msgstr ""
#: usr/local/www/services_wol.php:86 usr/local/www/services_wol_edit.php:90
#: usr/local/www/interfaces.php:541 usr/local/www/services_dhcp_edit.php:129
#: usr/local/www/services_dhcp_edit.php:131 usr/local/www/interfaces.php:611
-#: usr/local/www/services_wol_edit.php:90 usr/local/www/services_wol.php:86
-#: usr/local/www/services_dhcp_edit.php:131 usr/local/www/interfaces.php:608
+#: usr/local/www/interfaces.php:608 usr/local/www/services_dhcp_edit.php:165
+#: usr/local/www/interfaces.php:623 usr/local/www/services_wol.php:86
+#: usr/local/www/services_dhcp_edit.php:165
+#: usr/local/www/services_wol_edit.php:90 usr/local/www/interfaces.php:634
msgid "A valid MAC address must be specified."
msgstr ""
@@ -10735,8 +13103,9 @@ msgstr ""
#: usr/local/www/services_wol_edit.php:112 usr/local/www/diag_backup.php:123
#: usr/local/www/fbegin.inc:142 usr/local/www/fbegin.inc:159
#: usr/local/www/diag_backup.php:201 usr/local/www/fbegin.inc:167
-#: usr/local/www/diag_backup.php:201 usr/local/www/services_wol_edit.php:112
-#: usr/local/www/services_wol.php:115 usr/local/www/services_wol.php:127
+#: usr/local/www/fbegin.inc:158 usr/local/www/services_wol.php:115
+#: usr/local/www/services_wol.php:127 usr/local/www/services_wol_edit.php:112
+#: usr/local/www/diag_backup.php:201 usr/local/www/fbegin.inc:158
msgid "Wake on LAN"
msgstr ""
@@ -10763,16 +13132,32 @@ msgstr ""
#: usr/local/www/services_dhcp_edit.php:108
#: usr/local/www/services_dhcp_edit.php:210 usr/local/www/interfaces.php:1387
#: usr/local/www/status_interfaces.php:255
-#: usr/local/www/services_wol_edit.php:82
-#: usr/local/www/services_wol_edit.php:140 usr/local/www/diag_ndp.php:130
#: usr/local/www/services_captiveportal_mac.php:165
#: usr/local/www/services_captiveportal_mac_edit.php:96
#: usr/local/www/services_captiveportal_mac_edit.php:173
-#: usr/local/www/diag_arp.php:314 usr/local/www/status_captiveportal.php:161
#: usr/local/www/status_dhcp_leases.php:342
-#: usr/local/www/services_dhcp.php:1132 usr/local/www/services_wol.php:144
-#: usr/local/www/services_wol.php:162 usr/local/www/services_dhcp_edit.php:108
+#: usr/local/www/services_dhcp.php:1132
#: usr/local/www/services_dhcp_edit.php:209 usr/local/www/interfaces.php:1375
+#: usr/local/www/services_dhcp_edit.php:142
+#: usr/local/www/services_dhcp_edit.php:337
+#: usr/local/www/services_dhcp.php:1151
+#: usr/local/www/services_captiveportal_mac_edit.php:180
+#: usr/local/www/status_captiveportal.php:147
+#: usr/local/www/services_captiveportal_mac.php:175
+#: usr/local/www/interfaces.php:1388 usr/local/www/diag_ndp.php:130
+#: usr/local/www/diag_arp.php:314 usr/local/www/services_wol.php:144
+#: usr/local/www/services_wol.php:162 usr/local/www/services_dhcp_edit.php:142
+#: usr/local/www/services_dhcp_edit.php:337
+#: usr/local/www/services_wol_edit.php:82
+#: usr/local/www/services_wol_edit.php:140
+#: usr/local/www/status_interfaces.php:255
+#: usr/local/www/services_dhcp.php:1171
+#: usr/local/www/services_captiveportal_mac_edit.php:96
+#: usr/local/www/services_captiveportal_mac_edit.php:180
+#: usr/local/www/status_captiveportal.php:147
+#: usr/local/www/status_dhcp_leases.php:342
+#: usr/local/www/services_captiveportal_mac.php:175
+#: usr/local/www/interfaces.php:1430
msgid "MAC address"
msgstr ""
@@ -10785,7 +13170,8 @@ msgid "in the following format: xx:xx:xx:xx:xx:xx"
msgstr ""
#: usr/local/www/services_wol.php:152 usr/local/www/diag_smart.php:244
-#: usr/local/www/services_wol.php:152 usr/local/www/diag_smart.php:244
+#: usr/local/www/diag_smart.php:265 usr/local/www/services_wol.php:152
+#: usr/local/www/diag_smart.php:265
msgid "Send"
msgstr ""
@@ -10837,9 +13223,17 @@ msgstr ""
#: usr/local/www/status_captiveportal_voucher_rolls.php:73
#: usr/local/www/status_captiveportal_vouchers.php:103
#: usr/local/www/status_captiveportal_vouchers.php:104
-#: usr/local/www/status_captiveportal.php:121
#: usr/local/www/status_captiveportal_test.php:71
#: usr/local/www/status_captiveportal_voucher_rolls.php:74
+#: usr/local/www/status_captiveportal_expire.php:69
+#: usr/local/www/status_captiveportal_vouchers.php:108
+#: usr/local/www/status_captiveportal.php:106
+#: usr/local/www/status_captiveportal_voucher_rolls.php:75
+#: usr/local/www/status_captiveportal_expire.php:69
+#: usr/local/www/status_captiveportal_vouchers.php:108
+#: usr/local/www/status_captiveportal.php:106
+#: usr/local/www/status_captiveportal_test.php:71
+#: usr/local/www/status_captiveportal_voucher_rolls.php:75
msgid "Active Users"
msgstr ""
@@ -10848,9 +13242,17 @@ msgstr ""
#: usr/local/www/status_captiveportal_voucher_rolls.php:74
#: usr/local/www/status_captiveportal_vouchers.php:104
#: usr/local/www/status_captiveportal_vouchers.php:105
-#: usr/local/www/status_captiveportal.php:122
#: usr/local/www/status_captiveportal_test.php:72
#: usr/local/www/status_captiveportal_voucher_rolls.php:75
+#: usr/local/www/status_captiveportal_expire.php:70
+#: usr/local/www/status_captiveportal_vouchers.php:109
+#: usr/local/www/status_captiveportal.php:107
+#: usr/local/www/status_captiveportal_voucher_rolls.php:76
+#: usr/local/www/status_captiveportal_expire.php:70
+#: usr/local/www/status_captiveportal_vouchers.php:109
+#: usr/local/www/status_captiveportal.php:107
+#: usr/local/www/status_captiveportal_test.php:72
+#: usr/local/www/status_captiveportal_voucher_rolls.php:76
msgid "Active Vouchers"
msgstr ""
@@ -10863,10 +13265,20 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:433
#: usr/local/www/status_captiveportal_vouchers.php:106
#: usr/local/www/services_captiveportal_vouchers.php:446
-#: usr/local/www/status_captiveportal.php:123
#: usr/local/www/status_captiveportal_test.php:73
-#: usr/local/www/status_captiveportal_voucher_rolls.php:57
#: usr/local/www/status_captiveportal_voucher_rolls.php:76
+#: usr/local/www/status_captiveportal_expire.php:71
+#: usr/local/www/services_captiveportal_vouchers.php:455
+#: usr/local/www/status_captiveportal_vouchers.php:110
+#: usr/local/www/status_captiveportal.php:108
+#: usr/local/www/status_captiveportal_voucher_rolls.php:77
+#: usr/local/www/status_captiveportal_expire.php:71
+#: usr/local/www/services_captiveportal_vouchers.php:455
+#: usr/local/www/status_captiveportal_vouchers.php:110
+#: usr/local/www/status_captiveportal.php:108
+#: usr/local/www/status_captiveportal_test.php:73
+#: usr/local/www/status_captiveportal_voucher_rolls.php:57
+#: usr/local/www/status_captiveportal_voucher_rolls.php:77
msgid "Voucher Rolls"
msgstr ""
@@ -10876,41 +13288,57 @@ msgstr ""
#: usr/local/www/status_captiveportal_voucher_rolls.php:76
#: usr/local/www/status_captiveportal_vouchers.php:106
#: usr/local/www/status_captiveportal_vouchers.php:107
-#: usr/local/www/status_captiveportal.php:124
-#: usr/local/www/status_captiveportal_test.php:58
#: usr/local/www/status_captiveportal_test.php:74
#: usr/local/www/status_captiveportal_voucher_rolls.php:77
+#: usr/local/www/status_captiveportal_expire.php:72
+#: usr/local/www/status_captiveportal_vouchers.php:111
+#: usr/local/www/status_captiveportal.php:109
+#: usr/local/www/status_captiveportal_voucher_rolls.php:78
+#: usr/local/www/status_captiveportal_expire.php:72
+#: usr/local/www/status_captiveportal_vouchers.php:111
+#: usr/local/www/status_captiveportal.php:109
+#: usr/local/www/status_captiveportal_test.php:58
+#: usr/local/www/status_captiveportal_test.php:74
+#: usr/local/www/status_captiveportal_voucher_rolls.php:78
msgid "Test Vouchers"
msgstr ""
#: usr/local/www/status_captiveportal.php:135
-#: usr/local/www/status_captiveportal.php:135
+#: usr/local/www/status_captiveportal.php:121
+#: usr/local/www/status_captiveportal.php:121
msgid "Captive Portal Zone"
msgstr ""
#: usr/local/www/status_captiveportal.php:157
-#: usr/local/www/status_captiveportal.php:157
+#: usr/local/www/status_captiveportal.php:143
+#: usr/local/www/status_captiveportal.php:143
msgid "Captiveportal status"
msgstr ""
#: usr/local/www/status_captiveportal.php:164
#: usr/local/www/status_captiveportal.php:167
#: usr/local/www/widgets/widgets/captive_portal_status.widget.php:97
-#: usr/local/www/status_captiveportal.php:164
-#: usr/local/www/status_captiveportal.php:167
#: usr/local/www/widgets/widgets/captive_portal_status.widget.php:99
+#: usr/local/www/status_captiveportal.php:150
+#: usr/local/www/status_captiveportal.php:153
+#: usr/local/www/status_captiveportal.php:150
+#: usr/local/www/status_captiveportal.php:153
+#: usr/local/www/widgets/widgets/captive_portal_status.widget.php:97
msgid "Session start"
msgstr ""
#: usr/local/www/status_captiveportal.php:165
#: usr/local/www/widgets/widgets/captive_portal_status.widget.php:98
-#: usr/local/www/status_captiveportal.php:165
#: usr/local/www/widgets/widgets/captive_portal_status.widget.php:100
+#: usr/local/www/status_captiveportal.php:151
+#: usr/local/www/status_captiveportal.php:151
+#: usr/local/www/widgets/widgets/captive_portal_status.widget.php:98
msgid "Last activity"
msgstr ""
#: usr/local/www/status_captiveportal.php:181
-#: usr/local/www/status_captiveportal.php:181
+#: usr/local/www/status_captiveportal.php:168
+#: usr/local/www/status_captiveportal.php:168
msgid "Do you really want to disconnect this client?"
msgstr ""
@@ -10927,17 +13355,24 @@ msgstr ""
#: usr/local/www/status_interfaces.php:150
#: usr/local/www/status_interfaces.php:165
#: usr/local/www/status_interfaces.php:180
-#: usr/local/www/status_captiveportal.php:181
+#: usr/local/www/status_captiveportal.php:168
+#: usr/local/www/status_interfaces.php:135
+#: usr/local/www/status_interfaces.php:150
+#: usr/local/www/status_interfaces.php:165
+#: usr/local/www/status_interfaces.php:180
+#: usr/local/www/status_captiveportal.php:168
msgid "Disconnect"
msgstr ""
#: usr/local/www/status_captiveportal.php:198
-#: usr/local/www/status_captiveportal.php:198
+#: usr/local/www/status_captiveportal.php:185
+#: usr/local/www/status_captiveportal.php:185
msgid "Don't show last activity"
msgstr ""
#: usr/local/www/status_captiveportal.php:201
-#: usr/local/www/status_captiveportal.php:201
+#: usr/local/www/status_captiveportal.php:188
+#: usr/local/www/status_captiveportal.php:188
msgid "Show last activity"
msgstr ""
@@ -10969,7 +13404,8 @@ msgid "ERROR: Could not find any suitable disks for installation."
msgstr ""
#: usr/local/www/interfaces_bridge.php:64
-#: usr/local/www/interfaces_bridge.php:64
+#: usr/local/www/interfaces_bridge.php:68
+#: usr/local/www/interfaces_bridge.php:68
msgid "This bridge cannot be deleted because it is assigned as an interface."
msgstr ""
@@ -11000,37 +13436,56 @@ msgstr ""
#: usr/local/www/diag_backup.php:186
#: usr/local/www/services_captiveportal.php:443
#: usr/local/www/interfaces_bridge_edit.php:235
-#: usr/local/www/interfaces.php:1113
-#: usr/local/www/interfaces_vlan_edit.php:139 usr/local/www/fbegin.inc:188
+#: usr/local/www/interfaces.php:1113 usr/local/www/fbegin.inc:188
#: usr/local/www/fbegin.inc:291 usr/local/www/status_interfaces.php:60
-#: usr/local/www/interfaces_groups.php:63
-#: usr/local/www/interfaces_qinq_edit.php:39
-#: usr/local/www/interfaces_gif_edit.php:125 usr/local/www/diag_backup.php:186
-#: usr/local/www/interfaces_qinq.php:86 usr/local/www/interfaces_bridge.php:77
-#: usr/local/www/interfaces_ppps_edit.php:378
-#: usr/local/www/interfaces_lagg.php:82
-#: usr/local/www/interfaces_lagg_edit.php:120
-#: usr/local/www/interfaces_gre.php:77
-#: usr/local/www/interfaces_wireless.php:76
#: usr/local/www/services_captiveportal.php:441
-#: usr/local/www/interfaces_assign.php:43
#: usr/local/www/diag_logs_filter_summary.php:47
-#: usr/local/www/interfaces_bridge_edit.php:235
-#: usr/local/www/interfaces_groups_edit.php:44
-#: usr/local/www/interfaces_vlan.php:78
-#: usr/local/www/interfaces_wireless_edit.php:145
#: usr/local/www/interfaces.php:1101
#: usr/local/www/services_captiveportal_zones.php:54
-#: usr/local/www/interfaces_gif.php:76
+#: usr/local/www/interfaces_wireless_edit.php:147
+#: usr/local/www/interfaces_qinq.php:89
+#: usr/local/www/interfaces_vlan_edit.php:142
+#: usr/local/www/interfaces_ppps_edit.php:384
+#: usr/local/www/interfaces_lagg_edit.php:133
+#: usr/local/www/interfaces_lagg.php:86 usr/local/www/interfaces_vlan.php:84
+#: usr/local/www/interfaces_gif_edit.php:133
+#: usr/local/www/interfaces_bridge.php:83
+#: usr/local/www/interfaces_wireless.php:78
+#: usr/local/www/interfaces_bridge_edit.php:236 usr/local/www/fbegin.inc:179
+#: usr/local/www/fbegin.inc:283 usr/local/www/interfaces_gre.php:81
+#: usr/local/www/interfaces_gif.php:80 usr/local/www/interfaces.php:1115
+#: usr/local/www/interfaces_wireless_edit.php:147
#: usr/local/www/interfaces_gre_edit.php:127
+#: usr/local/www/interfaces_qinq.php:89
+#: usr/local/www/interfaces_vlan_edit.php:142
+#: usr/local/www/interfaces_ppps_edit.php:384
+#: usr/local/www/interfaces_lagg_edit.php:133
+#: usr/local/www/interfaces_lagg.php:86 usr/local/www/interfaces_vlan.php:84
+#: usr/local/www/interfaces_gif_edit.php:133
+#: usr/local/www/interfaces_bridge.php:83
+#: usr/local/www/interfaces_wireless.php:78
+#: usr/local/www/status_interfaces.php:60
+#: usr/local/www/interfaces_groups.php:63
+#: usr/local/www/interfaces_groups_edit.php:44
+#: usr/local/www/services_captiveportal_zones.php:54
+#: usr/local/www/services_captiveportal.php:459
+#: usr/local/www/diag_backup.php:186
+#: usr/local/www/interfaces_bridge_edit.php:236 usr/local/www/fbegin.inc:179
+#: usr/local/www/fbegin.inc:283 usr/local/www/interfaces_gre.php:81
+#: usr/local/www/interfaces_gif.php:80 usr/local/www/interfaces_assign.php:43
+#: usr/local/www/interfaces_qinq_edit.php:39
+#: usr/local/www/diag_logs_filter_summary.php:47
+#: usr/local/www/interfaces.php:1157
msgid "Interfaces"
msgstr ""
#: usr/local/www/interfaces_bridge.php:77
#: usr/local/www/interfaces_bridge_edit.php:226
#: usr/local/www/interfaces_bridge_edit.php:235
-#: usr/local/www/interfaces_bridge.php:77
-#: usr/local/www/interfaces_bridge_edit.php:235
+#: usr/local/www/interfaces_bridge.php:83
+#: usr/local/www/interfaces_bridge_edit.php:236
+#: usr/local/www/interfaces_bridge.php:83
+#: usr/local/www/interfaces_bridge_edit.php:236
msgid "Bridge"
msgstr ""
@@ -11046,6 +13501,16 @@ msgstr ""
#: usr/local/www/interfaces_wireless.php:89
#: usr/local/www/interfaces_assign.php:396
#: usr/local/www/interfaces_vlan.php:91 usr/local/www/interfaces_gif.php:89
+#: usr/local/www/interfaces_qinq.php:102 usr/local/www/interfaces_lagg.php:99
+#: usr/local/www/interfaces_vlan.php:97 usr/local/www/interfaces_bridge.php:96
+#: usr/local/www/interfaces_wireless.php:91
+#: usr/local/www/interfaces_gre.php:94 usr/local/www/interfaces_gif.php:93
+#: usr/local/www/interfaces_qinq.php:102 usr/local/www/interfaces_lagg.php:99
+#: usr/local/www/interfaces_vlan.php:97 usr/local/www/interfaces_bridge.php:96
+#: usr/local/www/interfaces_wireless.php:91
+#: usr/local/www/interfaces_groups.php:76 usr/local/www/interfaces_ppps.php:91
+#: usr/local/www/interfaces_gre.php:94 usr/local/www/interfaces_gif.php:93
+#: usr/local/www/interfaces_assign.php:402
msgid "Interface assignments"
msgstr ""
@@ -11062,6 +13527,16 @@ msgstr ""
#: usr/local/www/interfaces_wireless.php:90
#: usr/local/www/interfaces_assign.php:397
#: usr/local/www/interfaces_vlan.php:92 usr/local/www/interfaces_gif.php:90
+#: usr/local/www/interfaces_qinq.php:103 usr/local/www/interfaces_lagg.php:100
+#: usr/local/www/interfaces_vlan.php:98 usr/local/www/interfaces_bridge.php:97
+#: usr/local/www/interfaces_wireless.php:92
+#: usr/local/www/interfaces_gre.php:95 usr/local/www/interfaces_gif.php:94
+#: usr/local/www/interfaces_qinq.php:103 usr/local/www/interfaces_lagg.php:100
+#: usr/local/www/interfaces_vlan.php:98 usr/local/www/interfaces_bridge.php:97
+#: usr/local/www/interfaces_wireless.php:92
+#: usr/local/www/interfaces_groups.php:77 usr/local/www/interfaces_ppps.php:92
+#: usr/local/www/interfaces_gre.php:95 usr/local/www/interfaces_gif.php:94
+#: usr/local/www/interfaces_assign.php:403
msgid "Interface Groups"
msgstr ""
@@ -11078,6 +13553,18 @@ msgstr ""
#: usr/local/www/interfaces_wireless.php:92
#: usr/local/www/interfaces_assign.php:399
#: usr/local/www/interfaces_vlan.php:94 usr/local/www/interfaces_gif.php:92
+#: usr/local/www/interfaces_qinq.php:105 usr/local/www/interfaces_lagg.php:102
+#: usr/local/www/interfaces_vlan.php:100
+#: usr/local/www/interfaces_bridge.php:99
+#: usr/local/www/interfaces_wireless.php:94
+#: usr/local/www/interfaces_gre.php:97 usr/local/www/interfaces_gif.php:96
+#: usr/local/www/interfaces_qinq.php:105 usr/local/www/interfaces_lagg.php:102
+#: usr/local/www/interfaces_vlan.php:100
+#: usr/local/www/interfaces_bridge.php:99
+#: usr/local/www/interfaces_wireless.php:94
+#: usr/local/www/interfaces_groups.php:79 usr/local/www/interfaces_ppps.php:94
+#: usr/local/www/interfaces_gre.php:97 usr/local/www/interfaces_gif.php:96
+#: usr/local/www/interfaces_assign.php:405
msgid "VLANs"
msgstr ""
@@ -11094,6 +13581,18 @@ msgstr ""
#: usr/local/www/interfaces_wireless.php:93
#: usr/local/www/interfaces_assign.php:400
#: usr/local/www/interfaces_vlan.php:95 usr/local/www/interfaces_gif.php:93
+#: usr/local/www/interfaces_qinq.php:106 usr/local/www/interfaces_lagg.php:103
+#: usr/local/www/interfaces_vlan.php:101
+#: usr/local/www/interfaces_bridge.php:100
+#: usr/local/www/interfaces_wireless.php:95
+#: usr/local/www/interfaces_gre.php:98 usr/local/www/interfaces_gif.php:97
+#: usr/local/www/interfaces_qinq.php:106 usr/local/www/interfaces_lagg.php:103
+#: usr/local/www/interfaces_vlan.php:101
+#: usr/local/www/interfaces_bridge.php:100
+#: usr/local/www/interfaces_wireless.php:95
+#: usr/local/www/interfaces_groups.php:80 usr/local/www/interfaces_ppps.php:95
+#: usr/local/www/interfaces_gre.php:98 usr/local/www/interfaces_gif.php:97
+#: usr/local/www/interfaces_assign.php:406
msgid "QinQs"
msgstr ""
@@ -11108,11 +13607,24 @@ msgstr ""
#: usr/local/www/interfaces_groups.php:81
#: usr/local/www/interfaces_qinq.php:104 usr/local/www/interfaces_ppps.php:96
#: usr/local/www/interfaces_bridge.php:95
-#: usr/local/www/interfaces_ppps_edit.php:378
#: usr/local/www/interfaces_lagg.php:100 usr/local/www/interfaces_gre.php:95
#: usr/local/www/interfaces_wireless.php:94
#: usr/local/www/interfaces_assign.php:401
#: usr/local/www/interfaces_vlan.php:96 usr/local/www/interfaces_gif.php:94
+#: usr/local/www/interfaces_qinq.php:107
+#: usr/local/www/interfaces_ppps_edit.php:384
+#: usr/local/www/interfaces_lagg.php:104 usr/local/www/interfaces_vlan.php:102
+#: usr/local/www/interfaces_bridge.php:101
+#: usr/local/www/interfaces_wireless.php:96
+#: usr/local/www/interfaces_gre.php:99 usr/local/www/interfaces_gif.php:98
+#: usr/local/www/interfaces_qinq.php:107
+#: usr/local/www/interfaces_ppps_edit.php:384
+#: usr/local/www/interfaces_lagg.php:104 usr/local/www/interfaces_vlan.php:102
+#: usr/local/www/interfaces_bridge.php:101
+#: usr/local/www/interfaces_wireless.php:96
+#: usr/local/www/interfaces_groups.php:81 usr/local/www/interfaces_ppps.php:96
+#: usr/local/www/interfaces_gre.php:99 usr/local/www/interfaces_gif.php:98
+#: usr/local/www/interfaces_assign.php:407
msgid "PPPs"
msgstr ""
@@ -11127,12 +13639,24 @@ msgstr ""
#: usr/local/www/interfaces_groups.php:82
#: usr/local/www/interfaces_qinq.php:105 usr/local/www/interfaces_ppps.php:97
#: usr/local/www/interfaces_bridge.php:96
-#: usr/local/www/interfaces_lagg.php:101 usr/local/www/interfaces_gre.php:77
-#: usr/local/www/interfaces_gre.php:96
+#: usr/local/www/interfaces_lagg.php:101 usr/local/www/interfaces_gre.php:96
#: usr/local/www/interfaces_wireless.php:95
#: usr/local/www/interfaces_assign.php:402
#: usr/local/www/interfaces_vlan.php:97 usr/local/www/interfaces_gif.php:95
+#: usr/local/www/interfaces_qinq.php:108 usr/local/www/interfaces_lagg.php:105
+#: usr/local/www/interfaces_vlan.php:103
+#: usr/local/www/interfaces_bridge.php:102
+#: usr/local/www/interfaces_wireless.php:97
+#: usr/local/www/interfaces_gre.php:81 usr/local/www/interfaces_gre.php:100
+#: usr/local/www/interfaces_gif.php:99
#: usr/local/www/interfaces_gre_edit.php:127
+#: usr/local/www/interfaces_qinq.php:108 usr/local/www/interfaces_lagg.php:105
+#: usr/local/www/interfaces_vlan.php:103
+#: usr/local/www/interfaces_bridge.php:102
+#: usr/local/www/interfaces_wireless.php:97
+#: usr/local/www/interfaces_groups.php:82 usr/local/www/interfaces_ppps.php:97
+#: usr/local/www/interfaces_gre.php:81 usr/local/www/interfaces_gre.php:100
+#: usr/local/www/interfaces_gif.php:99 usr/local/www/interfaces_assign.php:408
msgid "GRE"
msgstr ""
@@ -11145,14 +13669,27 @@ msgstr ""
#: usr/local/www/interfaces_ppps.php:97 usr/local/www/interfaces_qinq.php:105
#: usr/local/www/interfaces_wireless.php:95
#: usr/local/www/interfaces_groups.php:83
-#: usr/local/www/interfaces_gif_edit.php:125
#: usr/local/www/interfaces_qinq.php:106 usr/local/www/interfaces_ppps.php:98
#: usr/local/www/interfaces_bridge.php:97
#: usr/local/www/interfaces_lagg.php:102 usr/local/www/interfaces_gre.php:97
#: usr/local/www/interfaces_wireless.php:96
#: usr/local/www/interfaces_assign.php:403
-#: usr/local/www/interfaces_vlan.php:98 usr/local/www/interfaces_gif.php:76
-#: usr/local/www/interfaces_gif.php:96
+#: usr/local/www/interfaces_vlan.php:98 usr/local/www/interfaces_gif.php:96
+#: usr/local/www/interfaces_qinq.php:109 usr/local/www/interfaces_lagg.php:106
+#: usr/local/www/interfaces_vlan.php:104
+#: usr/local/www/interfaces_gif_edit.php:133
+#: usr/local/www/interfaces_bridge.php:103
+#: usr/local/www/interfaces_wireless.php:98
+#: usr/local/www/interfaces_gre.php:101 usr/local/www/interfaces_gif.php:80
+#: usr/local/www/interfaces_gif.php:100 usr/local/www/interfaces_qinq.php:109
+#: usr/local/www/interfaces_lagg.php:106 usr/local/www/interfaces_vlan.php:104
+#: usr/local/www/interfaces_gif_edit.php:133
+#: usr/local/www/interfaces_bridge.php:103
+#: usr/local/www/interfaces_wireless.php:98
+#: usr/local/www/interfaces_groups.php:83 usr/local/www/interfaces_ppps.php:98
+#: usr/local/www/interfaces_gre.php:101 usr/local/www/interfaces_gif.php:80
+#: usr/local/www/interfaces_gif.php:100
+#: usr/local/www/interfaces_assign.php:409
msgid "GIF"
msgstr ""
@@ -11169,6 +13706,18 @@ msgstr ""
#: usr/local/www/interfaces_wireless.php:97
#: usr/local/www/interfaces_assign.php:404
#: usr/local/www/interfaces_vlan.php:99 usr/local/www/interfaces_gif.php:97
+#: usr/local/www/interfaces_qinq.php:110 usr/local/www/interfaces_lagg.php:107
+#: usr/local/www/interfaces_vlan.php:105
+#: usr/local/www/interfaces_bridge.php:104
+#: usr/local/www/interfaces_wireless.php:99
+#: usr/local/www/interfaces_gre.php:102 usr/local/www/interfaces_gif.php:101
+#: usr/local/www/interfaces_qinq.php:110 usr/local/www/interfaces_lagg.php:107
+#: usr/local/www/interfaces_vlan.php:105
+#: usr/local/www/interfaces_bridge.php:104
+#: usr/local/www/interfaces_wireless.php:99
+#: usr/local/www/interfaces_groups.php:84 usr/local/www/interfaces_ppps.php:99
+#: usr/local/www/interfaces_gre.php:102 usr/local/www/interfaces_gif.php:101
+#: usr/local/www/interfaces_assign.php:410
msgid "Bridges"
msgstr ""
@@ -11182,13 +13731,28 @@ msgstr ""
#: usr/local/www/interfaces_wireless.php:97
#: usr/local/www/interfaces_groups.php:85
#: usr/local/www/interfaces_qinq.php:108 usr/local/www/interfaces_ppps.php:100
-#: usr/local/www/interfaces_bridge.php:99 usr/local/www/interfaces_lagg.php:82
-#: usr/local/www/interfaces_lagg.php:104
-#: usr/local/www/interfaces_lagg_edit.php:120
-#: usr/local/www/interfaces_gre.php:99
+#: usr/local/www/interfaces_bridge.php:99
+#: usr/local/www/interfaces_lagg.php:104 usr/local/www/interfaces_gre.php:99
#: usr/local/www/interfaces_wireless.php:98
#: usr/local/www/interfaces_assign.php:405
#: usr/local/www/interfaces_vlan.php:100 usr/local/www/interfaces_gif.php:98
+#: usr/local/www/interfaces_qinq.php:111
+#: usr/local/www/interfaces_lagg_edit.php:133
+#: usr/local/www/interfaces_lagg.php:86 usr/local/www/interfaces_lagg.php:108
+#: usr/local/www/interfaces_vlan.php:106
+#: usr/local/www/interfaces_bridge.php:105
+#: usr/local/www/interfaces_wireless.php:100
+#: usr/local/www/interfaces_gre.php:103 usr/local/www/interfaces_gif.php:102
+#: usr/local/www/interfaces_qinq.php:111
+#: usr/local/www/interfaces_lagg_edit.php:133
+#: usr/local/www/interfaces_lagg.php:86 usr/local/www/interfaces_lagg.php:108
+#: usr/local/www/interfaces_vlan.php:106
+#: usr/local/www/interfaces_bridge.php:105
+#: usr/local/www/interfaces_wireless.php:100
+#: usr/local/www/interfaces_groups.php:85
+#: usr/local/www/interfaces_ppps.php:100 usr/local/www/interfaces_gre.php:103
+#: usr/local/www/interfaces_gif.php:102
+#: usr/local/www/interfaces_assign.php:411
msgid "LAGG"
msgstr ""
@@ -11198,21 +13762,31 @@ msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:257
#: usr/local/www/system_groupmanager.php:317
#: usr/local/www/load_balancer_pool_edit.php:274
-#: usr/local/www/system_groupmanager.php:317
#: usr/local/www/interfaces_groups.php:96
#: usr/local/www/interfaces_bridge.php:109
#: usr/local/www/interfaces_lagg.php:114
#: usr/local/www/load_balancer_pool_edit.php:272
+#: usr/local/www/interfaces_lagg.php:118
+#: usr/local/www/interfaces_bridge.php:115
+#: usr/local/www/system_groupmanager.php:317
+#: usr/local/www/interfaces_lagg.php:118
+#: usr/local/www/interfaces_bridge.php:115
+#: usr/local/www/interfaces_groups.php:96
+#: usr/local/www/load_balancer_pool_edit.php:272
msgid "Members"
msgstr ""
#: usr/local/www/interfaces_bridge.php:135
#: usr/local/www/interfaces_bridge.php:136
+#: usr/local/www/interfaces_bridge.php:142
+#: usr/local/www/interfaces_bridge.php:142
msgid "Do you really want to delete this bridge?"
msgstr ""
#: usr/local/www/interfaces_bridge.php:146
#: usr/local/www/interfaces_bridge.php:147
+#: usr/local/www/interfaces_bridge.php:153
+#: usr/local/www/interfaces_bridge.php:153
msgid "Here you can configure bridging of interfaces."
msgstr ""
@@ -11285,13 +13859,15 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:147
#: usr/local/www/interfaces_bridge_edit.php:155
-#: usr/local/www/interfaces_bridge_edit.php:155
+#: usr/local/www/interfaces_bridge_edit.php:157
+#: usr/local/www/interfaces_bridge_edit.php:157
msgid "Bridging a wireless interface is only possible in hostap mode."
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:149
#: usr/local/www/interfaces_bridge_edit.php:157
-#: usr/local/www/interfaces_bridge_edit.php:157
+#: usr/local/www/interfaces_bridge_edit.php:159
+#: usr/local/www/interfaces_bridge_edit.php:159
msgid ""
"Span interface cannot be part of the bridge. Remove the span interface from "
"bridge members to continue."
@@ -11303,61 +13879,82 @@ msgstr ""
#: usr/local/www/interfaces_vlan_edit.php:121
#: usr/local/www/interfaces_lagg_edit.php:101
#: usr/local/www/interfaces_bridge_edit.php:215
-#: usr/local/www/interfaces_vlan_edit.php:121
-#: usr/local/www/interfaces_gif_edit.php:106
-#: usr/local/www/interfaces_lagg_edit.php:101
-#: usr/local/www/interfaces_bridge_edit.php:215
+#: usr/local/www/interfaces_vlan_edit.php:124
+#: usr/local/www/interfaces_lagg_edit.php:114
+#: usr/local/www/interfaces_gif_edit.php:114
+#: usr/local/www/interfaces_bridge_edit.php:217
#: usr/local/www/interfaces_gre_edit.php:108
+#: usr/local/www/interfaces_vlan_edit.php:124
+#: usr/local/www/interfaces_lagg_edit.php:114
+#: usr/local/www/interfaces_gif_edit.php:114
+#: usr/local/www/interfaces_bridge_edit.php:217
msgid "Error occured creating interface, please retry."
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:253
#: usr/local/www/interfaces_bridge_edit.php:262
#: usr/local/www/interfaces_bridge_edit.php:263
+#: usr/local/www/interfaces_bridge_edit.php:264
+#: usr/local/www/interfaces_bridge_edit.php:264
msgid "Bridge configuration"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:256
#: usr/local/www/interfaces_lagg_edit.php:86
#: usr/local/www/interfaces_bridge_edit.php:265
-#: usr/local/www/interfaces_lagg_edit.php:86
#: usr/local/www/interfaces_bridge_edit.php:266
+#: usr/local/www/interfaces_lagg_edit.php:88
+#: usr/local/www/interfaces_bridge_edit.php:267
+#: usr/local/www/interfaces_lagg_edit.php:88
+#: usr/local/www/interfaces_bridge_edit.php:267
msgid "Member interfaces"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:269
#: usr/local/www/interfaces_bridge_edit.php:278
#: usr/local/www/interfaces_bridge_edit.php:279
+#: usr/local/www/interfaces_bridge_edit.php:280
+#: usr/local/www/interfaces_bridge_edit.php:280
msgid "Interfaces participating in the bridge."
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:285
#: usr/local/www/interfaces_bridge_edit.php:294
#: usr/local/www/interfaces_bridge_edit.php:295
+#: usr/local/www/interfaces_bridge_edit.php:296
+#: usr/local/www/interfaces_bridge_edit.php:296
msgid "RSTP/STP"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:288
#: usr/local/www/interfaces_bridge_edit.php:297
#: usr/local/www/interfaces_bridge_edit.php:298
+#: usr/local/www/interfaces_bridge_edit.php:299
+#: usr/local/www/interfaces_bridge_edit.php:299
msgid "Enable spanning tree options for this bridge."
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:304
#: usr/local/www/interfaces_bridge_edit.php:313
#: usr/local/www/interfaces_bridge_edit.php:314
+#: usr/local/www/interfaces_bridge_edit.php:315
+#: usr/local/www/interfaces_bridge_edit.php:315
msgid "Protocol used for spanning tree."
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:306
#: usr/local/www/interfaces_bridge_edit.php:315
#: usr/local/www/interfaces_bridge_edit.php:316
+#: usr/local/www/interfaces_bridge_edit.php:317
+#: usr/local/www/interfaces_bridge_edit.php:317
msgid "STP interfaces"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:320
#: usr/local/www/interfaces_bridge_edit.php:329
#: usr/local/www/interfaces_bridge_edit.php:330
+#: usr/local/www/interfaces_bridge_edit.php:331
+#: usr/local/www/interfaces_bridge_edit.php:331
msgid ""
"Enable Spanning Tree Protocol on interface. The if_bridge(4) driver has "
"support for the IEEE 802.1D Spanning Tree Protocol (STP). STP is used to "
@@ -11367,6 +13964,8 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:326
#: usr/local/www/interfaces_bridge_edit.php:335
#: usr/local/www/interfaces_bridge_edit.php:336
+#: usr/local/www/interfaces_bridge_edit.php:337
+#: usr/local/www/interfaces_bridge_edit.php:337
msgid "Valid time"
msgstr ""
@@ -11390,22 +13989,46 @@ msgstr ""
#: usr/local/www/interfaces.php:2114 usr/local/www/vpn_ipsec_phase1.php:774
#: usr/local/www/vpn_ipsec_phase1.php:844
#: usr/local/www/services_dhcpv6.php:692 usr/local/www/services_dhcpv6.php:702
-#: usr/local/www/services_rfc2136_edit.php:156
#: usr/local/www/services_dhcp.php:868 usr/local/www/services_dhcp.php:878
-#: usr/local/www/interfaces_bridge_edit.php:338
#: usr/local/www/interfaces_bridge_edit.php:348
#: usr/local/www/interfaces_bridge_edit.php:357
-#: usr/local/www/interfaces_bridge_edit.php:426 usr/local/www/graph.php:120
+#: usr/local/www/interfaces_bridge_edit.php:426
#: usr/local/www/vpn_ipsec_phase2.php:744 usr/local/www/interfaces.php:1983
#: usr/local/www/interfaces.php:2102 usr/local/www/vpn_ipsec_phase1.php:771
#: usr/local/www/vpn_ipsec_phase1.php:841
#: usr/local/www/services_dhcpv6.php:623 usr/local/www/services_dhcpv6.php:633
+#: usr/local/www/services_dhcp_edit.php:434
+#: usr/local/www/services_dhcp_edit.php:444
+#: usr/local/www/services_dhcp.php:882 usr/local/www/services_dhcp.php:892
+#: usr/local/www/services_dhcpv6.php:640 usr/local/www/services_dhcpv6.php:650
+#: usr/local/www/interfaces_bridge_edit.php:339
+#: usr/local/www/interfaces_bridge_edit.php:349
+#: usr/local/www/interfaces_bridge_edit.php:358
+#: usr/local/www/interfaces_bridge_edit.php:427
+#: usr/local/www/vpn_ipsec_phase1.php:792
+#: usr/local/www/vpn_ipsec_phase1.php:862
+#: usr/local/www/vpn_ipsec_phase2.php:765 usr/local/www/interfaces.php:2010
+#: usr/local/www/interfaces.php:2132 usr/local/www/services_dhcp_edit.php:434
+#: usr/local/www/services_dhcp_edit.php:444
+#: usr/local/www/services_dhcp.php:902 usr/local/www/services_dhcp.php:912
+#: usr/local/www/services_dhcpv6.php:640 usr/local/www/services_dhcpv6.php:650
+#: usr/local/www/graph.php:120 usr/local/www/interfaces_bridge_edit.php:339
+#: usr/local/www/interfaces_bridge_edit.php:349
+#: usr/local/www/interfaces_bridge_edit.php:358
+#: usr/local/www/interfaces_bridge_edit.php:427
+#: usr/local/www/services_rfc2136_edit.php:156
+#: usr/local/www/vpn_ipsec_phase1.php:792
+#: usr/local/www/vpn_ipsec_phase1.php:862
+#: usr/local/www/vpn_ipsec_phase2.php:765 usr/local/www/interfaces.php:2056
+#: usr/local/www/interfaces.php:2178
msgid "seconds"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:331
#: usr/local/www/interfaces_bridge_edit.php:340
#: usr/local/www/interfaces_bridge_edit.php:341
+#: usr/local/www/interfaces_bridge_edit.php:342
+#: usr/local/www/interfaces_bridge_edit.php:342
msgid ""
"Set the time that a Spanning Tree Protocol configuration is valid. The "
"default is 20 seconds. The minimum is 6 seconds and the maximum is 40 "
@@ -11415,12 +14038,16 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:336
#: usr/local/www/interfaces_bridge_edit.php:345
#: usr/local/www/interfaces_bridge_edit.php:346
+#: usr/local/www/interfaces_bridge_edit.php:347
+#: usr/local/www/interfaces_bridge_edit.php:347
msgid "Forward time"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:341
#: usr/local/www/interfaces_bridge_edit.php:350
#: usr/local/www/interfaces_bridge_edit.php:351
+#: usr/local/www/interfaces_bridge_edit.php:352
+#: usr/local/www/interfaces_bridge_edit.php:352
msgid ""
"Set the time that must pass before an interface begins forwarding packets "
"when Spanning Tree is enabled. The default is 15 seconds. The minimum is 4 "
@@ -11430,12 +14057,16 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:345
#: usr/local/www/interfaces_bridge_edit.php:354
#: usr/local/www/interfaces_bridge_edit.php:355
+#: usr/local/www/interfaces_bridge_edit.php:356
+#: usr/local/www/interfaces_bridge_edit.php:356
msgid "Hello time"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:350
#: usr/local/www/interfaces_bridge_edit.php:359
#: usr/local/www/interfaces_bridge_edit.php:360
+#: usr/local/www/interfaces_bridge_edit.php:361
+#: usr/local/www/interfaces_bridge_edit.php:361
msgid ""
"Set the time between broadcasting of Spanning Tree Protocol configuration "
"messages. The hello time may only be changed when operating in legacy STP "
@@ -11446,6 +14077,8 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:359
#: usr/local/www/interfaces_bridge_edit.php:368
#: usr/local/www/interfaces_bridge_edit.php:369
+#: usr/local/www/interfaces_bridge_edit.php:370
+#: usr/local/www/interfaces_bridge_edit.php:370
msgid ""
"Set the bridge priority for Spanning Tree. The default is 32768. The "
"minimum is 0 and the maximum is 61440."
@@ -11454,12 +14087,16 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:363
#: usr/local/www/interfaces_bridge_edit.php:372
#: usr/local/www/interfaces_bridge_edit.php:373
+#: usr/local/www/interfaces_bridge_edit.php:374
+#: usr/local/www/interfaces_bridge_edit.php:374
msgid "Hold count"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:368
#: usr/local/www/interfaces_bridge_edit.php:377
#: usr/local/www/interfaces_bridge_edit.php:378
+#: usr/local/www/interfaces_bridge_edit.php:379
+#: usr/local/www/interfaces_bridge_edit.php:379
msgid ""
"Set the transmit hold count for Spanning Tree. This is the num- ber of "
"packets transmitted before being rate limited. The default is 6. The "
@@ -11475,12 +14112,16 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:386
#: usr/local/www/interfaces_bridge_edit.php:395
#: usr/local/www/interfaces_bridge_edit.php:396
+#: usr/local/www/interfaces_bridge_edit.php:397
+#: usr/local/www/interfaces_bridge_edit.php:397
msgid "Path cost"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:395
#: usr/local/www/interfaces_bridge_edit.php:404
#: usr/local/www/interfaces_bridge_edit.php:405
+#: usr/local/www/interfaces_bridge_edit.php:406
+#: usr/local/www/interfaces_bridge_edit.php:406
msgid ""
"Set the Spanning Tree path cost of interface to value. The default is "
"calculated from the link speed. To change a previously selected path cost "
@@ -11491,18 +14132,24 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:404
#: usr/local/www/interfaces_bridge_edit.php:413
#: usr/local/www/interfaces_bridge_edit.php:414
+#: usr/local/www/interfaces_bridge_edit.php:415
+#: usr/local/www/interfaces_bridge_edit.php:415
msgid "Cache size"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:406
#: usr/local/www/interfaces_bridge_edit.php:415
#: usr/local/www/interfaces_bridge_edit.php:416
+#: usr/local/www/interfaces_bridge_edit.php:417
+#: usr/local/www/interfaces_bridge_edit.php:417
msgid "entries"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:408
#: usr/local/www/interfaces_bridge_edit.php:417
#: usr/local/www/interfaces_bridge_edit.php:418
+#: usr/local/www/interfaces_bridge_edit.php:419
+#: usr/local/www/interfaces_bridge_edit.php:419
msgid ""
"Set the size of the bridge address cache to size.\tThe default is .100 "
"entries."
@@ -11511,12 +14158,16 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:414
#: usr/local/www/interfaces_bridge_edit.php:423
#: usr/local/www/interfaces_bridge_edit.php:424
+#: usr/local/www/interfaces_bridge_edit.php:425
+#: usr/local/www/interfaces_bridge_edit.php:425
msgid "Cache entry expire time"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:418
#: usr/local/www/interfaces_bridge_edit.php:427
#: usr/local/www/interfaces_bridge_edit.php:428
+#: usr/local/www/interfaces_bridge_edit.php:429
+#: usr/local/www/interfaces_bridge_edit.php:429
msgid ""
"Set the timeout of address cache entries to this number of seconds. If "
"seconds is zero, then address cache entries will not be expired. The default "
@@ -11526,12 +14177,16 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:425
#: usr/local/www/interfaces_bridge_edit.php:434
#: usr/local/www/interfaces_bridge_edit.php:435
+#: usr/local/www/interfaces_bridge_edit.php:436
+#: usr/local/www/interfaces_bridge_edit.php:436
msgid "Span port"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:439
#: usr/local/www/interfaces_bridge_edit.php:448
#: usr/local/www/interfaces_bridge_edit.php:449
+#: usr/local/www/interfaces_bridge_edit.php:450
+#: usr/local/www/interfaces_bridge_edit.php:450
msgid ""
"Add the interface named by interface as a span port on the bridge. Span "
"ports transmit a copy of every frame received by the bridge. This is most "
@@ -11542,18 +14197,24 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:448
#: usr/local/www/interfaces_bridge_edit.php:457
#: usr/local/www/interfaces_bridge_edit.php:458
+#: usr/local/www/interfaces_bridge_edit.php:459
+#: usr/local/www/interfaces_bridge_edit.php:459
msgid "The span interface cannot be part of the bridge member interfaces."
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:453
#: usr/local/www/interfaces_bridge_edit.php:462
#: usr/local/www/interfaces_bridge_edit.php:463
+#: usr/local/www/interfaces_bridge_edit.php:464
+#: usr/local/www/interfaces_bridge_edit.php:464
msgid "Edge ports"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:467
#: usr/local/www/interfaces_bridge_edit.php:476
#: usr/local/www/interfaces_bridge_edit.php:477
+#: usr/local/www/interfaces_bridge_edit.php:478
+#: usr/local/www/interfaces_bridge_edit.php:478
msgid ""
"Set interface as an edge port. An edge port connects directly to end "
"stations and cannot create bridging loops in the network; this allows it to "
@@ -11563,12 +14224,16 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:473
#: usr/local/www/interfaces_bridge_edit.php:482
#: usr/local/www/interfaces_bridge_edit.php:483
+#: usr/local/www/interfaces_bridge_edit.php:484
+#: usr/local/www/interfaces_bridge_edit.php:484
msgid "Auto Edge ports"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:487
#: usr/local/www/interfaces_bridge_edit.php:496
#: usr/local/www/interfaces_bridge_edit.php:497
+#: usr/local/www/interfaces_bridge_edit.php:498
+#: usr/local/www/interfaces_bridge_edit.php:498
msgid ""
"Allow interface to automatically detect edge status. This is the default "
"for all interfaces added to a bridge."
@@ -11577,18 +14242,24 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:492
#: usr/local/www/interfaces_bridge_edit.php:501
#: usr/local/www/interfaces_bridge_edit.php:502
+#: usr/local/www/interfaces_bridge_edit.php:503
+#: usr/local/www/interfaces_bridge_edit.php:503
msgid "This will disable the autoedge status of interfaces."
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:496
#: usr/local/www/interfaces_bridge_edit.php:505
#: usr/local/www/interfaces_bridge_edit.php:506
+#: usr/local/www/interfaces_bridge_edit.php:507
+#: usr/local/www/interfaces_bridge_edit.php:507
msgid "PTP ports"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:510
#: usr/local/www/interfaces_bridge_edit.php:519
#: usr/local/www/interfaces_bridge_edit.php:520
+#: usr/local/www/interfaces_bridge_edit.php:521
+#: usr/local/www/interfaces_bridge_edit.php:521
msgid ""
"Set the interface as a point-to-point link. This is required for straight "
"transitions to forwarding and should be enabled on a direct link to another "
@@ -11598,12 +14269,16 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:516
#: usr/local/www/interfaces_bridge_edit.php:525
#: usr/local/www/interfaces_bridge_edit.php:526
+#: usr/local/www/interfaces_bridge_edit.php:527
+#: usr/local/www/interfaces_bridge_edit.php:527
msgid "Auto PTP ports"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:530
#: usr/local/www/interfaces_bridge_edit.php:539
#: usr/local/www/interfaces_bridge_edit.php:540
+#: usr/local/www/interfaces_bridge_edit.php:541
+#: usr/local/www/interfaces_bridge_edit.php:541
msgid ""
"Automatically detect the point-to-point status on interface by checking the "
"full duplex link status. This is the default for interfaces added to the "
@@ -11613,6 +14288,8 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:536
#: usr/local/www/interfaces_bridge_edit.php:545
#: usr/local/www/interfaces_bridge_edit.php:546
+#: usr/local/www/interfaces_bridge_edit.php:547
+#: usr/local/www/interfaces_bridge_edit.php:547
msgid ""
"The interfaces selected here will be removed from default autoedge status."
msgstr ""
@@ -11620,12 +14297,16 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:540
#: usr/local/www/interfaces_bridge_edit.php:549
#: usr/local/www/interfaces_bridge_edit.php:550
+#: usr/local/www/interfaces_bridge_edit.php:551
+#: usr/local/www/interfaces_bridge_edit.php:551
msgid "Sticky ports"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:554
#: usr/local/www/interfaces_bridge_edit.php:563
#: usr/local/www/interfaces_bridge_edit.php:564
+#: usr/local/www/interfaces_bridge_edit.php:565
+#: usr/local/www/interfaces_bridge_edit.php:565
msgid ""
"Mark an interface as a \"sticky\" interface. Dynamically learned address "
"entries are treated as static once entered into the cache. Sticky entries "
@@ -11636,18 +14317,23 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:561
#: usr/local/www/interfaces_bridge_edit.php:570
#: usr/local/www/interfaces_bridge_edit.php:571
+#: usr/local/www/interfaces_bridge_edit.php:572
+#: usr/local/www/interfaces_bridge_edit.php:572
msgid "Private ports"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:575
#: usr/local/www/interfaces_bridge_edit.php:584
#: usr/local/www/interfaces_bridge_edit.php:585
+#: usr/local/www/interfaces_bridge_edit.php:586
+#: usr/local/www/interfaces_bridge_edit.php:586
msgid ""
"Mark an interface as a \"private\" interface. A private interface does not "
"forward any traffic to any other port that is also a private interface."
msgstr ""
-#: usr/local/www/interfaces_gif.php:64 usr/local/www/interfaces_gif.php:64
+#: usr/local/www/interfaces_gif.php:64 usr/local/www/interfaces_gif.php:68
+#: usr/local/www/interfaces_gif.php:68
msgid ""
"This gif TUNNEL cannot be deleted because it is still being used as an "
"interface."
@@ -11655,19 +14341,24 @@ msgstr ""
#: usr/local/www/interfaces_gif.php:107 usr/local/www/interfaces_gre.php:108
#: usr/local/www/interfaces_gre.php:109 usr/local/www/interfaces_gif.php:108
+#: usr/local/www/interfaces_gre.php:113 usr/local/www/interfaces_gif.php:112
+#: usr/local/www/interfaces_gre.php:113 usr/local/www/interfaces_gif.php:112
msgid "Tunnel to..."
msgstr ""
#: usr/local/www/interfaces_gif.php:123 usr/local/www/interfaces_gif.php:124
+#: usr/local/www/interfaces_gif.php:128 usr/local/www/interfaces_gif.php:128
msgid "Do you really want to delete this gif tunnel?"
msgstr ""
#: usr/local/www/interfaces_gif.php:134 usr/local/www/interfaces_gif.php:135
+#: usr/local/www/interfaces_gif.php:139 usr/local/www/interfaces_gif.php:139
msgid "GIF tunnels are configured here."
msgstr ""
#: usr/local/www/interfaces_gif_edit.php:72
-#: usr/local/www/interfaces_gif_edit.php:72
+#: usr/local/www/interfaces_gif_edit.php:75
+#: usr/local/www/interfaces_gif_edit.php:75
msgid ""
"Parent interface,Local address, Remote tunnel address, Remote tunnel "
"network, Local tunnel address"
@@ -11675,13 +14366,15 @@ msgstr ""
#: usr/local/www/interfaces_gif_edit.php:78
#: usr/local/www/interfaces_gre_edit.php:80
-#: usr/local/www/interfaces_gif_edit.php:78
+#: usr/local/www/interfaces_gif_edit.php:81
#: usr/local/www/interfaces_gre_edit.php:80
+#: usr/local/www/interfaces_gif_edit.php:81
msgid "The tunnel local and tunnel remote fields must have valid IP addresses."
msgstr ""
#: usr/local/www/interfaces_gif_edit.php:87
-#: usr/local/www/interfaces_gif_edit.php:87
+#: usr/local/www/interfaces_gif_edit.php:95
+#: usr/local/www/interfaces_gif_edit.php:95
#, php-format
msgid "A gif with the network %s is already defined."
msgstr ""
@@ -11689,6 +14382,8 @@ msgstr ""
#: usr/local/www/interfaces_gif_edit.php:136
#: usr/local/www/interfaces_gif_edit.php:137
#: usr/local/www/interfaces_gif_edit.php:138
+#: usr/local/www/interfaces_gif_edit.php:146
+#: usr/local/www/interfaces_gif_edit.php:146
msgid "GIF configuration"
msgstr ""
@@ -11702,21 +14397,34 @@ msgstr ""
#: usr/local/www/interfaces_wireless_edit.php:84
#: usr/local/www/interfaces_wireless_edit.php:159
#: usr/local/www/interfaces_gif_edit.php:140
-#: usr/local/www/interfaces_vlan_edit.php:75
#: usr/local/www/interfaces_vlan_edit.php:154
#: usr/local/www/interfaces_qinq_edit.php:289
#: usr/local/www/interfaces_gif_edit.php:141
#: usr/local/www/interfaces_lagg_edit.php:135
-#: usr/local/www/interfaces_wireless_edit.php:84
-#: usr/local/www/interfaces_wireless_edit.php:159
+#: usr/local/www/interfaces_gre_edit.php:142
+#: usr/local/www/interfaces_wireless_edit.php:86
+#: usr/local/www/interfaces_wireless_edit.php:161
+#: usr/local/www/interfaces_vlan_edit.php:157
+#: usr/local/www/interfaces_lagg_edit.php:148
+#: usr/local/www/interfaces_gif_edit.php:149
+#: usr/local/www/interfaces_qinq_edit.php:292
+#: usr/local/www/interfaces_wireless_edit.php:86
+#: usr/local/www/interfaces_wireless_edit.php:161
#: usr/local/www/interfaces_gre_edit.php:74
#: usr/local/www/interfaces_gre_edit.php:142
+#: usr/local/www/interfaces_vlan_edit.php:75
+#: usr/local/www/interfaces_vlan_edit.php:157
+#: usr/local/www/interfaces_lagg_edit.php:148
+#: usr/local/www/interfaces_gif_edit.php:149
+#: usr/local/www/interfaces_qinq_edit.php:292
msgid "Parent interface"
msgstr ""
#: usr/local/www/interfaces_gif_edit.php:156
#: usr/local/www/interfaces_gif_edit.php:157
#: usr/local/www/interfaces_gif_edit.php:158
+#: usr/local/www/interfaces_gif_edit.php:169
+#: usr/local/www/interfaces_gif_edit.php:169
msgid ""
"The interface here servers as the local address to be used for the gif "
"tunnel."
@@ -11725,35 +14433,47 @@ msgstr ""
#: usr/local/www/interfaces_gif_edit.php:159
#: usr/local/www/interfaces_gif_edit.php:160
#: usr/local/www/interfaces_gif_edit.php:161
+#: usr/local/www/interfaces_gif_edit.php:172
+#: usr/local/www/interfaces_gif_edit.php:172
msgid "gif remote address"
msgstr ""
#: usr/local/www/interfaces_gif_edit.php:163
#: usr/local/www/interfaces_gif_edit.php:164
#: usr/local/www/interfaces_gif_edit.php:165
+#: usr/local/www/interfaces_gif_edit.php:176
+#: usr/local/www/interfaces_gif_edit.php:176
msgid "Peer address where encapsulated gif packets will be sent. "
msgstr ""
#: usr/local/www/interfaces_gif_edit.php:166
#: usr/local/www/interfaces_gif_edit.php:167
#: usr/local/www/interfaces_gif_edit.php:168
+#: usr/local/www/interfaces_gif_edit.php:179
+#: usr/local/www/interfaces_gif_edit.php:179
msgid "gif tunnel local address"
msgstr ""
#: usr/local/www/interfaces_gif_edit.php:170
#: usr/local/www/interfaces_gif_edit.php:171
#: usr/local/www/interfaces_gif_edit.php:172
+#: usr/local/www/interfaces_gif_edit.php:183
+#: usr/local/www/interfaces_gif_edit.php:183
msgid "Local gif tunnel endpoint"
msgstr ""
#: usr/local/www/interfaces_gif_edit.php:173
#: usr/local/www/interfaces_gif_edit.php:174
#: usr/local/www/interfaces_gif_edit.php:175
+#: usr/local/www/interfaces_gif_edit.php:186
+#: usr/local/www/interfaces_gif_edit.php:186
msgid "gif tunnel remote address "
msgstr ""
#: usr/local/www/interfaces_gif_edit.php:188
#: usr/local/www/interfaces_gif_edit.php:189
+#: usr/local/www/interfaces_gif_edit.php:200
+#: usr/local/www/interfaces_gif_edit.php:200
msgid ""
"Remote gif address endpoint. The subnet part is used for determining the "
"network that is tunnelled."
@@ -11761,11 +14481,15 @@ msgstr ""
#: usr/local/www/interfaces_gif_edit.php:191
#: usr/local/www/interfaces_gif_edit.php:192
+#: usr/local/www/interfaces_gif_edit.php:203
+#: usr/local/www/interfaces_gif_edit.php:203
msgid "Route caching "
msgstr ""
#: usr/local/www/interfaces_gif_edit.php:195
#: usr/local/www/interfaces_gif_edit.php:196
+#: usr/local/www/interfaces_gif_edit.php:207
+#: usr/local/www/interfaces_gif_edit.php:207
msgid ""
"Specify if route caching can be enabled. Be careful with these settings on "
"dynamic networks. "
@@ -11773,27 +14497,33 @@ msgstr ""
#: usr/local/www/interfaces_gif_edit.php:198
#: usr/local/www/interfaces_gif_edit.php:199
+#: usr/local/www/interfaces_gif_edit.php:210
msgid "ECN friendly behaviour"
msgstr ""
#: usr/local/www/interfaces_gif_edit.php:203
#: usr/local/www/interfaces_gif_edit.php:204
+#: usr/local/www/interfaces_gif_edit.php:215
+#: usr/local/www/interfaces_gif_edit.php:215
msgid ""
"Note that the ECN friendly behavior violates RFC2893. This should be used "
"in mutual agreement with the peer."
msgstr ""
-#: usr/local/www/interfaces_gre.php:65 usr/local/www/interfaces_gre.php:65
+#: usr/local/www/interfaces_gre.php:65 usr/local/www/interfaces_gre.php:69
+#: usr/local/www/interfaces_gre.php:69
msgid ""
"This GRE tunnel cannot be deleted because it is still being used as an "
"interface."
msgstr ""
#: usr/local/www/interfaces_gre.php:124 usr/local/www/interfaces_gre.php:125
+#: usr/local/www/interfaces_gre.php:129 usr/local/www/interfaces_gre.php:129
msgid "Do you really want to delete this GRE tunnel?"
msgstr ""
#: usr/local/www/interfaces_gre.php:133 usr/local/www/interfaces_gre.php:134
+#: usr/local/www/interfaces_gre.php:138 usr/local/www/interfaces_gre.php:138
msgid ""
"Here you can configure Generic Routing Encapsulation (GRE - RFC 2784) "
"tunnels."
@@ -11827,37 +14557,44 @@ msgstr ""
#: usr/local/www/interfaces_gre_edit.php:138
#: usr/local/www/interfaces_gre_edit.php:139
+#: usr/local/www/interfaces_gre_edit.php:139
msgid "GRE configuration"
msgstr ""
#: usr/local/www/interfaces_gre_edit.php:158
#: usr/local/www/interfaces_gre_edit.php:159
+#: usr/local/www/interfaces_gre_edit.php:159
msgid ""
"The interface here serves as the local address to be used for the GRE tunnel."
msgstr ""
#: usr/local/www/interfaces_gre_edit.php:161
#: usr/local/www/interfaces_gre_edit.php:162
+#: usr/local/www/interfaces_gre_edit.php:162
msgid "GRE remote address"
msgstr ""
#: usr/local/www/interfaces_gre_edit.php:165
#: usr/local/www/interfaces_gre_edit.php:166
+#: usr/local/www/interfaces_gre_edit.php:166
msgid "Peer address where encapsulated GRE packets will be sent "
msgstr ""
#: usr/local/www/interfaces_gre_edit.php:168
#: usr/local/www/interfaces_gre_edit.php:169
+#: usr/local/www/interfaces_gre_edit.php:169
msgid "GRE tunnel local address "
msgstr ""
#: usr/local/www/interfaces_gre_edit.php:172
#: usr/local/www/interfaces_gre_edit.php:173
+#: usr/local/www/interfaces_gre_edit.php:173
msgid "Local GRE tunnel endpoint"
msgstr ""
#: usr/local/www/interfaces_gre_edit.php:175
#: usr/local/www/interfaces_gre_edit.php:176
+#: usr/local/www/interfaces_gre_edit.php:176
msgid "GRE tunnel remote address "
msgstr ""
@@ -11926,17 +14663,22 @@ msgstr ""
#: usr/local/www/system_usermanager.php:439
#: usr/local/www/system_usermanager.php:788
#: usr/local/www/system_groupmanager_addprivs.php:167
-#: usr/local/www/system_groupmanager.php:241
-#: usr/local/www/system_routes.php:117 usr/local/www/interfaces_groups.php:63
-#: usr/local/www/system_usermanager.php:439
#: usr/local/www/system_usermanager.php:789
+#: usr/local/www/system_gateway_groups.php:111
+#: usr/local/www/system_authservers.php:427
+#: usr/local/www/system_routes.php:121
+#: usr/local/www/system_authservers.php:434
+#: usr/local/www/system_groupmanager.php:241
#: usr/local/www/system_usermanager_addprivs.php:168
+#: usr/local/www/system_routes.php:121 usr/local/www/interfaces_groups.php:63
+#: usr/local/www/interfaces_groups_edit.php:44
+#: usr/local/www/system_authservers.php:434
#: usr/local/www/system_groupmanager_addprivs.php:167
-#: usr/local/www/system_gateway_groups.php:111
+#: usr/local/www/system_usermanager_settings.php:116
+#: usr/local/www/system_usermanager.php:439
+#: usr/local/www/system_usermanager.php:789
#: usr/local/www/system_gateways.php:143
-#: usr/local/www/system_usermanager_settings.php:114
-#: usr/local/www/interfaces_groups_edit.php:44
-#: usr/local/www/system_authservers.php:427
+#: usr/local/www/system_gateway_groups.php:120
msgid "Groups"
msgstr ""
@@ -11944,11 +14686,14 @@ msgstr ""
#: usr/local/www/system_groupmanager.php:443
#: usr/local/www/system_groupmanager.php:446
#: usr/local/www/interfaces_groups.php:128
+#: usr/local/www/system_groupmanager.php:464
+#: usr/local/www/interfaces_groups.php:128
msgid "edit group"
msgstr ""
#: usr/local/www/interfaces_groups.php:128
#: usr/local/www/interfaces_groups.php:129
+#: usr/local/www/interfaces_groups.php:129
msgid ""
"Do you really want to delete this group? All elements that still use it will "
"become invalid (e.g. filter rules)!"
@@ -11956,16 +14701,19 @@ msgstr ""
#: usr/local/www/interfaces_groups.php:128
#: usr/local/www/interfaces_groups.php:129
+#: usr/local/www/interfaces_groups.php:129
msgid "delete ifgroupentry"
msgstr ""
#: usr/local/www/interfaces_groups.php:140
#: usr/local/www/interfaces_groups.php:141
+#: usr/local/www/interfaces_groups.php:141
msgid "add a new group"
msgstr ""
#: usr/local/www/interfaces_groups.php:148
#: usr/local/www/interfaces_groups.php:149
+#: usr/local/www/interfaces_groups.php:149
msgid ""
"Interface Groups allow you to create rules that apply to multiple interfaces "
"without duplicating the rules. If you remove members from an interface "
@@ -11974,16 +14722,19 @@ msgstr ""
#: usr/local/www/interfaces_groups_edit.php:71
#: usr/local/www/interfaces_groups_edit.php:72
+#: usr/local/www/interfaces_groups_edit.php:72
msgid "Group name already exists!"
msgstr ""
#: usr/local/www/interfaces_groups_edit.php:74
#: usr/local/www/interfaces_groups_edit.php:75
+#: usr/local/www/interfaces_groups_edit.php:75
msgid "Only letters A-Z are allowed as the group name."
msgstr ""
#: usr/local/www/interfaces_groups_edit.php:248
#: usr/local/www/interfaces_groups_edit.php:249
+#: usr/local/www/interfaces_groups_edit.php:249
msgid "Interface Groups Edit"
msgstr ""
@@ -11997,15 +14748,21 @@ msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:172
#: usr/local/www/system_gateway_groups_edit.php:228
#: usr/local/www/system_gateway_groups_edit.php:231
-#: usr/local/www/system_groupmanager.php:117
#: usr/local/www/system_gateway_groups.php:121
#: usr/local/www/interfaces_groups_edit.php:252
#: usr/local/www/status_gateway_groups.php:75
+#: usr/local/www/system_groupmanager.php:117
+#: usr/local/www/interfaces_groups_edit.php:252
+#: usr/local/www/system_gateway_groups_edit.php:232
+#: usr/local/www/system_gateway_groups_edit.php:235
+#: usr/local/www/status_gateway_groups.php:75
+#: usr/local/www/system_gateway_groups.php:130
msgid "Group Name"
msgstr ""
#: usr/local/www/interfaces_groups_edit.php:255
#: usr/local/www/interfaces_groups_edit.php:256
+#: usr/local/www/interfaces_groups_edit.php:256
msgid "No numbers or spaces are allowed. Only characters in a-zA-Z"
msgstr ""
@@ -12013,12 +14770,16 @@ msgstr ""
#: usr/local/www/interfaces_qinq_edit.php:347
#: usr/local/www/interfaces_qinq_edit.php:348
#: usr/local/www/interfaces_groups_edit.php:270
+#: usr/local/www/interfaces_qinq_edit.php:351
+#: usr/local/www/interfaces_groups_edit.php:270
+#: usr/local/www/interfaces_qinq_edit.php:351
msgid "Member (s)"
msgstr ""
#: usr/local/www/firewall_aliases.php:103
#: usr/local/www/firewall_aliases.php:106
#: usr/local/www/firewall_aliases.php:107
+#: usr/local/www/firewall_aliases.php:106
#, php-format
msgid "Cannot delete alias. Currently in use by %s"
msgstr ""
@@ -12026,14 +14787,16 @@ msgstr ""
#: usr/local/www/firewall_aliases.php:160
#: usr/local/www/firewall_aliases.php:163
#: usr/local/www/firewall_aliases.php:167
+#: usr/local/www/firewall_aliases.php:166
msgid "The alias list has been changed."
msgstr ""
#: usr/local/www/firewall_aliases.php:166
#: usr/local/www/services_igmpproxy.php:97
#: usr/local/www/firewall_aliases.php:169
-#: usr/local/www/services_igmpproxy.php:97
#: usr/local/www/firewall_aliases.php:189
+#: usr/local/www/firewall_aliases.php:189
+#: usr/local/www/services_igmpproxy.php:97
msgid "Values"
msgstr ""
@@ -12054,6 +14817,7 @@ msgstr ""
#: usr/local/www/firewall_aliases.php:205
#: usr/local/www/firewall_aliases.php:208
#: usr/local/www/firewall_aliases.php:256
+#: usr/local/www/firewall_aliases.php:257
msgid ""
"Do you really want to delete this alias? All elements that still use it will "
"become invalid (e.g. filter rules)!"
@@ -12069,12 +14833,14 @@ msgstr ""
#: usr/local/www/firewall_aliases.php:221
#: usr/local/www/firewall_aliases.php:224
#: usr/local/www/firewall_aliases.php:275
+#: usr/local/www/firewall_aliases.php:277
msgid "Bulk import aliases from list"
msgstr ""
#: usr/local/www/firewall_aliases.php:229
#: usr/local/www/firewall_aliases.php:232
#: usr/local/www/firewall_aliases.php:284
+#: usr/local/www/firewall_aliases.php:287
msgid ""
"Aliases act as placeholders for real hosts, networks or ports. They can be "
"used to minimize the number of changes that have to be made if a host, "
@@ -12086,20 +14852,20 @@ msgid ""
msgstr ""
#: usr/local/www/firewall_aliases_edit.php:105
-#: usr/local/www/firewall_aliases_edit.php:105
+#: usr/local/www/firewall_aliases_edit.php:107
#, php-format
msgid "Sorry, an interface is already named %s."
msgstr ""
#: usr/local/www/firewall_aliases_edit.php:140
#: usr/local/www/firewall_aliases_edit.php:142
-#: usr/local/www/firewall_aliases_edit.php:140
-#: usr/local/www/firewall_aliases_edit.php:142
+#: usr/local/www/firewall_aliases_edit.php:134
+#: usr/local/www/firewall_aliases_edit.php:136
msgid "Reserved word used for alias name."
msgstr ""
#: usr/local/www/firewall_aliases_edit.php:145
-#: usr/local/www/firewall_aliases_edit.php:145
+#: usr/local/www/firewall_aliases_edit.php:139
msgid ""
"The alias name must be less than 32 characters long and may only consist of "
"the characters"
@@ -12109,46 +14875,46 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:242
#: usr/local/www/firewall_aliases_edit.php:188
#: usr/local/www/firewall_aliases_edit.php:244
-#: usr/local/www/firewall_aliases_edit.php:188
-#: usr/local/www/firewall_aliases_edit.php:244
+#: usr/local/www/firewall_aliases_edit.php:182
msgid "You must provide a valid URL."
msgstr ""
#: usr/local/www/firewall_aliases_edit.php:190
#: usr/local/www/firewall_aliases_edit.php:191
-#: usr/local/www/firewall_aliases_edit.php:191
+#: usr/local/www/firewall_aliases_edit.php:185
msgid "Unable to fetch usable data."
msgstr ""
#: usr/local/www/firewall_aliases_edit.php:235
#: usr/local/www/firewall_aliases_edit.php:237
-#: usr/local/www/firewall_aliases_edit.php:237
msgid "You must provide a valid URL. Could not fetch usable data."
msgstr ""
#: usr/local/www/firewall_aliases_edit.php:261
#: usr/local/www/firewall_aliases_edit.php:264
-#: usr/local/www/firewall_aliases_edit.php:264
+#: usr/local/www/firewall_aliases_edit.php:278
msgid "is not a valid port or alias."
msgstr ""
#: usr/local/www/firewall_aliases_edit.php:266
#: usr/local/www/firewall_aliases_edit.php:269
-#: usr/local/www/firewall_aliases_edit.php:269
+#: usr/local/www/firewall_aliases_edit.php:283
#, php-format
msgid "%1$s is not a valid %2$s alias."
msgstr ""
#: usr/local/www/firewall_aliases_edit.php:281
#: usr/local/www/firewall_aliases_edit.php:284
-#: usr/local/www/firewall_aliases_edit.php:284
+#: usr/local/www/firewall_aliases_edit.php:191
+#: usr/local/www/firewall_aliases_edit.php:221
+#: usr/local/www/firewall_aliases_edit.php:303
#, php-format
msgid "Entry added %s"
msgstr ""
#: usr/local/www/firewall_aliases_edit.php:285
#: usr/local/www/firewall_aliases_edit.php:288
-#: usr/local/www/firewall_aliases_edit.php:288
+#: usr/local/www/firewall_aliases_edit.php:307
#, php-format
msgid ""
"The alias(es): %s cannot be nested because they are not of the same type."
@@ -12160,6 +14926,8 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:610
#: usr/local/www/firewall_aliases_edit.php:458
#: usr/local/www/firewall_aliases_edit.php:613
+#: usr/local/www/firewall_aliases_edit.php:480
+#: usr/local/www/firewall_aliases_edit.php:644
msgid "Network(s)"
msgstr ""
@@ -12168,9 +14936,9 @@ msgstr ""
#: usr/local/www/services_unbound_acls.php:237
#: usr/local/www/services_igmpproxy_edit.php:226
#: usr/local/www/firewall_aliases_edit.php:457
-#: usr/local/www/services_unbound_acls.php:237
-#: usr/local/www/services_igmpproxy_edit.php:226
#: usr/local/www/firewall_aliases_edit.php:459
+#: usr/local/www/firewall_aliases_edit.php:481
+#: usr/local/www/services_igmpproxy_edit.php:226
msgid "CIDR"
msgstr ""
@@ -12183,6 +14951,9 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:461
#: usr/local/www/firewall_aliases_edit.php:612
#: usr/local/www/firewall_aliases_edit.php:622
+#: usr/local/www/firewall_aliases_edit.php:483
+#: usr/local/www/firewall_aliases_edit.php:643
+#: usr/local/www/firewall_aliases_edit.php:653
msgid "Host(s)"
msgstr ""
@@ -12197,11 +14968,16 @@ msgstr ""
#: usr/local/www/diag_states_summary.php:139
#: usr/local/www/vpn_pppoe_edit.php:539 usr/local/www/services_dnsmasq.php:246
#: usr/local/www/services_dnsmasq.php:334
-#: usr/local/www/services_unbound.php:281
-#: usr/local/www/services_unbound.php:348
#: usr/local/www/firewall_aliases_edit.php:462
#: usr/local/www/firewall_aliases.php:176
#: usr/local/www/diag_states_summary.php:141
+#: usr/local/www/vpn_pppoe_edit.php:542 usr/local/www/services_dnsmasq.php:271
+#: usr/local/www/services_dnsmasq.php:359
+#: usr/local/www/diag_states_summary.php:141
+#: usr/local/www/firewall_aliases.php:174 usr/local/www/vpn_pppoe_edit.php:542
+#: usr/local/www/firewall_aliases_edit.php:484
+#: usr/local/www/services_dnsmasq.php:284
+#: usr/local/www/services_dnsmasq.php:372
msgid "IP"
msgstr ""
@@ -12211,6 +14987,8 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:611
#: usr/local/www/firewall_aliases_edit.php:463
#: usr/local/www/firewall_aliases_edit.php:614
+#: usr/local/www/firewall_aliases_edit.php:485
+#: usr/local/www/firewall_aliases_edit.php:645
msgid "Port(s)"
msgstr ""
@@ -12223,6 +15001,10 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:465
#: usr/local/www/firewall_aliases_edit.php:616
#: usr/local/www/services_dhcp.php:1042 usr/local/www/services_dhcpv6.php:759
+#: usr/local/www/services_dhcp.php:1055 usr/local/www/services_dhcpv6.php:776
+#: usr/local/www/services_dhcp.php:1075 usr/local/www/services_dhcpv6.php:776
+#: usr/local/www/firewall_aliases_edit.php:487
+#: usr/local/www/firewall_aliases_edit.php:647
msgid "URL"
msgstr ""
@@ -12232,18 +15014,22 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:614
#: usr/local/www/firewall_aliases_edit.php:466
#: usr/local/www/firewall_aliases_edit.php:617
+#: usr/local/www/firewall_aliases_edit.php:488
+#: usr/local/www/firewall_aliases_edit.php:648
msgid "URL Table"
msgstr ""
#: usr/local/www/firewall_aliases_edit.php:462
#: usr/local/www/firewall_aliases_edit.php:465
#: usr/local/www/firewall_aliases_edit.php:467
+#: usr/local/www/firewall_aliases_edit.php:489
msgid "Update Freq."
msgstr ""
#: usr/local/www/firewall_aliases_edit.php:464
#: usr/local/www/firewall_aliases_edit.php:467
#: usr/local/www/firewall_aliases_edit.php:469
+#: usr/local/www/firewall_aliases_edit.php:491
msgid ""
"Networks are specified in CIDR format. Select the CIDR mask that pertains "
"to each entry. /32 specifies a single IPv4 host, /128 specifies a single "
@@ -12263,6 +15049,7 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:466
#: usr/local/www/firewall_aliases_edit.php:469
#: usr/local/www/firewall_aliases_edit.php:471
+#: usr/local/www/firewall_aliases_edit.php:493
msgid ""
"Enter as many ports as you wish. Port ranges can be expressed by seperating "
"with a colon."
@@ -12271,6 +15058,7 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:467
#: usr/local/www/firewall_aliases_edit.php:470
#: usr/local/www/firewall_aliases_edit.php:472
+#: usr/local/www/firewall_aliases_edit.php:494
#, php-format
msgid ""
"Enter as many URLs as you wish. After saving %s will download the URL and "
@@ -12281,6 +15069,7 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:468
#: usr/local/www/firewall_aliases_edit.php:471
#: usr/local/www/firewall_aliases_edit.php:473
+#: usr/local/www/firewall_aliases_edit.php:495
#, php-format
msgid ""
"Enter a single URL containing a large number of IPs and/or Subnets. After "
@@ -12295,24 +15084,29 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:612
#: usr/local/www/firewall_aliases_edit.php:476
#: usr/local/www/firewall_aliases_edit.php:615
+#: usr/local/www/firewall_aliases_edit.php:498
+#: usr/local/www/firewall_aliases_edit.php:646
msgid "OpenVPN Users"
msgstr ""
#: usr/local/www/firewall_aliases_edit.php:472
#: usr/local/www/firewall_aliases_edit.php:475
#: usr/local/www/firewall_aliases_edit.php:477
+#: usr/local/www/firewall_aliases_edit.php:499
msgid "Enter as many usernames as you wish."
msgstr ""
#: usr/local/www/firewall_aliases_edit.php:573
#: usr/local/www/firewall_aliases_edit.php:578
#: usr/local/www/firewall_aliases_edit.php:581
+#: usr/local/www/firewall_aliases_edit.php:612
msgid "Alias Edit"
msgstr ""
#: usr/local/www/firewall_aliases_edit.php:620
#: usr/local/www/firewall_aliases_edit.php:625
#: usr/local/www/firewall_aliases_edit.php:628
+#: usr/local/www/firewall_aliases_edit.php:659
msgid "Item information"
msgstr ""
@@ -12322,8 +15116,12 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:670
#: usr/local/www/services_dnsmasq_edit.php:261
#: usr/local/www/services_router_advertisements.php:343
-#: usr/local/www/system_certmanager.php:782
#: usr/local/www/firewall_aliases_edit.php:673
+#: usr/local/www/system_certmanager.php:807
+#: usr/local/www/services_router_advertisements.php:338
+#: usr/local/www/system_certmanager.php:808
+#: usr/local/www/firewall_aliases_edit.php:704
+#: usr/local/www/services_dnsmasq_edit.php:261
msgid "remove this entry"
msgstr ""
@@ -12344,12 +15142,20 @@ msgstr ""
#: usr/local/www/fbegin.inc:137 usr/local/www/firewall_nat_out.php:294
#: usr/local/www/firewall_nat_1to1_edit.php:221
#: usr/local/www/firewall_nat_npt_edit.php:144
-#: usr/local/www/firewall_nat_out_edit.php:313
-#: usr/local/www/firewall_nat.php:165 usr/local/www/diag_backup.php:188
+#: usr/local/www/firewall_nat.php:165 usr/local/www/firewall_nat_edit.php:444
+#: usr/local/www/firewall_virtual_ip.php:248
+#: usr/local/www/firewall_virtual_ip.php:268
+#: usr/local/www/firewall_nat_edit.php:439 usr/local/www/fbegin.inc:129
+#: usr/local/www/firewall_nat_out_edit.php:317
+#: usr/local/www/firewall_virtual_ip.php:268
+#: usr/local/www/firewall_nat_edit.php:451 usr/local/www/firewall_nat.php:165
+#: usr/local/www/firewall_nat_out.php:301
#: usr/local/www/firewall_nat_npt.php:78
#: usr/local/www/firewall_nat_1to1.php:78
-#: usr/local/www/firewall_nat_edit.php:444
-#: usr/local/www/firewall_virtual_ip.php:248
+#: usr/local/www/firewall_nat_npt_edit.php:144
+#: usr/local/www/diag_backup.php:188
+#: usr/local/www/firewall_nat_1to1_edit.php:221 usr/local/www/fbegin.inc:129
+#: usr/local/www/firewall_nat_out_edit.php:329
msgid "NAT"
msgstr ""
@@ -12362,15 +15168,18 @@ msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:223
#: usr/local/www/firewall_nat_out.php:311
#: usr/local/www/firewall_nat_1to1_edit.php:221
-#: usr/local/www/firewall_nat.php:187 usr/local/www/firewall_nat_npt.php:93
+#: usr/local/www/firewall_nat.php:187 usr/local/www/firewall_nat.php:187
+#: usr/local/www/firewall_nat_out.php:318
+#: usr/local/www/firewall_nat_npt.php:93
#: usr/local/www/firewall_nat_1to1.php:78
#: usr/local/www/firewall_nat_1to1.php:93
+#: usr/local/www/firewall_nat_1to1_edit.php:221
msgid "1:1"
msgstr ""
#: usr/local/www/firewall_nat_1to1.php:87 usr/local/www/firewall_nat.php:175
#: usr/local/www/firewall_nat_npt.php:87 usr/local/www/firewall_nat.php:180
-#: usr/local/www/firewall_nat_npt.php:87
+#: usr/local/www/firewall_nat.php:180 usr/local/www/firewall_nat_npt.php:87
#: usr/local/www/firewall_nat_1to1.php:87
msgid "The NAT configuration has been changed"
msgstr ""
@@ -12382,9 +15191,12 @@ msgstr ""
#: usr/local/www/firewall_nat_out.php:309
#: usr/local/www/firewall_nat_edit.php:445
#: usr/local/www/firewall_nat_out.php:310 usr/local/www/firewall_nat.php:165
-#: usr/local/www/firewall_nat.php:186 usr/local/www/firewall_nat_npt.php:92
+#: usr/local/www/firewall_nat.php:186 usr/local/www/firewall_nat_edit.php:444
+#: usr/local/www/firewall_nat_edit.php:439
+#: usr/local/www/firewall_nat_edit.php:451 usr/local/www/firewall_nat.php:165
+#: usr/local/www/firewall_nat.php:186 usr/local/www/firewall_nat_out.php:317
+#: usr/local/www/firewall_nat_npt.php:92
#: usr/local/www/firewall_nat_1to1.php:92
-#: usr/local/www/firewall_nat_edit.php:444
msgid "Port Forward"
msgstr ""
@@ -12397,10 +15209,13 @@ msgstr ""
#: usr/local/www/firewall_nat_out.php:311
#: usr/local/www/firewall_nat_out_edit.php:313
#: usr/local/www/firewall_nat_out.php:294
-#: usr/local/www/firewall_nat_out.php:312
-#: usr/local/www/firewall_nat_out_edit.php:313
-#: usr/local/www/firewall_nat.php:188 usr/local/www/firewall_nat_npt.php:94
+#: usr/local/www/firewall_nat_out.php:312 usr/local/www/firewall_nat.php:188
+#: usr/local/www/firewall_nat_out_edit.php:317
+#: usr/local/www/firewall_nat.php:188 usr/local/www/firewall_nat_out.php:301
+#: usr/local/www/firewall_nat_out.php:319
+#: usr/local/www/firewall_nat_npt.php:94
#: usr/local/www/firewall_nat_1to1.php:94
+#: usr/local/www/firewall_nat_out_edit.php:329
msgid "Outbound"
msgstr ""
@@ -12412,9 +15227,11 @@ msgstr ""
#: usr/local/www/firewall_nat_npt_edit.php:145
#: usr/local/www/firewall_nat_out.php:313
#: usr/local/www/firewall_nat_npt_edit.php:144
-#: usr/local/www/firewall_nat.php:189 usr/local/www/firewall_nat_npt.php:78
-#: usr/local/www/firewall_nat_npt.php:95
+#: usr/local/www/firewall_nat.php:189 usr/local/www/firewall_nat.php:189
+#: usr/local/www/firewall_nat_out.php:320
+#: usr/local/www/firewall_nat_npt.php:78 usr/local/www/firewall_nat_npt.php:95
#: usr/local/www/firewall_nat_1to1.php:95
+#: usr/local/www/firewall_nat_npt_edit.php:144
msgid "NPt"
msgstr ""
@@ -12428,7 +15245,9 @@ msgstr ""
#: usr/local/www/status_upnp.php:87
#: usr/local/www/firewall_nat_1to1_edit.php:335
#: usr/local/www/firewall_nat_1to1_edit.php:333
-#: usr/local/www/firewall_nat_1to1.php:106 usr/local/www/status_upnp.php:88
+#: usr/local/www/status_upnp.php:88 usr/local/www/firewall_nat_1to1.php:106
+#: usr/local/www/firewall_nat_1to1_edit.php:333
+#: usr/local/www/status_upnp.php:88
msgid "Internal IP"
msgstr ""
@@ -12454,20 +15273,25 @@ msgstr ""
#: usr/local/www/firewall_nat.php:310 usr/local/www/firewall_nat_npt.php:157
#: usr/local/www/firewall_rules.php:430 usr/local/www/firewall_rules.php:459
#: usr/local/www/firewall_rules.php:487 usr/local/www/firewall_rules.php:773
-#: usr/local/www/firewall_nat.php:323 usr/local/www/firewall_nat_npt.php:157
+#: usr/local/www/firewall_nat.php:323 usr/local/www/firewall_rules.php:423
+#: usr/local/www/firewall_rules.php:452 usr/local/www/firewall_rules.php:480
+#: usr/local/www/firewall_rules.php:766 usr/local/www/firewall_nat.php:323
+#: usr/local/www/firewall_rules.php:422 usr/local/www/firewall_rules.php:451
+#: usr/local/www/firewall_rules.php:479 usr/local/www/firewall_rules.php:766
+#: usr/local/www/firewall_nat_npt.php:157
#: usr/local/www/firewall_nat_1to1.php:159
-#: usr/local/www/firewall_rules.php:423 usr/local/www/firewall_rules.php:452
-#: usr/local/www/firewall_rules.php:480 usr/local/www/firewall_rules.php:766
msgid "edit rule"
msgstr ""
#: usr/local/www/firewall_nat_1to1.php:160 usr/local/www/services_dhcp.php:923
#: usr/local/www/firewall_nat_npt.php:158
#: usr/local/www/services_dhcpv6.php:836 usr/local/www/services_dhcp.php:961
-#: usr/local/www/services_dhcpv6.php:931
+#: usr/local/www/services_dhcpv6.php:931 usr/local/www/services_dhcp.php:1165
+#: usr/local/www/services_dhcpv6.php:862 usr/local/www/services_dhcp.php:1189
+#: usr/local/www/services_dhcpv6.php:883 usr/local/www/services_dhcp.php:1209
+#: usr/local/www/services_dhcpv6.php:883
#: usr/local/www/firewall_nat_npt.php:158
#: usr/local/www/firewall_nat_1to1.php:160
-#: usr/local/www/services_dhcp.php:1165 usr/local/www/services_dhcpv6.php:862
msgid "Do you really want to delete this mapping?"
msgstr ""
@@ -12476,9 +15300,10 @@ msgstr ""
#: usr/local/www/firewall_nat_npt.php:158
#: usr/local/www/firewall_nat_out.php:450 usr/local/www/firewall_rules.php:776
#: usr/local/www/firewall_nat_out.php:451 usr/local/www/firewall_nat.php:326
-#: usr/local/www/firewall_nat_npt.php:158
+#: usr/local/www/firewall_rules.php:769 usr/local/www/firewall_nat_out.php:448
+#: usr/local/www/firewall_nat.php:326 usr/local/www/firewall_nat_out.php:455
+#: usr/local/www/firewall_rules.php:769 usr/local/www/firewall_nat_npt.php:158
#: usr/local/www/firewall_nat_1to1.php:160
-#: usr/local/www/firewall_rules.php:769
msgid "delete rule"
msgstr ""
@@ -12503,8 +15328,9 @@ msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:109
#: usr/local/www/firewall_nat_out_edit.php:125
+#: usr/local/www/firewall_nat_out_edit.php:129
#: usr/local/www/firewall_nat_1to1_edit.php:109
-#: usr/local/www/firewall_nat_out_edit.php:125
+#: usr/local/www/firewall_nat_out_edit.php:135
#, php-format
msgid ""
"Invalid characters detected (%s). Please remove invalid characters and save "
@@ -12518,15 +15344,17 @@ msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:117
#: usr/local/www/firewall_nat_edit.php:190
+#: usr/local/www/firewall_nat_edit.php:195
+#: usr/local/www/firewall_nat_edit.php:200
#: usr/local/www/firewall_nat_1to1_edit.php:117
-#: usr/local/www/firewall_nat_edit.php:190
msgid "Source address"
msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:121
#: usr/local/www/firewall_nat_edit.php:194
+#: usr/local/www/firewall_nat_edit.php:199
+#: usr/local/www/firewall_nat_edit.php:204
#: usr/local/www/firewall_nat_1to1_edit.php:121
-#: usr/local/www/firewall_nat_edit.php:194
msgid "Destination address"
msgstr ""
@@ -12544,10 +15372,15 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:385
#: usr/local/www/firewall_rules_edit.php:389
#: usr/local/www/firewall_nat_edit.php:239
-#: usr/local/www/firewall_nat_1to1_edit.php:156
#: usr/local/www/firewall_rules_edit.php:384
#: usr/local/www/firewall_rules_edit.php:388
-#: usr/local/www/firewall_nat_edit.php:239
+#: usr/local/www/firewall_rules_edit.php:387
+#: usr/local/www/firewall_rules_edit.php:391
+#: usr/local/www/firewall_nat_edit.php:244
+#: usr/local/www/firewall_rules_edit.php:393
+#: usr/local/www/firewall_rules_edit.php:397
+#: usr/local/www/firewall_nat_edit.php:249
+#: usr/local/www/firewall_nat_1to1_edit.php:156
msgid "You must specify single host or alias for alias entries."
msgstr ""
@@ -12570,9 +15403,12 @@ msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:171
#: usr/local/www/firewall_rules_edit.php:402
#: usr/local/www/firewall_nat_edit.php:252
-#: usr/local/www/firewall_nat_1to1_edit.php:171
#: usr/local/www/firewall_rules_edit.php:401
-#: usr/local/www/firewall_nat_edit.php:252
+#: usr/local/www/firewall_rules_edit.php:404
+#: usr/local/www/firewall_nat_edit.php:257
+#: usr/local/www/firewall_rules_edit.php:410
+#: usr/local/www/firewall_nat_edit.php:262
+#: usr/local/www/firewall_nat_1to1_edit.php:171
#, php-format
msgid "%s is not a valid destination IP address or alias."
msgstr ""
@@ -12585,16 +15421,21 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:172
#: usr/local/www/firewall_rules_edit.php:405
#: usr/local/www/firewall_nat_edit.php:255
-#: usr/local/www/firewall_nat_1to1_edit.php:174
-#: usr/local/www/firewall_nat_out_edit.php:172
#: usr/local/www/firewall_rules_edit.php:404
-#: usr/local/www/firewall_nat_edit.php:255
+#: usr/local/www/firewall_rules_edit.php:407
+#: usr/local/www/firewall_nat_edit.php:260
+#: usr/local/www/firewall_nat_out_edit.php:176
+#: usr/local/www/firewall_rules_edit.php:413
+#: usr/local/www/firewall_nat_edit.php:265
+#: usr/local/www/firewall_nat_1to1_edit.php:174
+#: usr/local/www/firewall_nat_out_edit.php:182
msgid "A valid destination bit count must be specified."
msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:270
#: usr/local/www/firewall_nat_1to1_edit.php:277
#: usr/local/www/firewall_nat_1to1_edit.php:275
+#: usr/local/www/firewall_nat_1to1_edit.php:275
msgid "Edit NAT 1:1 entry"
msgstr ""
@@ -12627,8 +15468,6 @@ msgstr ""
#: usr/local/www/system_routes_edit.php:300
#: usr/local/www/firewall_nat_1to1_edit.php:278
#: usr/local/www/firewall_nat_npt_edit.php:163
-#: usr/local/www/firewall_rules_edit.php:712
-#: usr/local/www/system_usermanager.php:467
#: usr/local/www/system_usermanager.php:788
#: usr/local/www/interfaces_ppps_edit.php:604
#: usr/local/www/vpn_openvpn_csc.php:313 usr/local/www/vpn_openvpn_csc.php:671
@@ -12639,6 +15478,31 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:399
#: usr/local/www/vpn_openvpn_client.php:918
#: usr/local/www/vpn_ipsec_phase1.php:511
+#: usr/local/www/vpn_openvpn_client.php:417
+#: usr/local/www/vpn_openvpn_client.php:937
+#: usr/local/www/firewall_rules_edit.php:715
+#: usr/local/www/interfaces_ppps_edit.php:610
+#: usr/local/www/firewall_nat_edit.php:461
+#: usr/local/www/vpn_ipsec_phase1.php:532
+#: usr/local/www/vpn_openvpn_server.php:721
+#: usr/local/www/vpn_openvpn_server.php:1683
+#: usr/local/www/vpn_ipsec_phase2.php:507 usr/local/www/interfaces.php:2021
+#: usr/local/www/vpn_openvpn_client.php:417
+#: usr/local/www/vpn_openvpn_client.php:937
+#: usr/local/www/firewall_rules_edit.php:727
+#: usr/local/www/interfaces_ppps_edit.php:610
+#: usr/local/www/vpn_openvpn_csc.php:313 usr/local/www/vpn_openvpn_csc.php:671
+#: usr/local/www/firewall_nat_edit.php:473
+#: usr/local/www/system_routes_edit.php:323
+#: usr/local/www/firewall_nat_npt_edit.php:163
+#: usr/local/www/firewall_nat_1to1_edit.php:278
+#: usr/local/www/vpn_ipsec_phase1.php:532
+#: usr/local/www/system_usermanager.php:467
+#: usr/local/www/system_usermanager.php:788
+#: usr/local/www/vpn_openvpn_server.php:721
+#: usr/local/www/vpn_openvpn_server.php:1683
+#: usr/local/www/vpn_ipsec_phase2.php:507 usr/local/www/interfaces.php:2067
+#: etc/inc/service-utils.inc:437
msgid "Disabled"
msgstr ""
@@ -12652,8 +15516,13 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:470
#: usr/local/www/firewall_nat_1to1_edit.php:281
#: usr/local/www/firewall_nat_npt_edit.php:166
-#: usr/local/www/firewall_rules_edit.php:715
#: usr/local/www/firewall_nat_edit.php:469
+#: usr/local/www/firewall_rules_edit.php:718
+#: usr/local/www/firewall_nat_edit.php:464
+#: usr/local/www/firewall_rules_edit.php:730
+#: usr/local/www/firewall_nat_edit.php:476
+#: usr/local/www/firewall_nat_npt_edit.php:166
+#: usr/local/www/firewall_nat_1to1_edit.php:281
msgid "Disable this rule"
msgstr ""
@@ -12667,8 +15536,13 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:471
#: usr/local/www/firewall_nat_1to1_edit.php:282
#: usr/local/www/firewall_nat_npt_edit.php:167
-#: usr/local/www/firewall_rules_edit.php:716
#: usr/local/www/firewall_nat_edit.php:470
+#: usr/local/www/firewall_rules_edit.php:719
+#: usr/local/www/firewall_nat_edit.php:465
+#: usr/local/www/firewall_rules_edit.php:731
+#: usr/local/www/firewall_nat_edit.php:477
+#: usr/local/www/firewall_nat_npt_edit.php:167
+#: usr/local/www/firewall_nat_1to1_edit.php:282
msgid "Set this option to disable this rule without removing it from the list."
msgstr ""
@@ -12678,6 +15552,8 @@ msgstr ""
#: usr/local/www/firewall_nat_npt_edit.php:207
#: usr/local/www/firewall_nat_1to1_edit.php:320
#: usr/local/www/firewall_nat_npt_edit.php:206
+#: usr/local/www/firewall_nat_npt_edit.php:206
+#: usr/local/www/firewall_nat_1to1_edit.php:320
msgid "Choose which interface this rule applies to"
msgstr ""
@@ -12687,18 +15563,22 @@ msgstr ""
#: usr/local/www/firewall_nat_npt_edit.php:208
#: usr/local/www/firewall_nat_1to1_edit.php:321
#: usr/local/www/firewall_nat_npt_edit.php:207
+#: usr/local/www/firewall_nat_npt_edit.php:207
+#: usr/local/www/firewall_nat_1to1_edit.php:321
msgid "Hint: in most cases, you'll want to use WAN here"
msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:319
#: usr/local/www/firewall_nat_1to1_edit.php:326
#: usr/local/www/firewall_nat_1to1_edit.php:324
+#: usr/local/www/firewall_nat_1to1_edit.php:324
msgid "External subnet IP"
msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:323
#: usr/local/www/firewall_nat_1to1_edit.php:330
#: usr/local/www/firewall_nat_1to1_edit.php:328
+#: usr/local/www/firewall_nat_1to1_edit.php:328
msgid ""
"Enter the external (usually on a WAN) subnet's starting address for the 1:1 "
"mapping. The subnet mask from the internal address below will be applied to "
@@ -12708,6 +15588,7 @@ msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:324
#: usr/local/www/firewall_nat_1to1_edit.php:331
#: usr/local/www/firewall_nat_1to1_edit.php:329
+#: usr/local/www/firewall_nat_1to1_edit.php:329
msgid ""
"Hint: this is generally an address owned by the router itself on the "
"selected interface."
@@ -12735,11 +15616,22 @@ msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:391
#: usr/local/www/firewall_nat_npt_edit.php:213
#: usr/local/www/firewall_nat_npt_edit.php:241
-#: usr/local/www/firewall_nat_out_edit.php:514
-#: usr/local/www/firewall_rules_edit.php:893
-#: usr/local/www/firewall_rules_edit.php:986
#: usr/local/www/firewall_nat_edit.php:544
#: usr/local/www/firewall_nat_edit.php:633
+#: usr/local/www/firewall_rules_edit.php:896
+#: usr/local/www/firewall_rules_edit.php:995
+#: usr/local/www/firewall_nat_edit.php:539
+#: usr/local/www/firewall_nat_edit.php:628
+#: usr/local/www/firewall_nat_out_edit.php:518
+#: usr/local/www/firewall_rules_edit.php:908
+#: usr/local/www/firewall_rules_edit.php:1008
+#: usr/local/www/firewall_nat_edit.php:551
+#: usr/local/www/firewall_nat_edit.php:640
+#: usr/local/www/firewall_nat_npt_edit.php:213
+#: usr/local/www/firewall_nat_npt_edit.php:241
+#: usr/local/www/firewall_nat_1to1_edit.php:336
+#: usr/local/www/firewall_nat_1to1_edit.php:391
+#: usr/local/www/firewall_nat_out_edit.php:530
msgid "not"
msgstr ""
@@ -12765,11 +15657,22 @@ msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:393
#: usr/local/www/firewall_nat_npt_edit.php:215
#: usr/local/www/firewall_nat_npt_edit.php:243
-#: usr/local/www/firewall_nat_out_edit.php:515
-#: usr/local/www/firewall_rules_edit.php:895
-#: usr/local/www/firewall_rules_edit.php:988
#: usr/local/www/firewall_nat_edit.php:546
#: usr/local/www/firewall_nat_edit.php:635
+#: usr/local/www/firewall_rules_edit.php:898
+#: usr/local/www/firewall_rules_edit.php:997
+#: usr/local/www/firewall_nat_edit.php:541
+#: usr/local/www/firewall_nat_edit.php:630
+#: usr/local/www/firewall_nat_out_edit.php:519
+#: usr/local/www/firewall_rules_edit.php:910
+#: usr/local/www/firewall_rules_edit.php:1010
+#: usr/local/www/firewall_nat_edit.php:553
+#: usr/local/www/firewall_nat_edit.php:642
+#: usr/local/www/firewall_nat_npt_edit.php:215
+#: usr/local/www/firewall_nat_npt_edit.php:243
+#: usr/local/www/firewall_nat_1to1_edit.php:338
+#: usr/local/www/firewall_nat_1to1_edit.php:393
+#: usr/local/www/firewall_nat_out_edit.php:531
msgid "Use this option to invert the sense of the match."
msgstr ""
@@ -12818,18 +15721,6 @@ msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:403
#: usr/local/www/services_captiveportal_ip.php:173
#: usr/local/www/services_captiveportal_ip.php:180
-#: usr/local/www/firewall_nat_out_edit.php:488
-#: usr/local/www/firewall_nat_out_edit.php:522
-#: usr/local/www/firewall_nat_out_edit.php:582
-#: usr/local/www/firewall_rules_edit.php:862
-#: usr/local/www/firewall_rules_edit.php:905
-#: usr/local/www/firewall_rules_edit.php:956
-#: usr/local/www/firewall_rules_edit.php:969
-#: usr/local/www/firewall_rules_edit.php:979
-#: usr/local/www/firewall_rules_edit.php:998
-#: usr/local/www/firewall_rules_edit.php:1048
-#: usr/local/www/firewall_rules_edit.php:1061
-#: usr/local/www/firewall_rules_edit.php:1125
#: usr/local/www/services_captiveportal_hostname.php:174
#: usr/local/www/services_captiveportal_hostname.php:181
#: usr/local/www/firewall_rules.php:126
@@ -12837,12 +15728,50 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:603
#: usr/local/www/firewall_nat_edit.php:616
#: usr/local/www/firewall_nat_edit.php:645
+#: usr/local/www/firewall_rules_edit.php:865
+#: usr/local/www/firewall_rules_edit.php:908
+#: usr/local/www/firewall_rules_edit.php:965
+#: usr/local/www/firewall_rules_edit.php:978
+#: usr/local/www/firewall_rules_edit.php:988
+#: usr/local/www/firewall_rules_edit.php:1007
+#: usr/local/www/firewall_rules_edit.php:1063
+#: usr/local/www/firewall_rules_edit.php:1076
+#: usr/local/www/firewall_rules_edit.php:1140
+#: usr/local/www/firewall_nat_edit.php:551
+#: usr/local/www/firewall_nat_edit.php:598
+#: usr/local/www/firewall_nat_edit.php:611
+#: usr/local/www/firewall_nat_edit.php:640
+#: usr/local/www/firewall_nat_out_edit.php:492
+#: usr/local/www/firewall_nat_out_edit.php:526
+#: usr/local/www/firewall_rules_edit.php:877
+#: usr/local/www/firewall_rules_edit.php:920
+#: usr/local/www/firewall_rules_edit.php:978
+#: usr/local/www/firewall_rules_edit.php:991
+#: usr/local/www/firewall_rules_edit.php:1001
+#: usr/local/www/firewall_rules_edit.php:1020
+#: usr/local/www/firewall_rules_edit.php:1076
+#: usr/local/www/firewall_rules_edit.php:1089
+#: usr/local/www/firewall_rules_edit.php:1153
+#: usr/local/www/services_captiveportal_ip.php:173
+#: usr/local/www/services_captiveportal_ip.php:180
+#: usr/local/www/firewall_nat_edit.php:563
+#: usr/local/www/firewall_nat_edit.php:610
+#: usr/local/www/firewall_nat_edit.php:623
+#: usr/local/www/firewall_nat_edit.php:652
+#: usr/local/www/services_captiveportal_hostname.php:174
+#: usr/local/www/services_captiveportal_hostname.php:181
+#: usr/local/www/firewall_rules.php:126
+#: usr/local/www/firewall_nat_1to1_edit.php:348
+#: usr/local/www/firewall_nat_1to1_edit.php:403
+#: usr/local/www/firewall_nat_out_edit.php:504
+#: usr/local/www/firewall_nat_out_edit.php:538
msgid "any"
msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:344
#: usr/local/www/firewall_nat_1to1_edit.php:351
#: usr/local/www/firewall_nat_1to1_edit.php:349
+#: usr/local/www/firewall_nat_1to1_edit.php:349
msgid "Single host"
msgstr ""
@@ -12860,10 +15789,18 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:650
#: usr/local/www/firewall_nat_1to1_edit.php:352
#: usr/local/www/firewall_nat_1to1_edit.php:407
-#: usr/local/www/firewall_rules_edit.php:909
-#: usr/local/www/firewall_rules_edit.php:1002
#: usr/local/www/firewall_nat_edit.php:560
#: usr/local/www/firewall_nat_edit.php:649
+#: usr/local/www/firewall_rules_edit.php:918
+#: usr/local/www/firewall_rules_edit.php:1017
+#: usr/local/www/firewall_nat_edit.php:555
+#: usr/local/www/firewall_nat_edit.php:644
+#: usr/local/www/firewall_rules_edit.php:930
+#: usr/local/www/firewall_rules_edit.php:1030
+#: usr/local/www/firewall_nat_edit.php:567
+#: usr/local/www/firewall_nat_edit.php:656
+#: usr/local/www/firewall_nat_1to1_edit.php:352
+#: usr/local/www/firewall_nat_1to1_edit.php:407
msgid "PPTP clients"
msgstr ""
@@ -12881,10 +15818,18 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:653
#: usr/local/www/firewall_nat_1to1_edit.php:355
#: usr/local/www/firewall_nat_1to1_edit.php:410
-#: usr/local/www/firewall_rules_edit.php:912
-#: usr/local/www/firewall_rules_edit.php:1005
#: usr/local/www/firewall_nat_edit.php:563
#: usr/local/www/firewall_nat_edit.php:652
+#: usr/local/www/firewall_rules_edit.php:921
+#: usr/local/www/firewall_rules_edit.php:1020
+#: usr/local/www/firewall_nat_edit.php:558
+#: usr/local/www/firewall_nat_edit.php:647
+#: usr/local/www/firewall_rules_edit.php:933
+#: usr/local/www/firewall_rules_edit.php:1033
+#: usr/local/www/firewall_nat_edit.php:570
+#: usr/local/www/firewall_nat_edit.php:659
+#: usr/local/www/firewall_nat_1to1_edit.php:355
+#: usr/local/www/firewall_nat_1to1_edit.php:410
msgid "PPPoE clients"
msgstr ""
@@ -12902,10 +15847,18 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:656
#: usr/local/www/firewall_nat_1to1_edit.php:358
#: usr/local/www/firewall_nat_1to1_edit.php:413
-#: usr/local/www/firewall_rules_edit.php:915
-#: usr/local/www/firewall_rules_edit.php:1008
#: usr/local/www/firewall_nat_edit.php:566
#: usr/local/www/firewall_nat_edit.php:655
+#: usr/local/www/firewall_rules_edit.php:924
+#: usr/local/www/firewall_rules_edit.php:1023
+#: usr/local/www/firewall_nat_edit.php:561
+#: usr/local/www/firewall_nat_edit.php:650
+#: usr/local/www/firewall_rules_edit.php:936
+#: usr/local/www/firewall_rules_edit.php:1036
+#: usr/local/www/firewall_nat_edit.php:573
+#: usr/local/www/firewall_nat_edit.php:662
+#: usr/local/www/firewall_nat_1to1_edit.php:358
+#: usr/local/www/firewall_nat_1to1_edit.php:413
msgid "L2TP clients"
msgstr ""
@@ -12921,9 +15874,16 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:661
#: usr/local/www/firewall_nat_1to1_edit.php:363
#: usr/local/www/firewall_nat_1to1_edit.php:418
-#: usr/local/www/firewall_rules_edit.php:1013
#: usr/local/www/firewall_nat_edit.php:571
#: usr/local/www/firewall_nat_edit.php:660
+#: usr/local/www/firewall_rules_edit.php:1028
+#: usr/local/www/firewall_nat_edit.php:566
+#: usr/local/www/firewall_nat_edit.php:655
+#: usr/local/www/firewall_rules_edit.php:1041
+#: usr/local/www/firewall_nat_edit.php:578
+#: usr/local/www/firewall_nat_edit.php:667
+#: usr/local/www/firewall_nat_1to1_edit.php:363
+#: usr/local/www/firewall_nat_1to1_edit.php:418
msgid "subnet"
msgstr ""
@@ -12941,16 +15901,25 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:663
#: usr/local/www/firewall_nat_1to1_edit.php:365
#: usr/local/www/firewall_nat_1to1_edit.php:420
-#: usr/local/www/firewall_rules_edit.php:922
-#: usr/local/www/firewall_rules_edit.php:1015
#: usr/local/www/firewall_nat_edit.php:573
#: usr/local/www/firewall_nat_edit.php:662
+#: usr/local/www/firewall_rules_edit.php:931
+#: usr/local/www/firewall_rules_edit.php:1030
+#: usr/local/www/firewall_nat_edit.php:568
+#: usr/local/www/firewall_nat_edit.php:657
+#: usr/local/www/firewall_rules_edit.php:943
+#: usr/local/www/firewall_rules_edit.php:1043
+#: usr/local/www/firewall_nat_edit.php:580
+#: usr/local/www/firewall_nat_edit.php:669
+#: usr/local/www/firewall_nat_1to1_edit.php:365
+#: usr/local/www/firewall_nat_1to1_edit.php:420
msgid "address"
msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:379
#: usr/local/www/firewall_nat_1to1_edit.php:386
#: usr/local/www/firewall_nat_1to1_edit.php:384
+#: usr/local/www/firewall_nat_1to1_edit.php:384
msgid ""
"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."
@@ -12967,16 +15936,24 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:558
#: usr/local/www/firewall_nat_edit.php:647
#: usr/local/www/firewall_nat_1to1_edit.php:404
-#: usr/local/www/firewall_rules_edit.php:906
-#: usr/local/www/firewall_rules_edit.php:999
#: usr/local/www/firewall_nat_edit.php:557
#: usr/local/www/firewall_nat_edit.php:646
+#: usr/local/www/firewall_rules_edit.php:915
+#: usr/local/www/firewall_rules_edit.php:1014
+#: usr/local/www/firewall_nat_edit.php:552
+#: usr/local/www/firewall_nat_edit.php:641
+#: usr/local/www/firewall_rules_edit.php:927
+#: usr/local/www/firewall_rules_edit.php:1027
+#: usr/local/www/firewall_nat_edit.php:564
+#: usr/local/www/firewall_nat_edit.php:653
+#: usr/local/www/firewall_nat_1to1_edit.php:404
msgid "Single host or alias"
msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:436
#: usr/local/www/firewall_nat_1to1_edit.php:443
#: usr/local/www/firewall_nat_1to1_edit.php:441
+#: usr/local/www/firewall_nat_1to1_edit.php:441
msgid ""
"The 1:1 mapping will only be used for connections to or from the specified "
"destination."
@@ -12985,6 +15962,7 @@ msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:437
#: usr/local/www/firewall_nat_1to1_edit.php:444
#: usr/local/www/firewall_nat_1to1_edit.php:442
+#: usr/local/www/firewall_nat_1to1_edit.php:442
msgid "Hint: this is usually 'any'."
msgstr ""
@@ -12994,6 +15972,9 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:790
#: usr/local/www/firewall_nat_1to1_edit.php:452
#: usr/local/www/firewall_nat_edit.php:789
+#: usr/local/www/firewall_nat_edit.php:784
+#: usr/local/www/firewall_nat_edit.php:796
+#: usr/local/www/firewall_nat_1to1_edit.php:452
msgid "NAT reflection"
msgstr ""
@@ -13001,6 +15982,7 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:786
#: usr/local/www/firewall_nat_1to1_edit.php:457
#: usr/local/www/firewall_nat_1to1_edit.php:455
+#: usr/local/www/firewall_nat_1to1_edit.php:455
msgid "use system default"
msgstr ""
@@ -13008,6 +15990,7 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:787
#: usr/local/www/firewall_nat_1to1_edit.php:458
#: usr/local/www/firewall_nat_1to1_edit.php:456
+#: usr/local/www/firewall_nat_1to1_edit.php:456
msgid "enable"
msgstr ""
@@ -13015,11 +15998,13 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:788
#: usr/local/www/firewall_nat_1to1_edit.php:459
#: usr/local/www/firewall_nat_1to1_edit.php:457
+#: usr/local/www/firewall_nat_1to1_edit.php:457
msgid "disable"
msgstr ""
#: usr/local/www/firewall_nat_edit.php:109
-#: usr/local/www/firewall_nat_edit.php:109
+#: usr/local/www/firewall_nat_edit.php:114
+#: usr/local/www/firewall_nat_edit.php:119
#, php-format
msgid ""
"Invalid characters detected %s. Please remove invalid characters and save "
@@ -13027,26 +16012,32 @@ msgid ""
msgstr ""
#: usr/local/www/firewall_nat_edit.php:182
-#: usr/local/www/firewall_nat_edit.php:182
+#: usr/local/www/firewall_nat_edit.php:187
+#: usr/local/www/firewall_nat_edit.php:192
msgid "Destination port from"
msgstr ""
#: usr/local/www/firewall_nat_edit.php:182
-#: usr/local/www/firewall_nat_edit.php:182
+#: usr/local/www/firewall_nat_edit.php:187
+#: usr/local/www/firewall_nat_edit.php:192
msgid "Destination port to"
msgstr ""
#: usr/local/www/firewall_nat_edit.php:198
#: usr/local/www/firewall_nat_edit.php:740
#: usr/local/www/firewall_nat_edit.php:747
-#: usr/local/www/firewall_nat_edit.php:198
#: usr/local/www/firewall_nat_edit.php:746
+#: usr/local/www/firewall_nat_edit.php:203
+#: usr/local/www/firewall_nat_edit.php:741
+#: usr/local/www/firewall_nat_edit.php:208
+#: usr/local/www/firewall_nat_edit.php:753
msgid "Redirect target IP"
msgstr ""
#: usr/local/www/firewall_nat_edit.php:213
#: usr/local/www/firewall_nat_edit.php:220
-#: usr/local/www/firewall_nat_edit.php:220
+#: usr/local/www/firewall_nat_edit.php:225
+#: usr/local/www/firewall_nat_edit.php:230
#, php-format
msgid "\"%s\" is not a valid redirect target IP address or host alias."
msgstr ""
@@ -13056,7 +16047,10 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:349
#: usr/local/www/firewall_nat_edit.php:224
#: usr/local/www/firewall_rules_edit.php:348
-#: usr/local/www/firewall_nat_edit.php:224
+#: usr/local/www/firewall_rules_edit.php:351
+#: usr/local/www/firewall_nat_edit.php:229
+#: usr/local/www/firewall_rules_edit.php:357
+#: usr/local/www/firewall_nat_edit.php:234
#, php-format
msgid ""
"%s is not a valid start source port. It must be a port alias or integer "
@@ -13065,7 +16059,8 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:219
#: usr/local/www/firewall_nat_edit.php:226
-#: usr/local/www/firewall_nat_edit.php:226
+#: usr/local/www/firewall_nat_edit.php:231
+#: usr/local/www/firewall_nat_edit.php:236
#, php-format
msgid ""
"%s is not a valid end source port. It must be a port alias or integer "
@@ -13077,7 +16072,10 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:353
#: usr/local/www/firewall_nat_edit.php:228
#: usr/local/www/firewall_rules_edit.php:352
-#: usr/local/www/firewall_nat_edit.php:228
+#: usr/local/www/firewall_rules_edit.php:355
+#: usr/local/www/firewall_nat_edit.php:233
+#: usr/local/www/firewall_rules_edit.php:361
+#: usr/local/www/firewall_nat_edit.php:238
#, php-format
msgid ""
"%s is not a valid start destination port. It must be a port alias or integer "
@@ -13089,7 +16087,10 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:355
#: usr/local/www/firewall_nat_edit.php:230
#: usr/local/www/firewall_rules_edit.php:354
-#: usr/local/www/firewall_nat_edit.php:230
+#: usr/local/www/firewall_rules_edit.php:357
+#: usr/local/www/firewall_nat_edit.php:235
+#: usr/local/www/firewall_rules_edit.php:363
+#: usr/local/www/firewall_nat_edit.php:240
#, php-format
msgid ""
"%s is not a valid end destination port. It must be a port alias or integer "
@@ -13108,7 +16109,10 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:394
#: usr/local/www/firewall_nat_edit.php:244
#: usr/local/www/firewall_rules_edit.php:393
-#: usr/local/www/firewall_nat_edit.php:244
+#: usr/local/www/firewall_rules_edit.php:396
+#: usr/local/www/firewall_nat_edit.php:249
+#: usr/local/www/firewall_rules_edit.php:402
+#: usr/local/www/firewall_nat_edit.php:254
#, php-format
msgid "%s is not a valid source IP address or alias."
msgstr ""
@@ -13119,39 +16123,51 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:164
#: usr/local/www/firewall_rules_edit.php:397
#: usr/local/www/firewall_nat_edit.php:247
-#: usr/local/www/firewall_nat_out_edit.php:164
#: usr/local/www/firewall_rules_edit.php:396
-#: usr/local/www/firewall_nat_edit.php:247
+#: usr/local/www/firewall_rules_edit.php:399
+#: usr/local/www/firewall_nat_edit.php:252
+#: usr/local/www/firewall_nat_out_edit.php:168
+#: usr/local/www/firewall_rules_edit.php:405
+#: usr/local/www/firewall_nat_edit.php:257
+#: usr/local/www/firewall_nat_out_edit.php:174
msgid "A valid source bit count must be specified."
msgstr ""
#: usr/local/www/firewall_nat_edit.php:267
#: usr/local/www/firewall_nat_edit.php:274
-#: usr/local/www/firewall_nat_edit.php:274
+#: usr/local/www/firewall_nat_edit.php:279
+#: usr/local/www/firewall_nat_edit.php:284
msgid "The target port range must be an integer between 1 and 65535."
msgstr ""
#: usr/local/www/firewall_nat_edit.php:288
#: usr/local/www/firewall_nat_edit.php:295
-#: usr/local/www/firewall_nat_edit.php:295
+#: usr/local/www/firewall_nat_edit.php:300
+#: usr/local/www/firewall_nat_edit.php:305
msgid "The destination port range overlaps with an existing entry."
msgstr ""
#: usr/local/www/firewall_nat_edit.php:453
#: usr/local/www/firewall_nat_edit.php:460
#: usr/local/www/firewall_nat_edit.php:459
+#: usr/local/www/firewall_nat_edit.php:454
+#: usr/local/www/firewall_nat_edit.php:466
msgid "Edit Redirect entry"
msgstr ""
#: usr/local/www/firewall_nat_edit.php:468
#: usr/local/www/firewall_nat_edit.php:475
#: usr/local/www/firewall_nat_edit.php:474
+#: usr/local/www/firewall_nat_edit.php:469
+#: usr/local/www/firewall_nat_edit.php:481
msgid "No RDR (NOT)"
msgstr ""
#: usr/local/www/firewall_nat_edit.php:471
#: usr/local/www/firewall_nat_edit.php:478
#: usr/local/www/firewall_nat_edit.php:477
+#: usr/local/www/firewall_nat_edit.php:472
+#: usr/local/www/firewall_nat_edit.php:484
msgid ""
"Enabling this option will disable redirection for traffic matching this rule."
msgstr ""
@@ -13159,6 +16175,8 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:472
#: usr/local/www/firewall_nat_edit.php:479
#: usr/local/www/firewall_nat_edit.php:478
+#: usr/local/www/firewall_nat_edit.php:473
+#: usr/local/www/firewall_nat_edit.php:485
msgid ""
"Hint: this option is rarely needed, don't use this unless you know what "
"you're doing."
@@ -13168,8 +16186,11 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:452
#: usr/local/www/firewall_nat_out_edit.php:465
#: usr/local/www/firewall_nat_edit.php:521
-#: usr/local/www/firewall_nat_out_edit.php:465
#: usr/local/www/firewall_nat_edit.php:520
+#: usr/local/www/firewall_nat_edit.php:515
+#: usr/local/www/firewall_nat_out_edit.php:469
+#: usr/local/www/firewall_nat_edit.php:527
+#: usr/local/www/firewall_nat_out_edit.php:481
msgid "Choose which interface this rule applies to."
msgstr ""
@@ -13177,8 +16198,11 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:453
#: usr/local/www/firewall_nat_out_edit.php:466
#: usr/local/www/firewall_nat_edit.php:522
-#: usr/local/www/firewall_nat_out_edit.php:466
#: usr/local/www/firewall_nat_edit.php:521
+#: usr/local/www/firewall_nat_edit.php:516
+#: usr/local/www/firewall_nat_out_edit.php:470
+#: usr/local/www/firewall_nat_edit.php:528
+#: usr/local/www/firewall_nat_out_edit.php:482
msgid "Hint: in most cases, you'll want to use WAN here."
msgstr ""
@@ -13186,14 +16210,19 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:818
#: usr/local/www/firewall_rules_edit.php:853
#: usr/local/www/firewall_nat_edit.php:531
-#: usr/local/www/firewall_rules_edit.php:853
#: usr/local/www/firewall_nat_edit.php:530
+#: usr/local/www/firewall_rules_edit.php:856
+#: usr/local/www/firewall_nat_edit.php:525
+#: usr/local/www/firewall_rules_edit.php:868
+#: usr/local/www/firewall_nat_edit.php:537
msgid "Choose which IP protocol this rule should match."
msgstr ""
#: usr/local/www/firewall_nat_edit.php:526
#: usr/local/www/firewall_nat_edit.php:533
#: usr/local/www/firewall_nat_edit.php:532
+#: usr/local/www/firewall_nat_edit.php:527
+#: usr/local/www/firewall_nat_edit.php:539
msgid "Hint: in most cases, you should specify"
msgstr ""
@@ -13206,6 +16235,11 @@ msgstr ""
#: usr/local/www/load_balancer_relay_action_edit.php:184
#: usr/local/www/load_balancer_monitor_edit.php:197
#: usr/local/www/firewall_nat_edit.php:532
+#: usr/local/www/firewall_nat_edit.php:527
+#: usr/local/www/load_balancer_relay_protocol_edit.php:142
+#: usr/local/www/firewall_nat_edit.php:539
+#: usr/local/www/load_balancer_relay_action_edit.php:184
+#: usr/local/www/load_balancer_monitor_edit.php:197
msgid "TCP"
msgstr ""
@@ -13214,16 +16248,22 @@ msgstr ""
#: usr/local/www/diag_ipsec_sad.php:135 usr/local/www/diag_ipsec_spd.php:144
#: usr/local/www/firewall_rules_edit.php:853
#: usr/local/www/firewall_nat_edit.php:533
-#: usr/local/www/firewall_rules_edit.php:853
#: usr/local/www/diag_ipsec_sad.php:136
#: usr/local/www/firewall_nat_edit.php:532
#: usr/local/www/diag_ipsec_spd.php:145
+#: usr/local/www/firewall_rules_edit.php:856
+#: usr/local/www/firewall_nat_edit.php:527
+#: usr/local/www/firewall_rules_edit.php:868
+#: usr/local/www/firewall_nat_edit.php:539
+#: usr/local/www/diag_ipsec_spd.php:145 usr/local/www/diag_ipsec_sad.php:136
msgid "here."
msgstr ""
#: usr/local/www/firewall_nat_edit.php:531
#: usr/local/www/firewall_nat_edit.php:538
#: usr/local/www/firewall_nat_edit.php:537
+#: usr/local/www/firewall_nat_edit.php:532
+#: usr/local/www/firewall_nat_edit.php:544
msgid "Show source address and port range"
msgstr ""
@@ -13231,8 +16271,11 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:913
#: usr/local/www/firewall_rules_edit.php:948
#: usr/local/www/firewall_nat_edit.php:596
-#: usr/local/www/firewall_rules_edit.php:948
#: usr/local/www/firewall_nat_edit.php:595
+#: usr/local/www/firewall_rules_edit.php:957
+#: usr/local/www/firewall_nat_edit.php:590
+#: usr/local/www/firewall_rules_edit.php:970
+#: usr/local/www/firewall_nat_edit.php:602
msgid "Source port range"
msgstr ""
@@ -13244,10 +16287,16 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1044
#: usr/local/www/firewall_nat_edit.php:600
#: usr/local/www/firewall_nat_edit.php:712
-#: usr/local/www/firewall_rules_edit.php:952
-#: usr/local/www/firewall_rules_edit.php:1044
#: usr/local/www/firewall_nat_edit.php:599
#: usr/local/www/firewall_nat_edit.php:711
+#: usr/local/www/firewall_rules_edit.php:961
+#: usr/local/www/firewall_rules_edit.php:1059
+#: usr/local/www/firewall_nat_edit.php:594
+#: usr/local/www/firewall_nat_edit.php:706
+#: usr/local/www/firewall_rules_edit.php:974
+#: usr/local/www/firewall_rules_edit.php:1072
+#: usr/local/www/firewall_nat_edit.php:606
+#: usr/local/www/firewall_nat_edit.php:718
msgid "from:"
msgstr ""
@@ -13269,15 +16318,29 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:715
#: usr/local/www/firewall_nat_edit.php:728
#: usr/local/www/firewall_nat_edit.php:758
-#: usr/local/www/firewall_rules_edit.php:955
-#: usr/local/www/firewall_rules_edit.php:968
-#: usr/local/www/firewall_rules_edit.php:1047
-#: usr/local/www/firewall_rules_edit.php:1060
#: usr/local/www/firewall_nat_edit.php:602
#: usr/local/www/firewall_nat_edit.php:615
#: usr/local/www/firewall_nat_edit.php:714
#: usr/local/www/firewall_nat_edit.php:727
#: usr/local/www/firewall_nat_edit.php:757
+#: usr/local/www/firewall_rules_edit.php:964
+#: usr/local/www/firewall_rules_edit.php:977
+#: usr/local/www/firewall_rules_edit.php:1062
+#: usr/local/www/firewall_rules_edit.php:1075
+#: usr/local/www/firewall_nat_edit.php:597
+#: usr/local/www/firewall_nat_edit.php:610
+#: usr/local/www/firewall_nat_edit.php:709
+#: usr/local/www/firewall_nat_edit.php:722
+#: usr/local/www/firewall_nat_edit.php:752
+#: usr/local/www/firewall_rules_edit.php:977
+#: usr/local/www/firewall_rules_edit.php:990
+#: usr/local/www/firewall_rules_edit.php:1075
+#: usr/local/www/firewall_rules_edit.php:1088
+#: usr/local/www/firewall_nat_edit.php:609
+#: usr/local/www/firewall_nat_edit.php:622
+#: usr/local/www/firewall_nat_edit.php:721
+#: usr/local/www/firewall_nat_edit.php:734
+#: usr/local/www/firewall_nat_edit.php:764
msgid "other"
msgstr ""
@@ -13289,16 +16352,24 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1057
#: usr/local/www/firewall_nat_edit.php:613
#: usr/local/www/firewall_nat_edit.php:725
-#: usr/local/www/firewall_rules_edit.php:965
-#: usr/local/www/firewall_rules_edit.php:1057
#: usr/local/www/firewall_nat_edit.php:612
#: usr/local/www/firewall_nat_edit.php:724
+#: usr/local/www/firewall_rules_edit.php:974
+#: usr/local/www/firewall_rules_edit.php:1072
+#: usr/local/www/firewall_nat_edit.php:607
+#: usr/local/www/firewall_nat_edit.php:719
+#: usr/local/www/firewall_rules_edit.php:987
+#: usr/local/www/firewall_rules_edit.php:1085
+#: usr/local/www/firewall_nat_edit.php:619
+#: usr/local/www/firewall_nat_edit.php:731
msgid "to:"
msgstr ""
#: usr/local/www/firewall_nat_edit.php:620
#: usr/local/www/firewall_nat_edit.php:627
#: usr/local/www/firewall_nat_edit.php:626
+#: usr/local/www/firewall_nat_edit.php:621
+#: usr/local/www/firewall_nat_edit.php:633
msgid "Specify the source port or port range for this rule"
msgstr ""
@@ -13306,8 +16377,11 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:944
#: usr/local/www/firewall_rules_edit.php:979
#: usr/local/www/firewall_nat_edit.php:627
-#: usr/local/www/firewall_rules_edit.php:979
#: usr/local/www/firewall_nat_edit.php:626
+#: usr/local/www/firewall_rules_edit.php:988
+#: usr/local/www/firewall_nat_edit.php:621
+#: usr/local/www/firewall_rules_edit.php:1001
+#: usr/local/www/firewall_nat_edit.php:633
msgid "This is usually"
msgstr ""
@@ -13315,14 +16389,19 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:944
#: usr/local/www/firewall_rules_edit.php:979
#: usr/local/www/firewall_nat_edit.php:627
-#: usr/local/www/firewall_rules_edit.php:979
#: usr/local/www/firewall_nat_edit.php:626
+#: usr/local/www/firewall_rules_edit.php:988
+#: usr/local/www/firewall_nat_edit.php:621
+#: usr/local/www/firewall_rules_edit.php:1001
+#: usr/local/www/firewall_nat_edit.php:633
msgid "random"
msgstr ""
#: usr/local/www/firewall_nat_edit.php:620
#: usr/local/www/firewall_nat_edit.php:627
#: usr/local/www/firewall_nat_edit.php:626
+#: usr/local/www/firewall_nat_edit.php:621
+#: usr/local/www/firewall_nat_edit.php:633
msgid ""
"and almost never equal to the destination port range (and should usually be "
"'any')"
@@ -13336,10 +16415,16 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1074
#: usr/local/www/firewall_nat_edit.php:627
#: usr/local/www/firewall_nat_edit.php:742
-#: usr/local/www/firewall_rules_edit.php:979
-#: usr/local/www/firewall_rules_edit.php:1074
#: usr/local/www/firewall_nat_edit.php:626
#: usr/local/www/firewall_nat_edit.php:741
+#: usr/local/www/firewall_rules_edit.php:988
+#: usr/local/www/firewall_rules_edit.php:1089
+#: usr/local/www/firewall_nat_edit.php:621
+#: usr/local/www/firewall_nat_edit.php:736
+#: usr/local/www/firewall_rules_edit.php:1001
+#: usr/local/www/firewall_rules_edit.php:1102
+#: usr/local/www/firewall_nat_edit.php:633
+#: usr/local/www/firewall_nat_edit.php:748
msgid "Hint: you can leave the"
msgstr ""
@@ -13347,20 +16432,27 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:944
#: usr/local/www/firewall_rules_edit.php:979
#: usr/local/www/firewall_nat_edit.php:627
-#: usr/local/www/firewall_rules_edit.php:979
#: usr/local/www/firewall_nat_edit.php:626
+#: usr/local/www/firewall_rules_edit.php:988
+#: usr/local/www/firewall_nat_edit.php:621
+#: usr/local/www/firewall_rules_edit.php:1001
+#: usr/local/www/firewall_nat_edit.php:633
msgid "field empty if you only want to filter a single port."
msgstr ""
#: usr/local/www/firewall_nat_edit.php:701
#: usr/local/www/firewall_nat_edit.php:708
#: usr/local/www/firewall_nat_edit.php:707
+#: usr/local/www/firewall_nat_edit.php:702
+#: usr/local/www/firewall_nat_edit.php:714
msgid "Destination port range"
msgstr ""
#: usr/local/www/firewall_nat_edit.php:733
#: usr/local/www/firewall_nat_edit.php:740
#: usr/local/www/firewall_nat_edit.php:739
+#: usr/local/www/firewall_nat_edit.php:734
+#: usr/local/www/firewall_nat_edit.php:746
msgid ""
"Specify the port or port range for the destination of the packet for this "
"mapping."
@@ -13369,12 +16461,16 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:735
#: usr/local/www/firewall_nat_edit.php:742
#: usr/local/www/firewall_nat_edit.php:741
+#: usr/local/www/firewall_nat_edit.php:736
+#: usr/local/www/firewall_nat_edit.php:748
msgid "field empty if you only want to map a single port"
msgstr ""
#: usr/local/www/firewall_nat_edit.php:743
#: usr/local/www/firewall_nat_edit.php:750
#: usr/local/www/firewall_nat_edit.php:749
+#: usr/local/www/firewall_nat_edit.php:744
+#: usr/local/www/firewall_nat_edit.php:756
msgid ""
"Enter the internal IP address of the server on which you want to map the "
"ports."
@@ -13383,12 +16479,16 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:748
#: usr/local/www/firewall_nat_edit.php:755
#: usr/local/www/firewall_nat_edit.php:754
+#: usr/local/www/firewall_nat_edit.php:749
+#: usr/local/www/firewall_nat_edit.php:761
msgid "Redirect target port"
msgstr ""
#: usr/local/www/firewall_nat_edit.php:762
#: usr/local/www/firewall_nat_edit.php:769
#: usr/local/www/firewall_nat_edit.php:768
+#: usr/local/www/firewall_nat_edit.php:763
+#: usr/local/www/firewall_nat_edit.php:775
msgid ""
"Specify the port on the machine with the IP address entered above. In case "
"of a port range, specify the beginning port of the range (the end port will "
@@ -13398,6 +16498,8 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:766
#: usr/local/www/firewall_nat_edit.php:773
#: usr/local/www/firewall_nat_edit.php:772
+#: usr/local/www/firewall_nat_edit.php:767
+#: usr/local/www/firewall_nat_edit.php:779
msgid "Hint: this is usually identical to the 'from' port above"
msgstr ""
@@ -13407,9 +16509,13 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:642
#: usr/local/www/firewall_rules_edit.php:1273
#: usr/local/www/firewall_nat_edit.php:783
-#: usr/local/www/firewall_nat_out_edit.php:642
-#: usr/local/www/firewall_rules_edit.php:1273
#: usr/local/www/firewall_nat_edit.php:782
+#: usr/local/www/firewall_rules_edit.php:1288
+#: usr/local/www/firewall_nat_edit.php:777
+#: usr/local/www/firewall_nat_out_edit.php:644
+#: usr/local/www/firewall_rules_edit.php:1295
+#: usr/local/www/firewall_nat_edit.php:789
+#: usr/local/www/firewall_nat_out_edit.php:656
msgid "No XMLRPC Sync"
msgstr ""
@@ -13426,6 +16532,10 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:833
#: usr/local/www/firewall_nat_edit.php:801
#: usr/local/www/firewall_nat_edit.php:832
+#: usr/local/www/firewall_nat_edit.php:796
+#: usr/local/www/firewall_nat_edit.php:827
+#: usr/local/www/firewall_nat_edit.php:808
+#: usr/local/www/firewall_nat_edit.php:839
msgid "Filter rule association"
msgstr ""
@@ -13435,145 +16545,180 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:839
#: usr/local/www/firewall_nat_edit.php:805
#: usr/local/www/firewall_nat_edit.php:838
+#: usr/local/www/firewall_nat_edit.php:800
+#: usr/local/www/firewall_nat_edit.php:833
+#: usr/local/www/firewall_nat_edit.php:812
+#: usr/local/www/firewall_nat_edit.php:845
msgid "Pass"
msgstr ""
#: usr/local/www/firewall_nat_edit.php:808
#: usr/local/www/firewall_nat_edit.php:816
#: usr/local/www/firewall_nat_edit.php:815
+#: usr/local/www/firewall_nat_edit.php:810
+#: usr/local/www/firewall_nat_edit.php:822
msgid "View the filter rule"
msgstr ""
#: usr/local/www/firewall_nat_edit.php:816
#: usr/local/www/firewall_nat_edit.php:824
#: usr/local/www/firewall_nat_edit.php:823
+#: usr/local/www/firewall_nat_edit.php:818
+#: usr/local/www/firewall_nat_edit.php:830
msgid "Create new associated filter rule"
msgstr ""
#: usr/local/www/firewall_nat_edit.php:829
#: usr/local/www/firewall_nat_edit.php:837
#: usr/local/www/firewall_nat_edit.php:836
+#: usr/local/www/firewall_nat_edit.php:831
+#: usr/local/www/firewall_nat_edit.php:843
msgid "Add associated filter rule"
msgstr ""
#: usr/local/www/firewall_nat_edit.php:830
#: usr/local/www/firewall_nat_edit.php:838
#: usr/local/www/firewall_nat_edit.php:837
+#: usr/local/www/firewall_nat_edit.php:832
+#: usr/local/www/firewall_nat_edit.php:844
msgid "Add unassociated filter rule"
msgstr ""
#: usr/local/www/firewall_nat_out.php:111
-#: usr/local/www/firewall_nat_out.php:111
+#: usr/local/www/firewall_nat_out.php:112
#, php-format
msgid "Auto created rule for ISAKMP - %1$s to %2$s"
msgstr ""
#: usr/local/www/firewall_nat_out.php:121
-#: usr/local/www/firewall_nat_out.php:121
+#: usr/local/www/firewall_nat_out.php:123
#, php-format
msgid "Auto created rule for %1$s to %2$s"
msgstr ""
#: usr/local/www/firewall_nat_out.php:131
-#: usr/local/www/firewall_nat_out.php:131
+#: usr/local/www/firewall_nat_out.php:135
#, php-format
msgid "Auto created rule for localhost to %1$s"
msgstr ""
#: usr/local/www/firewall_nat_out.php:147
#: usr/local/www/firewall_nat_out.php:148
+#: usr/local/www/firewall_nat_out.php:152
msgid "Auto created rule for PPTP server"
msgstr ""
#: usr/local/www/firewall_nat_out.php:167
#: usr/local/www/firewall_nat_out.php:168
+#: usr/local/www/firewall_nat_out.php:173
msgid "Auto created rule for PPPoE server"
msgstr ""
#: usr/local/www/firewall_nat_out.php:187
#: usr/local/www/firewall_nat_out.php:188
+#: usr/local/www/firewall_nat_out.php:194
msgid "Auto created rule for L2TP server"
msgstr ""
#: usr/local/www/firewall_nat_out.php:201
#: usr/local/www/firewall_nat_out.php:202
+#: usr/local/www/firewall_nat_out.php:209
msgid "Auto created rule for OpenVPN server"
msgstr ""
#: usr/local/www/firewall_nat_out.php:212
#: usr/local/www/firewall_nat_out.php:213
+#: usr/local/www/firewall_nat_out.php:220
msgid "Default rules for each interface have been created."
msgstr ""
#: usr/local/www/firewall_nat_out.php:294
#: usr/local/www/firewall_nat_out.php:304
#: usr/local/www/firewall_nat_out.php:305
+#: usr/local/www/firewall_nat_out.php:312
msgid "The NAT configuration has been changed."
msgstr ""
#: usr/local/www/firewall_nat_out.php:310
#: usr/local/www/firewall_nat_out.php:320
#: usr/local/www/firewall_nat_out.php:321
+#: usr/local/www/firewall_nat_out.php:328
msgid "Mode:"
msgstr ""
#: usr/local/www/firewall_nat_out.php:313
#: usr/local/www/firewall_nat_out.php:323
#: usr/local/www/firewall_nat_out.php:324
+#: usr/local/www/firewall_nat_out.php:331
msgid "Automatic outbound NAT rule generation"
msgstr ""
#: usr/local/www/firewall_nat_out.php:313
#: usr/local/www/firewall_nat_out.php:323
#: usr/local/www/firewall_nat_out.php:324
+#: usr/local/www/firewall_nat_out.php:331
msgid "(IPsec passthrough included)"
msgstr ""
#: usr/local/www/firewall_nat_out.php:318
#: usr/local/www/firewall_nat_out.php:328
#: usr/local/www/firewall_nat_out.php:329
+#: usr/local/www/firewall_nat_out.php:336
msgid "Manual Outbound NAT rule generation"
msgstr ""
#: usr/local/www/firewall_nat_out.php:318
#: usr/local/www/firewall_nat_out.php:328
#: usr/local/www/firewall_nat_out.php:329
+#: usr/local/www/firewall_nat_out.php:336
msgid "(AON - Advanced Outbound NAT)"
msgstr ""
#: usr/local/www/firewall_nat_out.php:336
#: usr/local/www/firewall_nat_out.php:346
#: usr/local/www/firewall_nat_out.php:347
+#: usr/local/www/firewall_nat_out.php:354
msgid "Mappings:"
msgstr ""
#: usr/local/www/firewall_nat_out.php:343
#: usr/local/www/firewall_nat_out.php:353
-#: usr/local/www/firewall_nat_out.php:354
+#: usr/local/www/firewall_nat_out.php:354 usr/local/www/diag_testport.php:129
+#: usr/local/www/diag_system_pftop.php:160 usr/local/www/diag_testport.php:129
+#: usr/local/www/diag_logs_filter.php:167
+#: usr/local/www/diag_system_pftop.php:160
+#: usr/local/www/firewall_nat_out.php:361
msgid "Source Port"
msgstr ""
#: usr/local/www/firewall_nat_out.php:345
#: usr/local/www/firewall_nat_out.php:355
#: usr/local/www/firewall_nat_out.php:356
+#: usr/local/www/diag_system_pftop.php:153
+#: usr/local/www/diag_logs_filter.php:189
+#: usr/local/www/diag_system_pftop.php:153
+#: usr/local/www/firewall_nat_out.php:363
msgid "Destination Port"
msgstr ""
#: usr/local/www/firewall_nat_out.php:346
#: usr/local/www/firewall_nat_out.php:356
#: usr/local/www/firewall_nat_out.php:357
+#: usr/local/www/firewall_nat_out.php:364
msgid "NAT Address"
msgstr ""
#: usr/local/www/firewall_nat_out.php:347
#: usr/local/www/firewall_nat_out.php:357
#: usr/local/www/firewall_nat_out.php:358
+#: usr/local/www/firewall_nat_out.php:365
msgid "NAT Port"
msgstr ""
#: usr/local/www/firewall_nat_out.php:348
#: usr/local/www/firewall_nat_out.php:358
#: usr/local/www/firewall_nat_out.php:359
+#: usr/local/www/firewall_nat_out.php:366
msgid "Static Port"
msgstr ""
@@ -13583,24 +16728,33 @@ msgstr ""
#: usr/local/www/firewall_nat_out.php:461
#: usr/local/www/firewall_nat_out.php:365
#: usr/local/www/firewall_nat_out.php:462
+#: usr/local/www/firewall_nat_out.php:459
+#: usr/local/www/firewall_nat_out.php:372
+#: usr/local/www/firewall_nat_out.php:466
msgid "add new mapping"
msgstr ""
#: usr/local/www/firewall_nat_out.php:425
#: usr/local/www/firewall_nat_out.php:435
#: usr/local/www/firewall_nat_out.php:436
+#: usr/local/www/firewall_nat_out.php:433
+#: usr/local/www/firewall_nat_out.php:440
msgid "YES"
msgstr ""
#: usr/local/www/firewall_nat_out.php:427
#: usr/local/www/firewall_nat_out.php:437
#: usr/local/www/firewall_nat_out.php:438
+#: usr/local/www/firewall_nat_out.php:435
+#: usr/local/www/firewall_nat_out.php:442
msgid "NO"
msgstr ""
#: usr/local/www/firewall_nat_out.php:436
#: usr/local/www/firewall_nat_out.php:447
#: usr/local/www/firewall_nat_out.php:448
+#: usr/local/www/firewall_nat_out.php:445
+#: usr/local/www/firewall_nat_out.php:452
msgid "edit mapping"
msgstr ""
@@ -13612,19 +16766,26 @@ msgstr ""
#: usr/local/www/firewall_rules.php:772 usr/local/www/firewall_nat_out.php:447
#: usr/local/www/firewall_nat.php:322 usr/local/www/firewall_rules.php:422
#: usr/local/www/firewall_rules.php:451 usr/local/www/firewall_rules.php:479
-#: usr/local/www/firewall_rules.php:765
+#: usr/local/www/firewall_rules.php:765 usr/local/www/firewall_nat_out.php:444
+#: usr/local/www/firewall_nat.php:322 usr/local/www/firewall_nat_out.php:451
+#: usr/local/www/firewall_rules.php:421 usr/local/www/firewall_rules.php:450
+#: usr/local/www/firewall_rules.php:478 usr/local/www/firewall_rules.php:765
msgid "move selected rules before this rule"
msgstr ""
#: usr/local/www/firewall_nat_out.php:440 usr/local/www/firewall_nat.php:314
#: usr/local/www/firewall_nat_out.php:451
#: usr/local/www/firewall_nat_out.php:452 usr/local/www/firewall_nat.php:327
+#: usr/local/www/firewall_nat_out.php:449 usr/local/www/firewall_nat.php:327
+#: usr/local/www/firewall_nat_out.php:456
msgid "add a new nat based on this one"
msgstr ""
#: usr/local/www/firewall_nat_out.php:449
#: usr/local/www/firewall_nat_out.php:460
#: usr/local/www/firewall_nat_out.php:461
+#: usr/local/www/firewall_nat_out.php:458
+#: usr/local/www/firewall_nat_out.php:465
msgid "move selected mappings to end"
msgstr ""
@@ -13639,24 +16800,35 @@ msgstr ""
#: usr/local/www/firewall_nat.php:345 usr/local/www/firewall_nat.php:347
#: usr/local/www/firewall_rules.php:388 usr/local/www/firewall_rules.php:389
#: usr/local/www/firewall_rules.php:817 usr/local/www/firewall_rules.php:818
+#: usr/local/www/firewall_nat_out.php:462 usr/local/www/firewall_nat.php:214
+#: usr/local/www/firewall_nat.php:216 usr/local/www/firewall_nat.php:345
+#: usr/local/www/firewall_nat.php:347 usr/local/www/firewall_nat_out.php:469
+#: usr/local/www/firewall_rules.php:386 usr/local/www/firewall_rules.php:387
+#: usr/local/www/firewall_rules.php:819 usr/local/www/firewall_rules.php:820
msgid "delete selected rules"
msgstr ""
#: usr/local/www/firewall_nat_out.php:453
#: usr/local/www/firewall_nat_out.php:464
#: usr/local/www/firewall_nat_out.php:465
+#: usr/local/www/firewall_nat_out.php:462
+#: usr/local/www/firewall_nat_out.php:469
msgid "delete selected mappings"
msgstr ""
#: usr/local/www/firewall_nat_out.php:453
#: usr/local/www/firewall_nat_out.php:464
#: usr/local/www/firewall_nat_out.php:465
+#: usr/local/www/firewall_nat_out.php:462
+#: usr/local/www/firewall_nat_out.php:469
msgid "Do you really want to delete the selected mappings?"
msgstr ""
#: usr/local/www/firewall_nat_out.php:461
#: usr/local/www/firewall_nat_out.php:472
#: usr/local/www/firewall_nat_out.php:473
+#: usr/local/www/firewall_nat_out.php:470
+#: usr/local/www/firewall_nat_out.php:477
msgid ""
"With automatic outbound NAT enabled, a mapping is automatically created for "
"each interface's subnet (except WAN-type connections) and the rules on this "
@@ -13675,47 +16847,62 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:601
#: usr/local/www/system_gateway_groups_edit.php:312
#: usr/local/www/firewall_nat_out.php:481 usr/local/www/carp_status.php:132
-#: usr/local/www/firewall_nat_out_edit.php:601
+#: usr/local/www/firewall_nat_out.php:478
+#: usr/local/www/firewall_nat_out_edit.php:604
+#: usr/local/www/firewall_nat_out.php:485
+#: usr/local/www/system_gateway_groups_edit.php:316
+#: usr/local/www/firewall_nat_out_edit.php:616
+#: usr/local/www/carp_status.php:132
msgid "Virtual IP"
msgstr ""
#: usr/local/www/firewall_nat_out.php:470
#: usr/local/www/firewall_nat_out.php:481
#: usr/local/www/firewall_nat_out.php:482
+#: usr/local/www/firewall_nat_out.php:479
+#: usr/local/www/firewall_nat_out.php:486
msgid " may also be required."
msgstr ""
#: usr/local/www/firewall_nat_out.php:472
#: usr/local/www/firewall_nat_out.php:483
#: usr/local/www/firewall_nat_out.php:484
+#: usr/local/www/firewall_nat_out.php:481
+#: usr/local/www/firewall_nat_out.php:488
msgid ""
"To completely disable outbound NAT, switch to Manual Outbound NAT then "
"delete any NAT rules that appear in the list."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:130
-#: usr/local/www/firewall_nat_out_edit.php:130
+#: usr/local/www/firewall_nat_out_edit.php:134
+#: usr/local/www/firewall_nat_out_edit.php:140
msgid "Source bit count"
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:130
#: usr/local/www/firewall_rules_edit.php:310
#: usr/local/www/firewall_rules_edit.php:334
-#: usr/local/www/firewall_nat_out_edit.php:130
#: usr/local/www/firewall_rules_edit.php:333
+#: usr/local/www/firewall_rules_edit.php:336
+#: usr/local/www/firewall_nat_out_edit.php:134
+#: usr/local/www/firewall_rules_edit.php:342
+#: usr/local/www/firewall_nat_out_edit.php:140
msgid "Destination bit count"
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:137
#: usr/local/www/firewall_nat_out_edit.php:150
-#: usr/local/www/firewall_nat_out_edit.php:150
+#: usr/local/www/firewall_nat_out_edit.php:154
+#: usr/local/www/firewall_nat_out_edit.php:160
msgid ""
"You must supply either a valid port or port alias for the source port entry."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:140
#: usr/local/www/firewall_nat_out_edit.php:153
-#: usr/local/www/firewall_nat_out_edit.php:153
+#: usr/local/www/firewall_nat_out_edit.php:157
+#: usr/local/www/firewall_nat_out_edit.php:163
msgid ""
"You must supply either a valid port or port alias for the destination port "
"entry."
@@ -13723,43 +16910,50 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:143
#: usr/local/www/firewall_nat_out_edit.php:156
-#: usr/local/www/firewall_nat_out_edit.php:156
+#: usr/local/www/firewall_nat_out_edit.php:160
+#: usr/local/www/firewall_nat_out_edit.php:166
msgid "You must supply a valid port for the nat port entry."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:147
#: usr/local/www/firewall_nat_out_edit.php:160
-#: usr/local/www/firewall_nat_out_edit.php:160
+#: usr/local/www/firewall_nat_out_edit.php:164
+#: usr/local/www/firewall_nat_out_edit.php:170
msgid "A valid source must be specified."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:155
#: usr/local/www/firewall_nat_out_edit.php:168
-#: usr/local/www/firewall_nat_out_edit.php:168
+#: usr/local/www/firewall_nat_out_edit.php:172
+#: usr/local/www/firewall_nat_out_edit.php:178
msgid "A valid destination must be specified."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:163
#: usr/local/www/firewall_nat_out_edit.php:176
-#: usr/local/www/firewall_nat_out_edit.php:176
+#: usr/local/www/firewall_nat_out_edit.php:180
+#: usr/local/www/firewall_nat_out_edit.php:186
msgid "Negating destination address of \"any\" is invalid."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:168
#: usr/local/www/firewall_nat_out_edit.php:181
-#: usr/local/www/firewall_nat_out_edit.php:181
+#: usr/local/www/firewall_nat_out_edit.php:185
+#: usr/local/www/firewall_nat_out_edit.php:191
msgid "A valid target IP address must be specified."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:173
#: usr/local/www/firewall_nat_out_edit.php:186
-#: usr/local/www/firewall_nat_out_edit.php:186
+#: usr/local/www/firewall_nat_out_edit.php:190
+#: usr/local/www/firewall_nat_out_edit.php:196
msgid "A valid target IP must be specified when using the 'Other Subnet' type."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:176
#: usr/local/www/firewall_nat_out_edit.php:189
-#: usr/local/www/firewall_nat_out_edit.php:189
+#: usr/local/www/firewall_nat_out_edit.php:193
+#: usr/local/www/firewall_nat_out_edit.php:199
msgid ""
"A valid target bit count must be specified when using the 'Other Subnet' "
"type."
@@ -13767,25 +16961,29 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:189
#: usr/local/www/firewall_nat_out_edit.php:202
-#: usr/local/www/firewall_nat_out_edit.php:202
+#: usr/local/www/firewall_nat_out_edit.php:206
+#: usr/local/www/firewall_nat_out_edit.php:212
msgid "Only Round Robin pool options may be chosen when selecting an alias."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:403
#: usr/local/www/firewall_nat_out_edit.php:416
-#: usr/local/www/firewall_nat_out_edit.php:416
+#: usr/local/www/firewall_nat_out_edit.php:420
+#: usr/local/www/firewall_nat_out_edit.php:432
msgid "Edit Advanced Outbound NAT entry"
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:410
#: usr/local/www/firewall_nat_out_edit.php:423
-#: usr/local/www/firewall_nat_out_edit.php:423
+#: usr/local/www/firewall_nat_out_edit.php:427
+#: usr/local/www/firewall_nat_out_edit.php:439
msgid "Do not NAT"
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:413
#: usr/local/www/firewall_nat_out_edit.php:426
-#: usr/local/www/firewall_nat_out_edit.php:426
+#: usr/local/www/firewall_nat_out_edit.php:430
+#: usr/local/www/firewall_nat_out_edit.php:442
msgid ""
"Enabling this option will disable NAT for traffic matching this rule and "
"stop processing Outbound NAT rules."
@@ -13793,38 +16991,44 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:414
#: usr/local/www/firewall_nat_out_edit.php:427
-#: usr/local/www/firewall_nat_out_edit.php:427
+#: usr/local/www/firewall_nat_out_edit.php:431
+#: usr/local/www/firewall_nat_out_edit.php:443
msgid "Hint: in most cases, you won't use this option."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:463
#: usr/local/www/firewall_nat_out_edit.php:476
-#: usr/local/www/firewall_nat_out_edit.php:476
+#: usr/local/www/firewall_nat_out_edit.php:480
+#: usr/local/www/firewall_nat_out_edit.php:492
msgid "Choose which protocol this rule should match."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:464
#: usr/local/www/firewall_nat_out_edit.php:477
-#: usr/local/www/firewall_nat_out_edit.php:477
+#: usr/local/www/firewall_nat_out_edit.php:481
+#: usr/local/www/firewall_nat_out_edit.php:493
#, php-format
msgid "Hint: in most cases, you should specify %s any %s here."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:488
#: usr/local/www/firewall_nat_out_edit.php:501
-#: usr/local/www/firewall_nat_out_edit.php:501
+#: usr/local/www/firewall_nat_out_edit.php:505
+#: usr/local/www/firewall_nat_out_edit.php:517
msgid "Enter the source network for the outbound NAT mapping."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:491
#: usr/local/www/firewall_nat_out_edit.php:504
-#: usr/local/www/firewall_nat_out_edit.php:504
+#: usr/local/www/firewall_nat_out_edit.php:508
+#: usr/local/www/firewall_nat_out_edit.php:520
msgid "Source port:"
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:492
#: usr/local/www/firewall_nat_out_edit.php:505
-#: usr/local/www/firewall_nat_out_edit.php:505
+#: usr/local/www/firewall_nat_out_edit.php:509
+#: usr/local/www/firewall_nat_out_edit.php:521
msgid ""
"(leave \n"
"blank for any)"
@@ -13832,19 +17036,22 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:526
#: usr/local/www/firewall_nat_out_edit.php:539
-#: usr/local/www/firewall_nat_out_edit.php:539
+#: usr/local/www/firewall_nat_out_edit.php:543
+#: usr/local/www/firewall_nat_out_edit.php:555
msgid "Enter the destination network for the outbound NAT mapping."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:530
#: usr/local/www/firewall_nat_out_edit.php:543
-#: usr/local/www/firewall_nat_out_edit.php:543
+#: usr/local/www/firewall_nat_out_edit.php:547
+#: usr/local/www/firewall_nat_out_edit.php:559
msgid "Destination port:"
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:531
#: usr/local/www/firewall_nat_out_edit.php:544
-#: usr/local/www/firewall_nat_out_edit.php:544
+#: usr/local/www/firewall_nat_out_edit.php:548
+#: usr/local/www/firewall_nat_out_edit.php:560
msgid ""
"(leave blank for \n"
"any)"
@@ -13852,37 +17059,43 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:538
#: usr/local/www/firewall_nat_out_edit.php:551
-#: usr/local/www/firewall_nat_out_edit.php:551
+#: usr/local/www/firewall_nat_out_edit.php:555
+#: usr/local/www/firewall_nat_out_edit.php:567
msgid "Translation"
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:544
#: usr/local/www/firewall_nat_out_edit.php:557
-#: usr/local/www/firewall_nat_out_edit.php:557
+#: usr/local/www/firewall_nat_out_edit.php:561
+#: usr/local/www/firewall_nat_out_edit.php:573
msgid "Interface address"
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:568
#: usr/local/www/firewall_nat_out_edit.php:581
-#: usr/local/www/firewall_nat_out_edit.php:581
+#: usr/local/www/firewall_nat_out_edit.php:585
+#: usr/local/www/firewall_nat_out_edit.php:597
msgid "Other Subnet (Enter Below)"
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:575
#: usr/local/www/firewall_nat_out_edit.php:588
-#: usr/local/www/firewall_nat_out_edit.php:588
+#: usr/local/www/firewall_nat_out_edit.php:591
+#: usr/local/www/firewall_nat_out_edit.php:603
msgid "Other Subnet:"
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:586
#: usr/local/www/firewall_nat_out_edit.php:599
-#: usr/local/www/firewall_nat_out_edit.php:599
+#: usr/local/www/firewall_nat_out_edit.php:602
+#: usr/local/www/firewall_nat_out_edit.php:614
msgid "Packets matching this rule will be mapped to the IP address given here."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:587
#: usr/local/www/firewall_nat_out_edit.php:600
-#: usr/local/www/firewall_nat_out_edit.php:600
+#: usr/local/www/firewall_nat_out_edit.php:603
+#: usr/local/www/firewall_nat_out_edit.php:615
msgid ""
"If you want this rule to apply to another IP address rather than the IP "
"address of the interface chosen above, select it here (you will need to "
@@ -13891,13 +17104,13 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:588
#: usr/local/www/firewall_nat_out_edit.php:601
-#: usr/local/www/firewall_nat_out_edit.php:601
+#: usr/local/www/firewall_nat_out_edit.php:604
+#: usr/local/www/firewall_nat_out_edit.php:616
msgid "addresses on the interface first)."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:589
#: usr/local/www/firewall_nat_out_edit.php:602
-#: usr/local/www/firewall_nat_out_edit.php:602
msgid ""
"Also note that if you are trying to redirect connections on the LAN select "
"the \"any\" option."
@@ -13905,7 +17118,8 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:605
#: usr/local/www/firewall_nat_out_edit.php:618
-#: usr/local/www/firewall_nat_out_edit.php:618
+#: usr/local/www/firewall_nat_out_edit.php:620
+#: usr/local/www/firewall_nat_out_edit.php:632
msgid ""
"Only Round Robin types work with Host Aliases. Any type can be used with a "
"Subnet."
@@ -13913,19 +17127,22 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:606
#: usr/local/www/firewall_nat_out_edit.php:619
-#: usr/local/www/firewall_nat_out_edit.php:619
+#: usr/local/www/firewall_nat_out_edit.php:621
+#: usr/local/www/firewall_nat_out_edit.php:633
msgid "Round Robin: Loops through the translation addresses."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:607
#: usr/local/www/firewall_nat_out_edit.php:620
-#: usr/local/www/firewall_nat_out_edit.php:620
+#: usr/local/www/firewall_nat_out_edit.php:622
+#: usr/local/www/firewall_nat_out_edit.php:634
msgid "Random: Selects an address from the translation address pool at random."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:608
#: usr/local/www/firewall_nat_out_edit.php:621
-#: usr/local/www/firewall_nat_out_edit.php:621
+#: usr/local/www/firewall_nat_out_edit.php:623
+#: usr/local/www/firewall_nat_out_edit.php:635
msgid ""
"Source Hash: Uses a hash of the source address to determine the translation "
"address, ensuring that the redirection address is always the same for a "
@@ -13934,7 +17151,8 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:609
#: usr/local/www/firewall_nat_out_edit.php:622
-#: usr/local/www/firewall_nat_out_edit.php:622
+#: usr/local/www/firewall_nat_out_edit.php:624
+#: usr/local/www/firewall_nat_out_edit.php:636
msgid ""
"Bitmask: Applies the subnet mask and keeps the last portion identical; "
"10.0.1.50 -&gt; x.x.x.50."
@@ -13942,7 +17160,8 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:610
#: usr/local/www/firewall_nat_out_edit.php:623
-#: usr/local/www/firewall_nat_out_edit.php:623
+#: usr/local/www/firewall_nat_out_edit.php:625
+#: usr/local/www/firewall_nat_out_edit.php:637
msgid ""
"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 "
@@ -13951,25 +17170,27 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:615
#: usr/local/www/firewall_nat_out_edit.php:628
-#: usr/local/www/firewall_nat_out_edit.php:628
+#: usr/local/www/firewall_nat_out_edit.php:630
+#: usr/local/www/firewall_nat_out_edit.php:642
msgid "Port:"
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:619
#: usr/local/www/firewall_nat_out_edit.php:632
-#: usr/local/www/firewall_nat_out_edit.php:632
+#: usr/local/www/firewall_nat_out_edit.php:634
+#: usr/local/www/firewall_nat_out_edit.php:646
msgid "Enter the source port for the outbound NAT mapping."
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:622
#: usr/local/www/firewall_nat_out_edit.php:635
-#: usr/local/www/firewall_nat_out_edit.php:635
+#: usr/local/www/firewall_nat_out_edit.php:637
+#: usr/local/www/firewall_nat_out_edit.php:649
msgid "Static-port:"
msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:632
#: usr/local/www/firewall_nat_out_edit.php:645
-#: usr/local/www/firewall_nat_out_edit.php:645
msgid ""
"HINT: This prevents the rule from automatically syncing to other CARP "
"members."
@@ -13980,13 +17201,20 @@ msgstr ""
#: usr/local/www/fbegin.inc:129 usr/local/www/firewall_rules_edit.php:660
#: usr/local/www/fbegin.inc:138 usr/local/www/firewall_rules_edit.php:661
#: usr/local/www/firewall_rules.php:49
+#: usr/local/www/firewall_rules_edit.php:664
+#: usr/local/www/diag_system_pftop.php:139 usr/local/www/fbegin.inc:130
+#: usr/local/www/firewall_rules_edit.php:676
+#: usr/local/www/diag_system_pftop.php:139 usr/local/www/firewall_rules.php:49
+#: usr/local/www/fbegin.inc:130
msgid "Rules"
msgstr ""
#: usr/local/www/firewall_rules.php:129
#: usr/local/www/firewall_rules_edit.php:828
#: usr/local/www/firewall_rules_edit.php:863
-#: usr/local/www/firewall_rules_edit.php:863
+#: usr/local/www/firewall_rules.php:127
+#: usr/local/www/firewall_rules_edit.php:866
+#: usr/local/www/firewall_rules_edit.php:878
#: usr/local/www/firewall_rules.php:127
msgid "Echo request"
msgstr ""
@@ -13994,7 +17222,9 @@ msgstr ""
#: usr/local/www/firewall_rules.php:130
#: usr/local/www/firewall_rules_edit.php:829
#: usr/local/www/firewall_rules_edit.php:864
-#: usr/local/www/firewall_rules_edit.php:864
+#: usr/local/www/firewall_rules.php:128
+#: usr/local/www/firewall_rules_edit.php:867
+#: usr/local/www/firewall_rules_edit.php:879
#: usr/local/www/firewall_rules.php:128
msgid "Echo reply"
msgstr ""
@@ -14002,7 +17232,9 @@ msgstr ""
#: usr/local/www/firewall_rules.php:131
#: usr/local/www/firewall_rules_edit.php:830
#: usr/local/www/firewall_rules_edit.php:865
-#: usr/local/www/firewall_rules_edit.php:865
+#: usr/local/www/firewall_rules.php:129
+#: usr/local/www/firewall_rules_edit.php:868
+#: usr/local/www/firewall_rules_edit.php:880
#: usr/local/www/firewall_rules.php:129
msgid "Destination unreachable"
msgstr ""
@@ -14010,7 +17242,9 @@ msgstr ""
#: usr/local/www/firewall_rules.php:132
#: usr/local/www/firewall_rules_edit.php:831
#: usr/local/www/firewall_rules_edit.php:866
-#: usr/local/www/firewall_rules_edit.php:866
+#: usr/local/www/firewall_rules.php:130
+#: usr/local/www/firewall_rules_edit.php:869
+#: usr/local/www/firewall_rules_edit.php:881
#: usr/local/www/firewall_rules.php:130
msgid "Source quench"
msgstr ""
@@ -14018,7 +17252,9 @@ msgstr ""
#: usr/local/www/firewall_rules.php:133
#: usr/local/www/firewall_rules_edit.php:832
#: usr/local/www/firewall_rules_edit.php:867
-#: usr/local/www/firewall_rules_edit.php:867
+#: usr/local/www/firewall_rules.php:131
+#: usr/local/www/firewall_rules_edit.php:870
+#: usr/local/www/firewall_rules_edit.php:882
#: usr/local/www/firewall_rules.php:131
msgid "Redirect"
msgstr ""
@@ -14026,7 +17262,9 @@ msgstr ""
#: usr/local/www/firewall_rules.php:134
#: usr/local/www/firewall_rules_edit.php:833
#: usr/local/www/firewall_rules_edit.php:868
-#: usr/local/www/firewall_rules_edit.php:868
+#: usr/local/www/firewall_rules.php:132
+#: usr/local/www/firewall_rules_edit.php:871
+#: usr/local/www/firewall_rules_edit.php:883
#: usr/local/www/firewall_rules.php:132
msgid "Alternate Host"
msgstr ""
@@ -14034,7 +17272,9 @@ msgstr ""
#: usr/local/www/firewall_rules.php:135
#: usr/local/www/firewall_rules_edit.php:834
#: usr/local/www/firewall_rules_edit.php:869
-#: usr/local/www/firewall_rules_edit.php:869
+#: usr/local/www/firewall_rules.php:133
+#: usr/local/www/firewall_rules_edit.php:872
+#: usr/local/www/firewall_rules_edit.php:884
#: usr/local/www/firewall_rules.php:133
msgid "Router advertisement"
msgstr ""
@@ -14042,7 +17282,9 @@ msgstr ""
#: usr/local/www/firewall_rules.php:136
#: usr/local/www/firewall_rules_edit.php:835
#: usr/local/www/firewall_rules_edit.php:870
-#: usr/local/www/firewall_rules_edit.php:870
+#: usr/local/www/firewall_rules.php:134
+#: usr/local/www/firewall_rules_edit.php:873
+#: usr/local/www/firewall_rules_edit.php:885
#: usr/local/www/firewall_rules.php:134
msgid "Router solicitation"
msgstr ""
@@ -14050,7 +17292,9 @@ msgstr ""
#: usr/local/www/firewall_rules.php:137
#: usr/local/www/firewall_rules_edit.php:836
#: usr/local/www/firewall_rules_edit.php:871
-#: usr/local/www/firewall_rules_edit.php:871
+#: usr/local/www/firewall_rules.php:135
+#: usr/local/www/firewall_rules_edit.php:874
+#: usr/local/www/firewall_rules_edit.php:886
#: usr/local/www/firewall_rules.php:135
msgid "Time exceeded"
msgstr ""
@@ -14058,7 +17302,9 @@ msgstr ""
#: usr/local/www/firewall_rules.php:138
#: usr/local/www/firewall_rules_edit.php:837
#: usr/local/www/firewall_rules_edit.php:872
-#: usr/local/www/firewall_rules_edit.php:872
+#: usr/local/www/firewall_rules.php:136
+#: usr/local/www/firewall_rules_edit.php:875
+#: usr/local/www/firewall_rules_edit.php:887
#: usr/local/www/firewall_rules.php:136
msgid "Invalid IP header"
msgstr ""
@@ -14066,7 +17312,9 @@ msgstr ""
#: usr/local/www/firewall_rules.php:139
#: usr/local/www/firewall_rules_edit.php:838
#: usr/local/www/firewall_rules_edit.php:873
-#: usr/local/www/firewall_rules_edit.php:873
+#: usr/local/www/firewall_rules.php:137
+#: usr/local/www/firewall_rules_edit.php:876
+#: usr/local/www/firewall_rules_edit.php:888
#: usr/local/www/firewall_rules.php:137
msgid "Timestamp"
msgstr ""
@@ -14074,7 +17322,9 @@ msgstr ""
#: usr/local/www/firewall_rules.php:140
#: usr/local/www/firewall_rules_edit.php:839
#: usr/local/www/firewall_rules_edit.php:874
-#: usr/local/www/firewall_rules_edit.php:874
+#: usr/local/www/firewall_rules.php:138
+#: usr/local/www/firewall_rules_edit.php:877
+#: usr/local/www/firewall_rules_edit.php:889
#: usr/local/www/firewall_rules.php:138
msgid "Timestamp reply"
msgstr ""
@@ -14082,7 +17332,9 @@ msgstr ""
#: usr/local/www/firewall_rules.php:141
#: usr/local/www/firewall_rules_edit.php:840
#: usr/local/www/firewall_rules_edit.php:875
-#: usr/local/www/firewall_rules_edit.php:875
+#: usr/local/www/firewall_rules.php:139
+#: usr/local/www/firewall_rules_edit.php:878
+#: usr/local/www/firewall_rules_edit.php:890
#: usr/local/www/firewall_rules.php:139
msgid "Information request"
msgstr ""
@@ -14090,7 +17342,9 @@ msgstr ""
#: usr/local/www/firewall_rules.php:142
#: usr/local/www/firewall_rules_edit.php:841
#: usr/local/www/firewall_rules_edit.php:876
-#: usr/local/www/firewall_rules_edit.php:876
+#: usr/local/www/firewall_rules.php:140
+#: usr/local/www/firewall_rules_edit.php:879
+#: usr/local/www/firewall_rules_edit.php:891
#: usr/local/www/firewall_rules.php:140
msgid "Information reply"
msgstr ""
@@ -14098,7 +17352,9 @@ msgstr ""
#: usr/local/www/firewall_rules.php:143
#: usr/local/www/firewall_rules_edit.php:842
#: usr/local/www/firewall_rules_edit.php:877
-#: usr/local/www/firewall_rules_edit.php:877
+#: usr/local/www/firewall_rules.php:141
+#: usr/local/www/firewall_rules_edit.php:880
+#: usr/local/www/firewall_rules_edit.php:892
#: usr/local/www/firewall_rules.php:141
msgid "Address mask request"
msgstr ""
@@ -14106,13 +17362,15 @@ msgstr ""
#: usr/local/www/firewall_rules.php:144
#: usr/local/www/firewall_rules_edit.php:843
#: usr/local/www/firewall_rules_edit.php:878
-#: usr/local/www/firewall_rules_edit.php:878
+#: usr/local/www/firewall_rules.php:142
+#: usr/local/www/firewall_rules_edit.php:881
+#: usr/local/www/firewall_rules_edit.php:893
#: usr/local/www/firewall_rules.php:142
msgid "Address mask reply"
msgstr ""
#: usr/local/www/firewall_rules.php:201 usr/local/www/firewall_rules.php:205
-#: usr/local/www/firewall_rules.php:203
+#: usr/local/www/firewall_rules.php:203 usr/local/www/firewall_rules.php:203
#, php-format
msgid ""
"The settings have been applied. The firewall rules are now reloading in the "
@@ -14128,7 +17386,7 @@ msgid ""
msgstr ""
#: usr/local/www/firewall_rules.php:338 usr/local/www/firewall_rules.php:342
-#: usr/local/www/firewall_rules.php:335
+#: usr/local/www/firewall_rules.php:335 usr/local/www/firewall_rules.php:334
msgid "Floating"
msgstr ""
@@ -14138,6 +17396,8 @@ msgstr ""
#: usr/local/www/firewall_rules.php:363
#: usr/local/www/load_balancer_relay_action_edit.php:507
#: usr/local/www/firewall_rules.php:356
+#: usr/local/www/load_balancer_relay_action_edit.php:507
+#: usr/local/www/firewall_rules.php:354
msgid "ID"
msgstr ""
@@ -14157,30 +17417,46 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:397
#: usr/local/www/services_dhcp.php:668 usr/local/www/interfaces.php:456
#: usr/local/www/interfaces.php:509 usr/local/www/interfaces.php:1486
-#: usr/local/www/system_routes_edit.php:92
#: usr/local/www/system_routes_edit.php:232
-#: usr/local/www/system_routes.php:127
-#: usr/local/www/firewall_rules_edit.php:1355
#: usr/local/www/firewall_rules.php:365
#: usr/local/www/system_gateways_edit.php:503
-#: usr/local/www/status_gateways.php:74 usr/local/www/system_gateways.php:154
-#: usr/local/www/services_dhcp.php:844 usr/local/www/interfaces.php:453
-#: usr/local/www/interfaces.php:506 usr/local/www/interfaces.php:1474
+#: usr/local/www/status_gateways.php:74 usr/local/www/services_dhcp.php:844
+#: usr/local/www/interfaces.php:453 usr/local/www/interfaces.php:506
+#: usr/local/www/interfaces.php:1474
+#: usr/local/www/system_gateways_edit.php:506
+#: usr/local/www/firewall_rules_edit.php:1370
+#: usr/local/www/services_dhcp_edit.php:410
+#: usr/local/www/diag_traceroute.php:98 usr/local/www/system_routes.php:131
+#: usr/local/www/services_dhcp.php:858 usr/local/www/interfaces.php:441
+#: usr/local/www/interfaces.php:494 usr/local/www/interfaces.php:1487
+#: usr/local/www/system_gateways_edit.php:508
+#: usr/local/www/firewall_rules_edit.php:1377
+#: usr/local/www/services_dhcp_edit.php:410
+#: usr/local/www/system_routes.php:131 usr/local/www/services_dhcp.php:878
+#: usr/local/www/system_routes_edit.php:95
+#: usr/local/www/system_routes_edit.php:259
+#: usr/local/www/firewall_rules.php:363 usr/local/www/system_gateways.php:154
+#: usr/local/www/status_gateways.php:74 usr/local/www/interfaces.php:446
+#: usr/local/www/interfaces.php:499 usr/local/www/interfaces.php:1532
msgid "Gateway"
msgstr ""
#: usr/local/www/firewall_rules.php:369 usr/local/www/status_queues.php:135
#: usr/local/www/status_queues.php:142 usr/local/www/firewall_rules.php:373
#: usr/local/www/status_queues.php:143 usr/local/www/firewall_rules.php:366
+#: usr/local/www/diag_system_pftop.php:138 usr/local/www/status_queues.php:148
+#: usr/local/www/diag_system_pftop.php:138
+#: usr/local/www/firewall_rules.php:364 usr/local/www/status_queues.php:148
msgid "Queue"
msgstr ""
#: usr/local/www/firewall_rules.php:370
#: usr/local/www/firewall_rules_edit.php:1261
#: usr/local/www/firewall_rules_edit.php:1328
-#: usr/local/www/firewall_rules.php:374
-#: usr/local/www/firewall_rules_edit.php:1328
-#: usr/local/www/firewall_rules.php:367
+#: usr/local/www/firewall_rules.php:374 usr/local/www/firewall_rules.php:367
+#: usr/local/www/firewall_rules_edit.php:1343
+#: usr/local/www/firewall_rules_edit.php:1350
+#: usr/local/www/firewall_rules.php:365
msgid "Schedule"
msgstr ""
@@ -14189,6 +17465,8 @@ msgstr ""
#: usr/local/www/firewall_rules.php:396 usr/local/www/firewall_rules.php:825
#: usr/local/www/firewall_nat.php:216 usr/local/www/firewall_nat.php:347
#: usr/local/www/firewall_rules.php:389 usr/local/www/firewall_rules.php:818
+#: usr/local/www/firewall_nat.php:216 usr/local/www/firewall_nat.php:347
+#: usr/local/www/firewall_rules.php:387 usr/local/www/firewall_rules.php:820
msgid "Do you really want to delete the selected rules?"
msgstr ""
@@ -14196,12 +17474,13 @@ msgstr ""
#: usr/local/www/firewall_rules.php:826 usr/local/www/firewall_rules.php:398
#: usr/local/www/firewall_rules.php:795 usr/local/www/firewall_rules.php:827
#: usr/local/www/firewall_rules.php:391 usr/local/www/firewall_rules.php:788
-#: usr/local/www/firewall_rules.php:820
+#: usr/local/www/firewall_rules.php:820 usr/local/www/firewall_rules.php:390
+#: usr/local/www/firewall_rules.php:789 usr/local/www/firewall_rules.php:823
msgid "add new rule"
msgstr ""
#: usr/local/www/firewall_rules.php:431 usr/local/www/firewall_rules.php:425
-#: usr/local/www/firewall_rules.php:418
+#: usr/local/www/firewall_rules.php:418 usr/local/www/firewall_rules.php:417
msgid "Anti-Lockout Rule"
msgstr ""
@@ -14211,38 +17490,44 @@ msgstr ""
#: usr/local/www/firewall_rules.php:491 usr/local/www/firewall_rules.php:777
#: usr/local/www/firewall_rules.php:427 usr/local/www/firewall_rules.php:456
#: usr/local/www/firewall_rules.php:484 usr/local/www/firewall_rules.php:770
+#: usr/local/www/firewall_rules.php:426 usr/local/www/firewall_rules.php:455
+#: usr/local/www/firewall_rules.php:483 usr/local/www/firewall_rules.php:770
msgid "add a new rule based on this one"
msgstr ""
#: usr/local/www/firewall_rules.php:453 usr/local/www/firewall_rules.php:447
-#: usr/local/www/firewall_rules.php:440
+#: usr/local/www/firewall_rules.php:440 usr/local/www/firewall_rules.php:439
msgid "RFC 1918 networks"
msgstr ""
#: usr/local/www/firewall_rules.php:460 usr/local/www/interfaces.php:2414
#: usr/local/www/firewall_rules.php:454 usr/local/www/interfaces.php:2615
#: usr/local/www/firewall_rules.php:447 usr/local/www/interfaces.php:2603
+#: usr/local/www/interfaces.php:2633 usr/local/www/firewall_rules.php:446
+#: usr/local/www/interfaces.php:2679
msgid "Block private networks"
msgstr ""
#: usr/local/www/firewall_rules.php:481 usr/local/www/firewall_rules.php:475
-#: usr/local/www/firewall_rules.php:468
+#: usr/local/www/firewall_rules.php:468 usr/local/www/firewall_rules.php:467
msgid "Reserved/not assigned by IANA"
msgstr ""
#: usr/local/www/firewall_rules.php:488 usr/local/www/interfaces.php:2426
#: usr/local/www/firewall_rules.php:482 usr/local/www/interfaces.php:2627
#: usr/local/www/firewall_rules.php:475 usr/local/www/interfaces.php:2615
+#: usr/local/www/interfaces.php:2645 usr/local/www/firewall_rules.php:474
+#: usr/local/www/interfaces.php:2691
msgid "Block bogon networks"
msgstr ""
#: usr/local/www/firewall_rules.php:513 usr/local/www/firewall_rules.php:507
-#: usr/local/www/firewall_rules.php:500
+#: usr/local/www/firewall_rules.php:500 usr/local/www/firewall_rules.php:499
msgid "advanced settings set"
msgstr ""
#: usr/local/www/firewall_rules.php:537 usr/local/www/firewall_rules.php:531
-#: usr/local/www/firewall_rules.php:524
+#: usr/local/www/firewall_rules.php:524 usr/local/www/firewall_rules.php:524
msgid "click to toggle enabled/disabled status"
msgstr ""
@@ -14250,17 +17535,20 @@ msgstr ""
#: usr/local/www/firewall_schedule_edit.php:69
#: usr/local/www/firewall_schedule_edit.php:846
#: usr/local/www/firewall_rules.php:567
-#: usr/local/www/firewall_schedule_edit.php:69
#: usr/local/www/firewall_schedule_edit.php:845
#: usr/local/www/firewall_rules.php:560 usr/local/www/firewall_schedule.php:43
+#: usr/local/www/firewall_schedule_edit.php:69
+#: usr/local/www/firewall_schedule_edit.php:845
+#: usr/local/www/firewall_rules.php:561
msgid "Mon"
msgstr ""
#: usr/local/www/firewall_rules.php:573 usr/local/www/firewall_schedule.php:43
#: usr/local/www/firewall_schedule_edit.php:69
-#: usr/local/www/firewall_rules.php:567
+#: usr/local/www/firewall_rules.php:567 usr/local/www/firewall_rules.php:560
+#: usr/local/www/firewall_schedule.php:43
#: usr/local/www/firewall_schedule_edit.php:69
-#: usr/local/www/firewall_rules.php:560 usr/local/www/firewall_schedule.php:43
+#: usr/local/www/firewall_rules.php:561
msgid "Tues"
msgstr ""
@@ -14268,17 +17556,20 @@ msgstr ""
#: usr/local/www/firewall_schedule_edit.php:69
#: usr/local/www/firewall_schedule_edit.php:848
#: usr/local/www/firewall_rules.php:567
-#: usr/local/www/firewall_schedule_edit.php:69
#: usr/local/www/firewall_schedule_edit.php:847
#: usr/local/www/firewall_rules.php:560 usr/local/www/firewall_schedule.php:43
+#: usr/local/www/firewall_schedule_edit.php:69
+#: usr/local/www/firewall_schedule_edit.php:847
+#: usr/local/www/firewall_rules.php:561
msgid "Wed"
msgstr ""
#: usr/local/www/firewall_rules.php:573 usr/local/www/firewall_schedule.php:43
#: usr/local/www/firewall_schedule_edit.php:69
-#: usr/local/www/firewall_rules.php:567
+#: usr/local/www/firewall_rules.php:567 usr/local/www/firewall_rules.php:560
+#: usr/local/www/firewall_schedule.php:43
#: usr/local/www/firewall_schedule_edit.php:69
-#: usr/local/www/firewall_rules.php:560 usr/local/www/firewall_schedule.php:43
+#: usr/local/www/firewall_rules.php:561
msgid "Thur"
msgstr ""
@@ -14286,9 +17577,11 @@ msgstr ""
#: usr/local/www/firewall_schedule_edit.php:69
#: usr/local/www/firewall_schedule_edit.php:850
#: usr/local/www/firewall_rules.php:567
-#: usr/local/www/firewall_schedule_edit.php:69
#: usr/local/www/firewall_schedule_edit.php:849
#: usr/local/www/firewall_rules.php:560 usr/local/www/firewall_schedule.php:43
+#: usr/local/www/firewall_schedule_edit.php:69
+#: usr/local/www/firewall_schedule_edit.php:849
+#: usr/local/www/firewall_rules.php:561
msgid "Fri"
msgstr ""
@@ -14296,9 +17589,11 @@ msgstr ""
#: usr/local/www/firewall_schedule_edit.php:69
#: usr/local/www/firewall_schedule_edit.php:851
#: usr/local/www/firewall_rules.php:567
-#: usr/local/www/firewall_schedule_edit.php:69
#: usr/local/www/firewall_schedule_edit.php:850
#: usr/local/www/firewall_rules.php:560 usr/local/www/firewall_schedule.php:43
+#: usr/local/www/firewall_schedule_edit.php:69
+#: usr/local/www/firewall_schedule_edit.php:850
+#: usr/local/www/firewall_rules.php:561
msgid "Sat"
msgstr ""
@@ -14306,188 +17601,206 @@ msgstr ""
#: usr/local/www/firewall_schedule_edit.php:69
#: usr/local/www/firewall_schedule_edit.php:852
#: usr/local/www/firewall_rules.php:567
-#: usr/local/www/firewall_schedule_edit.php:69
#: usr/local/www/firewall_schedule_edit.php:851
#: usr/local/www/firewall_rules.php:560 usr/local/www/firewall_schedule.php:43
+#: usr/local/www/firewall_schedule_edit.php:69
+#: usr/local/www/firewall_schedule_edit.php:851
+#: usr/local/www/firewall_rules.php:561
msgid "Sun"
msgstr ""
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
+#: usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:561 usr/local/www/firewall_schedule.php:44
+#: usr/local/www/firewall_rules.php:562
msgid "January"
msgstr ""
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
+#: usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:561 usr/local/www/firewall_schedule.php:44
+#: usr/local/www/firewall_rules.php:562
msgid "February"
msgstr ""
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
+#: usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:561 usr/local/www/firewall_schedule.php:44
+#: usr/local/www/firewall_rules.php:562
msgid "March"
msgstr ""
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
+#: usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:561 usr/local/www/firewall_schedule.php:44
+#: usr/local/www/firewall_rules.php:562
msgid "April"
msgstr ""
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
+#: usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:561 usr/local/www/firewall_schedule.php:44
+#: usr/local/www/firewall_rules.php:562
msgid "May"
msgstr ""
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
+#: usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:561 usr/local/www/firewall_schedule.php:44
+#: usr/local/www/firewall_rules.php:562
msgid "June"
msgstr ""
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
+#: usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:561 usr/local/www/firewall_schedule.php:44
+#: usr/local/www/firewall_rules.php:562
msgid "July"
msgstr ""
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
+#: usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:561 usr/local/www/firewall_schedule.php:44
+#: usr/local/www/firewall_rules.php:562
msgid "August"
msgstr ""
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
+#: usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:561 usr/local/www/firewall_schedule.php:44
+#: usr/local/www/firewall_rules.php:562
msgid "September"
msgstr ""
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
+#: usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:561 usr/local/www/firewall_schedule.php:44
+#: usr/local/www/firewall_rules.php:562
msgid "October"
msgstr ""
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
+#: usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:561 usr/local/www/firewall_schedule.php:44
+#: usr/local/www/firewall_rules.php:562
msgid "November"
msgstr ""
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
+#: usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:561 usr/local/www/firewall_schedule.php:44
+#: usr/local/www/firewall_rules.php:562
msgid "December"
msgstr ""
#: usr/local/www/firewall_rules.php:685 usr/local/www/firewall_rules.php:679
-#: usr/local/www/firewall_rules.php:672
+#: usr/local/www/firewall_rules.php:672 usr/local/www/firewall_rules.php:671
msgid "Traffic matching this rule is currently being denied"
msgstr ""
#: usr/local/www/firewall_rules.php:690 usr/local/www/firewall_rules.php:684
-#: usr/local/www/firewall_rules.php:677
+#: usr/local/www/firewall_rules.php:677 usr/local/www/firewall_rules.php:674
msgid "Traffic matching this rule is currently being allowed"
msgstr ""
#: usr/local/www/firewall_rules.php:700 usr/local/www/firewall_rules.php:694
-#: usr/local/www/firewall_rules.php:687
+#: usr/local/www/firewall_rules.php:687 usr/local/www/firewall_rules.php:682
msgid "This rule is not currently active because its period has expired"
msgstr ""
#: usr/local/www/firewall_rules.php:792 usr/local/www/firewall_rules.php:785
+#: usr/local/www/firewall_rules.php:786
msgid "No rules are currently defined for this interface"
msgstr ""
#: usr/local/www/firewall_rules.php:793 usr/local/www/firewall_rules.php:786
+#: usr/local/www/firewall_rules.php:787
msgid ""
"All incoming connections on this interface will be blocked until you add "
"pass rules."
msgstr ""
#: usr/local/www/firewall_rules.php:794 usr/local/www/firewall_rules.php:795
-#: usr/local/www/firewall_rules.php:788
+#: usr/local/www/firewall_rules.php:788 usr/local/www/firewall_rules.php:789
msgid "Click the"
msgstr ""
#: usr/local/www/firewall_rules.php:794 usr/local/www/firewall_rules.php:795
-#: usr/local/www/firewall_rules.php:788
+#: usr/local/www/firewall_rules.php:788 usr/local/www/firewall_rules.php:789
msgid " button to add a new rule."
msgstr ""
#: usr/local/www/firewall_rules.php:817 usr/local/www/firewall_nat.php:327
#: usr/local/www/firewall_rules.php:818 usr/local/www/firewall_nat.php:340
-#: usr/local/www/firewall_rules.php:811
+#: usr/local/www/firewall_rules.php:811 usr/local/www/firewall_nat.php:340
+#: usr/local/www/firewall_rules.php:813
msgid "move selected rules to end"
msgstr ""
#: usr/local/www/firewall_rules.php:835 usr/local/www/firewall_nat.php:345
#: usr/local/www/firewall_rules.php:836 usr/local/www/firewall_nat.php:358
-#: usr/local/www/firewall_rules.php:829
+#: usr/local/www/firewall_rules.php:829 usr/local/www/firewall_nat.php:358
+#: usr/local/www/firewall_rules.php:832
msgid "pass"
msgstr ""
#: usr/local/www/firewall_rules.php:838 usr/local/www/firewall_rules.php:839
-#: usr/local/www/firewall_rules.php:832
+#: usr/local/www/firewall_rules.php:832 usr/local/www/firewall_rules.php:835
msgid "block"
msgstr ""
#: usr/local/www/firewall_rules.php:841 usr/local/www/license.php:125
-#: usr/local/www/firewall_rules.php:842 usr/local/www/license.php:125
-#: usr/local/www/firewall_rules.php:835
+#: usr/local/www/firewall_rules.php:842 usr/local/www/firewall_rules.php:835
+#: usr/local/www/license.php:125 usr/local/www/firewall_rules.php:838
msgid "reject"
msgstr ""
#: usr/local/www/firewall_rules.php:844 usr/local/www/firewall_rules.php:845
-#: usr/local/www/firewall_rules.php:838
+#: usr/local/www/firewall_rules.php:838 usr/local/www/firewall_rules.php:841
msgid "log"
msgstr ""
#: usr/local/www/firewall_rules.php:848 usr/local/www/firewall_rules.php:849
-#: usr/local/www/firewall_rules.php:842
+#: usr/local/www/firewall_rules.php:842 usr/local/www/firewall_rules.php:845
msgid "pass (disabled)"
msgstr ""
#: usr/local/www/firewall_rules.php:851 usr/local/www/firewall_rules.php:852
-#: usr/local/www/firewall_rules.php:845
+#: usr/local/www/firewall_rules.php:845 usr/local/www/firewall_rules.php:848
msgid "block (disabled)"
msgstr ""
#: usr/local/www/firewall_rules.php:854 usr/local/www/firewall_rules.php:855
-#: usr/local/www/firewall_rules.php:848
+#: usr/local/www/firewall_rules.php:848 usr/local/www/firewall_rules.php:851
msgid "reject (disabled)"
msgstr ""
#: usr/local/www/firewall_rules.php:857 usr/local/www/firewall_rules.php:858
-#: usr/local/www/firewall_rules.php:851
+#: usr/local/www/firewall_rules.php:851 usr/local/www/firewall_rules.php:854
msgid "log (disabled)"
msgstr ""
@@ -14497,11 +17810,15 @@ msgstr ""
#: usr/local/www/load_balancer_pool.php:149
#: usr/local/www/firewall_rules.php:857 usr/local/www/vpn_l2tp.php:355
#: usr/local/www/vpn_l2tp.php:372 usr/local/www/load_balancer_pool.php:147
+#: usr/local/www/vpn_l2tp.php:358 usr/local/www/vpn_l2tp.php:375
+#: usr/local/www/vpn_l2tp.php:358 usr/local/www/vpn_l2tp.php:375
+#: usr/local/www/load_balancer_pool.php:147
+#: usr/local/www/firewall_rules.php:860
msgid "Hint:"
msgstr ""
#: usr/local/www/firewall_rules.php:867 usr/local/www/firewall_rules.php:868
-#: usr/local/www/firewall_rules.php:861
+#: usr/local/www/firewall_rules.php:861 usr/local/www/firewall_rules.php:864
msgid ""
"Rules are evaluated on a first-match basis (i.e. the action of the first "
"rule to match a packet will be executed). This means that if you use block "
@@ -14510,7 +17827,7 @@ msgid ""
msgstr ""
#: usr/local/www/firewall_rules.php:874 usr/local/www/firewall_rules.php:875
-#: usr/local/www/firewall_rules.php:868
+#: usr/local/www/firewall_rules.php:868 usr/local/www/firewall_rules.php:871
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 "
@@ -14533,30 +17850,40 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:212
#: usr/local/www/firewall_rules_edit.php:227
#: usr/local/www/firewall_rules_edit.php:225
+#: usr/local/www/firewall_rules_edit.php:222
+#: usr/local/www/firewall_rules_edit.php:228
msgid "You can not assign a IPv4 gateway group on IPv6 Address Family rule"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:215
#: usr/local/www/firewall_rules_edit.php:230
#: usr/local/www/firewall_rules_edit.php:228
+#: usr/local/www/firewall_rules_edit.php:225
+#: usr/local/www/firewall_rules_edit.php:231
msgid "You can not assign a IPv6 gateway group on IPv4 Address Family rule"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:222
#: usr/local/www/firewall_rules_edit.php:240
#: usr/local/www/firewall_rules_edit.php:239
+#: usr/local/www/firewall_rules_edit.php:236
+#: usr/local/www/firewall_rules_edit.php:242
msgid "You can not assign the IPv4 Gateway to a IPv6 Filter rule"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:225
#: usr/local/www/firewall_rules_edit.php:243
#: usr/local/www/firewall_rules_edit.php:242
+#: usr/local/www/firewall_rules_edit.php:239
+#: usr/local/www/firewall_rules_edit.php:245
msgid "You can not assign the IPv6 Gateway to a IPv4 Filter rule"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:297
#: usr/local/www/firewall_rules_edit.php:321
#: usr/local/www/firewall_rules_edit.php:320
+#: usr/local/www/firewall_rules_edit.php:323
+#: usr/local/www/firewall_rules_edit.php:329
#, php-format
msgid "%s is only valid with protocol tcp."
msgstr ""
@@ -14564,6 +17891,8 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:299
#: usr/local/www/firewall_rules_edit.php:323
#: usr/local/www/firewall_rules_edit.php:322
+#: usr/local/www/firewall_rules_edit.php:325
+#: usr/local/www/firewall_rules_edit.php:331
#, php-format
msgid "%s is only valid if the gateway is set to 'default'."
msgstr ""
@@ -14571,6 +17900,8 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:327
#: usr/local/www/firewall_rules_edit.php:351
#: usr/local/www/firewall_rules_edit.php:350
+#: usr/local/www/firewall_rules_edit.php:353
+#: usr/local/www/firewall_rules_edit.php:359
#, php-format
msgid ""
"%s is not a valid end source port. It must be a port alias or integer "
@@ -14580,6 +17911,8 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:381
#: usr/local/www/firewall_rules_edit.php:410
#: usr/local/www/firewall_rules_edit.php:409
+#: usr/local/www/firewall_rules_edit.php:412
+#: usr/local/www/firewall_rules_edit.php:418
#, php-format
msgid ""
"The Source IP address %s Address Family differs from the destination %s."
@@ -14588,36 +17921,48 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:383
#: usr/local/www/firewall_rules_edit.php:412
#: usr/local/www/firewall_rules_edit.php:411
+#: usr/local/www/firewall_rules_edit.php:414
+#: usr/local/www/firewall_rules_edit.php:420
msgid "You can not use IPv6 addresses in IPv4 rules."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:385
#: usr/local/www/firewall_rules_edit.php:414
#: usr/local/www/firewall_rules_edit.php:413
+#: usr/local/www/firewall_rules_edit.php:416
+#: usr/local/www/firewall_rules_edit.php:422
msgid "You can not use IPv4 addresses in IPv6 rules."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:402
#: usr/local/www/firewall_rules_edit.php:434
#: usr/local/www/firewall_rules_edit.php:433
+#: usr/local/www/firewall_rules_edit.php:436
+#: usr/local/www/firewall_rules_edit.php:442
msgid "OS detection is only valid with protocol tcp."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:406
#: usr/local/www/firewall_rules_edit.php:438
#: usr/local/www/firewall_rules_edit.php:437
+#: usr/local/www/firewall_rules_edit.php:440
+#: usr/local/www/firewall_rules_edit.php:446
msgid "You have to select a queue when you select an acknowledge queue too."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:408
#: usr/local/www/firewall_rules_edit.php:440
#: usr/local/www/firewall_rules_edit.php:439
+#: usr/local/www/firewall_rules_edit.php:442
+#: usr/local/www/firewall_rules_edit.php:448
msgid "Acknowledge queue and Queue cannot be the same."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:411
#: usr/local/www/firewall_rules_edit.php:443
#: usr/local/www/firewall_rules_edit.php:442
+#: usr/local/www/firewall_rules_edit.php:445
+#: usr/local/www/firewall_rules_edit.php:451
msgid ""
"You can not use limiters in Floating rules without choosing a direction."
msgstr ""
@@ -14625,6 +17970,8 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:413
#: usr/local/www/firewall_rules_edit.php:445
#: usr/local/www/firewall_rules_edit.php:444
+#: usr/local/www/firewall_rules_edit.php:447
+#: usr/local/www/firewall_rules_edit.php:453
msgid ""
"You can not use gateways in Floating rules without choosing a direction."
msgstr ""
@@ -14632,6 +17979,8 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:416
#: usr/local/www/firewall_rules_edit.php:448
#: usr/local/www/firewall_rules_edit.php:447
+#: usr/local/www/firewall_rules_edit.php:450
+#: usr/local/www/firewall_rules_edit.php:456
msgid ""
"You must select a queue for the In direction before selecting one for Out "
"too."
@@ -14640,6 +17989,8 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:418
#: usr/local/www/firewall_rules_edit.php:450
#: usr/local/www/firewall_rules_edit.php:449
+#: usr/local/www/firewall_rules_edit.php:452
+#: usr/local/www/firewall_rules_edit.php:458
msgid "In and Out Queue cannot be the same."
msgstr ""
@@ -14649,6 +18000,9 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:454
#: usr/local/www/firewall_rules_edit.php:451
#: usr/local/www/firewall_rules_edit.php:453
+#: usr/local/www/firewall_rules_edit.php:456
+#: usr/local/www/firewall_rules_edit.php:460
+#: usr/local/www/firewall_rules_edit.php:462
msgid ""
"You cannot select one queue and one virtual interface for IN and Out. both "
"must be from the same type."
@@ -14657,24 +18011,32 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:425
#: usr/local/www/firewall_rules_edit.php:457
#: usr/local/www/firewall_rules_edit.php:458
+#: usr/local/www/firewall_rules_edit.php:461
+#: usr/local/www/firewall_rules_edit.php:467
msgid "ID must be an integer"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:428
#: usr/local/www/firewall_rules_edit.php:460
#: usr/local/www/firewall_rules_edit.php:461
+#: usr/local/www/firewall_rules_edit.php:464
+#: usr/local/www/firewall_rules_edit.php:470
msgid "You can only select a layer7 container for TCP and/or UDP protocols"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:430
#: usr/local/www/firewall_rules_edit.php:462
#: usr/local/www/firewall_rules_edit.php:463
+#: usr/local/www/firewall_rules_edit.php:466
+#: usr/local/www/firewall_rules_edit.php:472
msgid "You can only select a layer7 container for Pass type rules."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:443
#: usr/local/www/firewall_rules_edit.php:475
#: usr/local/www/firewall_rules_edit.php:476
+#: usr/local/www/firewall_rules_edit.php:479
+#: usr/local/www/firewall_rules_edit.php:485
msgid ""
"If you specify TCP flags that should be set you should specify out of which "
"flags as well."
@@ -14682,19 +18044,22 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:652
#: usr/local/www/firewall_rules_edit.php:685
-#: usr/local/www/firewall_rules_edit.php:685
+#: usr/local/www/firewall_rules_edit.php:688
+#: usr/local/www/firewall_rules_edit.php:700
msgid "Edit Firewall rule"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:673
#: usr/local/www/firewall_rules_edit.php:706
-#: usr/local/www/firewall_rules_edit.php:706
+#: usr/local/www/firewall_rules_edit.php:709
+#: usr/local/www/firewall_rules_edit.php:721
msgid "Choose what to do with packets that match the criteria specified below."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:674
#: usr/local/www/firewall_rules_edit.php:707
-#: usr/local/www/firewall_rules_edit.php:707
+#: usr/local/www/firewall_rules_edit.php:710
+#: usr/local/www/firewall_rules_edit.php:722
msgid ""
"Hint: the difference between block and reject is that with reject, a packet "
"(TCP RST or ICMP port unreachable for UDP) is returned to the sender, "
@@ -14704,19 +18069,22 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:689
#: usr/local/www/firewall_rules_edit.php:722
-#: usr/local/www/firewall_rules_edit.php:722
+#: usr/local/www/firewall_rules_edit.php:725
+#: usr/local/www/firewall_rules_edit.php:737
msgid "Quick"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:693
#: usr/local/www/firewall_rules_edit.php:726
-#: usr/local/www/firewall_rules_edit.php:726
+#: usr/local/www/firewall_rules_edit.php:729
+#: usr/local/www/firewall_rules_edit.php:741
msgid "Apply the action immediately on match."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:694
#: usr/local/www/firewall_rules_edit.php:727
-#: usr/local/www/firewall_rules_edit.php:727
+#: usr/local/www/firewall_rules_edit.php:730
+#: usr/local/www/firewall_rules_edit.php:742
msgid ""
"Set this option if you need to apply this action to traffic that matches "
"this rule immediately."
@@ -14724,27 +18092,32 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:701
#: usr/local/www/firewall_rules_edit.php:734
-#: usr/local/www/firewall_rules_edit.php:734
+#: usr/local/www/firewall_rules_edit.php:737
+#: usr/local/www/firewall_rules_edit.php:749
msgid "Associated filter rule"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:703
#: usr/local/www/diag_traceroute.php:117 usr/local/www/diag_traceroute.php:137
#: usr/local/www/firewall_rules_edit.php:736
-#: usr/local/www/firewall_rules_edit.php:736
-#: usr/local/www/diag_traceroute.php:117 usr/local/www/diag_traceroute.php:137
+#: usr/local/www/firewall_rules_edit.php:739
+#: usr/local/www/diag_traceroute.php:141
+#: usr/local/www/firewall_rules_edit.php:751
+#: usr/local/www/diag_traceroute.php:161
msgid "Note: "
msgstr ""
#: usr/local/www/firewall_rules_edit.php:703
#: usr/local/www/firewall_rules_edit.php:736
-#: usr/local/www/firewall_rules_edit.php:736
+#: usr/local/www/firewall_rules_edit.php:739
+#: usr/local/www/firewall_rules_edit.php:751
msgid "This is associated to a NAT rule."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:704
#: usr/local/www/firewall_rules_edit.php:737
-#: usr/local/www/firewall_rules_edit.php:737
+#: usr/local/www/firewall_rules_edit.php:740
+#: usr/local/www/firewall_rules_edit.php:752
msgid ""
"You cannot edit the interface, protocol, source, or destination of "
"associated filter rules."
@@ -14752,13 +18125,15 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:711
#: usr/local/www/firewall_rules_edit.php:744
-#: usr/local/www/firewall_rules_edit.php:744
+#: usr/local/www/firewall_rules_edit.php:747
+#: usr/local/www/firewall_rules_edit.php:759
msgid "View the NAT rule"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:768
#: usr/local/www/firewall_rules_edit.php:803
-#: usr/local/www/firewall_rules_edit.php:803
+#: usr/local/www/firewall_rules_edit.php:806
+#: usr/local/www/firewall_rules_edit.php:818
msgid "Choose on which interface packets must come in to match this rule."
msgstr ""
@@ -14771,41 +18146,50 @@ msgstr ""
#: usr/local/www/load_balancer_relay_action_edit.php:442
#: usr/local/www/firewall_rules_edit.php:809
#: usr/local/www/services_captiveportal_hostname_edit.php:158
-#: usr/local/www/load_balancer_relay_action_edit.php:117
#: usr/local/www/load_balancer_relay_action_edit.php:440
-#: usr/local/www/firewall_rules_edit.php:809
#: usr/local/www/services_captiveportal_ip_edit.php:176
#: usr/local/www/diag_ipsec_spd.php:89
+#: usr/local/www/firewall_rules_edit.php:812
+#: usr/local/www/firewall_rules_edit.php:824
+#: usr/local/www/services_captiveportal_hostname_edit.php:160
+#: usr/local/www/diag_ipsec_spd.php:89
+#: usr/local/www/load_balancer_relay_action_edit.php:117
+#: usr/local/www/load_balancer_relay_action_edit.php:440
msgid "Direction"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:792
#: usr/local/www/firewall_rules_edit.php:827
-#: usr/local/www/firewall_rules_edit.php:827
+#: usr/local/www/firewall_rules_edit.php:830
+#: usr/local/www/firewall_rules_edit.php:842
msgid "TCP/IP Version"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:804
#: usr/local/www/firewall_rules_edit.php:839
-#: usr/local/www/firewall_rules_edit.php:839
+#: usr/local/www/firewall_rules_edit.php:842
+#: usr/local/www/firewall_rules_edit.php:854
msgid "Select the Internet Protocol version this rule applies to"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:818
#: usr/local/www/firewall_rules_edit.php:853
-#: usr/local/www/firewall_rules_edit.php:853
+#: usr/local/www/firewall_rules_edit.php:856
+#: usr/local/www/firewall_rules_edit.php:868
msgid "Hint: in most cases, you should specify "
msgstr ""
#: usr/local/www/firewall_rules_edit.php:822
#: usr/local/www/firewall_rules_edit.php:857
-#: usr/local/www/firewall_rules_edit.php:857
+#: usr/local/www/firewall_rules_edit.php:860
+#: usr/local/www/firewall_rules_edit.php:872
msgid "ICMP type"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:851
#: usr/local/www/firewall_rules_edit.php:886
-#: usr/local/www/firewall_rules_edit.php:886
+#: usr/local/www/firewall_rules_edit.php:889
+#: usr/local/www/firewall_rules_edit.php:901
msgid ""
"If you selected ICMP for the protocol above, you may specify an ICMP type "
"here."
@@ -14813,25 +18197,29 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:885
#: usr/local/www/firewall_rules_edit.php:920
-#: usr/local/www/firewall_rules_edit.php:920
+#: usr/local/www/firewall_rules_edit.php:929
+#: usr/local/www/firewall_rules_edit.php:941
msgid " subnet"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:908
#: usr/local/www/firewall_rules_edit.php:943
-#: usr/local/www/firewall_rules_edit.php:943
+#: usr/local/www/firewall_rules_edit.php:952
+#: usr/local/www/firewall_rules_edit.php:964
msgid "Show source port range"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:944
#: usr/local/www/firewall_rules_edit.php:979
-#: usr/local/www/firewall_rules_edit.php:979
+#: usr/local/www/firewall_rules_edit.php:988
+#: usr/local/www/firewall_rules_edit.php:1001
msgid "Specify the source port or port range for this rule."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:944
#: usr/local/www/firewall_rules_edit.php:979
-#: usr/local/www/firewall_rules_edit.php:979
+#: usr/local/www/firewall_rules_edit.php:988
+#: usr/local/www/firewall_rules_edit.php:1001
msgid ""
"and almost never equal to the destination port range (and should usually be"
msgstr ""
@@ -14840,20 +18228,24 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1039
#: usr/local/www/firewall_rules_edit.php:979
#: usr/local/www/firewall_rules_edit.php:1074
-#: usr/local/www/firewall_rules_edit.php:979
-#: usr/local/www/firewall_rules_edit.php:1074
+#: usr/local/www/firewall_rules_edit.php:988
+#: usr/local/www/firewall_rules_edit.php:1089
+#: usr/local/www/firewall_rules_edit.php:1001
+#: usr/local/www/firewall_rules_edit.php:1102
msgid "'to'"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1005
#: usr/local/www/firewall_rules_edit.php:1040
-#: usr/local/www/firewall_rules_edit.php:1040
+#: usr/local/www/firewall_rules_edit.php:1055
+#: usr/local/www/firewall_rules_edit.php:1068
msgid "Destination port range "
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1037
#: usr/local/www/firewall_rules_edit.php:1072
-#: usr/local/www/firewall_rules_edit.php:1072
+#: usr/local/www/firewall_rules_edit.php:1087
+#: usr/local/www/firewall_rules_edit.php:1100
msgid ""
"Specify the port or port range for the destination of the packet for this "
"rule."
@@ -14861,25 +18253,29 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1039
#: usr/local/www/firewall_rules_edit.php:1074
-#: usr/local/www/firewall_rules_edit.php:1074
+#: usr/local/www/firewall_rules_edit.php:1089
+#: usr/local/www/firewall_rules_edit.php:1102
msgid "field empty if you only want to filter a single port"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1044
#: usr/local/www/firewall_rules_edit.php:1079
-#: usr/local/www/firewall_rules_edit.php:1079
+#: usr/local/www/firewall_rules_edit.php:1094
+#: usr/local/www/firewall_rules_edit.php:1107
msgid "Log"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1047
#: usr/local/www/firewall_rules_edit.php:1082
-#: usr/local/www/firewall_rules_edit.php:1082
+#: usr/local/www/firewall_rules_edit.php:1097
+#: usr/local/www/firewall_rules_edit.php:1110
msgid "Log packets that are handled by this rule"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1049
#: usr/local/www/firewall_rules_edit.php:1084
-#: usr/local/www/firewall_rules_edit.php:1084
+#: usr/local/www/firewall_rules_edit.php:1099
+#: usr/local/www/firewall_rules_edit.php:1112
msgid ""
"Hint: the firewall has limited local log space. Don't turn on logging for "
"everything. If you want to do a lot of logging, consider using a remote "
@@ -14888,13 +18284,15 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1049
#: usr/local/www/firewall_rules_edit.php:1084
-#: usr/local/www/firewall_rules_edit.php:1084
+#: usr/local/www/firewall_rules_edit.php:1099
+#: usr/local/www/firewall_rules_edit.php:1112
msgid "see the"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1049
#: usr/local/www/firewall_rules_edit.php:1084
-#: usr/local/www/firewall_rules_edit.php:1084
+#: usr/local/www/firewall_rules_edit.php:1099
+#: usr/local/www/firewall_rules_edit.php:1112
msgid "Diagnostics: System logs: Settings"
msgstr ""
@@ -14904,41 +18302,49 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1084
#: usr/local/www/system_advanced_firewall.php:303
#: usr/local/www/services_captiveportal.php:953
-#: usr/local/www/firewall_rules_edit.php:1084
-#: usr/local/www/system_advanced_firewall.php:303
#: usr/local/www/services_captiveportal.php:949
+#: usr/local/www/firewall_rules_edit.php:1099
+#: usr/local/www/system_advanced_firewall.php:332
+#: usr/local/www/services_captiveportal.php:951
+#: usr/local/www/firewall_rules_edit.php:1112
+#: usr/local/www/system_advanced_firewall.php:333
+#: usr/local/www/services_captiveportal.php:967
msgid "page"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1057
#: usr/local/www/services_unbound_acls.php:296
#: usr/local/www/firewall_rules_edit.php:1092
-#: usr/local/www/services_unbound_acls.php:296
-#: usr/local/www/firewall_rules_edit.php:1092
+#: usr/local/www/firewall_rules_edit.php:1107
+#: usr/local/www/firewall_rules_edit.php:1120
msgid "You may enter a description here for your reference."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1080
#: usr/local/www/firewall_rules_edit.php:1115
-#: usr/local/www/firewall_rules_edit.php:1115
+#: usr/local/www/firewall_rules_edit.php:1130
+#: usr/local/www/firewall_rules_edit.php:1143
msgid "Source OS"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1086
#: usr/local/www/firewall_rules_edit.php:1121
-#: usr/local/www/firewall_rules_edit.php:1121
+#: usr/local/www/firewall_rules_edit.php:1136
+#: usr/local/www/firewall_rules_edit.php:1149
msgid "OS Type:"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1109
#: usr/local/www/firewall_rules_edit.php:1144
-#: usr/local/www/firewall_rules_edit.php:1144
+#: usr/local/www/firewall_rules_edit.php:1159
+#: usr/local/www/firewall_rules_edit.php:1172
msgid "Note: this only works for TCP rules"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1114
#: usr/local/www/firewall_rules_edit.php:1149
-#: usr/local/www/firewall_rules_edit.php:1149
+#: usr/local/www/firewall_rules_edit.php:1164
+#: usr/local/www/firewall_rules_edit.php:1177
msgid "Diffserv Code Point"
msgstr ""
@@ -14949,16 +18355,24 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1165
#: usr/local/www/vpn_ipsec_phase2.php:655
#: usr/local/www/vpn_ipsec_phase1.php:819
-#: usr/local/www/firewall_rules_edit.php:1165
#: usr/local/www/interfaces_ppps_edit.php:676
#: usr/local/www/vpn_ipsec_phase2.php:751
#: usr/local/www/vpn_ipsec_phase1.php:816
+#: usr/local/www/firewall_rules_edit.php:1180
+#: usr/local/www/interfaces_ppps_edit.php:682
+#: usr/local/www/vpn_ipsec_phase1.php:837
+#: usr/local/www/vpn_ipsec_phase2.php:772
+#: usr/local/www/firewall_rules_edit.php:1193
+#: usr/local/www/interfaces_ppps_edit.php:682
+#: usr/local/www/vpn_ipsec_phase1.php:837
+#: usr/local/www/vpn_ipsec_phase2.php:772
msgid "Advanced Options"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1137
#: usr/local/www/firewall_rules_edit.php:1172
-#: usr/local/www/firewall_rules_edit.php:1172
+#: usr/local/www/firewall_rules_edit.php:1187
+#: usr/local/www/firewall_rules_edit.php:1200
msgid ""
"This allows packets with IP options to pass. Otherwise they are blocked by "
"default. This is usually only seen with multicast traffic."
@@ -14966,13 +18380,15 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1140
#: usr/local/www/firewall_rules_edit.php:1175
-#: usr/local/www/firewall_rules_edit.php:1175
+#: usr/local/www/firewall_rules_edit.php:1190
+#: usr/local/www/firewall_rules_edit.php:1203
msgid "This will disable auto generated reply-to for this rule."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1143
#: usr/local/www/firewall_rules_edit.php:1178
-#: usr/local/www/firewall_rules_edit.php:1178
+#: usr/local/www/firewall_rules_edit.php:1193
+#: usr/local/www/firewall_rules_edit.php:1206
msgid ""
"You can mark a packet matching this rule and use this mark to match on other "
"NAT/filter rules. It is called"
@@ -14980,73 +18396,85 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1143
#: usr/local/www/firewall_rules_edit.php:1178
-#: usr/local/www/firewall_rules_edit.php:1178
+#: usr/local/www/firewall_rules_edit.php:1193
+#: usr/local/www/firewall_rules_edit.php:1206
msgid "Policy filtering"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1146
#: usr/local/www/firewall_rules_edit.php:1181
-#: usr/local/www/firewall_rules_edit.php:1181
+#: usr/local/www/firewall_rules_edit.php:1196
+#: usr/local/www/firewall_rules_edit.php:1209
msgid "You can match packet on a mark placed before on another rule."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1148
#: usr/local/www/firewall_rules_edit.php:1183
-#: usr/local/www/firewall_rules_edit.php:1183
+#: usr/local/www/firewall_rules_edit.php:1198
+#: usr/local/www/firewall_rules_edit.php:1211
msgid " Maximum state entries this rule can create"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1149
#: usr/local/www/firewall_rules_edit.php:1184
-#: usr/local/www/firewall_rules_edit.php:1184
+#: usr/local/www/firewall_rules_edit.php:1199
+#: usr/local/www/firewall_rules_edit.php:1212
msgid " Maximum number of unique source hosts"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1150
#: usr/local/www/firewall_rules_edit.php:1185
-#: usr/local/www/firewall_rules_edit.php:1185
+#: usr/local/www/firewall_rules_edit.php:1200
+#: usr/local/www/firewall_rules_edit.php:1213
msgid " Maximum number of established connections per host"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1151
#: usr/local/www/firewall_rules_edit.php:1186
-#: usr/local/www/firewall_rules_edit.php:1186
+#: usr/local/www/firewall_rules_edit.php:1201
+#: usr/local/www/firewall_rules_edit.php:1214
msgid " Maximum state entries per host"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1160
#: usr/local/www/firewall_rules_edit.php:1195
-#: usr/local/www/firewall_rules_edit.php:1195
+#: usr/local/www/firewall_rules_edit.php:1210
+#: usr/local/www/firewall_rules_edit.php:1223
msgid "Maximum new connections / per second(s)"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1164
#: usr/local/www/firewall_rules_edit.php:1199
-#: usr/local/www/firewall_rules_edit.php:1199
+#: usr/local/www/firewall_rules_edit.php:1214
+#: usr/local/www/firewall_rules_edit.php:1226
msgid "State Timeout in seconds"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1167
#: usr/local/www/firewall_rules_edit.php:1202
-#: usr/local/www/firewall_rules_edit.php:1202
+#: usr/local/www/firewall_rules_edit.php:1217
+#: usr/local/www/firewall_rules_edit.php:1228
msgid "Note: Leave fields blank to disable that feature."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1172
#: usr/local/www/firewall_rules_edit.php:1207
-#: usr/local/www/firewall_rules_edit.php:1207
+#: usr/local/www/firewall_rules_edit.php:1222
+#: usr/local/www/firewall_rules_edit.php:1233
msgid "TCP flags"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1206
#: usr/local/www/firewall_rules_edit.php:1241
-#: usr/local/www/firewall_rules_edit.php:1241
+#: usr/local/www/firewall_rules_edit.php:1256
+#: usr/local/www/firewall_rules_edit.php:1265
msgid "Any flags."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1208
#: usr/local/www/firewall_rules_edit.php:1243
-#: usr/local/www/firewall_rules_edit.php:1243
+#: usr/local/www/firewall_rules_edit.php:1258
+#: usr/local/www/firewall_rules_edit.php:1267
msgid ""
"Use this to choose TCP flags that must be set or cleared for this rule to "
"match."
@@ -15054,7 +18482,8 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1214
#: usr/local/www/firewall_rules_edit.php:1249
-#: usr/local/www/firewall_rules_edit.php:1249
+#: usr/local/www/firewall_rules_edit.php:1264
+#: usr/local/www/firewall_rules_edit.php:1273
msgid "State Type"
msgstr ""
@@ -15062,8 +18491,10 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1228
#: usr/local/www/firewall_rules_edit.php:1256
#: usr/local/www/firewall_rules_edit.php:1263
-#: usr/local/www/firewall_rules_edit.php:1256
-#: usr/local/www/firewall_rules_edit.php:1263
+#: usr/local/www/firewall_rules_edit.php:1271
+#: usr/local/www/firewall_rules_edit.php:1278
+#: usr/local/www/firewall_rules_edit.php:1280
+#: usr/local/www/firewall_rules_edit.php:1286
msgid "keep state"
msgstr ""
@@ -15071,8 +18502,10 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1229
#: usr/local/www/firewall_rules_edit.php:1257
#: usr/local/www/firewall_rules_edit.php:1264
-#: usr/local/www/firewall_rules_edit.php:1257
-#: usr/local/www/firewall_rules_edit.php:1264
+#: usr/local/www/firewall_rules_edit.php:1272
+#: usr/local/www/firewall_rules_edit.php:1279
+#: usr/local/www/firewall_rules_edit.php:1281
+#: usr/local/www/firewall_rules_edit.php:1287
msgid "sloppy state"
msgstr ""
@@ -15080,14 +18513,17 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1230
#: usr/local/www/firewall_rules_edit.php:1258
#: usr/local/www/firewall_rules_edit.php:1265
-#: usr/local/www/firewall_rules_edit.php:1258
-#: usr/local/www/firewall_rules_edit.php:1265
+#: usr/local/www/firewall_rules_edit.php:1273
+#: usr/local/www/firewall_rules_edit.php:1280
+#: usr/local/www/firewall_rules_edit.php:1282
+#: usr/local/www/firewall_rules_edit.php:1288
msgid "synproxy state"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1225
#: usr/local/www/firewall_rules_edit.php:1260
-#: usr/local/www/firewall_rules_edit.php:1260
+#: usr/local/www/firewall_rules_edit.php:1275
+#: usr/local/www/firewall_rules_edit.php:1284
msgid ""
"Hint: Select which type of state tracking mechanism you would like to use. "
"If in doubt, use keep state."
@@ -15097,14 +18533,17 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1229
#: usr/local/www/firewall_rules_edit.php:1263
#: usr/local/www/firewall_rules_edit.php:1264
-#: usr/local/www/firewall_rules_edit.php:1263
-#: usr/local/www/firewall_rules_edit.php:1264
+#: usr/local/www/firewall_rules_edit.php:1278
+#: usr/local/www/firewall_rules_edit.php:1279
+#: usr/local/www/firewall_rules_edit.php:1286
+#: usr/local/www/firewall_rules_edit.php:1287
msgid "Works with all IP protocols."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1230
#: usr/local/www/firewall_rules_edit.php:1265
-#: usr/local/www/firewall_rules_edit.php:1265
+#: usr/local/www/firewall_rules_edit.php:1280
+#: usr/local/www/firewall_rules_edit.php:1288
msgid ""
"Proxies incoming TCP connections to help protect servers from spoofed TCP "
"SYN floods. This option includes the functionality of keep state and "
@@ -15113,7 +18552,8 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1231
#: usr/local/www/firewall_rules_edit.php:1266
-#: usr/local/www/firewall_rules_edit.php:1266
+#: usr/local/www/firewall_rules_edit.php:1281
+#: usr/local/www/firewall_rules_edit.php:1289
msgid ""
"Do not use state mechanisms to keep track. This is only useful if you're "
"doing advanced queueing in certain situations. Please check the "
@@ -15122,7 +18562,6 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1245
#: usr/local/www/firewall_rules_edit.php:1280
-#: usr/local/www/firewall_rules_edit.php:1280
msgid ""
"Hint: This prevents the rule from automatically syncing to other CARP "
"members."
@@ -15130,7 +18569,8 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1283
#: usr/local/www/firewall_rules_edit.php:1350
-#: usr/local/www/firewall_rules_edit.php:1350
+#: usr/local/www/firewall_rules_edit.php:1365
+#: usr/local/www/firewall_rules_edit.php:1372
msgid "Leave as 'none' to leave the rule enabled all the time."
msgstr ""
@@ -15140,15 +18580,21 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1362
#: usr/local/www/services_captiveportal.php:821
#: usr/local/www/services_captiveportal.php:841
-#: usr/local/www/firewall_rules_edit.php:1362
#: usr/local/www/services_captiveportal.php:819
#: usr/local/www/services_captiveportal.php:839
+#: usr/local/www/firewall_rules_edit.php:1377
+#: usr/local/www/services_captiveportal.php:807
+#: usr/local/www/services_captiveportal.php:837
+#: usr/local/www/firewall_rules_edit.php:1384
+#: usr/local/www/services_captiveportal.php:823
+#: usr/local/www/services_captiveportal.php:853
msgid "default"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1334
#: usr/local/www/firewall_rules_edit.php:1405
-#: usr/local/www/firewall_rules_edit.php:1405
+#: usr/local/www/firewall_rules_edit.php:1420
+#: usr/local/www/firewall_rules_edit.php:1427
msgid ""
"Leave as 'default' to use the system routing table. Or choose a gateway to "
"utilize policy based routing."
@@ -15156,20 +18602,23 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1339
#: usr/local/www/firewall_rules_edit.php:1410
-#: usr/local/www/firewall_rules_edit.php:1410
+#: usr/local/www/firewall_rules_edit.php:1425
+#: usr/local/www/firewall_rules_edit.php:1432
msgid "In/Out"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1383
#: usr/local/www/firewall_rules_edit.php:1454
-#: usr/local/www/firewall_rules_edit.php:1454
+#: usr/local/www/firewall_rules_edit.php:1469
+#: usr/local/www/firewall_rules_edit.php:1476
msgid ""
"Choose the Out queue/Virtual interface only if you have also selected In."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1383
#: usr/local/www/firewall_rules_edit.php:1454
-#: usr/local/www/firewall_rules_edit.php:1454
+#: usr/local/www/firewall_rules_edit.php:1469
+#: usr/local/www/firewall_rules_edit.php:1476
msgid ""
"The Out selection is applied to traffic leaving the interface where the rule "
"is created, In is applied to traffic coming into the chosen interface."
@@ -15177,7 +18626,8 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1383
#: usr/local/www/firewall_rules_edit.php:1454
-#: usr/local/www/firewall_rules_edit.php:1454
+#: usr/local/www/firewall_rules_edit.php:1469
+#: usr/local/www/firewall_rules_edit.php:1476
msgid ""
"If you are creating a floating rule, if the direction is In then the same "
"rules apply, if the direction is out the selections are reverted Out is for "
@@ -15186,19 +18636,22 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1389
#: usr/local/www/firewall_rules_edit.php:1460
-#: usr/local/www/firewall_rules_edit.php:1460
+#: usr/local/www/firewall_rules_edit.php:1475
+#: usr/local/www/firewall_rules_edit.php:1482
msgid "Ackqueue/Queue"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1439
#: usr/local/www/firewall_rules_edit.php:1510
-#: usr/local/www/firewall_rules_edit.php:1510
+#: usr/local/www/firewall_rules_edit.php:1525
+#: usr/local/www/firewall_rules_edit.php:1532
msgid "Choose the Acknowledge Queue only if you have selected Queue."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1466
#: usr/local/www/firewall_rules_edit.php:1537
-#: usr/local/www/firewall_rules_edit.php:1537
+#: usr/local/www/firewall_rules_edit.php:1552
+#: usr/local/www/firewall_rules_edit.php:1560
msgid ""
"Choose a Layer7 container to apply application protocol inspection rules. "
"These are valid for TCP and UDP protocols only."
@@ -15208,9 +18661,11 @@ msgstr ""
#: usr/local/www/firewall_schedule_edit.php:61 usr/local/www/fbegin.inc:113
#: usr/local/www/system_advanced_misc.php:380 usr/local/www/fbegin.inc:130
#: usr/local/www/system_advanced_misc.php:423 usr/local/www/fbegin.inc:139
-#: usr/local/www/firewall_schedule_edit.php:61
#: usr/local/www/system_advanced_misc.php:472
+#: usr/local/www/system_advanced_misc.php:484 usr/local/www/fbegin.inc:131
#: usr/local/www/firewall_schedule.php:50
+#: usr/local/www/firewall_schedule_edit.php:61
+#: usr/local/www/system_advanced_misc.php:531 usr/local/www/fbegin.inc:131
msgid "Schedules"
msgstr ""
@@ -15285,42 +18740,50 @@ msgstr ""
#: usr/local/www/firewall_schedule_edit.php:770
#: usr/local/www/firewall_schedule_edit.php:769
+#: usr/local/www/firewall_schedule_edit.php:769
msgid "Schedule information"
msgstr ""
#: usr/local/www/firewall_schedule_edit.php:776
#: usr/local/www/firewall_schedule_edit.php:775
+#: usr/local/www/firewall_schedule_edit.php:775
msgid "Schedule Name"
msgstr ""
#: usr/local/www/firewall_schedule_edit.php:782
#: usr/local/www/firewall_schedule_edit.php:781
+#: usr/local/www/firewall_schedule_edit.php:781
msgid "NOTE: This schedule is in use so the name may not be modified!"
msgstr ""
#: usr/local/www/firewall_schedule_edit.php:787
#: usr/local/www/firewall_schedule_edit.php:786
+#: usr/local/www/firewall_schedule_edit.php:786
msgid ""
"The name of the alias may only consist of the characters a-z, A-Z and 0-9"
msgstr ""
#: usr/local/www/firewall_schedule_edit.php:804
#: usr/local/www/firewall_schedule_edit.php:803
+#: usr/local/www/firewall_schedule_edit.php:803
msgid "Month"
msgstr ""
#: usr/local/www/firewall_schedule_edit.php:847
#: usr/local/www/firewall_schedule_edit.php:846
+#: usr/local/www/firewall_schedule_edit.php:846
msgid "Tue"
msgstr ""
#: usr/local/www/firewall_schedule_edit.php:849
#: usr/local/www/firewall_schedule_edit.php:848
+#: usr/local/www/firewall_schedule_edit.php:848
msgid "Thu"
msgstr ""
#: usr/local/www/firewall_schedule_edit.php:906
#: usr/local/www/firewall_schedule_edit.php:905
+#: usr/local/www/firewall_schedule_edit.php:905
msgid ""
"Click individual date to select that date only. Click the appropriate "
"weekday Header to select all occurences of that weekday."
@@ -15330,6 +18793,8 @@ msgstr ""
#: usr/local/www/firewall_schedule_edit.php:996
#: usr/local/www/firewall_schedule_edit.php:913
#: usr/local/www/firewall_schedule_edit.php:995
+#: usr/local/www/firewall_schedule_edit.php:913
+#: usr/local/www/firewall_schedule_edit.php:995
msgid "Start Time"
msgstr ""
@@ -15337,6 +18802,8 @@ msgstr ""
#: usr/local/www/firewall_schedule_edit.php:997
#: usr/local/www/firewall_schedule_edit.php:913
#: usr/local/www/firewall_schedule_edit.php:996
+#: usr/local/www/firewall_schedule_edit.php:913
+#: usr/local/www/firewall_schedule_edit.php:996
msgid "Stop Time"
msgstr ""
@@ -15344,6 +18811,8 @@ msgstr ""
#: usr/local/www/firewall_schedule_edit.php:952
#: usr/local/www/firewall_schedule_edit.php:926
#: usr/local/www/firewall_schedule_edit.php:951
+#: usr/local/www/firewall_schedule_edit.php:926
+#: usr/local/www/firewall_schedule_edit.php:951
msgid "Hr"
msgstr ""
@@ -15351,11 +18820,14 @@ msgstr ""
#: usr/local/www/firewall_schedule_edit.php:959
#: usr/local/www/firewall_schedule_edit.php:933
#: usr/local/www/firewall_schedule_edit.php:958
+#: usr/local/www/firewall_schedule_edit.php:933
+#: usr/local/www/firewall_schedule_edit.php:958
msgid "Min"
msgstr ""
#: usr/local/www/firewall_schedule_edit.php:963
#: usr/local/www/firewall_schedule_edit.php:962
+#: usr/local/www/firewall_schedule_edit.php:962
msgid ""
"Select the time range for the day(s) selected on the Month(s) above. A full "
"day is 0:00-23:59."
@@ -15363,39 +18835,47 @@ msgstr ""
#: usr/local/www/firewall_schedule_edit.php:967
#: usr/local/www/firewall_schedule_edit.php:966
+#: usr/local/www/firewall_schedule_edit.php:966
msgid "Time Range Description"
msgstr ""
#: usr/local/www/firewall_schedule_edit.php:977
#: usr/local/www/firewall_schedule_edit.php:976
+#: usr/local/www/firewall_schedule_edit.php:976
msgid "Add Time"
msgstr ""
#: usr/local/www/firewall_schedule_edit.php:978
#: usr/local/www/firewall_schedule_edit.php:977
+#: usr/local/www/firewall_schedule_edit.php:977
msgid "Clear Selection"
msgstr ""
#: usr/local/www/firewall_schedule_edit.php:987
#: usr/local/www/firewall_schedule_edit.php:986
+#: usr/local/www/firewall_schedule_edit.php:986
msgid "Schedule repeat"
msgstr ""
#: usr/local/www/firewall_schedule_edit.php:990
#: usr/local/www/firewall_schedule_edit.php:989
+#: usr/local/www/firewall_schedule_edit.php:989
msgid "Configured Ranges"
msgstr ""
#: usr/local/www/firewall_schedule_edit.php:995
#: usr/local/www/firewall_schedule_edit.php:994
+#: usr/local/www/firewall_schedule_edit.php:994
msgid "Day(s)"
msgstr ""
#: usr/local/www/firewall_shaper.php:369 usr/local/www/firewall_shaper.php:370
+#: usr/local/www/firewall_shaper.php:370
msgid "Disable shaper on interface"
msgstr ""
#: usr/local/www/firewall_shaper.php:424 usr/local/www/firewall_shaper.php:425
+#: usr/local/www/firewall_shaper.php:426
msgid "Remove Shaper"
msgstr ""
@@ -15413,9 +18893,12 @@ msgstr ""
#: usr/local/www/status_rrd_graph_settings.php:156
#: usr/local/www/diag_backup.php:181 etc/inc/service-utils.inc:256
#: usr/local/www/fbegin.inc:146 usr/local/www/fbegin.inc:181
+#: usr/local/www/fbegin.inc:138 usr/local/www/fbegin.inc:172
+#: etc/inc/service-utils.inc:255
#: usr/local/www/status_rrd_graph_settings.php:58
#: usr/local/www/status_rrd_graph_settings.php:156
-#: usr/local/www/diag_backup.php:181
+#: usr/local/www/diag_backup.php:181 usr/local/www/fbegin.inc:138
+#: usr/local/www/fbegin.inc:172 etc/inc/service-utils.inc:272
msgid "Captive Portal"
msgstr ""
@@ -15429,13 +18912,16 @@ msgstr ""
#: usr/local/www/widgets/widgets/services_status.widget.php:68
#: usr/local/www/fbegin.inc:138 usr/local/www/diag_backup.php:183
#: etc/inc/service-utils.inc:241 usr/local/www/fbegin.inc:147
-#: usr/local/www/diag_backup.php:183
+#: usr/local/www/fbegin.inc:139 etc/inc/service-utils.inc:240
+#: usr/local/www/diag_backup.php:183 usr/local/www/fbegin.inc:139
+#: etc/inc/service-utils.inc:257
msgid "DNS Forwarder"
msgstr ""
#: usr/local/www/diag_backup.php:107 usr/local/www/fbegin.inc:125
#: usr/local/www/fbegin.inc:142 usr/local/www/diag_backup.php:184
-#: usr/local/www/fbegin.inc:151 usr/local/www/diag_backup.php:184
+#: usr/local/www/fbegin.inc:151 usr/local/www/fbegin.inc:143
+#: usr/local/www/diag_backup.php:184 usr/local/www/fbegin.inc:143
msgid "DHCP Server"
msgstr ""
@@ -15492,8 +18978,9 @@ msgstr ""
#: usr/local/www/diag_backup.php:157 usr/local/www/diag_backup.php:619
#: usr/local/www/diag_backup.php:654 usr/local/www/diag_backup.php:244
#: usr/local/www/diag_backup.php:698 usr/local/www/diag_backup.php:735
-#: usr/local/www/diag_backup.php:244 usr/local/www/diag_backup.php:698
-#: usr/local/www/diag_backup.php:735
+#: usr/local/www/diag_backup.php:703 usr/local/www/diag_backup.php:740
+#: usr/local/www/diag_backup.php:244 usr/local/www/diag_backup.php:703
+#: usr/local/www/diag_backup.php:740
msgid "Restore configuration"
msgstr ""
@@ -15504,7 +18991,8 @@ msgstr ""
#: usr/local/www/diag_backup.php:161 usr/local/www/diag_backup.php:673
#: usr/local/www/diag_backup.php:248 usr/local/www/diag_backup.php:754
-#: usr/local/www/diag_backup.php:248 usr/local/www/diag_backup.php:754
+#: usr/local/www/diag_backup.php:762 usr/local/www/diag_backup.php:248
+#: usr/local/www/diag_backup.php:762
msgid "Clear Package Lock"
msgstr ""
@@ -15577,155 +19065,160 @@ msgstr ""
#: usr/local/www/diag_backup.php:461 usr/local/www/diag_backup.php:485
#: usr/local/www/diag_backup.php:538 usr/local/www/diag_backup.php:562
-#: usr/local/www/diag_backup.php:538 usr/local/www/diag_backup.php:562
+#: usr/local/www/diag_backup.php:543 usr/local/www/diag_backup.php:567
+#: usr/local/www/diag_backup.php:543 usr/local/www/diag_backup.php:567
msgid "The configuration could not be restored."
msgstr ""
#: usr/local/www/diag_backup.php:466 usr/local/www/diag_backup.php:543
-#: usr/local/www/diag_backup.php:543
+#: usr/local/www/diag_backup.php:548 usr/local/www/diag_backup.php:548
msgid "The configuration could not be restored (file upload error)."
msgstr ""
#: usr/local/www/diag_backup.php:479 usr/local/www/diag_backup.php:556
-#: usr/local/www/diag_backup.php:556
+#: usr/local/www/diag_backup.php:561 usr/local/www/diag_backup.php:561
msgid ""
"XXX - this feature may hose your config (do NOT backrev configs!) - billm"
msgstr ""
#: usr/local/www/diag_backup.php:488 usr/local/www/diag_backup.php:565
-#: usr/local/www/diag_backup.php:565
+#: usr/local/www/diag_backup.php:570 usr/local/www/diag_backup.php:570
msgid "No version selected."
msgstr ""
#: usr/local/www/diag_backup.php:499 usr/local/www/diag_backup.php:576
-#: usr/local/www/diag_backup.php:576
+#: usr/local/www/diag_backup.php:581 usr/local/www/diag_backup.php:581
msgid "Backup/restore"
msgstr ""
#: usr/local/www/diag_backup.php:540
#: usr/local/www/system_firmware_restorefullbackup.php:116
-#: usr/local/www/diag_backup.php:619 usr/local/www/diag_backup.php:619
+#: usr/local/www/diag_backup.php:619 usr/local/www/diag_backup.php:624
+#: usr/local/www/diag_backup.php:624
#: usr/local/www/system_firmware_restorefullbackup.php:116
msgid "The firewall configuration has been changed."
msgstr ""
#: usr/local/www/diag_backup.php:540
#: usr/local/www/system_firmware_restorefullbackup.php:116
-#: usr/local/www/diag_backup.php:619 usr/local/www/diag_backup.php:619
+#: usr/local/www/diag_backup.php:619 usr/local/www/diag_backup.php:624
+#: usr/local/www/diag_backup.php:624
#: usr/local/www/system_firmware_restorefullbackup.php:116
msgid "The firewall is now rebooting."
msgstr ""
#: usr/local/www/diag_backup.php:549 usr/local/www/diag_confbak.php:139
-#: usr/local/www/diag_backup.php:628 usr/local/www/diag_backup.php:628
-#: usr/local/www/diag_confbak.php:139
+#: usr/local/www/diag_backup.php:628 usr/local/www/diag_backup.php:633
+#: usr/local/www/diag_backup.php:633 usr/local/www/diag_confbak.php:139
msgid "Config History"
msgstr ""
#: usr/local/www/diag_backup.php:550 usr/local/www/diag_confbak.php:140
#: usr/local/www/fbegin.inc:190 usr/local/www/fbegin.inc:208
#: usr/local/www/diag_backup.php:629 usr/local/www/fbegin.inc:216
-#: usr/local/www/diag_backup.php:629 usr/local/www/diag_confbak.php:140
+#: usr/local/www/diag_backup.php:634 usr/local/www/fbegin.inc:207
+#: usr/local/www/diag_backup.php:634 usr/local/www/fbegin.inc:207
+#: usr/local/www/diag_confbak.php:140
msgid "Backup/Restore"
msgstr ""
#: usr/local/www/diag_backup.php:560 usr/local/www/diag_backup.php:639
-#: usr/local/www/diag_backup.php:639
+#: usr/local/www/diag_backup.php:644 usr/local/www/diag_backup.php:644
msgid "Backup configuration"
msgstr ""
#: usr/local/www/diag_backup.php:565 usr/local/www/diag_backup.php:644
-#: usr/local/www/diag_backup.php:644
+#: usr/local/www/diag_backup.php:649 usr/local/www/diag_backup.php:649
msgid "Click this button to download the system configuration in XML format."
msgstr ""
#: usr/local/www/diag_backup.php:565 usr/local/www/diag_backup.php:644
-#: usr/local/www/diag_backup.php:644
+#: usr/local/www/diag_backup.php:649 usr/local/www/diag_backup.php:649
msgid "Backup area:"
msgstr ""
#: usr/local/www/diag_backup.php:572 usr/local/www/diag_backup.php:651
-#: usr/local/www/diag_backup.php:651
+#: usr/local/www/diag_backup.php:656 usr/local/www/diag_backup.php:656
msgid "Do not backup package information."
msgstr ""
#: usr/local/www/diag_backup.php:582 usr/local/www/diag_backup.php:661
-#: usr/local/www/diag_backup.php:661
+#: usr/local/www/diag_backup.php:666 usr/local/www/diag_backup.php:666
msgid "Encrypt this configuration file."
msgstr ""
#: usr/local/www/diag_backup.php:590 usr/local/www/diag_backup.php:669
-#: usr/local/www/diag_backup.php:669
+#: usr/local/www/diag_backup.php:674 usr/local/www/diag_backup.php:674
msgid ""
"Do not backup RRD data (NOTE: RRD Data can consume 4+ megabytes of config."
"xml space!)"
msgstr ""
#: usr/local/www/diag_backup.php:605 usr/local/www/diag_backup.php:684
-#: usr/local/www/diag_backup.php:684
+#: usr/local/www/diag_backup.php:689 usr/local/www/diag_backup.php:689
msgid "confirm:"
msgstr ""
#: usr/local/www/diag_backup.php:612 usr/local/www/diag_backup.php:691
-#: usr/local/www/diag_backup.php:691
+#: usr/local/www/diag_backup.php:696 usr/local/www/diag_backup.php:696
msgid "Download configuration"
msgstr ""
#: usr/local/www/diag_backup.php:624 usr/local/www/diag_backup.php:703
-#: usr/local/www/diag_backup.php:703
+#: usr/local/www/diag_backup.php:708 usr/local/www/diag_backup.php:708
msgid "Open a"
msgstr ""
#: usr/local/www/diag_backup.php:624 usr/local/www/diag_backup.php:703
-#: usr/local/www/diag_backup.php:703
+#: usr/local/www/diag_backup.php:708 usr/local/www/diag_backup.php:708
msgid ""
"configuration XML file and click the button below to restore the "
"configuration."
msgstr ""
#: usr/local/www/diag_backup.php:624 usr/local/www/diag_backup.php:705
-#: usr/local/www/diag_backup.php:705
+#: usr/local/www/diag_backup.php:710 usr/local/www/diag_backup.php:710
msgid "Restore area:"
msgstr ""
#: usr/local/www/diag_backup.php:632 usr/local/www/diag_backup.php:713
-#: usr/local/www/diag_backup.php:713
+#: usr/local/www/diag_backup.php:718 usr/local/www/diag_backup.php:718
msgid "Configuration file is encrypted."
msgstr ""
#: usr/local/www/diag_backup.php:639 usr/local/www/diag_backup.php:720
-#: usr/local/www/diag_backup.php:720
+#: usr/local/www/diag_backup.php:725 usr/local/www/diag_backup.php:725
msgid "Password :"
msgstr ""
#: usr/local/www/diag_backup.php:647 usr/local/www/diag_backup.php:728
-#: usr/local/www/diag_backup.php:728
+#: usr/local/www/diag_backup.php:733 usr/local/www/diag_backup.php:733
msgid "confirm :"
msgstr ""
#: usr/local/www/diag_backup.php:655 usr/local/www/diag_backup.php:736
-#: usr/local/www/diag_backup.php:736
+#: usr/local/www/diag_backup.php:741 usr/local/www/diag_backup.php:741
msgid "The firewall will reboot after restoring the configuration."
msgstr ""
#: usr/local/www/diag_backup.php:663 usr/local/www/diag_backup.php:744
-#: usr/local/www/diag_backup.php:744
+#: usr/local/www/diag_backup.php:749 usr/local/www/diag_backup.php:749
msgid "Package Functions"
msgstr ""
#: usr/local/www/diag_backup.php:668 usr/local/www/diag_backup.php:749
-#: usr/local/www/diag_backup.php:749
+#: usr/local/www/diag_backup.php:755 usr/local/www/diag_backup.php:755
msgid ""
"Click this button to reinstall all system packages. This may take a while."
msgstr ""
#: usr/local/www/diag_backup.php:669 usr/local/www/diag_backup.php:750
-#: usr/local/www/diag_backup.php:750
+#: usr/local/www/diag_backup.php:756 usr/local/www/diag_backup.php:756
msgid "Reinstall packages"
msgstr ""
#: usr/local/www/diag_backup.php:672 usr/local/www/diag_backup.php:753
-#: usr/local/www/diag_backup.php:753
+#: usr/local/www/diag_backup.php:761 usr/local/www/diag_backup.php:761
msgid ""
"Click this button to clear the package lock if a package fails to reinstall "
"properly after an upgrade."
@@ -15744,9 +19237,15 @@ msgstr ""
#: usr/local/www/diag_confbak.php:49 usr/local/www/diag_confbak.php:59
#: usr/local/www/diag_confbak.php:111 usr/local/www/diag_confbak.php:161
#: usr/local/www/diag_confbak.php:169 usr/local/www/diag_confbak.php:162
-#: usr/local/www/diag_confbak.php:171 usr/local/www/diag_confbak.php:49
+#: usr/local/www/diag_confbak.php:171
+#: usr/local/www/firewall_rules_edit.php:1585
+#: usr/local/www/firewall_rules_edit.php:1593
+#: usr/local/www/firewall_nat_edit.php:869
+#: usr/local/www/firewall_nat_edit.php:877 usr/local/www/diag_confbak.php:49
#: usr/local/www/diag_confbak.php:59 usr/local/www/diag_confbak.php:111
#: usr/local/www/diag_confbak.php:162 usr/local/www/diag_confbak.php:171
+#: usr/local/www/firewall_nat_out_edit.php:684
+#: usr/local/www/firewall_nat_out_edit.php:692
msgid "n/j/y H:i:s"
msgstr ""
@@ -15775,8 +19274,8 @@ msgstr ""
#: usr/local/www/diag_confbak.php:153
#: usr/local/www/system_firmware_restorefullbackup.php:140
-#: usr/local/www/diag_confbak.php:153
#: usr/local/www/system_firmware_restorefullbackup.php:140
+#: usr/local/www/diag_confbak.php:153
msgid "Date"
msgstr ""
@@ -15792,8 +19291,9 @@ msgstr ""
#: usr/local/www/diag_confbak.php:171 usr/local/www/diag_confbak.php:173
#: usr/local/www/widgets/widgets/gateways.widget.php:105
+#: usr/local/www/widgets/widgets/gateways.widget.php:128
+#: usr/local/www/widgets/widgets/gateways.widget.php:129
#: usr/local/www/diag_confbak.php:173
-#: usr/local/www/widgets/widgets/gateways.widget.php:105
msgid "Unknown"
msgstr ""
@@ -15829,6 +19329,7 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip.php:106
#: usr/local/www/firewall_virtual_ip.php:103
+#: usr/local/www/firewall_virtual_ip.php:103
msgid ""
"This entry cannot be deleted because it is still referenced by at least one "
"NAT mapping."
@@ -15845,60 +19346,80 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip.php:149
#: usr/local/www/firewall_virtual_ip.php:152
+#: usr/local/www/firewall_virtual_ip.php:166
+#: usr/local/www/firewall_virtual_ip.php:166
msgid "Virtual IP Addresses"
msgstr ""
#: usr/local/www/firewall_virtual_ip.php:164
#: usr/local/www/firewall_virtual_ip.php:167
+#: usr/local/www/firewall_virtual_ip.php:181
+#: usr/local/www/firewall_virtual_ip.php:181
msgid "The VIP configuration has been changed."
msgstr ""
#: usr/local/www/firewall_virtual_ip.php:172 usr/local/www/fbegin.inc:115
#: usr/local/www/fbegin.inc:132 usr/local/www/fbegin.inc:141
#: usr/local/www/firewall_virtual_ip.php:175
+#: usr/local/www/firewall_virtual_ip.php:189 usr/local/www/fbegin.inc:133
+#: usr/local/www/firewall_virtual_ip.php:189 usr/local/www/fbegin.inc:133
msgid "Virtual IPs"
msgstr ""
#: usr/local/www/firewall_virtual_ip.php:173
#: usr/local/www/firewall_virtual_ip.php:176
+#: usr/local/www/firewall_virtual_ip.php:190
+#: usr/local/www/firewall_virtual_ip.php:190
msgid "CARP Settings"
msgstr ""
#: usr/local/www/firewall_virtual_ip.php:185
#: usr/local/www/firewall_virtual_ip.php:188
+#: usr/local/www/firewall_virtual_ip.php:202
+#: usr/local/www/firewall_virtual_ip.php:202
msgid "Virtual IP address"
msgstr ""
#: usr/local/www/firewall_virtual_ip.php:242
#: usr/local/www/firewall_virtual_ip.php:248
+#: usr/local/www/firewall_virtual_ip.php:268
+#: usr/local/www/firewall_virtual_ip.php:268
msgid "The virtual IP addresses defined on this page may be used in"
msgstr ""
#: usr/local/www/firewall_virtual_ip.php:242
#: usr/local/www/firewall_virtual_ip.php:248
+#: usr/local/www/firewall_virtual_ip.php:268
+#: usr/local/www/firewall_virtual_ip.php:268
msgid "mappings."
msgstr ""
#: usr/local/www/firewall_virtual_ip.php:243
#: usr/local/www/firewall_virtual_ip.php:249
+#: usr/local/www/firewall_virtual_ip.php:269
+#: usr/local/www/firewall_virtual_ip.php:269
msgid "You can check the status of your CARP Virtual IPs and interfaces "
msgstr ""
#: usr/local/www/guiconfig.inc:295 usr/local/www/guiconfig.inc:309
-#: usr/local/www/guiconfig.inc:298
+#: usr/local/www/guiconfig.inc:298 usr/local/www/guiconfig.inc:297
+#: usr/local/www/guiconfig.inc:297
msgid "apply"
msgstr ""
#: usr/local/www/guiconfig.inc:295 usr/local/www/guiconfig.inc:309
-#: usr/local/www/guiconfig.inc:298
+#: usr/local/www/guiconfig.inc:298 usr/local/www/guiconfig.inc:297
+#: usr/local/www/guiconfig.inc:297
msgid "save"
msgstr ""
#: usr/local/www/guiconfig.inc:295 usr/local/www/vpn_ipsec_mobile.php:308
#: usr/local/www/system_certmanager.php:541
#: usr/local/www/system_certmanager.php:640 usr/local/www/guiconfig.inc:309
-#: usr/local/www/vpn_ipsec_mobile.php:335
-#: usr/local/www/system_certmanager.php:640 usr/local/www/guiconfig.inc:298
+#: usr/local/www/vpn_ipsec_mobile.php:335 usr/local/www/guiconfig.inc:298
+#: usr/local/www/system_certmanager.php:649 usr/local/www/guiconfig.inc:297
+#: usr/local/www/system_certmanager.php:650
+#: usr/local/www/vpn_ipsec_mobile.php:335 usr/local/www/guiconfig.inc:297
msgid "create"
msgstr ""
@@ -15917,102 +19438,121 @@ msgid "Are you sure you want to halt the system?"
msgstr ""
#: usr/local/www/index.php:115 usr/local/www/index.php:126
+#: usr/local/www/index.php:129 usr/local/www/index.php:126
msgid "Widget configuration has been changed."
msgstr ""
#: usr/local/www/index.php:172 usr/local/www/index.php:183
+#: usr/local/www/index.php:186 usr/local/www/index.php:183
#, php-format
msgid "Welcome to %s!\n"
msgstr ""
#: usr/local/www/index.php:173 usr/local/www/index.php:184
+#: usr/local/www/index.php:187 usr/local/www/index.php:184
msgid "One moment while we start the initial setup wizard."
msgstr ""
#: usr/local/www/index.php:174 usr/local/www/index.php:185
+#: usr/local/www/index.php:188 usr/local/www/index.php:185
msgid ""
"Embedded platform users: Please be patient, the wizard takes a little longer "
"to run than the normal GUI."
msgstr ""
#: usr/local/www/index.php:175 usr/local/www/index.php:186
+#: usr/local/www/index.php:189 usr/local/www/index.php:186
#, php-format
msgid "To bypass the wizard, click on the %s logo on the initial page."
msgstr ""
#: usr/local/www/index.php:454 usr/local/www/index.php:446
-#: usr/local/www/index.php:463
+#: usr/local/www/index.php:463 usr/local/www/index.php:468
+#: usr/local/www/index.php:465
msgid "Status: Dashboard"
msgstr ""
#: usr/local/www/index.php:486 usr/local/www/index.php:478
-#: usr/local/www/index.php:490
+#: usr/local/www/index.php:490 usr/local/www/index.php:494
+#: usr/local/www/index.php:491
msgid "Available Widgets"
msgstr ""
#: usr/local/www/index.php:524 usr/local/www/index.php:516
+#: usr/local/www/index.php:528 usr/local/www/index.php:531
#: usr/local/www/index.php:528
msgid "Welcome to the Dashboard page"
msgstr ""
#: usr/local/www/index.php:532 usr/local/www/index.php:524
-#: usr/local/www/index.php:536
+#: usr/local/www/index.php:536 usr/local/www/index.php:538
+#: usr/local/www/index.php:535
msgid ""
"This page allows you to customize the information you want to be displayed!"
msgstr ""
#: usr/local/www/index.php:533 usr/local/www/index.php:525
-#: usr/local/www/index.php:537
+#: usr/local/www/index.php:537 usr/local/www/index.php:539
+#: usr/local/www/index.php:536
msgid "To get started click the"
msgstr ""
#: usr/local/www/index.php:533 usr/local/www/index.php:525
-#: usr/local/www/index.php:537
+#: usr/local/www/index.php:537 usr/local/www/index.php:539
+#: usr/local/www/index.php:536
msgid "icon to add widgets."
msgstr ""
#: usr/local/www/index.php:535 usr/local/www/index.php:527
-#: usr/local/www/index.php:539
+#: usr/local/www/index.php:539 usr/local/www/index.php:541
+#: usr/local/www/index.php:538
msgid "You can move any widget around by clicking and dragging the title."
msgstr ""
#: usr/local/www/index.php:541 usr/local/www/index.php:534
-#: usr/local/www/index.php:546
+#: usr/local/www/index.php:546 usr/local/www/index.php:548
+#: usr/local/www/index.php:545
msgid "Click here to add widgets"
msgstr ""
#: usr/local/www/index.php:543 usr/local/www/index.php:536
-#: usr/local/www/index.php:548
+#: usr/local/www/index.php:548 usr/local/www/index.php:550
+#: usr/local/www/index.php:547
msgid "Click here for help"
msgstr ""
#: usr/local/www/index.php:547 usr/local/www/index.php:540
-#: usr/local/www/index.php:552
+#: usr/local/www/index.php:552 usr/local/www/index.php:554
+#: usr/local/www/index.php:551
msgid "Save Settings"
msgstr ""
#: usr/local/www/index.php:699 usr/local/www/index.php:692
-#: usr/local/www/index.php:704
+#: usr/local/www/index.php:704 usr/local/www/index.php:701
msgid "Loading selected widget"
msgstr ""
-#: usr/local/www/interfaces.php:186 usr/local/www/interfaces.php:186
+#: usr/local/www/interfaces.php:186 usr/local/www/interfaces.php:184
+#: usr/local/www/interfaces.php:185
#, php-format
msgid "Sorry, an alias with the name %s already exists."
msgstr ""
#: usr/local/www/interfaces.php:327 usr/local/www/interfaces.php:355
-#: usr/local/www/interfaces.php:352
+#: usr/local/www/interfaces.php:352 usr/local/www/interfaces.php:350
+#: usr/local/www/interfaces.php:351
msgid "You have already applied your settings!"
msgstr ""
#: usr/local/www/interfaces.php:407 usr/local/www/interfaces.php:443
-#: usr/local/www/interfaces.php:440
+#: usr/local/www/interfaces.php:440 usr/local/www/interfaces.php:428
+#: usr/local/www/interfaces.php:433
msgid "An interface with the specified description already exists."
msgstr ""
#: usr/local/www/interfaces.php:413 usr/local/www/interfaces.php:449
-#: usr/local/www/interfaces.php:446
+#: usr/local/www/interfaces.php:446 usr/local/www/interfaces.php:434
+#: usr/local/www/interfaces.php:439
msgid ""
"The DHCP Server is active on this interface and it can be used only with a "
"static IP configuration. Please disable the DHCP Server service on this "
@@ -16020,7 +19560,8 @@ msgid ""
msgstr ""
#: usr/local/www/interfaces.php:415 usr/local/www/interfaces.php:451
-#: usr/local/www/interfaces.php:448
+#: usr/local/www/interfaces.php:448 usr/local/www/interfaces.php:436
+#: usr/local/www/interfaces.php:441
msgid ""
"The DHCP6 Server is active on this interface and it can be used only with a "
"static IPv6 configuration. Please disable the DHCPv6 Server service on this "
@@ -16032,12 +19573,17 @@ msgstr ""
#: usr/local/www/status_interfaces.php:266 usr/local/www/interfaces.php:456
#: usr/local/www/interfaces.php:1468 usr/local/www/status_interfaces.php:269
#: usr/local/www/interfaces.php:453 usr/local/www/interfaces.php:1456
+#: usr/local/www/interfaces.php:441 usr/local/www/interfaces.php:1469
+#: usr/local/www/status_interfaces.php:269 usr/local/www/interfaces.php:446
+#: usr/local/www/interfaces.php:1514
msgid "IPv4 address"
msgstr ""
#: usr/local/www/interfaces.php:420 usr/local/www/interfaces.php:473
#: usr/local/www/interfaces.php:456 usr/local/www/interfaces.php:509
#: usr/local/www/interfaces.php:453 usr/local/www/interfaces.php:506
+#: usr/local/www/interfaces.php:441 usr/local/www/interfaces.php:494
+#: usr/local/www/interfaces.php:446 usr/local/www/interfaces.php:499
msgid "Subnet bit count"
msgstr ""
@@ -16053,6 +19599,11 @@ msgstr ""
#: usr/local/www/interfaces.php:546 usr/local/www/interfaces.php:465
#: usr/local/www/interfaces.php:518 usr/local/www/interfaces.php:528
#: usr/local/www/interfaces.php:538 usr/local/www/interfaces.php:543
+#: usr/local/www/interfaces.php:453 usr/local/www/interfaces.php:506
+#: usr/local/www/interfaces.php:516 usr/local/www/interfaces.php:526
+#: usr/local/www/interfaces.php:458 usr/local/www/interfaces.php:511
+#: usr/local/www/interfaces.php:523 usr/local/www/interfaces.php:533
+#: usr/local/www/interfaces.php:538
#, php-format
msgid "You have to reassign the interface to be able to configure as %s."
msgstr ""
@@ -16060,6 +19611,8 @@ msgstr ""
#: usr/local/www/interfaces.php:436 usr/local/www/interfaces.php:1748
#: usr/local/www/interfaces.php:472 usr/local/www/interfaces.php:1926
#: usr/local/www/interfaces.php:469 usr/local/www/interfaces.php:1914
+#: usr/local/www/interfaces.php:457 usr/local/www/interfaces.php:1938
+#: usr/local/www/interfaces.php:462 usr/local/www/interfaces.php:1984
msgid "Modem Port"
msgstr ""
@@ -16067,21 +19620,30 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:182
#: usr/local/www/interfaces_ppps_edit.php:523 usr/local/www/interfaces.php:472
#: usr/local/www/interfaces.php:1914
-#: usr/local/www/interfaces_ppps_edit.php:182
#: usr/local/www/interfaces_ppps_edit.php:524 usr/local/www/interfaces.php:469
#: usr/local/www/interfaces.php:1902
+#: usr/local/www/interfaces_ppps_edit.php:188
+#: usr/local/www/interfaces_ppps_edit.php:530 usr/local/www/interfaces.php:457
+#: usr/local/www/interfaces.php:1926
+#: usr/local/www/interfaces_ppps_edit.php:188
+#: usr/local/www/interfaces_ppps_edit.php:530 usr/local/www/interfaces.php:462
+#: usr/local/www/interfaces.php:1972
msgid "Phone Number"
msgstr ""
#: usr/local/www/interfaces.php:442 usr/local/www/interfaces.php:445
#: usr/local/www/interfaces.php:478 usr/local/www/interfaces.php:481
-#: usr/local/www/interfaces.php:475 usr/local/www/interfaces.php:478
+#: usr/local/www/interfaces.php:475 usr/local/www/interfaces.php:463
+#: usr/local/www/interfaces.php:466 usr/local/www/interfaces.php:468
+#: usr/local/www/interfaces.php:471
msgid "PPPoE username"
msgstr ""
#: usr/local/www/interfaces.php:442 usr/local/www/interfaces.php:445
#: usr/local/www/interfaces.php:478 usr/local/www/interfaces.php:481
-#: usr/local/www/interfaces.php:475 usr/local/www/interfaces.php:478
+#: usr/local/www/interfaces.php:475 usr/local/www/interfaces.php:463
+#: usr/local/www/interfaces.php:466 usr/local/www/interfaces.php:468
+#: usr/local/www/interfaces.php:471
msgid "PPPoE password"
msgstr ""
@@ -16092,10 +19654,17 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:199 usr/local/www/interfaces.php:478
#: usr/local/www/interfaces.php:488 usr/local/www/interfaces.php:498
#: usr/local/www/interfaces.php:1985 usr/local/www/interfaces.php:2104
-#: usr/local/www/interfaces_ppps_edit.php:188
-#: usr/local/www/interfaces_ppps_edit.php:199 usr/local/www/interfaces.php:475
-#: usr/local/www/interfaces.php:485 usr/local/www/interfaces.php:495
-#: usr/local/www/interfaces.php:1973 usr/local/www/interfaces.php:2092
+#: usr/local/www/interfaces.php:475 usr/local/www/interfaces.php:485
+#: usr/local/www/interfaces.php:495 usr/local/www/interfaces.php:1973
+#: usr/local/www/interfaces.php:2092
+#: usr/local/www/interfaces_ppps_edit.php:194
+#: usr/local/www/interfaces_ppps_edit.php:205 usr/local/www/interfaces.php:463
+#: usr/local/www/interfaces.php:473 usr/local/www/interfaces.php:483
+#: usr/local/www/interfaces.php:2000 usr/local/www/interfaces.php:2122
+#: usr/local/www/interfaces_ppps_edit.php:194
+#: usr/local/www/interfaces_ppps_edit.php:205 usr/local/www/interfaces.php:468
+#: usr/local/www/interfaces.php:478 usr/local/www/interfaces.php:488
+#: usr/local/www/interfaces.php:2046 usr/local/www/interfaces.php:2168
msgid "Dial on demand"
msgstr ""
@@ -16103,57 +19672,77 @@ msgstr ""
#: usr/local/www/interfaces.php:462 usr/local/www/interfaces_ppps_edit.php:188
#: usr/local/www/interfaces_ppps_edit.php:199 usr/local/www/interfaces.php:478
#: usr/local/www/interfaces.php:488 usr/local/www/interfaces.php:498
-#: usr/local/www/interfaces_ppps_edit.php:188
-#: usr/local/www/interfaces_ppps_edit.php:199 usr/local/www/interfaces.php:475
-#: usr/local/www/interfaces.php:485 usr/local/www/interfaces.php:495
+#: usr/local/www/interfaces.php:475 usr/local/www/interfaces.php:485
+#: usr/local/www/interfaces.php:495 usr/local/www/interfaces_ppps_edit.php:194
+#: usr/local/www/interfaces_ppps_edit.php:205 usr/local/www/interfaces.php:463
+#: usr/local/www/interfaces.php:473 usr/local/www/interfaces.php:483
+#: usr/local/www/interfaces_ppps_edit.php:194
+#: usr/local/www/interfaces_ppps_edit.php:205 usr/local/www/interfaces.php:468
+#: usr/local/www/interfaces.php:478 usr/local/www/interfaces.php:488
msgid "Idle timeout value"
msgstr ""
#: usr/local/www/interfaces.php:452 usr/local/www/interfaces.php:455
#: usr/local/www/interfaces.php:488 usr/local/www/interfaces.php:491
-#: usr/local/www/interfaces.php:485 usr/local/www/interfaces.php:488
+#: usr/local/www/interfaces.php:485 usr/local/www/interfaces.php:473
+#: usr/local/www/interfaces.php:476 usr/local/www/interfaces.php:478
+#: usr/local/www/interfaces.php:481
msgid "PPTP username"
msgstr ""
#: usr/local/www/interfaces.php:452 usr/local/www/interfaces.php:455
#: usr/local/www/interfaces.php:488 usr/local/www/interfaces.php:491
-#: usr/local/www/interfaces.php:485 usr/local/www/interfaces.php:488
+#: usr/local/www/interfaces.php:485 usr/local/www/interfaces.php:473
+#: usr/local/www/interfaces.php:476 usr/local/www/interfaces.php:478
+#: usr/local/www/interfaces.php:481
msgid "PPTP password"
msgstr ""
#: usr/local/www/interfaces.php:452 usr/local/www/interfaces.php:455
#: usr/local/www/interfaces.php:488 usr/local/www/interfaces.php:491
-#: usr/local/www/interfaces.php:485 usr/local/www/interfaces.php:488
+#: usr/local/www/interfaces.php:485 usr/local/www/interfaces.php:473
+#: usr/local/www/interfaces.php:476 usr/local/www/interfaces.php:478
+#: usr/local/www/interfaces.php:481
msgid "PPTP local IP address"
msgstr ""
#: usr/local/www/interfaces.php:452 usr/local/www/interfaces.php:455
#: usr/local/www/interfaces.php:488 usr/local/www/interfaces.php:491
-#: usr/local/www/interfaces.php:485 usr/local/www/interfaces.php:488
+#: usr/local/www/interfaces.php:485 usr/local/www/interfaces.php:473
+#: usr/local/www/interfaces.php:476 usr/local/www/interfaces.php:478
+#: usr/local/www/interfaces.php:481
msgid "PPTP subnet"
msgstr ""
#: usr/local/www/interfaces.php:452 usr/local/www/interfaces.php:455
#: usr/local/www/interfaces.php:488 usr/local/www/interfaces.php:491
-#: usr/local/www/interfaces.php:485 usr/local/www/interfaces.php:488
+#: usr/local/www/interfaces.php:485 usr/local/www/interfaces.php:473
+#: usr/local/www/interfaces.php:476 usr/local/www/interfaces.php:478
+#: usr/local/www/interfaces.php:481
msgid "PPTP remote IP address"
msgstr ""
#: usr/local/www/interfaces.php:462 usr/local/www/interfaces.php:465
#: usr/local/www/interfaces.php:498 usr/local/www/interfaces.php:501
-#: usr/local/www/interfaces.php:495 usr/local/www/interfaces.php:498
+#: usr/local/www/interfaces.php:495 usr/local/www/interfaces.php:483
+#: usr/local/www/interfaces.php:486 usr/local/www/interfaces.php:488
+#: usr/local/www/interfaces.php:491
msgid "L2TP username"
msgstr ""
#: usr/local/www/interfaces.php:462 usr/local/www/interfaces.php:465
#: usr/local/www/interfaces.php:498 usr/local/www/interfaces.php:501
-#: usr/local/www/interfaces.php:495 usr/local/www/interfaces.php:498
+#: usr/local/www/interfaces.php:495 usr/local/www/interfaces.php:483
+#: usr/local/www/interfaces.php:486 usr/local/www/interfaces.php:488
+#: usr/local/www/interfaces.php:491
msgid "L2TP password"
msgstr ""
#: usr/local/www/interfaces.php:462 usr/local/www/interfaces.php:465
#: usr/local/www/interfaces.php:498 usr/local/www/interfaces.php:501
-#: usr/local/www/interfaces.php:495 usr/local/www/interfaces.php:498
+#: usr/local/www/interfaces.php:495 usr/local/www/interfaces.php:483
+#: usr/local/www/interfaces.php:486 usr/local/www/interfaces.php:488
+#: usr/local/www/interfaces.php:491
msgid "L2TP remote IP address"
msgstr ""
@@ -16167,97 +19756,125 @@ msgstr ""
#: usr/local/www/status_dhcpv6_leases.php:403 usr/local/www/interfaces.php:509
#: usr/local/www/interfaces.php:1576 usr/local/www/services_dhcpv6.php:899
#: usr/local/www/services_dhcpv6_edit.php:200
-#: usr/local/www/status_interfaces.php:300 usr/local/www/diag_ndp.php:129
+#: usr/local/www/status_interfaces.php:300
#: usr/local/www/status_dhcpv6_leases.php:404 usr/local/www/interfaces.php:506
#: usr/local/www/interfaces.php:1564 usr/local/www/services_dhcpv6.php:830
+#: usr/local/www/status_dhcpv6_leases.php:407
+#: usr/local/www/services_dhcpv6_edit.php:203
+#: usr/local/www/services_dhcpv6.php:851 usr/local/www/interfaces.php:494
+#: usr/local/www/interfaces.php:1574 usr/local/www/diag_ndp.php:129
+#: usr/local/www/status_dhcpv6_leases.php:407
+#: usr/local/www/services_dhcpv6_edit.php:203
+#: usr/local/www/status_interfaces.php:300
+#: usr/local/www/services_dhcpv6.php:851 usr/local/www/interfaces.php:499
+#: usr/local/www/interfaces.php:1620
msgid "IPv6 address"
msgstr ""
#: usr/local/www/interfaces.php:493 usr/local/www/interfaces.php:563
-#: usr/local/www/interfaces.php:560
+#: usr/local/www/interfaces.php:560 usr/local/www/interfaces.php:550
+#: usr/local/www/interfaces.php:557
msgid "A valid IPv4 address must be specified."
msgstr ""
#: usr/local/www/interfaces.php:495 usr/local/www/services_dhcpv6_edit.php:123
#: usr/local/www/services_dhcpv6_edit.php:125 usr/local/www/interfaces.php:565
-#: usr/local/www/services_dhcpv6_edit.php:125 usr/local/www/interfaces.php:562
+#: usr/local/www/interfaces.php:562 usr/local/www/services_dhcpv6_edit.php:128
+#: usr/local/www/services_dhcpv6_edit.php:128 usr/local/www/interfaces.php:574
msgid "A valid IPv6 address must be specified."
msgstr ""
#: usr/local/www/interfaces.php:497 usr/local/www/interfaces.php:499
#: usr/local/www/interfaces.php:567 usr/local/www/interfaces.php:569
#: usr/local/www/interfaces.php:564 usr/local/www/interfaces.php:566
+#: usr/local/www/interfaces.php:579 usr/local/www/interfaces.php:581
+#: usr/local/www/interfaces.php:590 usr/local/www/interfaces.php:592
msgid "A valid subnet bit count must be specified."
msgstr ""
#: usr/local/www/interfaces.php:501 usr/local/www/interfaces.php:571
-#: usr/local/www/interfaces.php:568
+#: usr/local/www/interfaces.php:568 usr/local/www/interfaces.php:583
+#: usr/local/www/interfaces.php:594
msgid "A valid alias IP address must be specified."
msgstr ""
#: usr/local/www/interfaces.php:503 usr/local/www/interfaces.php:573
-#: usr/local/www/interfaces.php:570
+#: usr/local/www/interfaces.php:570 usr/local/www/interfaces.php:585
+#: usr/local/www/interfaces.php:596
msgid "A valid alias subnet bit count must be specified."
msgstr ""
#: usr/local/www/interfaces.php:517 usr/local/www/system_routes_edit.php:103
#: usr/local/www/system_routes_edit.php:104 usr/local/www/interfaces.php:587
-#: usr/local/www/system_routes_edit.php:104 usr/local/www/interfaces.php:584
+#: usr/local/www/interfaces.php:584 usr/local/www/interfaces.php:599
+#: usr/local/www/system_routes_edit.php:107 usr/local/www/interfaces.php:610
msgid "A valid gateway must be specified."
msgstr ""
#: usr/local/www/interfaces.php:521 usr/local/www/interfaces.php:591
-#: usr/local/www/interfaces.php:588
+#: usr/local/www/interfaces.php:588 usr/local/www/interfaces.php:603
+#: usr/local/www/interfaces.php:614
msgid "The service name contains invalid characters."
msgstr ""
#: usr/local/www/interfaces.php:523 usr/local/www/interfaces.php:539
#: usr/local/www/interfaces_ppps_edit.php:217 usr/local/www/interfaces.php:593
-#: usr/local/www/interfaces.php:609 usr/local/www/interfaces_ppps_edit.php:217
-#: usr/local/www/interfaces.php:590 usr/local/www/interfaces.php:606
+#: usr/local/www/interfaces.php:609 usr/local/www/interfaces.php:590
+#: usr/local/www/interfaces.php:606 usr/local/www/interfaces_ppps_edit.php:223
+#: usr/local/www/interfaces.php:605 usr/local/www/interfaces.php:621
+#: usr/local/www/interfaces_ppps_edit.php:223 usr/local/www/interfaces.php:616
+#: usr/local/www/interfaces.php:632
msgid "The idle timeout value must be an integer."
msgstr ""
#: usr/local/www/interfaces.php:526 usr/local/www/interfaces_ppps_edit.php:220
-#: usr/local/www/interfaces.php:596 usr/local/www/interfaces_ppps_edit.php:220
-#: usr/local/www/interfaces.php:593
+#: usr/local/www/interfaces.php:596 usr/local/www/interfaces.php:593
+#: usr/local/www/interfaces_ppps_edit.php:226 usr/local/www/interfaces.php:608
+#: usr/local/www/interfaces_ppps_edit.php:226 usr/local/www/interfaces.php:619
msgid "A valid PPPoE reset hour must be specified (0-23)."
msgstr ""
#: usr/local/www/interfaces.php:529 usr/local/www/interfaces_ppps_edit.php:223
-#: usr/local/www/interfaces.php:599 usr/local/www/interfaces_ppps_edit.php:223
-#: usr/local/www/interfaces.php:596
+#: usr/local/www/interfaces.php:599 usr/local/www/interfaces.php:596
+#: usr/local/www/interfaces_ppps_edit.php:229 usr/local/www/interfaces.php:611
+#: usr/local/www/interfaces_ppps_edit.php:229 usr/local/www/interfaces.php:622
msgid "A valid PPPoE reset minute must be specified (0-59)."
msgstr ""
#: usr/local/www/interfaces.php:531 usr/local/www/interfaces_ppps_edit.php:225
-#: usr/local/www/interfaces.php:601 usr/local/www/interfaces_ppps_edit.php:225
-#: usr/local/www/interfaces.php:598
+#: usr/local/www/interfaces.php:601 usr/local/www/interfaces.php:598
+#: usr/local/www/interfaces_ppps_edit.php:231 usr/local/www/interfaces.php:613
+#: usr/local/www/interfaces_ppps_edit.php:231 usr/local/www/interfaces.php:624
msgid "A valid PPPoE reset date must be specified (mm/dd/yyyy)."
msgstr ""
#: usr/local/www/interfaces.php:533 usr/local/www/interfaces.php:603
-#: usr/local/www/interfaces.php:600
+#: usr/local/www/interfaces.php:600 usr/local/www/interfaces.php:615
+#: usr/local/www/interfaces.php:626
msgid "A valid PPTP local IP address must be specified."
msgstr ""
#: usr/local/www/interfaces.php:535 usr/local/www/interfaces.php:605
-#: usr/local/www/interfaces.php:602
+#: usr/local/www/interfaces.php:602 usr/local/www/interfaces.php:617
+#: usr/local/www/interfaces.php:628
msgid "A valid PPTP subnet bit count must be specified."
msgstr ""
#: usr/local/www/interfaces.php:537 usr/local/www/interfaces.php:607
-#: usr/local/www/interfaces.php:604
+#: usr/local/www/interfaces.php:604 usr/local/www/interfaces.php:619
+#: usr/local/www/interfaces.php:630
msgid "A valid PPTP remote IP address must be specified."
msgstr ""
#: usr/local/www/interfaces.php:543 usr/local/www/interfaces.php:613
-#: usr/local/www/interfaces.php:610
+#: usr/local/www/interfaces.php:610 usr/local/www/interfaces.php:625
+#: usr/local/www/interfaces.php:637
msgid "The MTU must be greater than 576 bytes."
msgstr ""
#: usr/local/www/interfaces.php:545 usr/local/www/interfaces.php:615
-#: usr/local/www/interfaces.php:612
+#: usr/local/www/interfaces.php:612 usr/local/www/interfaces.php:627
+#: usr/local/www/interfaces.php:668
msgid "The MSS must be greater than 576 bytes."
msgstr ""
@@ -16276,17 +19893,29 @@ msgstr ""
#: usr/local/www/interfaces.php:2342
#: usr/local/www/load_balancer_pool_edit.php:195
#: usr/local/www/load_balancer_pool.php:133 usr/local/www/vpn_ipsec.php:293
-#: usr/local/www/vpn_ipsec.php:467 usr/local/www/status_lb_pool.php:131
-#: usr/local/www/system_advanced_misc.php:353
+#: usr/local/www/vpn_ipsec.php:467 usr/local/www/system_advanced_misc.php:353
#: usr/local/www/interfaces_wireless.php:108
+#: usr/local/www/vpn_ipsec_phase2.php:496 usr/local/www/interfaces.php:616
+#: usr/local/www/interfaces.php:2330
+#: usr/local/www/load_balancer_pool_edit.php:193
+#: usr/local/www/load_balancer_pool.php:131
+#: usr/local/www/interfaces_wireless_edit.php:86
+#: usr/local/www/interfaces_wireless_edit.php:178
+#: usr/local/www/vpn_ipsec.php:299 usr/local/www/vpn_ipsec.php:473
+#: usr/local/www/interfaces_wireless.php:110
+#: usr/local/www/vpn_ipsec_phase2.php:518 usr/local/www/interfaces.php:631
+#: usr/local/www/interfaces.php:2360
+#: usr/local/www/interfaces_wireless_edit.php:86
+#: usr/local/www/interfaces_wireless_edit.php:178
#: usr/local/www/load_balancer_virtual_server_edit.php:72
-#: usr/local/www/vpn_ipsec_phase2.php:496
-#: usr/local/www/interfaces_wireless_edit.php:84
-#: usr/local/www/interfaces_wireless_edit.php:176
-#: usr/local/www/interfaces.php:616 usr/local/www/interfaces.php:2330
+#: usr/local/www/vpn_ipsec.php:299 usr/local/www/vpn_ipsec.php:473
+#: usr/local/www/interfaces_wireless.php:110
+#: usr/local/www/status_lb_pool.php:131
+#: usr/local/www/load_balancer_pool.php:131
#: usr/local/www/load_balancer_pool_edit.php:76
#: usr/local/www/load_balancer_pool_edit.php:193
-#: usr/local/www/load_balancer_pool.php:131
+#: usr/local/www/vpn_ipsec_phase2.php:518 usr/local/www/interfaces.php:672
+#: usr/local/www/interfaces.php:2406
msgid "Mode"
msgstr ""
@@ -16295,17 +19924,22 @@ msgstr ""
#: usr/local/www/status_interfaces.php:362 usr/local/www/interfaces.php:622
#: usr/local/www/interfaces.php:2352 usr/local/www/status_interfaces.php:365
#: usr/local/www/interfaces.php:619 usr/local/www/interfaces.php:2340
+#: usr/local/www/interfaces.php:634 usr/local/www/interfaces.php:2370
+#: usr/local/www/status_interfaces.php:365 usr/local/www/interfaces.php:675
+#: usr/local/www/interfaces.php:2416
msgid "SSID"
msgstr ""
#: usr/local/www/interfaces.php:583 usr/local/www/interfaces.php:657
-#: usr/local/www/interfaces.php:654
+#: usr/local/www/interfaces.php:654 usr/local/www/interfaces.php:669
+#: usr/local/www/interfaces.php:710
msgid ""
"Invalid WEP key size. Sizes should be 40 (64) bit keys or 104 (128) bit."
msgstr ""
#: usr/local/www/interfaces.php:591 usr/local/www/interfaces.php:665
-#: usr/local/www/interfaces.php:662
+#: usr/local/www/interfaces.php:662 usr/local/www/interfaces.php:677
+#: usr/local/www/interfaces.php:718
msgid "The length of the passphrase should be between 8 and 63 characters."
msgstr ""
@@ -16315,7 +19949,8 @@ msgid "Interface %s dynamic gateway"
msgstr ""
#: usr/local/www/interfaces.php:1004 usr/local/www/interfaces.php:1090
-#: usr/local/www/interfaces.php:1078
+#: usr/local/www/interfaces.php:1078 usr/local/www/interfaces.php:1092
+#: usr/local/www/interfaces.php:1134
#, php-format
msgid ""
"Unable to change mode to %s. You may already have the maximum number of "
@@ -16323,15 +19958,18 @@ msgid ""
msgstr ""
#: usr/local/www/interfaces.php:1032 usr/local/www/interfaces.php:1118
-#: usr/local/www/interfaces.php:1106
+#: usr/local/www/interfaces.php:1106 usr/local/www/interfaces.php:1120
+#: usr/local/www/interfaces.php:1162
msgid "Static IPv4"
msgstr ""
#: usr/local/www/interfaces.php:1032 usr/local/www/vpn_pppoe.php:86
#: usr/local/www/status_interfaces.php:109
#: usr/local/www/status_interfaces.php:127 usr/local/www/interfaces.php:1118
-#: usr/local/www/status_interfaces.php:130 usr/local/www/vpn_pppoe.php:86
-#: usr/local/www/interfaces.php:1106
+#: usr/local/www/status_interfaces.php:130 usr/local/www/interfaces.php:1106
+#: usr/local/www/vpn_pppoe.php:87 usr/local/www/interfaces.php:1120
+#: usr/local/www/vpn_pppoe.php:87 usr/local/www/status_interfaces.php:130
+#: usr/local/www/interfaces.php:1162
msgid "PPPoE"
msgstr ""
@@ -16339,7 +19977,9 @@ msgstr ""
#: usr/local/www/fbegin.inc:149 usr/local/www/fbegin.inc:166
#: usr/local/www/status_interfaces.php:142 usr/local/www/interfaces.php:1118
#: usr/local/www/fbegin.inc:174 usr/local/www/status_interfaces.php:145
-#: usr/local/www/interfaces.php:1106
+#: usr/local/www/interfaces.php:1106 usr/local/www/fbegin.inc:165
+#: usr/local/www/interfaces.php:1120 usr/local/www/status_interfaces.php:145
+#: usr/local/www/fbegin.inc:165 usr/local/www/interfaces.php:1162
msgid "PPTP"
msgstr ""
@@ -16349,76 +19989,92 @@ msgstr ""
#: usr/local/www/vpn_l2tp_users_edit.php:38 usr/local/www/fbegin.inc:167
#: usr/local/www/status_interfaces.php:157 usr/local/www/interfaces.php:1118
#: usr/local/www/fbegin.inc:175 usr/local/www/status_interfaces.php:160
-#: usr/local/www/vpn_l2tp_users.php:38 usr/local/www/interfaces.php:1106
-#: usr/local/www/vpn_l2tp_users_edit.php:38 usr/local/www/vpn_l2tp.php:38
+#: usr/local/www/interfaces.php:1106 usr/local/www/fbegin.inc:166
+#: usr/local/www/interfaces.php:1120 usr/local/www/vpn_l2tp.php:38
+#: usr/local/www/status_interfaces.php:160 usr/local/www/vpn_l2tp_users.php:38
+#: usr/local/www/vpn_l2tp_users_edit.php:38 usr/local/www/fbegin.inc:166
+#: usr/local/www/interfaces.php:1162
msgid "L2TP"
msgstr ""
#: usr/local/www/interfaces.php:1033 usr/local/www/interfaces.php:1119
-#: usr/local/www/interfaces.php:1107
+#: usr/local/www/interfaces.php:1107 usr/local/www/interfaces.php:1121
+#: usr/local/www/interfaces.php:1163
msgid "Static IPv6"
msgstr ""
#: usr/local/www/interfaces.php:1033 usr/local/www/interfaces.php:1119
-#: usr/local/www/interfaces.php:1107
+#: usr/local/www/interfaces.php:1107 usr/local/www/interfaces.php:1121
+#: usr/local/www/interfaces.php:1163
msgid "DHCP6"
msgstr ""
#: usr/local/www/interfaces.php:1222 usr/local/www/interfaces.php:1326
-#: usr/local/www/interfaces.php:1314
+#: usr/local/www/interfaces.php:1314 usr/local/www/interfaces.php:1327
+#: usr/local/www/interfaces.php:1369
#, php-format
msgid "The %s configuration has been changed."
msgstr ""
#: usr/local/www/interfaces.php:1222 usr/local/www/interfaces.php:1326
-#: usr/local/www/interfaces.php:1314
+#: usr/local/www/interfaces.php:1314 usr/local/www/interfaces.php:1327
+#: usr/local/www/interfaces.php:1369
msgid "Don't forget to adjust the DHCP Server range if needed after applying."
msgstr ""
#: usr/local/www/interfaces.php:1231 usr/local/www/interfaces.php:1335
-#: usr/local/www/interfaces.php:1323
+#: usr/local/www/interfaces.php:1323 usr/local/www/interfaces.php:1336
+#: usr/local/www/interfaces.php:1378
msgid "General configuration"
msgstr ""
#: usr/local/www/interfaces.php:1237 usr/local/www/interfaces.php:1341
-#: usr/local/www/interfaces.php:1329
+#: usr/local/www/interfaces.php:1329 usr/local/www/interfaces.php:1342
+#: usr/local/www/interfaces.php:1384
msgid "Enable Interface"
msgstr ""
#: usr/local/www/interfaces.php:1247 usr/local/www/interfaces.php:1351
-#: usr/local/www/interfaces.php:1339
+#: usr/local/www/interfaces.php:1339 usr/local/www/interfaces.php:1352
+#: usr/local/www/interfaces.php:1394
msgid "Enter a description (name) for the interface here."
msgstr ""
#: usr/local/www/interfaces.php:1251 usr/local/www/interfaces.php:1355
-#: usr/local/www/interfaces.php:1343
+#: usr/local/www/interfaces.php:1343 usr/local/www/interfaces.php:1356
+#: usr/local/www/interfaces.php:1398
msgid "IPv4 Configuration Type"
msgstr ""
#: usr/local/www/interfaces.php:1267 usr/local/www/interfaces.php:1371
-#: usr/local/www/interfaces.php:1359
+#: usr/local/www/interfaces.php:1359 usr/local/www/interfaces.php:1372
+#: usr/local/www/interfaces.php:1414
msgid "IPv6 Configuration Type"
msgstr ""
#: usr/local/www/interfaces.php:1292 usr/local/www/interfaces.php:1396
-#: usr/local/www/interfaces.php:1384
+#: usr/local/www/interfaces.php:1384 usr/local/www/interfaces.php:1397
+#: usr/local/www/interfaces.php:1439
msgid "Insert my local MAC address"
msgstr ""
#: usr/local/www/interfaces.php:1295 usr/local/www/interfaces.php:1399
-#: usr/local/www/interfaces.php:1387
+#: usr/local/www/interfaces.php:1387 usr/local/www/interfaces.php:1400
+#: usr/local/www/interfaces.php:1442
msgid ""
"This field can be used to modify (\"spoof\") the MAC address of this "
"interface"
msgstr ""
#: usr/local/www/interfaces.php:1297 usr/local/www/interfaces.php:1401
-#: usr/local/www/interfaces.php:1389
+#: usr/local/www/interfaces.php:1389 usr/local/www/interfaces.php:1402
+#: usr/local/www/interfaces.php:1444
msgid "(may be required with some cable connections)"
msgstr ""
#: usr/local/www/interfaces.php:1298 usr/local/www/interfaces.php:1402
-#: usr/local/www/interfaces.php:1390
+#: usr/local/www/interfaces.php:1390 usr/local/www/interfaces.php:1403
+#: usr/local/www/interfaces.php:1445
msgid ""
"Enter a MAC address in the following format: xx:xx:xx:xx:xx:xx or leave blank"
msgstr ""
@@ -16428,6 +20084,10 @@ msgstr ""
#: usr/local/www/interfaces.php:1407
#: usr/local/www/interfaces_ppps_edit.php:758
#: usr/local/www/interfaces.php:1395
+#: usr/local/www/interfaces_ppps_edit.php:764
+#: usr/local/www/interfaces.php:1408
+#: usr/local/www/interfaces_ppps_edit.php:764
+#: usr/local/www/interfaces.php:1450
msgid "MTU"
msgstr ""
@@ -16438,24 +20098,28 @@ msgid ""
msgstr ""
#: usr/local/www/interfaces.php:1312 usr/local/www/interfaces.php:1416
-#: usr/local/www/interfaces.php:1404
+#: usr/local/www/interfaces.php:1404 usr/local/www/interfaces.php:1417
+#: usr/local/www/interfaces.php:1461
msgid "MSS"
msgstr ""
#: usr/local/www/interfaces.php:1316 usr/local/www/interfaces.php:1420
-#: usr/local/www/interfaces.php:1408
+#: usr/local/www/interfaces.php:1408 usr/local/www/interfaces.php:1421
+#: usr/local/www/interfaces.php:1465
msgid ""
"If you enter a value 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 ""
#: usr/local/www/interfaces.php:1325 usr/local/www/interfaces.php:1429
-#: usr/local/www/interfaces.php:1417
+#: usr/local/www/interfaces.php:1417 usr/local/www/interfaces.php:1430
+#: usr/local/www/interfaces.php:1474
msgid "Speed and duplex"
msgstr ""
#: usr/local/www/interfaces.php:1346 usr/local/www/interfaces.php:1450
-#: usr/local/www/interfaces.php:1438
+#: usr/local/www/interfaces.php:1438 usr/local/www/interfaces.php:1451
+#: usr/local/www/interfaces.php:1495
msgid ""
"Here you can explicitly set speed and duplex mode for this interface. "
"WARNING: You MUST leave this set to autoselect (automatically negotiate "
@@ -16464,7 +20128,8 @@ msgid ""
msgstr ""
#: usr/local/www/interfaces.php:1361 usr/local/www/interfaces.php:1465
-#: usr/local/www/interfaces.php:1453
+#: usr/local/www/interfaces.php:1453 usr/local/www/interfaces.php:1466
+#: usr/local/www/interfaces.php:1511
msgid "Static IPv4 configuration"
msgstr ""
@@ -16473,11 +20138,15 @@ msgstr ""
#: usr/local/www/system_routes_edit.php:244 usr/local/www/interfaces.php:1504
#: usr/local/www/interfaces.php:1612 usr/local/www/system_routes_edit.php:245
#: usr/local/www/interfaces.php:1492 usr/local/www/interfaces.php:1600
+#: usr/local/www/interfaces.php:1505 usr/local/www/interfaces.php:1610
+#: usr/local/www/system_routes_edit.php:272 usr/local/www/interfaces.php:1550
+#: usr/local/www/interfaces.php:1656
msgid "add a new one."
msgstr ""
#: usr/local/www/interfaces.php:1403 usr/local/www/interfaces.php:1507
-#: usr/local/www/interfaces.php:1495
+#: usr/local/www/interfaces.php:1495 usr/local/www/interfaces.php:1508
+#: usr/local/www/interfaces.php:1553
msgid ""
"If this interface is an Internet connection, select an existing Gateway from "
"the list or add one using the link above"
@@ -16486,22 +20155,28 @@ msgstr ""
#: usr/local/www/interfaces.php:1417 usr/local/www/system_routes_edit.php:224
#: usr/local/www/system_routes_edit.php:256 usr/local/www/interfaces.php:1521
#: usr/local/www/system_routes_edit.php:257 usr/local/www/interfaces.php:1509
+#: usr/local/www/interfaces.php:1522 usr/local/www/system_routes_edit.php:283
+#: usr/local/www/interfaces.php:1567
msgid "Add new gateway:"
msgstr ""
#: usr/local/www/interfaces.php:1425 usr/local/www/interfaces.php:1529
-#: usr/local/www/interfaces.php:1517
+#: usr/local/www/interfaces.php:1517 usr/local/www/interfaces.php:1530
+#: usr/local/www/interfaces.php:1575
msgid "Default gateway:"
msgstr ""
#: usr/local/www/interfaces.php:1428 usr/local/www/system_routes_edit.php:240
#: usr/local/www/system_routes_edit.php:272 usr/local/www/interfaces.php:1532
#: usr/local/www/system_routes_edit.php:273 usr/local/www/interfaces.php:1520
+#: usr/local/www/interfaces.php:1533 usr/local/www/system_routes_edit.php:299
+#: usr/local/www/interfaces.php:1578
msgid "Gateway Name:"
msgstr ""
#: usr/local/www/interfaces.php:1431 usr/local/www/interfaces.php:1535
-#: usr/local/www/interfaces.php:1523
+#: usr/local/www/interfaces.php:1523 usr/local/www/interfaces.php:1536
+#: usr/local/www/interfaces.php:1581
msgid "Gateway IPv4:"
msgstr ""
@@ -16510,6 +20185,9 @@ msgstr ""
#: usr/local/www/system_routes_edit.php:278 usr/local/www/interfaces.php:1538
#: usr/local/www/interfaces.php:1646 usr/local/www/system_routes_edit.php:279
#: usr/local/www/interfaces.php:1526 usr/local/www/interfaces.php:1634
+#: usr/local/www/interfaces.php:1539 usr/local/www/interfaces.php:1644
+#: usr/local/www/system_routes_edit.php:305 usr/local/www/interfaces.php:1584
+#: usr/local/www/interfaces.php:1690
msgid "Description:"
msgstr ""
@@ -16517,45 +20195,55 @@ msgstr ""
#: usr/local/www/system_routes_edit.php:254
#: usr/local/www/system_routes_edit.php:286 usr/local/www/interfaces.php:1654
#: usr/local/www/system_routes_edit.php:287 usr/local/www/interfaces.php:1536
-#: usr/local/www/interfaces.php:1642
+#: usr/local/www/interfaces.php:1642 usr/local/www/interfaces.php:1546
+#: usr/local/www/interfaces.php:1651 usr/local/www/system_routes_edit.php:312
+#: usr/local/www/interfaces.php:1591 usr/local/www/interfaces.php:1697
msgid "Save Gateway"
msgstr ""
#: usr/local/www/interfaces.php:1467 usr/local/www/interfaces.php:1573
-#: usr/local/www/interfaces.php:1561
+#: usr/local/www/interfaces.php:1561 usr/local/www/interfaces.php:1571
+#: usr/local/www/interfaces.php:1617
msgid "Static IPv6 configuration"
msgstr ""
#: usr/local/www/interfaces.php:1488 usr/local/www/status_interfaces.php:231
#: usr/local/www/status_interfaces.php:312 usr/local/www/interfaces.php:1594
#: usr/local/www/status_interfaces.php:315 usr/local/www/interfaces.php:1582
+#: usr/local/www/interfaces.php:1592 usr/local/www/status_interfaces.php:315
+#: usr/local/www/interfaces.php:1638
msgid "Gateway IPv6"
msgstr ""
#: usr/local/www/interfaces.php:1509 usr/local/www/interfaces.php:1615
-#: usr/local/www/interfaces.php:1603
+#: usr/local/www/interfaces.php:1603 usr/local/www/interfaces.php:1613
+#: usr/local/www/interfaces.php:1659
msgid ""
"If this interface is an Internet connection, select an existing Gateway from "
"the list or add a new one using the link above"
msgstr ""
#: usr/local/www/interfaces.php:1523 usr/local/www/interfaces.php:1629
-#: usr/local/www/interfaces.php:1617
+#: usr/local/www/interfaces.php:1617 usr/local/www/interfaces.php:1627
+#: usr/local/www/interfaces.php:1673
msgid "Add new v6 gateway:"
msgstr ""
#: usr/local/www/interfaces.php:1531 usr/local/www/interfaces.php:1637
-#: usr/local/www/interfaces.php:1625
+#: usr/local/www/interfaces.php:1625 usr/local/www/interfaces.php:1635
+#: usr/local/www/interfaces.php:1681
msgid "Default v6 gateway:"
msgstr ""
#: usr/local/www/interfaces.php:1534 usr/local/www/interfaces.php:1640
-#: usr/local/www/interfaces.php:1628
+#: usr/local/www/interfaces.php:1628 usr/local/www/interfaces.php:1638
+#: usr/local/www/interfaces.php:1684
msgid "Gateway Name IPv6:"
msgstr ""
#: usr/local/www/interfaces.php:1537 usr/local/www/interfaces.php:1643
-#: usr/local/www/interfaces.php:1631
+#: usr/local/www/interfaces.php:1631 usr/local/www/interfaces.php:1641
+#: usr/local/www/interfaces.php:1687
msgid "Gateway IPv6:"
msgstr ""
@@ -16570,29 +20258,29 @@ msgid ""
msgstr ""
#: usr/local/www/interfaces.php:1598 usr/local/www/interfaces.php:1676
-#: usr/local/www/interfaces.php:1664
+#: usr/local/www/interfaces.php:1664 usr/local/www/interfaces.php:1722
msgid "DHCP client configuration"
msgstr ""
#: usr/local/www/interfaces.php:1602 usr/local/www/interfaces.php:1680
-#: usr/local/www/interfaces.php:1668
+#: usr/local/www/interfaces.php:1668 usr/local/www/interfaces.php:1726
msgid "Enable DHCP+"
msgstr ""
#: usr/local/www/interfaces.php:1605 usr/local/www/interfaces.php:1683
-#: usr/local/www/interfaces.php:1671
+#: usr/local/www/interfaces.php:1671 usr/local/www/interfaces.php:1729
msgid "Enable DHCP+L2TP or DHCP+PPTP."
msgstr ""
#: usr/local/www/interfaces.php:1607 usr/local/www/interfaces.php:1685
-#: usr/local/www/interfaces.php:1673
+#: usr/local/www/interfaces.php:1673 usr/local/www/interfaces.php:1731
msgid ""
"Status changes on this interface will trigger reconfiguration (if necessary) "
"of the associated PPTP/L2TP link."
msgstr ""
#: usr/local/www/interfaces.php:1616 usr/local/www/interfaces.php:1694
-#: usr/local/www/interfaces.php:1682
+#: usr/local/www/interfaces.php:1682 usr/local/www/interfaces.php:1740
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 "
@@ -16600,54 +20288,61 @@ msgid ""
msgstr ""
#: usr/local/www/interfaces.php:1622 usr/local/www/interfaces.php:1700
-#: usr/local/www/interfaces.php:1688
+#: usr/local/www/interfaces.php:1688 usr/local/www/interfaces.php:1746
msgid "Alias IPv4 address"
msgstr ""
#: usr/local/www/interfaces.php:1636 usr/local/www/interfaces.php:1714
-#: usr/local/www/interfaces.php:1702
+#: usr/local/www/interfaces.php:1702 usr/local/www/interfaces.php:1760
msgid ""
"The value in this field is used as a fixed alias IPv4 address by the DHCP "
"client."
msgstr ""
#: usr/local/www/interfaces.php:1647 usr/local/www/interfaces.php:1725
-#: usr/local/www/interfaces.php:1713
+#: usr/local/www/interfaces.php:1713 usr/local/www/interfaces.php:1728
+#: usr/local/www/interfaces.php:1774
msgid "DHCP6 client configuration"
msgstr ""
#: usr/local/www/interfaces.php:1650 usr/local/www/interfaces.php:1729
-#: usr/local/www/interfaces.php:1717
+#: usr/local/www/interfaces.php:1717 usr/local/www/interfaces.php:1732
+#: usr/local/www/interfaces.php:1778
msgid "DHCPv6 Unique Identifier (DUID)"
msgstr ""
#: usr/local/www/interfaces.php:1654 usr/local/www/interfaces.php:1733
-#: usr/local/www/interfaces.php:1721
+#: usr/local/www/interfaces.php:1721 usr/local/www/interfaces.php:1736
+#: usr/local/www/interfaces.php:1782
msgid ""
"The value in this field is sent as the DHCPv6 client identifier when "
"requesting a DHCPv6 lease."
msgstr ""
#: usr/local/www/interfaces.php:1659 usr/local/www/interfaces.php:1738
-#: usr/local/www/interfaces.php:1726
+#: usr/local/www/interfaces.php:1726 usr/local/www/interfaces.php:1741
+#: usr/local/www/interfaces.php:1787
#, php-format
msgid "The current DUID is: '%s'"
msgstr ""
#: usr/local/www/interfaces.php:1665 usr/local/www/interfaces.php:1745
-#: usr/local/www/interfaces.php:1733
+#: usr/local/www/interfaces.php:1733 usr/local/www/interfaces.php:1748
+#: usr/local/www/interfaces.php:1794
msgid "DHCPv6 Prefix Delegation size"
msgstr ""
#: usr/local/www/interfaces.php:1678 usr/local/www/interfaces.php:1758
-#: usr/local/www/interfaces.php:1746
+#: usr/local/www/interfaces.php:1746 usr/local/www/interfaces.php:1761
+#: usr/local/www/interfaces.php:1807
msgid ""
"The value in this field is the delegated prefix length provided by the "
"DHCPv6 server. Normally specified by the ISP."
msgstr ""
#: usr/local/www/interfaces.php:1689 usr/local/www/interfaces.php:1867
-#: usr/local/www/interfaces.php:1855
+#: usr/local/www/interfaces.php:1855 usr/local/www/interfaces.php:1879
+#: usr/local/www/interfaces.php:1925
msgid "PPP configuration"
msgstr ""
@@ -16656,6 +20351,10 @@ msgstr ""
#: usr/local/www/interfaces.php:1870
#: usr/local/www/interfaces_ppps_edit.php:479
#: usr/local/www/interfaces.php:1858
+#: usr/local/www/interfaces_ppps_edit.php:485
+#: usr/local/www/interfaces.php:1882
+#: usr/local/www/interfaces_ppps_edit.php:485
+#: usr/local/www/interfaces.php:1928
msgid "Service Provider"
msgstr ""
@@ -16664,6 +20363,10 @@ msgstr ""
#: usr/local/www/interfaces.php:1874
#: usr/local/www/interfaces_ppps_edit.php:483
#: usr/local/www/interfaces.php:1862
+#: usr/local/www/interfaces_ppps_edit.php:489
+#: usr/local/www/interfaces.php:1886
+#: usr/local/www/interfaces_ppps_edit.php:489
+#: usr/local/www/interfaces.php:1932
msgid "Country:"
msgstr ""
@@ -16672,6 +20375,10 @@ msgstr ""
#: usr/local/www/interfaces.php:1882
#: usr/local/www/interfaces_ppps_edit.php:491
#: usr/local/www/interfaces.php:1870
+#: usr/local/www/interfaces_ppps_edit.php:497
+#: usr/local/www/interfaces.php:1894
+#: usr/local/www/interfaces_ppps_edit.php:497
+#: usr/local/www/interfaces.php:1940
msgid "Provider:"
msgstr ""
@@ -16680,6 +20387,10 @@ msgstr ""
#: usr/local/www/interfaces.php:1890
#: usr/local/www/interfaces_ppps_edit.php:499
#: usr/local/www/interfaces.php:1878
+#: usr/local/www/interfaces_ppps_edit.php:505
+#: usr/local/www/interfaces.php:1902
+#: usr/local/www/interfaces_ppps_edit.php:505
+#: usr/local/www/interfaces.php:1948
msgid "Plan:"
msgstr ""
@@ -16688,6 +20399,10 @@ msgstr ""
#: usr/local/www/interfaces.php:1898
#: usr/local/www/interfaces_ppps_edit.php:507
#: usr/local/www/interfaces.php:1886
+#: usr/local/www/interfaces_ppps_edit.php:513
+#: usr/local/www/interfaces.php:1910
+#: usr/local/www/interfaces_ppps_edit.php:513
+#: usr/local/www/interfaces.php:1956
msgid "Select to fill in data for your service provider."
msgstr ""
@@ -16696,11 +20411,16 @@ msgstr ""
#: usr/local/www/interfaces.php:1920
#: usr/local/www/interfaces_ppps_edit.php:531
#: usr/local/www/interfaces.php:1908
+#: usr/local/www/interfaces_ppps_edit.php:537
+#: usr/local/www/interfaces.php:1932
+#: usr/local/www/interfaces_ppps_edit.php:537
+#: usr/local/www/interfaces.php:1978
msgid "Access Point Name (APN)"
msgstr ""
#: usr/local/www/interfaces.php:1766 usr/local/www/interfaces.php:1944
-#: usr/local/www/interfaces.php:1932
+#: usr/local/www/interfaces.php:1932 usr/local/www/interfaces.php:1956
+#: usr/local/www/interfaces.php:2002
msgid "Advanced PPP"
msgstr ""
@@ -16713,21 +20433,30 @@ msgstr ""
#: usr/local/www/interfaces.php:1935 usr/local/www/interfaces.php:1940
#: usr/local/www/interfaces.php:2041 usr/local/www/interfaces.php:2046
#: usr/local/www/interfaces.php:2109 usr/local/www/interfaces.php:2114
+#: usr/local/www/interfaces.php:1959 usr/local/www/interfaces.php:1964
+#: usr/local/www/interfaces.php:2068 usr/local/www/interfaces.php:2073
+#: usr/local/www/interfaces.php:2139 usr/local/www/interfaces.php:2144
+#: usr/local/www/interfaces.php:2005 usr/local/www/interfaces.php:2010
+#: usr/local/www/interfaces.php:2114 usr/local/www/interfaces.php:2119
+#: usr/local/www/interfaces.php:2185 usr/local/www/interfaces.php:2190
msgid "Click here"
msgstr ""
#: usr/local/www/interfaces.php:1770 usr/local/www/interfaces.php:1948
-#: usr/local/www/interfaces.php:1936
+#: usr/local/www/interfaces.php:1936 usr/local/www/interfaces.php:1960
+#: usr/local/www/interfaces.php:2006
msgid "to edit PPP configuration."
msgstr ""
#: usr/local/www/interfaces.php:1775 usr/local/www/interfaces.php:1953
-#: usr/local/www/interfaces.php:1941
+#: usr/local/www/interfaces.php:1941 usr/local/www/interfaces.php:1965
+#: usr/local/www/interfaces.php:2011
msgid "to create a PPP configuration."
msgstr ""
#: usr/local/www/interfaces.php:1786 usr/local/www/interfaces.php:1964
-#: usr/local/www/interfaces.php:1952
+#: usr/local/www/interfaces.php:1952 usr/local/www/interfaces.php:1979
+#: usr/local/www/interfaces.php:2025
msgid "PPPoE configuration"
msgstr ""
@@ -16736,22 +20465,30 @@ msgstr ""
#: usr/local/www/interfaces.php:1979
#: usr/local/www/interfaces_ppps_edit.php:590
#: usr/local/www/interfaces.php:1967
+#: usr/local/www/interfaces_ppps_edit.php:596
+#: usr/local/www/interfaces.php:1994
+#: usr/local/www/interfaces_ppps_edit.php:596
+#: usr/local/www/interfaces.php:2040
msgid "Service name"
msgstr ""
#: usr/local/www/interfaces.php:1803 usr/local/www/interfaces.php:1981
-#: usr/local/www/interfaces.php:1969
+#: usr/local/www/interfaces.php:1969 usr/local/www/interfaces.php:1996
+#: usr/local/www/interfaces.php:2042
msgid "Hint: this field can usually be left empty"
msgstr ""
#: usr/local/www/interfaces.php:1810 usr/local/www/interfaces.php:1929
#: usr/local/www/interfaces.php:1988 usr/local/www/interfaces.php:2107
#: usr/local/www/interfaces.php:1976 usr/local/www/interfaces.php:2095
+#: usr/local/www/interfaces.php:2003 usr/local/www/interfaces.php:2125
+#: usr/local/www/interfaces.php:2049 usr/local/www/interfaces.php:2171
msgid "Enable Dial-On-Demand mode"
msgstr ""
#: usr/local/www/interfaces.php:1811 usr/local/www/interfaces.php:1989
-#: usr/local/www/interfaces.php:1977
+#: usr/local/www/interfaces.php:1977 usr/local/www/interfaces.php:2004
+#: usr/local/www/interfaces.php:2050
msgid ""
"This option causes the interface to operate in dial-on-demand mode, allowing "
"you to have a "
@@ -16760,12 +20497,16 @@ msgstr ""
#: usr/local/www/interfaces.php:1811 usr/local/www/interfaces.php:1930
#: usr/local/www/interfaces.php:1989 usr/local/www/interfaces.php:2108
#: usr/local/www/interfaces.php:1977 usr/local/www/interfaces.php:2096
+#: usr/local/www/interfaces.php:2004 usr/local/www/interfaces.php:2126
+#: usr/local/www/interfaces.php:2050 usr/local/www/interfaces.php:2172
msgid "virtual full time"
msgstr ""
#: usr/local/www/interfaces.php:1811 usr/local/www/interfaces.php:1930
#: usr/local/www/interfaces.php:1989 usr/local/www/interfaces.php:2108
#: usr/local/www/interfaces.php:1977 usr/local/www/interfaces.php:2096
+#: usr/local/www/interfaces.php:2004 usr/local/www/interfaces.php:2126
+#: usr/local/www/interfaces.php:2050 usr/local/www/interfaces.php:2172
msgid ""
"connection. The interface is configured, but the actual connection of the "
"link is delayed until qualifying outgoing traffic is detected."
@@ -16777,12 +20518,17 @@ msgstr ""
#: usr/local/www/interfaces.php:1993 usr/local/www/interfaces.php:2112
#: usr/local/www/services_captiveportal.php:468
#: usr/local/www/interfaces.php:1981 usr/local/www/interfaces.php:2100
+#: usr/local/www/interfaces.php:2008 usr/local/www/interfaces.php:2130
+#: usr/local/www/services_captiveportal.php:486
+#: usr/local/www/interfaces.php:2054 usr/local/www/interfaces.php:2176
msgid "Idle timeout"
msgstr ""
#: usr/local/www/interfaces.php:1817 usr/local/www/interfaces.php:1936
#: usr/local/www/interfaces.php:1995 usr/local/www/interfaces.php:2114
#: usr/local/www/interfaces.php:1983 usr/local/www/interfaces.php:2102
+#: usr/local/www/interfaces.php:2010 usr/local/www/interfaces.php:2132
+#: usr/local/www/interfaces.php:2056 usr/local/www/interfaces.php:2178
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 "
@@ -16794,6 +20540,10 @@ msgstr ""
#: usr/local/www/interfaces.php:1999
#: usr/local/www/interfaces_ppps_edit.php:597
#: usr/local/www/interfaces.php:1987
+#: usr/local/www/interfaces_ppps_edit.php:603
+#: usr/local/www/interfaces.php:2014
+#: usr/local/www/interfaces_ppps_edit.php:603
+#: usr/local/www/interfaces.php:2060
msgid "Periodic reset"
msgstr ""
@@ -16803,9 +20553,14 @@ msgstr ""
#: usr/local/www/status_rrd_graph_settings.php:158
#: usr/local/www/status_rrd_graph_settings.php:159
#: usr/local/www/status_rrd_graph.php:407 usr/local/www/interfaces.php:2007
-#: usr/local/www/status_rrd_graph_settings.php:159
#: usr/local/www/interfaces_ppps_edit.php:605
-#: usr/local/www/status_rrd_graph.php:407 usr/local/www/interfaces.php:1995
+#: usr/local/www/interfaces.php:1995
+#: usr/local/www/interfaces_ppps_edit.php:611
+#: usr/local/www/status_rrd_graph.php:432 usr/local/www/interfaces.php:2022
+#: usr/local/www/interfaces_ppps_edit.php:611
+#: usr/local/www/status_rrd_graph.php:432
+#: usr/local/www/status_rrd_graph_settings.php:159
+#: usr/local/www/interfaces.php:2068
msgid "Custom"
msgstr ""
@@ -16814,6 +20569,10 @@ msgstr ""
#: usr/local/www/interfaces.php:2008
#: usr/local/www/interfaces_ppps_edit.php:606
#: usr/local/www/interfaces.php:1996
+#: usr/local/www/interfaces_ppps_edit.php:612
+#: usr/local/www/interfaces.php:2023
+#: usr/local/www/interfaces_ppps_edit.php:612
+#: usr/local/www/interfaces.php:2069
msgid "Pre-Set"
msgstr ""
@@ -16822,6 +20581,10 @@ msgstr ""
#: usr/local/www/interfaces.php:2009
#: usr/local/www/interfaces_ppps_edit.php:607
#: usr/local/www/interfaces.php:1997
+#: usr/local/www/interfaces_ppps_edit.php:613
+#: usr/local/www/interfaces.php:2024
+#: usr/local/www/interfaces_ppps_edit.php:613
+#: usr/local/www/interfaces.php:2070
msgid "Select a reset timing type"
msgstr ""
@@ -16830,6 +20593,10 @@ msgstr ""
#: usr/local/www/interfaces.php:2017
#: usr/local/www/interfaces_ppps_edit.php:615
#: usr/local/www/interfaces.php:2005
+#: usr/local/www/interfaces_ppps_edit.php:621
+#: usr/local/www/interfaces.php:2032
+#: usr/local/www/interfaces_ppps_edit.php:621
+#: usr/local/www/interfaces.php:2078
msgid "hour (0-23)"
msgstr ""
@@ -16838,6 +20605,10 @@ msgstr ""
#: usr/local/www/interfaces.php:2019
#: usr/local/www/interfaces_ppps_edit.php:617
#: usr/local/www/interfaces.php:2007
+#: usr/local/www/interfaces_ppps_edit.php:623
+#: usr/local/www/interfaces.php:2034
+#: usr/local/www/interfaces_ppps_edit.php:623
+#: usr/local/www/interfaces.php:2080
msgid "minute (0-59)"
msgstr ""
@@ -16846,6 +20617,10 @@ msgstr ""
#: usr/local/www/interfaces.php:2021
#: usr/local/www/interfaces_ppps_edit.php:619
#: usr/local/www/interfaces.php:2009
+#: usr/local/www/interfaces_ppps_edit.php:625
+#: usr/local/www/interfaces.php:2036
+#: usr/local/www/interfaces_ppps_edit.php:625
+#: usr/local/www/interfaces.php:2082
msgid "reset at a specific date (mm/dd/yyyy)"
msgstr ""
@@ -16854,6 +20629,10 @@ msgstr ""
#: usr/local/www/interfaces.php:2024
#: usr/local/www/interfaces_ppps_edit.php:622
#: usr/local/www/interfaces.php:2012
+#: usr/local/www/interfaces_ppps_edit.php:628
+#: usr/local/www/interfaces.php:2039
+#: usr/local/www/interfaces_ppps_edit.php:628
+#: usr/local/www/interfaces.php:2085
msgid ""
"If you leave the date field empty, the reset will be executed each day at "
"the time you did specify using the minutes and hour field."
@@ -16864,6 +20643,10 @@ msgstr ""
#: usr/local/www/interfaces.php:2032
#: usr/local/www/interfaces_ppps_edit.php:630
#: usr/local/www/interfaces.php:2020
+#: usr/local/www/interfaces_ppps_edit.php:636
+#: usr/local/www/interfaces.php:2047
+#: usr/local/www/interfaces_ppps_edit.php:636
+#: usr/local/www/interfaces.php:2093
msgid "reset at each month ('0 0 1 * *')"
msgstr ""
@@ -16872,6 +20655,10 @@ msgstr ""
#: usr/local/www/interfaces.php:2035
#: usr/local/www/interfaces_ppps_edit.php:633
#: usr/local/www/interfaces.php:2023
+#: usr/local/www/interfaces_ppps_edit.php:639
+#: usr/local/www/interfaces.php:2050
+#: usr/local/www/interfaces_ppps_edit.php:639
+#: usr/local/www/interfaces.php:2096
msgid "reset at each week ('0 0 * * 0')"
msgstr ""
@@ -16880,6 +20667,10 @@ msgstr ""
#: usr/local/www/interfaces.php:2038
#: usr/local/www/interfaces_ppps_edit.php:636
#: usr/local/www/interfaces.php:2026
+#: usr/local/www/interfaces_ppps_edit.php:642
+#: usr/local/www/interfaces.php:2053
+#: usr/local/www/interfaces_ppps_edit.php:642
+#: usr/local/www/interfaces.php:2099
msgid "reset at each day ('0 0 * * *')"
msgstr ""
@@ -16888,126 +20679,154 @@ msgstr ""
#: usr/local/www/interfaces.php:2041
#: usr/local/www/interfaces_ppps_edit.php:639
#: usr/local/www/interfaces.php:2029
+#: usr/local/www/interfaces_ppps_edit.php:645
+#: usr/local/www/interfaces.php:2056
+#: usr/local/www/interfaces_ppps_edit.php:645
+#: usr/local/www/interfaces.php:2102
msgid "reset at each hour ('0 * * * *')"
msgstr ""
#: usr/local/www/interfaces.php:1872 usr/local/www/interfaces.php:2050
-#: usr/local/www/interfaces.php:2038
+#: usr/local/www/interfaces.php:2038 usr/local/www/interfaces.php:2065
+#: usr/local/www/interfaces.php:2111
msgid "Advanced and MLPPP"
msgstr ""
#: usr/local/www/interfaces.php:1876 usr/local/www/interfaces.php:2054
-#: usr/local/www/interfaces.php:2042
+#: usr/local/www/interfaces.php:2042 usr/local/www/interfaces.php:2069
+#: usr/local/www/interfaces.php:2115
msgid ""
"for additional PPPoE configuration options. Save first if you made changes."
msgstr ""
#: usr/local/www/interfaces.php:1881 usr/local/www/interfaces.php:2059
-#: usr/local/www/interfaces.php:2047
+#: usr/local/www/interfaces.php:2047 usr/local/www/interfaces.php:2074
+#: usr/local/www/interfaces.php:2120
msgid "for advanced PPPoE configuration options and MLPPP configuration."
msgstr ""
#: usr/local/www/interfaces.php:1892 usr/local/www/interfaces.php:2070
-#: usr/local/www/interfaces.php:2058
+#: usr/local/www/interfaces.php:2058 usr/local/www/interfaces.php:2088
+#: usr/local/www/interfaces.php:2134
msgid "PPTP/L2TP configuration"
msgstr ""
#: usr/local/www/interfaces.php:1907
#: usr/local/www/interfaces_ppps_edit.php:199
#: usr/local/www/interfaces_ppps_edit.php:202
-#: usr/local/www/interfaces.php:2085
-#: usr/local/www/interfaces_ppps_edit.php:199
-#: usr/local/www/interfaces_ppps_edit.php:202
-#: usr/local/www/interfaces.php:2073
+#: usr/local/www/interfaces.php:2085 usr/local/www/interfaces.php:2073
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
+#: usr/local/www/interfaces.php:2103
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
+#: usr/local/www/interfaces.php:2149
msgid "Local IP address"
msgstr ""
#: usr/local/www/interfaces.php:1920
#: usr/local/www/interfaces_ppps_edit.php:199
#: usr/local/www/interfaces_ppps_edit.php:202
-#: usr/local/www/interfaces.php:2098
-#: usr/local/www/interfaces_ppps_edit.php:199
-#: usr/local/www/interfaces_ppps_edit.php:202
-#: usr/local/www/interfaces.php:2086
+#: usr/local/www/interfaces.php:2098 usr/local/www/interfaces.php:2086
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
+#: usr/local/www/interfaces.php:2116
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
+#: usr/local/www/interfaces.php:2162
msgid "Remote IP address"
msgstr ""
#: usr/local/www/interfaces.php:1930 usr/local/www/interfaces.php:2108
-#: usr/local/www/interfaces.php:2096
+#: usr/local/www/interfaces.php:2096 usr/local/www/interfaces.php:2126
+#: usr/local/www/interfaces.php:2172
msgid ""
"This option causes the interface to operate in dial-on-demand mode, allowing "
"you to have a"
msgstr ""
#: usr/local/www/interfaces.php:1944 usr/local/www/interfaces.php:2122
-#: usr/local/www/interfaces.php:2110
+#: usr/local/www/interfaces.php:2110 usr/local/www/interfaces.php:2140
+#: usr/local/www/interfaces.php:2186
msgid ""
"for additional PPTP and L2TP configuration options. Save first if you made "
"changes."
msgstr ""
#: usr/local/www/interfaces.php:1949 usr/local/www/interfaces.php:2127
-#: usr/local/www/interfaces.php:2115
+#: usr/local/www/interfaces.php:2115 usr/local/www/interfaces.php:2145
+#: usr/local/www/interfaces.php:2191
msgid "for advanced PPTP and L2TP configuration options"
msgstr ""
#: usr/local/www/interfaces.php:1964 usr/local/www/interfaces.php:2142
-#: usr/local/www/interfaces.php:2130
+#: usr/local/www/interfaces.php:2130 usr/local/www/interfaces.php:2160
+#: usr/local/www/interfaces.php:2206
msgid ""
"Common wireless configuration - Settings apply to all wireless networks on"
msgstr ""
#: usr/local/www/interfaces.php:1967 usr/local/www/interfaces.php:2145
-#: usr/local/www/interfaces.php:2133
+#: usr/local/www/interfaces.php:2133 usr/local/www/interfaces.php:2163
+#: usr/local/www/interfaces.php:2209
msgid "Persist common settings"
msgstr ""
#: usr/local/www/interfaces.php:1970 usr/local/www/interfaces.php:2148
-#: usr/local/www/interfaces.php:2136
+#: usr/local/www/interfaces.php:2136 usr/local/www/interfaces.php:2166
+#: usr/local/www/interfaces.php:2212
msgid ""
"Enabling this preserves the common wireless configuration through interface "
"deletions and reassignments."
msgstr ""
#: usr/local/www/interfaces.php:1974 usr/local/www/interfaces.php:2152
-#: usr/local/www/interfaces.php:2140
+#: usr/local/www/interfaces.php:2140 usr/local/www/interfaces.php:2170
+#: usr/local/www/interfaces.php:2216
msgid "Standard"
msgstr ""
#: usr/local/www/interfaces.php:1990 usr/local/www/interfaces.php:2168
-#: usr/local/www/interfaces.php:2156
+#: usr/local/www/interfaces.php:2156 usr/local/www/interfaces.php:2186
+#: usr/local/www/interfaces.php:2232
msgid "Protection Mode"
msgstr ""
#: usr/local/www/interfaces.php:1993 usr/local/www/interfaces.php:2171
-#: usr/local/www/interfaces.php:2159
+#: usr/local/www/interfaces.php:2159 usr/local/www/interfaces.php:2189
+#: usr/local/www/interfaces.php:2235
msgid "Protection mode off"
msgstr ""
#: usr/local/www/interfaces.php:1994 usr/local/www/interfaces.php:2172
-#: usr/local/www/interfaces.php:2160
+#: usr/local/www/interfaces.php:2160 usr/local/www/interfaces.php:2190
+#: usr/local/www/interfaces.php:2236
msgid "Protection mode CTS to self"
msgstr ""
#: usr/local/www/interfaces.php:1995 usr/local/www/interfaces.php:2173
-#: usr/local/www/interfaces.php:2161
+#: usr/local/www/interfaces.php:2161 usr/local/www/interfaces.php:2191
+#: usr/local/www/interfaces.php:2237
msgid "Protection mode RTS and CTS"
msgstr ""
#: usr/local/www/interfaces.php:1998 usr/local/www/interfaces.php:2176
-#: usr/local/www/interfaces.php:2164
+#: usr/local/www/interfaces.php:2164 usr/local/www/interfaces.php:2194
+#: usr/local/www/interfaces.php:2240
msgid ""
"For IEEE 802.11g, use the specified technique for protecting OFDM frames in "
"a mixed 11b/11g network."
msgstr ""
#: usr/local/www/interfaces.php:2006 usr/local/www/interfaces.php:2184
-#: usr/local/www/interfaces.php:2172
+#: usr/local/www/interfaces.php:2172 usr/local/www/interfaces.php:2202
+#: usr/local/www/interfaces.php:2248
msgid "Transmit power"
msgstr ""
#: usr/local/www/interfaces.php:2019 usr/local/www/interfaces.php:2197
-#: usr/local/www/interfaces.php:2185
+#: usr/local/www/interfaces.php:2185 usr/local/www/interfaces.php:2215
+#: usr/local/www/interfaces.php:2261
msgid ""
"Note: Typically only a few discreet power settings are available and the "
"driver will use the setting closest to the specified value. Not all "
@@ -17017,6 +20836,8 @@ msgstr ""
#: usr/local/www/interfaces.php:2023 usr/local/www/status_interfaces.php:258
#: usr/local/www/status_interfaces.php:355 usr/local/www/interfaces.php:2201
#: usr/local/www/status_interfaces.php:358 usr/local/www/interfaces.php:2189
+#: usr/local/www/interfaces.php:2219 usr/local/www/status_interfaces.php:358
+#: usr/local/www/interfaces.php:2265
msgid "Channel"
msgstr ""
@@ -17024,31 +20845,37 @@ msgstr ""
#: usr/local/www/interfaces.php:2085 usr/local/www/interfaces.php:2204
#: usr/local/www/interfaces.php:2251 usr/local/www/interfaces.php:2263
#: usr/local/www/interfaces.php:2192 usr/local/www/interfaces.php:2239
-#: usr/local/www/interfaces.php:2251
+#: usr/local/www/interfaces.php:2222 usr/local/www/interfaces.php:2269
+#: usr/local/www/interfaces.php:2281 usr/local/www/interfaces.php:2268
+#: usr/local/www/interfaces.php:2315 usr/local/www/interfaces.php:2327
msgid "Auto"
msgstr ""
#: usr/local/www/interfaces.php:2046 usr/local/www/interfaces.php:2224
-#: usr/local/www/interfaces.php:2212
+#: usr/local/www/interfaces.php:2212 usr/local/www/interfaces.php:2242
+#: usr/local/www/interfaces.php:2288
msgid ""
"Legend: wireless standards - channel # (frequency @ max TX power / TX power "
"allowed in reg. domain)"
msgstr ""
#: usr/local/www/interfaces.php:2048 usr/local/www/interfaces.php:2226
-#: usr/local/www/interfaces.php:2214
+#: usr/local/www/interfaces.php:2214 usr/local/www/interfaces.php:2244
+#: usr/local/www/interfaces.php:2290
msgid ""
"Note: Not all channels may be supported by your card. Auto may override the "
"wireless standard selected above."
msgstr ""
#: usr/local/www/interfaces.php:2053 usr/local/www/interfaces.php:2231
-#: usr/local/www/interfaces.php:2219
+#: usr/local/www/interfaces.php:2219 usr/local/www/interfaces.php:2249
+#: usr/local/www/interfaces.php:2295
msgid "Antenna settings"
msgstr ""
#: usr/local/www/interfaces.php:2059 usr/local/www/interfaces.php:2237
-#: usr/local/www/interfaces.php:2225
+#: usr/local/www/interfaces.php:2225 usr/local/www/interfaces.php:2255
+#: usr/local/www/interfaces.php:2301
msgid "Diversity"
msgstr ""
@@ -17059,8 +20886,14 @@ msgstr ""
#: usr/local/www/interfaces.php:2262 usr/local/www/interfaces.php:2292
#: usr/local/www/interfaces.php:2308 usr/local/www/interfaces.php:2324
#: usr/local/www/interfaces.php:2227 usr/local/www/interfaces.php:2238
-#: usr/local/www/interfaces.php:2250 usr/local/www/interfaces.php:2280
-#: usr/local/www/interfaces.php:2296 usr/local/www/interfaces.php:2312
+#: usr/local/www/interfaces.php:2280 usr/local/www/interfaces.php:2296
+#: usr/local/www/interfaces.php:2312 usr/local/www/diag_system_pftop.php:135
+#: usr/local/www/interfaces.php:2257 usr/local/www/interfaces.php:2268
+#: usr/local/www/interfaces.php:2310 usr/local/www/interfaces.php:2326
+#: usr/local/www/interfaces.php:2342 usr/local/www/diag_system_pftop.php:135
+#: usr/local/www/interfaces.php:2303 usr/local/www/interfaces.php:2314
+#: usr/local/www/interfaces.php:2326 usr/local/www/interfaces.php:2356
+#: usr/local/www/interfaces.php:2372 usr/local/www/interfaces.php:2388
msgid "Default"
msgstr ""
@@ -17068,72 +20901,90 @@ msgstr ""
#: usr/local/www/vpn_l2tp.php:294 usr/local/www/vpn_pppoe_edit.php:362
#: usr/local/www/interfaces.php:2240 usr/local/www/vpn_pppoe_edit.php:363
#: usr/local/www/vpn_pptp.php:316 usr/local/www/interfaces.php:2228
-#: usr/local/www/vpn_l2tp.php:295
+#: usr/local/www/vpn_l2tp.php:295 usr/local/www/vpn_l2tp.php:298
+#: usr/local/www/vpn_pppoe_edit.php:366 usr/local/www/vpn_pptp.php:319
+#: usr/local/www/interfaces.php:2258 usr/local/www/vpn_l2tp.php:298
+#: usr/local/www/vpn_pppoe_edit.php:366 usr/local/www/vpn_pptp.php:319
+#: usr/local/www/interfaces.php:2304
msgid "Off"
msgstr ""
#: usr/local/www/interfaces.php:2063 usr/local/www/interfaces.php:2241
-#: usr/local/www/interfaces.php:2229
+#: usr/local/www/interfaces.php:2229 usr/local/www/interfaces.php:2259
+#: usr/local/www/interfaces.php:2305
msgid "On"
msgstr ""
#: usr/local/www/interfaces.php:2070 usr/local/www/interfaces.php:2248
-#: usr/local/www/interfaces.php:2236
+#: usr/local/www/interfaces.php:2236 usr/local/www/interfaces.php:2266
+#: usr/local/www/interfaces.php:2312
msgid "Transmit antenna"
msgstr ""
#: usr/local/www/interfaces.php:2074 usr/local/www/interfaces.php:2086
#: usr/local/www/interfaces.php:2252 usr/local/www/interfaces.php:2264
-#: usr/local/www/interfaces.php:2240 usr/local/www/interfaces.php:2252
+#: usr/local/www/interfaces.php:2240 usr/local/www/interfaces.php:2270
+#: usr/local/www/interfaces.php:2282 usr/local/www/interfaces.php:2316
+#: usr/local/www/interfaces.php:2328
msgid "#1"
msgstr ""
#: usr/local/www/interfaces.php:2075 usr/local/www/interfaces.php:2087
#: usr/local/www/interfaces.php:2253 usr/local/www/interfaces.php:2265
-#: usr/local/www/interfaces.php:2241 usr/local/www/interfaces.php:2253
+#: usr/local/www/interfaces.php:2241 usr/local/www/interfaces.php:2271
+#: usr/local/www/interfaces.php:2283 usr/local/www/interfaces.php:2317
+#: usr/local/www/interfaces.php:2329
msgid "#2"
msgstr ""
#: usr/local/www/interfaces.php:2082 usr/local/www/interfaces.php:2260
-#: usr/local/www/interfaces.php:2248
+#: usr/local/www/interfaces.php:2248 usr/local/www/interfaces.php:2278
+#: usr/local/www/interfaces.php:2324
msgid "Receive antenna"
msgstr ""
#: usr/local/www/interfaces.php:2094 usr/local/www/interfaces.php:2272
-#: usr/local/www/interfaces.php:2260
+#: usr/local/www/interfaces.php:2260 usr/local/www/interfaces.php:2290
+#: usr/local/www/interfaces.php:2336
msgid ""
"Note: The antenna numbers do not always match up with the labels on the card."
msgstr ""
#: usr/local/www/interfaces.php:2100 usr/local/www/interfaces.php:2278
-#: usr/local/www/interfaces.php:2266
+#: usr/local/www/interfaces.php:2266 usr/local/www/interfaces.php:2296
+#: usr/local/www/interfaces.php:2342
msgid "Distance setting"
msgstr ""
#: usr/local/www/interfaces.php:2104 usr/local/www/interfaces.php:2282
-#: usr/local/www/interfaces.php:2270
+#: usr/local/www/interfaces.php:2270 usr/local/www/interfaces.php:2300
+#: usr/local/www/interfaces.php:2346
msgid ""
"Note: This field can be used to tune ACK/CTS timers to fit the distance "
"between AP and Client"
msgstr ""
#: usr/local/www/interfaces.php:2105 usr/local/www/interfaces.php:2283
-#: usr/local/www/interfaces.php:2271
+#: usr/local/www/interfaces.php:2271 usr/local/www/interfaces.php:2301
+#: usr/local/www/interfaces.php:2347
msgid "(measured in Meters and works only for Atheros based cards !)"
msgstr ""
#: usr/local/www/interfaces.php:2110 usr/local/www/interfaces.php:2288
-#: usr/local/www/interfaces.php:2276
+#: usr/local/www/interfaces.php:2276 usr/local/www/interfaces.php:2306
+#: usr/local/www/interfaces.php:2352
msgid "Regulatory settings"
msgstr ""
#: usr/local/www/interfaces.php:2112 usr/local/www/interfaces.php:2290
-#: usr/local/www/interfaces.php:2278
+#: usr/local/www/interfaces.php:2278 usr/local/www/interfaces.php:2308
+#: usr/local/www/interfaces.php:2354
msgid "Regulatory domain"
msgstr ""
#: usr/local/www/interfaces.php:2126 usr/local/www/interfaces.php:2304
-#: usr/local/www/interfaces.php:2292
+#: usr/local/www/interfaces.php:2292 usr/local/www/interfaces.php:2322
+#: usr/local/www/interfaces.php:2368
msgid ""
"Note: 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 "
@@ -17141,39 +20992,46 @@ msgid ""
msgstr ""
#: usr/local/www/interfaces.php:2128 usr/local/www/interfaces.php:2306
-#: usr/local/www/interfaces.php:2294
+#: usr/local/www/interfaces.php:2294 usr/local/www/interfaces.php:2324
+#: usr/local/www/interfaces.php:2370
msgid "Country (listed with country code and regulatory domain)"
msgstr ""
#: usr/local/www/interfaces.php:2142 usr/local/www/interfaces.php:2320
-#: usr/local/www/interfaces.php:2308
+#: usr/local/www/interfaces.php:2308 usr/local/www/interfaces.php:2338
+#: usr/local/www/interfaces.php:2384
msgid ""
"Note: Any country setting other than \"Default\" will override the "
"regulatory domain setting"
msgstr ""
#: usr/local/www/interfaces.php:2144 usr/local/www/interfaces.php:2322
-#: usr/local/www/interfaces.php:2310
+#: usr/local/www/interfaces.php:2310 usr/local/www/interfaces.php:2340
+#: usr/local/www/interfaces.php:2386
msgid "Location"
msgstr ""
#: usr/local/www/interfaces.php:2147 usr/local/www/interfaces.php:2325
-#: usr/local/www/interfaces.php:2313
+#: usr/local/www/interfaces.php:2313 usr/local/www/interfaces.php:2343
+#: usr/local/www/interfaces.php:2389
msgid "Indoor"
msgstr ""
#: usr/local/www/interfaces.php:2148 usr/local/www/interfaces.php:2326
-#: usr/local/www/interfaces.php:2314
+#: usr/local/www/interfaces.php:2314 usr/local/www/interfaces.php:2344
+#: usr/local/www/interfaces.php:2390
msgid "Outdoor"
msgstr ""
#: usr/local/www/interfaces.php:2149 usr/local/www/interfaces.php:2327
-#: usr/local/www/interfaces.php:2315
+#: usr/local/www/interfaces.php:2315 usr/local/www/interfaces.php:2345
+#: usr/local/www/interfaces.php:2391
msgid "Anywhere"
msgstr ""
#: usr/local/www/interfaces.php:2152 usr/local/www/interfaces.php:2330
-#: usr/local/www/interfaces.php:2318
+#: usr/local/www/interfaces.php:2318 usr/local/www/interfaces.php:2348
+#: usr/local/www/interfaces.php:2394
msgid ""
"These settings may affect which channels are available and the maximum "
"transmit power allowed on those channels. Using the correct settings to "
@@ -17181,7 +21039,8 @@ msgid ""
msgstr ""
#: usr/local/www/interfaces.php:2154 usr/local/www/interfaces.php:2332
-#: usr/local/www/interfaces.php:2320
+#: usr/local/www/interfaces.php:2320 usr/local/www/interfaces.php:2350
+#: usr/local/www/interfaces.php:2396
msgid ""
"Note: All wireless networks on this interface will be temporarily brought "
"down when changing regulatory settings. Some of the regulatory domains or "
@@ -17190,56 +21049,68 @@ msgid ""
msgstr ""
#: usr/local/www/interfaces.php:2161 usr/local/www/interfaces.php:2339
-#: usr/local/www/interfaces.php:2327
+#: usr/local/www/interfaces.php:2327 usr/local/www/interfaces.php:2357
+#: usr/local/www/interfaces.php:2403
msgid "Network-specific wireless configuration"
msgstr ""
#: usr/local/www/interfaces.php:2167
#: usr/local/www/interfaces_wireless_edit.php:179
-#: usr/local/www/interfaces.php:2345
-#: usr/local/www/interfaces_wireless_edit.php:179
-#: usr/local/www/interfaces.php:2333
+#: usr/local/www/interfaces.php:2345 usr/local/www/interfaces.php:2333
+#: usr/local/www/interfaces_wireless_edit.php:181
+#: usr/local/www/interfaces.php:2363
+#: usr/local/www/interfaces_wireless_edit.php:181
+#: usr/local/www/interfaces.php:2409
msgid "Infrastructure (BSS)"
msgstr ""
#: usr/local/www/interfaces.php:2168
#: usr/local/www/interfaces_wireless_edit.php:180
-#: usr/local/www/interfaces.php:2346
-#: usr/local/www/interfaces_wireless_edit.php:180
-#: usr/local/www/interfaces.php:2334
+#: usr/local/www/interfaces.php:2346 usr/local/www/interfaces.php:2334
+#: usr/local/www/interfaces_wireless_edit.php:182
+#: usr/local/www/interfaces.php:2364
+#: usr/local/www/interfaces_wireless_edit.php:182
+#: usr/local/www/interfaces.php:2410
msgid "Ad-hoc (IBSS)"
msgstr ""
#: usr/local/www/interfaces.php:2169
#: usr/local/www/interfaces_wireless_edit.php:181
-#: usr/local/www/interfaces.php:2347
-#: usr/local/www/interfaces_wireless_edit.php:181
-#: usr/local/www/interfaces.php:2335
+#: usr/local/www/interfaces.php:2347 usr/local/www/interfaces.php:2335
+#: usr/local/www/interfaces_wireless_edit.php:183
+#: usr/local/www/interfaces.php:2365
+#: usr/local/www/interfaces_wireless_edit.php:183
+#: usr/local/www/interfaces.php:2411
msgid "Access Point"
msgstr ""
#: usr/local/www/interfaces.php:2181 usr/local/www/interfaces.php:2361
-#: usr/local/www/interfaces.php:2349
+#: usr/local/www/interfaces.php:2349 usr/local/www/interfaces.php:2379
+#: usr/local/www/interfaces.php:2425
msgid "Minimum wireless standard"
msgstr ""
#: usr/local/www/interfaces.php:2184 usr/local/www/interfaces.php:2364
-#: usr/local/www/interfaces.php:2352
+#: usr/local/www/interfaces.php:2352 usr/local/www/interfaces.php:2382
+#: usr/local/www/interfaces.php:2428
msgid "Any"
msgstr ""
#: usr/local/www/interfaces.php:2186 usr/local/www/interfaces.php:2366
-#: usr/local/www/interfaces.php:2354
+#: usr/local/www/interfaces.php:2354 usr/local/www/interfaces.php:2384
+#: usr/local/www/interfaces.php:2430
msgid "802.11g"
msgstr ""
#: usr/local/www/interfaces.php:2188 usr/local/www/interfaces.php:2368
-#: usr/local/www/interfaces.php:2356
+#: usr/local/www/interfaces.php:2356 usr/local/www/interfaces.php:2386
+#: usr/local/www/interfaces.php:2432
msgid "802.11n"
msgstr ""
#: usr/local/www/interfaces.php:2191 usr/local/www/interfaces.php:2371
-#: usr/local/www/interfaces.php:2359
+#: usr/local/www/interfaces.php:2359 usr/local/www/interfaces.php:2389
+#: usr/local/www/interfaces.php:2435
msgid ""
"When operating as an access point, allow only stations capable of the "
"selected wireless standard to associate (stations not capable are not "
@@ -17247,105 +21118,124 @@ msgid ""
msgstr ""
#: usr/local/www/interfaces.php:2196 usr/local/www/interfaces.php:2376
-#: usr/local/www/interfaces.php:2364
+#: usr/local/www/interfaces.php:2364 usr/local/www/interfaces.php:2394
+#: usr/local/www/interfaces.php:2440
msgid "802.11g only"
msgstr ""
#: usr/local/www/interfaces.php:2199 usr/local/www/interfaces.php:2379
-#: usr/local/www/interfaces.php:2367
+#: usr/local/www/interfaces.php:2367 usr/local/www/interfaces.php:2397
+#: usr/local/www/interfaces.php:2443
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 ""
#: usr/local/www/interfaces.php:2204 usr/local/www/interfaces.php:2384
-#: usr/local/www/interfaces.php:2372
+#: usr/local/www/interfaces.php:2372 usr/local/www/interfaces.php:2402
+#: usr/local/www/interfaces.php:2448
msgid "Allow intra-BSS communication"
msgstr ""
#: usr/local/www/interfaces.php:2208 usr/local/www/interfaces.php:2388
-#: usr/local/www/interfaces.php:2376
+#: usr/local/www/interfaces.php:2376 usr/local/www/interfaces.php:2406
+#: usr/local/www/interfaces.php:2452
msgid ""
"When operating as an access point, enable this if you want to pass packets "
"between wireless clients directly."
msgstr ""
#: usr/local/www/interfaces.php:2210 usr/local/www/interfaces.php:2390
-#: usr/local/www/interfaces.php:2378
+#: usr/local/www/interfaces.php:2378 usr/local/www/interfaces.php:2408
+#: usr/local/www/interfaces.php:2454
msgid ""
"Disabling the internal bridging is useful when traffic is to be processed "
"with packet filtering."
msgstr ""
#: usr/local/www/interfaces.php:2214 usr/local/www/interfaces.php:2394
-#: usr/local/www/interfaces.php:2382
+#: usr/local/www/interfaces.php:2382 usr/local/www/interfaces.php:2412
+#: usr/local/www/interfaces.php:2458
msgid "Enable WME"
msgstr ""
#: usr/local/www/interfaces.php:2217 usr/local/www/interfaces.php:2397
-#: usr/local/www/interfaces.php:2385
+#: usr/local/www/interfaces.php:2385 usr/local/www/interfaces.php:2415
+#: usr/local/www/interfaces.php:2461
msgid "Setting this option will force the card to use WME (wireless QoS)."
msgstr ""
#: usr/local/www/interfaces.php:2221 usr/local/www/interfaces.php:2401
-#: usr/local/www/interfaces.php:2389
+#: usr/local/www/interfaces.php:2389 usr/local/www/interfaces.php:2419
+#: usr/local/www/interfaces.php:2465
msgid "Enable Hide SSID"
msgstr ""
#: usr/local/www/interfaces.php:2225 usr/local/www/interfaces.php:2405
-#: usr/local/www/interfaces.php:2393
+#: usr/local/www/interfaces.php:2393 usr/local/www/interfaces.php:2423
+#: usr/local/www/interfaces.php:2469
msgid "Setting this option will force the card to NOT broadcast its SSID"
msgstr ""
#: usr/local/www/interfaces.php:2227 usr/local/www/interfaces.php:2407
-#: usr/local/www/interfaces.php:2395
+#: usr/local/www/interfaces.php:2395 usr/local/www/interfaces.php:2425
+#: usr/local/www/interfaces.php:2471
msgid "(this might create problems for some clients)."
msgstr ""
#: usr/local/www/interfaces.php:2231 usr/local/www/interfaces.php:2411
-#: usr/local/www/interfaces.php:2399
+#: usr/local/www/interfaces.php:2399 usr/local/www/interfaces.php:2429
+#: usr/local/www/interfaces.php:2475
msgid "WEP"
msgstr ""
#: usr/local/www/interfaces.php:2234 usr/local/www/interfaces.php:2414
-#: usr/local/www/interfaces.php:2402
+#: usr/local/www/interfaces.php:2402 usr/local/www/interfaces.php:2432
+#: usr/local/www/interfaces.php:2478
msgid "Enable WEP"
msgstr ""
#: usr/local/www/interfaces.php:2239 usr/local/www/interfaces.php:2419
-#: usr/local/www/interfaces.php:2407
+#: usr/local/www/interfaces.php:2407 usr/local/www/interfaces.php:2437
+#: usr/local/www/interfaces.php:2483
msgid "TX key"
msgstr ""
#: usr/local/www/interfaces.php:2242 usr/local/www/interfaces.php:2422
-#: usr/local/www/interfaces.php:2410
+#: usr/local/www/interfaces.php:2410 usr/local/www/interfaces.php:2440
+#: usr/local/www/interfaces.php:2486
msgid "Key 1:"
msgstr ""
#: usr/local/www/interfaces.php:2251 usr/local/www/interfaces.php:2431
-#: usr/local/www/interfaces.php:2419
+#: usr/local/www/interfaces.php:2419 usr/local/www/interfaces.php:2449
+#: usr/local/www/interfaces.php:2495
msgid "Key 2:"
msgstr ""
#: usr/local/www/interfaces.php:2260 usr/local/www/interfaces.php:2440
-#: usr/local/www/interfaces.php:2428
+#: usr/local/www/interfaces.php:2428 usr/local/www/interfaces.php:2458
+#: usr/local/www/interfaces.php:2504
msgid "Key 3:"
msgstr ""
#: usr/local/www/interfaces.php:2269 usr/local/www/interfaces.php:2449
-#: usr/local/www/interfaces.php:2437
+#: usr/local/www/interfaces.php:2437 usr/local/www/interfaces.php:2467
+#: usr/local/www/interfaces.php:2513
msgid "Key 4:"
msgstr ""
#: usr/local/www/interfaces.php:2279 usr/local/www/interfaces.php:2459
-#: usr/local/www/interfaces.php:2447
+#: usr/local/www/interfaces.php:2447 usr/local/www/interfaces.php:2477
+#: usr/local/www/interfaces.php:2523
msgid ""
"40 (64) bit keys may be entered as 5 ASCII characters or 10 hex digits "
"preceded by '0x'."
msgstr ""
#: usr/local/www/interfaces.php:2280 usr/local/www/interfaces.php:2460
-#: usr/local/www/interfaces.php:2448
+#: usr/local/www/interfaces.php:2448 usr/local/www/interfaces.php:2478
+#: usr/local/www/interfaces.php:2524
msgid ""
"104 (128) bit keys may be entered as 13 ASCII characters or 26 hex digits "
"preceded by '0x'."
@@ -17354,11 +21244,14 @@ msgstr ""
#: usr/local/www/interfaces.php:2284 usr/local/www/interfaces.php:2308
#: usr/local/www/interfaces.php:2464 usr/local/www/interfaces.php:2488
#: usr/local/www/interfaces.php:2452 usr/local/www/interfaces.php:2476
+#: usr/local/www/interfaces.php:2482 usr/local/www/interfaces.php:2506
+#: usr/local/www/interfaces.php:2528 usr/local/www/interfaces.php:2552
msgid "WPA"
msgstr ""
#: usr/local/www/interfaces.php:2287 usr/local/www/interfaces.php:2467
-#: usr/local/www/interfaces.php:2455
+#: usr/local/www/interfaces.php:2455 usr/local/www/interfaces.php:2485
+#: usr/local/www/interfaces.php:2531
msgid "Enable WPA"
msgstr ""
@@ -17367,22 +21260,26 @@ msgid "WPA Pre Shared Key"
msgstr ""
#: usr/local/www/interfaces.php:2295 usr/local/www/interfaces.php:2475
-#: usr/local/www/interfaces.php:2463
+#: usr/local/www/interfaces.php:2463 usr/local/www/interfaces.php:2493
+#: usr/local/www/interfaces.php:2539
msgid "PSK:"
msgstr ""
#: usr/local/www/interfaces.php:2301 usr/local/www/interfaces.php:2481
-#: usr/local/www/interfaces.php:2469
+#: usr/local/www/interfaces.php:2469 usr/local/www/interfaces.php:2499
+#: usr/local/www/interfaces.php:2545
msgid "Passphrase must be from 8 to 63 characters."
msgstr ""
#: usr/local/www/interfaces.php:2305 usr/local/www/interfaces.php:2485
-#: usr/local/www/interfaces.php:2473
+#: usr/local/www/interfaces.php:2473 usr/local/www/interfaces.php:2503
+#: usr/local/www/interfaces.php:2549
msgid "WPA Mode"
msgstr ""
#: usr/local/www/interfaces.php:2309 usr/local/www/interfaces.php:2489
-#: usr/local/www/interfaces.php:2477
+#: usr/local/www/interfaces.php:2477 usr/local/www/interfaces.php:2507
+#: usr/local/www/interfaces.php:2553
msgid "WPA2"
msgstr ""
@@ -17396,11 +21293,17 @@ msgstr ""
#: usr/local/www/services_captiveportal_ip_edit.php:180
#: usr/local/www/interfaces.php:2478 usr/local/www/interfaces.php:2488
#: usr/local/www/interfaces.php:2498 usr/local/www/interfaces.php:2507
+#: usr/local/www/interfaces.php:2508 usr/local/www/interfaces.php:2518
+#: usr/local/www/interfaces.php:2528 usr/local/www/interfaces.php:2537
+#: usr/local/www/services_captiveportal_hostname_edit.php:164
+#: usr/local/www/interfaces.php:2554 usr/local/www/interfaces.php:2564
+#: usr/local/www/interfaces.php:2574 usr/local/www/interfaces.php:2583
msgid "Both"
msgstr ""
#: usr/local/www/interfaces.php:2315 usr/local/www/interfaces.php:2495
-#: usr/local/www/interfaces.php:2483
+#: usr/local/www/interfaces.php:2483 usr/local/www/interfaces.php:2513
+#: usr/local/www/interfaces.php:2559
msgid "WPA Key Management Mode"
msgstr ""
@@ -17409,82 +21312,97 @@ msgid "Pre Shared Key"
msgstr ""
#: usr/local/www/interfaces.php:2319 usr/local/www/interfaces.php:2499
-#: usr/local/www/interfaces.php:2487
+#: usr/local/www/interfaces.php:2487 usr/local/www/interfaces.php:2517
+#: usr/local/www/interfaces.php:2563
msgid "Extensible Authentication Protocol"
msgstr ""
#: usr/local/www/interfaces.php:2328 usr/local/www/interfaces.php:2508
-#: usr/local/www/interfaces.php:2496
+#: usr/local/www/interfaces.php:2496 usr/local/www/interfaces.php:2526
+#: usr/local/www/interfaces.php:2572
msgid "Open System Authentication"
msgstr ""
#: usr/local/www/interfaces.php:2329 usr/local/www/interfaces.php:2509
-#: usr/local/www/interfaces.php:2497
+#: usr/local/www/interfaces.php:2497 usr/local/www/interfaces.php:2527
+#: usr/local/www/interfaces.php:2573
msgid "Shared Key Authentication"
msgstr ""
#: usr/local/www/interfaces.php:2332 usr/local/www/interfaces.php:2512
-#: usr/local/www/interfaces.php:2500
+#: usr/local/www/interfaces.php:2500 usr/local/www/interfaces.php:2530
+#: usr/local/www/interfaces.php:2576
msgid "Note: Shared Key Authentication requires WEP."
msgstr ""
#: usr/local/www/interfaces.php:2336 usr/local/www/interfaces.php:2516
-#: usr/local/www/interfaces.php:2504
+#: usr/local/www/interfaces.php:2504 usr/local/www/interfaces.php:2534
+#: usr/local/www/interfaces.php:2580
msgid "WPA Pairwise"
msgstr ""
#: usr/local/www/interfaces.php:2340 usr/local/www/interfaces.php:2520
-#: usr/local/www/interfaces.php:2508
+#: usr/local/www/interfaces.php:2508 usr/local/www/interfaces.php:2538
+#: usr/local/www/interfaces.php:2584
msgid "AES (recommended)"
msgstr ""
#: usr/local/www/interfaces.php:2341 usr/local/www/interfaces.php:2521
-#: usr/local/www/interfaces.php:2509
+#: usr/local/www/interfaces.php:2509 usr/local/www/interfaces.php:2539
+#: usr/local/www/interfaces.php:2585
msgid "TKIP"
msgstr ""
#: usr/local/www/interfaces.php:2346 usr/local/www/interfaces.php:2526
-#: usr/local/www/interfaces.php:2514
+#: usr/local/www/interfaces.php:2514 usr/local/www/interfaces.php:2544
+#: usr/local/www/interfaces.php:2590
msgid "Key Rotation"
msgstr ""
#: usr/local/www/interfaces.php:2349 usr/local/www/interfaces.php:2529
-#: usr/local/www/interfaces.php:2517
+#: usr/local/www/interfaces.php:2517 usr/local/www/interfaces.php:2547
+#: usr/local/www/interfaces.php:2593
msgid ""
"Allowed values are 1-9999 but should not be longer than Master Key "
"Regeneration time."
msgstr ""
#: usr/local/www/interfaces.php:2353 usr/local/www/interfaces.php:2533
-#: usr/local/www/interfaces.php:2521
+#: usr/local/www/interfaces.php:2521 usr/local/www/interfaces.php:2551
+#: usr/local/www/interfaces.php:2597
msgid "Master Key Regeneration"
msgstr ""
#: usr/local/www/interfaces.php:2356 usr/local/www/interfaces.php:2536
-#: usr/local/www/interfaces.php:2524
+#: usr/local/www/interfaces.php:2524 usr/local/www/interfaces.php:2554
+#: usr/local/www/interfaces.php:2600
msgid ""
"Allowed values are 1-9999 but should not be shorter than Key Rotation time."
msgstr ""
#: usr/local/www/interfaces.php:2360 usr/local/www/interfaces.php:2540
-#: usr/local/www/interfaces.php:2528
+#: usr/local/www/interfaces.php:2528 usr/local/www/interfaces.php:2558
+#: usr/local/www/interfaces.php:2604
msgid "Strict Key Regeneration"
msgstr ""
#: usr/local/www/interfaces.php:2363 usr/local/www/interfaces.php:2543
-#: usr/local/www/interfaces.php:2531
+#: usr/local/www/interfaces.php:2531 usr/local/www/interfaces.php:2561
+#: usr/local/www/interfaces.php:2607
msgid ""
"Setting this option will force the AP to rekey whenever a client "
"disassociates."
msgstr ""
#: usr/local/www/interfaces.php:2367 usr/local/www/interfaces.php:2547
-#: usr/local/www/interfaces.php:2535
+#: usr/local/www/interfaces.php:2535 usr/local/www/interfaces.php:2565
+#: usr/local/www/interfaces.php:2611
msgid "Enable IEEE802.1X Authentication"
msgstr ""
#: usr/local/www/interfaces.php:2370 usr/local/www/interfaces.php:2550
-#: usr/local/www/interfaces.php:2538
+#: usr/local/www/interfaces.php:2538 usr/local/www/interfaces.php:2568
+#: usr/local/www/interfaces.php:2614
msgid "Setting this option will enable 802.1x authentication."
msgstr ""
@@ -17494,81 +21412,100 @@ msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:255
#: usr/local/www/status_openvpn.php:307 usr/local/www/interfaces.php:2539
#: usr/local/www/load_balancer_pool_edit.php:253
+#: usr/local/www/status_openvpn.php:355 usr/local/www/interfaces.php:2569
+#: usr/local/www/status_openvpn.php:385
+#: usr/local/www/load_balancer_pool_edit.php:253
+#: usr/local/www/interfaces.php:2615
msgid "NOTE"
msgstr ""
#: usr/local/www/interfaces.php:2371 usr/local/www/interfaces.php:2551
-#: usr/local/www/interfaces.php:2539
+#: usr/local/www/interfaces.php:2539 usr/local/www/interfaces.php:2569
+#: usr/local/www/interfaces.php:2615
msgid "this option requires checking the \"Enable WPA box\"."
msgstr ""
#: usr/local/www/interfaces.php:2375 usr/local/www/interfaces.php:2555
-#: usr/local/www/interfaces.php:2543
+#: usr/local/www/interfaces.php:2543 usr/local/www/interfaces.php:2573
+#: usr/local/www/interfaces.php:2619
msgid "802.1X Authentication Server IP Address"
msgstr ""
#: usr/local/www/interfaces.php:2378 usr/local/www/interfaces.php:2558
#: usr/local/www/interfaces.php:2579 usr/local/www/interfaces.php:2546
-#: usr/local/www/interfaces.php:2567
+#: usr/local/www/interfaces.php:2567 usr/local/www/interfaces.php:2576
+#: usr/local/www/interfaces.php:2597 usr/local/www/interfaces.php:2622
+#: usr/local/www/interfaces.php:2643
msgid ""
"Enter the IP address of the 802.1X Authentication Server. This is commonly "
"a Radius server (FreeRadius, Internet Authentication Services, etc.)"
msgstr ""
#: usr/local/www/interfaces.php:2382 usr/local/www/interfaces.php:2562
-#: usr/local/www/interfaces.php:2550
+#: usr/local/www/interfaces.php:2550 usr/local/www/interfaces.php:2580
+#: usr/local/www/interfaces.php:2626
msgid "802.1X Authentication Server Port"
msgstr ""
#: usr/local/www/interfaces.php:2385 usr/local/www/interfaces.php:2565
#: usr/local/www/interfaces.php:2586 usr/local/www/interfaces.php:2553
-#: usr/local/www/interfaces.php:2574
+#: usr/local/www/interfaces.php:2574 usr/local/www/interfaces.php:2583
+#: usr/local/www/interfaces.php:2604 usr/local/www/interfaces.php:2629
+#: usr/local/www/interfaces.php:2650
msgid "Leave blank for the default 1812 port."
msgstr ""
#: usr/local/www/interfaces.php:2389 usr/local/www/interfaces.php:2569
-#: usr/local/www/interfaces.php:2557
+#: usr/local/www/interfaces.php:2557 usr/local/www/interfaces.php:2587
+#: usr/local/www/interfaces.php:2633
msgid "802.1X Authentication Server Shared Secret"
msgstr ""
#: usr/local/www/interfaces.php:2396 usr/local/www/interfaces.php:2597
-#: usr/local/www/interfaces.php:2585
+#: usr/local/www/interfaces.php:2585 usr/local/www/interfaces.php:2615
+#: usr/local/www/interfaces.php:2661
msgid "Authentication Roaming Preauth"
msgstr ""
#: usr/local/www/interfaces.php:2407 usr/local/www/interfaces.php:2608
-#: usr/local/www/interfaces.php:2596
+#: usr/local/www/interfaces.php:2596 usr/local/www/interfaces.php:2626
+#: usr/local/www/interfaces.php:2672
msgid "Private networks"
msgstr ""
#: usr/local/www/interfaces.php:2415 usr/local/www/interfaces.php:2616
-#: usr/local/www/interfaces.php:2604
+#: usr/local/www/interfaces.php:2604 usr/local/www/interfaces.php:2634
+#: usr/local/www/interfaces.php:2680
msgid ""
"When set, this option blocks traffic from IP addresses that are reserved for "
"private networks as per RFC 1918 (10/8, 172.16/12, 192.168/16) as"
msgstr ""
#: usr/local/www/interfaces.php:2417 usr/local/www/interfaces.php:2618
-#: usr/local/www/interfaces.php:2606
+#: usr/local/www/interfaces.php:2606 usr/local/www/interfaces.php:2636
+#: usr/local/www/interfaces.php:2682
msgid "well as loopback addresses (127/8)."
msgstr ""
#: usr/local/www/interfaces.php:2417 usr/local/www/interfaces.php:2618
-#: usr/local/www/interfaces.php:2606
+#: usr/local/www/interfaces.php:2606 usr/local/www/interfaces.php:2636
+#: usr/local/www/interfaces.php:2682
msgid ""
"You should generally leave this option turned on, unless your WAN network "
"lies in such a private address space, too."
msgstr ""
#: usr/local/www/interfaces.php:2427 usr/local/www/interfaces.php:2628
-#: usr/local/www/interfaces.php:2616
+#: usr/local/www/interfaces.php:2616 usr/local/www/interfaces.php:2646
+#: usr/local/www/interfaces.php:2692
msgid ""
"When set, this option blocks traffic from IP addresses that are reserved "
"(but not RFC 1918) or not yet assigned by IANA."
msgstr ""
#: usr/local/www/interfaces.php:2429 usr/local/www/interfaces.php:2630
-#: usr/local/www/interfaces.php:2618
+#: usr/local/www/interfaces.php:2618 usr/local/www/interfaces.php:2648
+#: usr/local/www/interfaces.php:2694
msgid ""
"Bogons are prefixes that should never appear in the Internet routing table, "
"and obviously should not appear as the source address in any packets you "
@@ -17578,6 +21515,8 @@ msgstr ""
#: usr/local/www/interfaces.php:2550 usr/local/www/interfaces.php:2559
#: usr/local/www/interfaces.php:2752 usr/local/www/interfaces.php:2761
#: usr/local/www/interfaces.php:2740 usr/local/www/interfaces.php:2749
+#: usr/local/www/interfaces.php:2774 usr/local/www/interfaces.php:2783
+#: usr/local/www/interfaces.php:2820 usr/local/www/interfaces.php:2829
msgid "You can manage Gateways"
msgstr ""
@@ -17593,62 +21532,73 @@ msgid "Port %1$s was assigned to %2$s interfaces:"
msgstr ""
#: usr/local/www/interfaces_assign.php:262
-#: usr/local/www/interfaces_assign.php:262
+#: usr/local/www/interfaces_assign.php:274
+#: usr/local/www/interfaces_assign.php:274
msgid ""
"The interface is part of a group. Please remove it from the group to continue"
msgstr ""
#: usr/local/www/interfaces_assign.php:264
-#: usr/local/www/interfaces_assign.php:264
+#: usr/local/www/interfaces_assign.php:276
+#: usr/local/www/interfaces_assign.php:276
msgid ""
"The interface is part of a bridge. Please remove it from the bridge to "
"continue"
msgstr ""
#: usr/local/www/interfaces_assign.php:266
-#: usr/local/www/interfaces_assign.php:266
+#: usr/local/www/interfaces_assign.php:278
+#: usr/local/www/interfaces_assign.php:278
msgid ""
"The interface is part of a gre tunnel. Please delete the tunnel to continue"
msgstr ""
#: usr/local/www/interfaces_assign.php:268
-#: usr/local/www/interfaces_assign.php:268
+#: usr/local/www/interfaces_assign.php:280
+#: usr/local/www/interfaces_assign.php:280
msgid ""
"The interface is part of a gif tunnel. Please delete the tunnel to continue"
msgstr ""
#: usr/local/www/interfaces_assign.php:318
#: usr/local/www/interfaces_assign.php:312
+#: usr/local/www/interfaces_assign.php:318
msgid "Interface has been deleted."
msgstr ""
#: usr/local/www/interfaces_assign.php:325
#: usr/local/www/interfaces_assign.php:319
+#: usr/local/www/interfaces_assign.php:325
msgid "lan"
msgstr ""
#: usr/local/www/interfaces_assign.php:326
#: usr/local/www/interfaces_assign.php:320
+#: usr/local/www/interfaces_assign.php:326
msgid "LAN"
msgstr ""
#: usr/local/www/interfaces_assign.php:366
#: usr/local/www/interfaces_assign.php:360
+#: usr/local/www/interfaces_assign.php:366
msgid "Interface has been added."
msgstr ""
#: usr/local/www/interfaces_assign.php:376
#: usr/local/www/interfaces_assign.php:370
+#: usr/local/www/interfaces_assign.php:376
msgid "The system is now rebooting. Please wait."
msgstr ""
#: usr/local/www/interfaces_assign.php:378
#: usr/local/www/interfaces_assign.php:372
+#: usr/local/www/interfaces_assign.php:378
msgid "Reboot is needed. Please apply the settings in order to reboot."
msgstr ""
#: usr/local/www/interfaces_assign.php:380
#: usr/local/www/interfaces_assign.php:374
+#: usr/local/www/interfaces_assign.php:380
msgid ""
"Interface mismatch detected. Please resolve the mismatch and click Save. "
"The firewall will reboot afterwards."
@@ -17656,6 +21606,7 @@ msgstr ""
#: usr/local/www/interfaces_assign.php:390
#: usr/local/www/interfaces_assign.php:384
+#: usr/local/www/interfaces_assign.php:390
msgid ""
"The interface configuration has been changed.<br>You must apply the changes "
"in order for them to take effect."
@@ -17663,32 +21614,38 @@ msgstr ""
#: usr/local/www/interfaces_assign.php:421
#: usr/local/www/interfaces_assign.php:415
+#: usr/local/www/interfaces_assign.php:421
msgid "Network port"
msgstr ""
#: usr/local/www/interfaces_assign.php:437
#: usr/local/www/interfaces_assign.php:431
+#: usr/local/www/interfaces_assign.php:437
#, php-format
msgid "VLAN %1$s on %2$s"
msgstr ""
#: usr/local/www/interfaces_assign.php:480
#: usr/local/www/interfaces_assign.php:474
+#: usr/local/www/interfaces_assign.php:480
msgid "Do you really want to delete this interface?"
msgstr ""
#: usr/local/www/interfaces_assign.php:480
#: usr/local/www/interfaces_assign.php:474
+#: usr/local/www/interfaces_assign.php:480
msgid "delete interface"
msgstr ""
#: usr/local/www/interfaces_assign.php:489
#: usr/local/www/interfaces_assign.php:483
+#: usr/local/www/interfaces_assign.php:489
msgid "add interface"
msgstr ""
#: usr/local/www/interfaces_assign.php:506
#: usr/local/www/interfaces_assign.php:500
+#: usr/local/www/interfaces_assign.php:506
msgid ""
"Interfaces that are configured as members of a lagg(4) interface will not be "
"shown."
@@ -17706,35 +21663,42 @@ msgstr ""
msgid "S.M.A.R.T. Monitor Tools"
msgstr ""
-#: usr/local/www/diag_smart.php:68 usr/local/www/diag_smart.php:68
+#: usr/local/www/diag_smart.php:68 usr/local/www/diag_smart.php:73
+#: usr/local/www/diag_smart.php:73
msgid "PASSED"
msgstr ""
-#: usr/local/www/diag_smart.php:69 usr/local/www/diag_smart.php:69
+#: usr/local/www/diag_smart.php:69 usr/local/www/diag_smart.php:74
+#: usr/local/www/diag_smart.php:74
msgid "FAILED"
msgstr ""
-#: usr/local/www/diag_smart.php:70 usr/local/www/diag_smart.php:70
+#: usr/local/www/diag_smart.php:70 usr/local/www/diag_smart.php:75
+#: usr/local/www/diag_smart.php:75
msgid "Warning"
msgstr ""
#: usr/local/www/diag_smart.php:113 usr/local/www/diag_smart.php:413
-#: usr/local/www/diag_smart.php:113 usr/local/www/diag_smart.php:413
+#: usr/local/www/diag_smart.php:126 usr/local/www/diag_smart.php:434
+#: usr/local/www/diag_smart.php:126 usr/local/www/diag_smart.php:434
msgid "Abort"
msgstr ""
-#: usr/local/www/diag_smart.php:154 usr/local/www/diag_smart.php:154
+#: usr/local/www/diag_smart.php:154 usr/local/www/diag_smart.php:175
+#: usr/local/www/diag_smart.php:175
#, php-format
msgid "Email sent to %s"
msgstr ""
#: usr/local/www/diag_smart.php:194 usr/local/www/diag_smart.php:266
-#: usr/local/www/diag_smart.php:194 usr/local/www/diag_smart.php:266
+#: usr/local/www/diag_smart.php:215 usr/local/www/diag_smart.php:287
+#: usr/local/www/diag_smart.php:215 usr/local/www/diag_smart.php:287
msgid "Information/Tests"
msgstr ""
#: usr/local/www/diag_smart.php:195 usr/local/www/diag_smart.php:206
-#: usr/local/www/diag_smart.php:195 usr/local/www/diag_smart.php:206
+#: usr/local/www/diag_smart.php:216 usr/local/www/diag_smart.php:227
+#: usr/local/www/diag_smart.php:216 usr/local/www/diag_smart.php:227
msgid "Config"
msgstr ""
@@ -17744,64 +21708,79 @@ msgstr ""
#: usr/local/www/system_certmanager.php:733
#: usr/local/www/system_certmanager.php:886
#: usr/local/www/system_camanager.php:525
-#: usr/local/www/system_certmanager.php:733
-#: usr/local/www/system_certmanager.php:886
-#: usr/local/www/system_camanager.php:525 usr/local/www/diag_smart.php:209
+#: usr/local/www/system_camanager.php:549 usr/local/www/diag_smart.php:230
+#: usr/local/www/system_certmanager.php:758
+#: usr/local/www/system_certmanager.php:928
+#: usr/local/www/system_camanager.php:549 usr/local/www/diag_smart.php:230
+#: usr/local/www/system_certmanager.php:759
+#: usr/local/www/system_certmanager.php:932
msgid "Email Address"
msgstr ""
-#: usr/local/www/diag_smart.php:231 usr/local/www/diag_smart.php:231
+#: usr/local/www/diag_smart.php:231 usr/local/www/diag_smart.php:252
+#: usr/local/www/diag_smart.php:252
msgid "Test email"
msgstr ""
-#: usr/local/www/diag_smart.php:236 usr/local/www/diag_smart.php:236
+#: usr/local/www/diag_smart.php:236 usr/local/www/diag_smart.php:257
+#: usr/local/www/diag_smart.php:257
#, php-format
msgid "Send test email to %s"
msgstr ""
#: usr/local/www/diag_smart.php:278 usr/local/www/diag_smart.php:283
-#: usr/local/www/diag_smart.php:278 usr/local/www/diag_smart.php:283
+#: usr/local/www/diag_smart.php:299 usr/local/www/diag_smart.php:304
+#: usr/local/www/diag_smart.php:299 usr/local/www/diag_smart.php:304
msgid "Info"
msgstr ""
-#: usr/local/www/diag_smart.php:281 usr/local/www/diag_smart.php:281
+#: usr/local/www/diag_smart.php:281 usr/local/www/diag_smart.php:302
+#: usr/local/www/diag_smart.php:302
msgid "Info type"
msgstr ""
-#: usr/local/www/diag_smart.php:284 usr/local/www/diag_smart.php:284
+#: usr/local/www/diag_smart.php:284 usr/local/www/diag_smart.php:305
+#: usr/local/www/diag_smart.php:305
msgid "Health"
msgstr ""
-#: usr/local/www/diag_smart.php:285 usr/local/www/diag_smart.php:285
+#: usr/local/www/diag_smart.php:285 usr/local/www/diag_smart.php:306
+#: usr/local/www/diag_smart.php:306
msgid "SMART Capabilities"
msgstr ""
-#: usr/local/www/diag_smart.php:286 usr/local/www/diag_smart.php:286
+#: usr/local/www/diag_smart.php:286 usr/local/www/diag_smart.php:307
+#: usr/local/www/diag_smart.php:307
msgid "Attributes"
msgstr ""
#: usr/local/www/diag_smart.php:287 usr/local/www/firewall_aliases.php:179
-#: usr/local/www/diag_smart.php:287
+#: usr/local/www/diag_smart.php:308 usr/local/www/firewall_aliases.php:177
+#: usr/local/www/diag_smart.php:308
msgid "All"
msgstr ""
#: usr/local/www/diag_smart.php:291 usr/local/www/diag_smart.php:330
#: usr/local/www/diag_smart.php:367 usr/local/www/diag_smart.php:397
-#: usr/local/www/diag_smart.php:291 usr/local/www/diag_smart.php:330
-#: usr/local/www/diag_smart.php:367 usr/local/www/diag_smart.php:397
+#: usr/local/www/diag_smart.php:312 usr/local/www/diag_smart.php:351
+#: usr/local/www/diag_smart.php:388 usr/local/www/diag_smart.php:418
+#: usr/local/www/diag_smart.php:312 usr/local/www/diag_smart.php:351
+#: usr/local/www/diag_smart.php:388 usr/local/www/diag_smart.php:418
msgid "Device: /dev/"
msgstr ""
#: usr/local/www/diag_smart.php:307 usr/local/www/diag_smart.php:383
-#: usr/local/www/diag_smart.php:307 usr/local/www/diag_smart.php:383
+#: usr/local/www/diag_smart.php:328 usr/local/www/diag_smart.php:404
+#: usr/local/www/diag_smart.php:328 usr/local/www/diag_smart.php:404
msgid "View"
msgstr ""
-#: usr/local/www/diag_smart.php:318 usr/local/www/diag_smart.php:318
+#: usr/local/www/diag_smart.php:318
msgid "Perform Self Tests"
msgstr ""
-#: usr/local/www/diag_smart.php:321 usr/local/www/diag_smart.php:321
+#: usr/local/www/diag_smart.php:321 usr/local/www/diag_smart.php:342
+#: usr/local/www/diag_smart.php:342
msgid "Test type"
msgstr ""
@@ -17809,91 +21788,111 @@ msgstr ""
#: usr/local/www/status_gateway_groups.php:123
#: usr/local/www/status_gateways.php:118
#: usr/local/www/widgets/widgets/wake_on_lan.widget.php:60
-#: usr/local/www/status_gateways.php:119 usr/local/www/diag_smart.php:323
+#: usr/local/www/status_gateways.php:119
+#: usr/local/www/status_gateway_groups.php:124
+#: usr/local/www/diag_smart.php:344 usr/local/www/diag_smart.php:344
#: usr/local/www/status_gateway_groups.php:124
#: usr/local/www/widgets/widgets/wake_on_lan.widget.php:60
+#: usr/local/www/status_gateways.php:119
msgid "Offline"
msgstr ""
-#: usr/local/www/diag_smart.php:324 usr/local/www/diag_smart.php:324
+#: usr/local/www/diag_smart.php:324 usr/local/www/diag_smart.php:345
+#: usr/local/www/diag_smart.php:345
msgid "Short"
msgstr ""
-#: usr/local/www/diag_smart.php:325 usr/local/www/diag_smart.php:325
+#: usr/local/www/diag_smart.php:325 usr/local/www/diag_smart.php:346
+#: usr/local/www/diag_system_pftop.php:137 usr/local/www/diag_smart.php:346
+#: usr/local/www/diag_system_pftop.php:137
msgid "Long"
msgstr ""
-#: usr/local/www/diag_smart.php:326 usr/local/www/diag_smart.php:326
+#: usr/local/www/diag_smart.php:326 usr/local/www/diag_smart.php:347
+#: usr/local/www/diag_smart.php:347
msgid "Conveyance (ATA Disks Only)"
msgstr ""
-#: usr/local/www/diag_smart.php:357 usr/local/www/diag_smart.php:357
+#: usr/local/www/diag_smart.php:357 usr/local/www/diag_smart.php:378
+#: usr/local/www/diag_smart.php:378
msgid "View Logs"
msgstr ""
-#: usr/local/www/diag_smart.php:360 usr/local/www/diag_smart.php:360
+#: usr/local/www/diag_smart.php:360 usr/local/www/diag_smart.php:381
+#: usr/local/www/diag_smart.php:381
msgid "Log type"
msgstr ""
-#: usr/local/www/diag_smart.php:362 usr/local/www/diag_smart.php:362
+#: usr/local/www/diag_smart.php:362 usr/local/www/diag_smart.php:383
+#: usr/local/www/diag_smart.php:383
msgid "Error"
msgstr ""
-#: usr/local/www/diag_smart.php:363 usr/local/www/diag_smart.php:363
+#: usr/local/www/diag_smart.php:363
msgid "Self Test"
msgstr ""
-#: usr/local/www/diag_smart.php:394 usr/local/www/diag_smart.php:394
+#: usr/local/www/diag_smart.php:394 usr/local/www/diag_smart.php:415
+#: usr/local/www/diag_smart.php:415
msgid "Abort tests"
msgstr ""
-#: usr/local/www/diag_smart.php:413 usr/local/www/diag_smart.php:413
+#: usr/local/www/diag_smart.php:413 usr/local/www/diag_smart.php:434
+#: usr/local/www/diag_smart.php:434
msgid "Do you really want to abort the test?"
msgstr ""
-#: usr/local/www/diag_smart.php:428 usr/local/www/diag_smart.php:428
+#: usr/local/www/diag_smart.php:428 usr/local/www/diag_smart.php:449
+#: usr/local/www/diag_smart.php:449
msgid "Back"
msgstr ""
#: usr/local/www/diag_states_summary.php:154
#: usr/local/www/diag_states_summary.php:143
#: usr/local/www/diag_states_summary.php:145
+#: usr/local/www/diag_states_summary.php:145
msgid "Src Ports"
msgstr ""
#: usr/local/www/diag_states_summary.php:155
#: usr/local/www/diag_states_summary.php:144
#: usr/local/www/diag_states_summary.php:146
+#: usr/local/www/diag_states_summary.php:146
msgid "Dst Ports"
msgstr ""
#: usr/local/www/diag_states_summary.php:185
#: usr/local/www/diag_states_summary.php:174
#: usr/local/www/diag_states_summary.php:176
+#: usr/local/www/diag_states_summary.php:176
msgid "State Table Summary"
msgstr ""
#: usr/local/www/diag_states_summary.php:191
#: usr/local/www/diag_states_summary.php:180
#: usr/local/www/diag_states_summary.php:182
+#: usr/local/www/diag_states_summary.php:182
msgid "By Source IP"
msgstr ""
#: usr/local/www/diag_states_summary.php:192
#: usr/local/www/diag_states_summary.php:181
#: usr/local/www/diag_states_summary.php:183
+#: usr/local/www/diag_states_summary.php:183
msgid "By Destination IP"
msgstr ""
#: usr/local/www/diag_states_summary.php:193
#: usr/local/www/diag_states_summary.php:182
#: usr/local/www/diag_states_summary.php:184
+#: usr/local/www/diag_states_summary.php:184
msgid "Total per IP"
msgstr ""
#: usr/local/www/diag_states_summary.php:194
#: usr/local/www/diag_states_summary.php:183
#: usr/local/www/diag_states_summary.php:185
+#: usr/local/www/diag_states_summary.php:185
msgid "By IP Pair"
msgstr ""
@@ -17915,72 +21914,62 @@ msgstr ""
#: usr/local/www/diag_system_pftop.php:51
#: usr/local/www/diag_system_pftop.php:62
#: usr/local/www/diag_system_pftop.php:103
-#: usr/local/www/diag_system_pftop.php:51
-#: usr/local/www/diag_system_pftop.php:62
-#: usr/local/www/diag_system_pftop.php:103
msgid "bytes"
msgstr ""
#: usr/local/www/diag_system_pftop.php:99
-#: usr/local/www/diag_system_pftop.php:99
+#: usr/local/www/diag_system_pftop.php:148
+#: usr/local/www/diag_system_pftop.php:148
msgid "Sort type:"
msgstr ""
#: usr/local/www/diag_system_pftop.php:102
-#: usr/local/www/diag_system_pftop.php:102
msgid "age"
msgstr ""
#: usr/local/www/diag_system_pftop.php:104
-#: usr/local/www/diag_system_pftop.php:104
msgid "dest"
msgstr ""
#: usr/local/www/diag_system_pftop.php:105
-#: usr/local/www/diag_system_pftop.php:105
msgid "dport"
msgstr ""
#: usr/local/www/diag_system_pftop.php:106
-#: usr/local/www/diag_system_pftop.php:106
msgid "exp"
msgstr ""
#: usr/local/www/diag_system_pftop.php:108
-#: usr/local/www/diag_system_pftop.php:108
msgid "peak"
msgstr ""
#: usr/local/www/diag_system_pftop.php:109
-#: usr/local/www/diag_system_pftop.php:109
msgid "pkt"
msgstr ""
#: usr/local/www/diag_system_pftop.php:110
#: usr/local/www/status_interfaces.php:365
#: usr/local/www/status_interfaces.php:462
-#: usr/local/www/diag_system_pftop.php:110
+#: usr/local/www/status_interfaces.php:465
#: usr/local/www/status_interfaces.php:465
msgid "rate"
msgstr ""
#: usr/local/www/diag_system_pftop.php:111
-#: usr/local/www/diag_system_pftop.php:111
msgid "size"
msgstr ""
#: usr/local/www/diag_system_pftop.php:112
-#: usr/local/www/diag_system_pftop.php:112
msgid "sport"
msgstr ""
#: usr/local/www/diag_system_pftop.php:113
-#: usr/local/www/diag_system_pftop.php:113
msgid "src"
msgstr ""
#: usr/local/www/diag_system_pftop.php:126
-#: usr/local/www/diag_system_pftop.php:126
+#: usr/local/www/diag_system_pftop.php:187
+#: usr/local/www/diag_system_pftop.php:187
msgid "Gathering pfTOP activity, please wait..."
msgstr ""
@@ -17992,7 +21981,12 @@ msgstr ""
msgid "is Copyright"
msgstr ""
-#: usr/local/www/license.php:47 usr/local/www/license.php:47
+#: usr/local/www/license.php:47 usr/local/www/firewall_rules_edit.php:1585
+#: usr/local/www/firewall_rules_edit.php:1593
+#: usr/local/www/firewall_nat_edit.php:869
+#: usr/local/www/firewall_nat_edit.php:877 usr/local/www/license.php:47
+#: usr/local/www/firewall_nat_out_edit.php:684
+#: usr/local/www/firewall_nat_out_edit.php:692
msgid "by"
msgstr ""
@@ -18215,8 +22209,9 @@ msgstr ""
#: usr/local/www/license.php:192 usr/local/www/license.php:194
#: usr/local/www/license.php:200 usr/local/www/license.php:201
#: usr/local/www/license.php:204 usr/local/www/license.php:211
-#: usr/local/www/license.php:158 usr/local/www/license.php:161
-#: usr/local/www/license.php:164 usr/local/www/license.php:168
+#: usr/local/www/license.php:169 usr/local/www/license.php:158
+#: usr/local/www/license.php:161 usr/local/www/license.php:164
+#: usr/local/www/license.php:168 usr/local/www/license.php:169
#: usr/local/www/license.php:174 usr/local/www/license.php:178
#: usr/local/www/license.php:181 usr/local/www/license.php:184
#: usr/local/www/license.php:187 usr/local/www/license.php:191
@@ -18226,7 +22221,7 @@ msgstr ""
msgid "Copyright"
msgstr ""
-#: usr/local/www/license.php:158 usr/local/www/license.php:158
+#: usr/local/www/license.php:158
msgid " 1994-2003 FreeBSD, Inc. All rights reserved"
msgstr ""
@@ -18234,7 +22229,7 @@ msgstr ""
msgid "This product includes PHP, freely available from"
msgstr ""
-#: usr/local/www/license.php:161 usr/local/www/license.php:161
+#: usr/local/www/license.php:161
msgid "1999 - 2003 The PHP Group. All rights reserved"
msgstr ""
@@ -18242,7 +22237,7 @@ msgstr ""
msgid "LightTPD"
msgstr ""
-#: usr/local/www/license.php:164 usr/local/www/license.php:164
+#: usr/local/www/license.php:164
msgid " 2004 by Jan Kneschke "
msgstr ""
@@ -18255,7 +22250,7 @@ msgstr ""
msgid "ISC DHCP server "
msgstr ""
-#: usr/local/www/license.php:168 usr/local/www/license.php:168
+#: usr/local/www/license.php:168
msgid "1996-2003 Internet Software Consortium. All rights reserved."
msgstr ""
@@ -18361,7 +22356,9 @@ msgid ""
msgstr ""
#: usr/local/www/load_balancer_pool.php:111
-#: usr/local/www/status_lb_pool.php:113 usr/local/www/status_lb_pool.php:113
+#: usr/local/www/status_lb_pool.php:113
+#: usr/local/www/load_balancer_pool.php:109
+#: usr/local/www/status_lb_pool.php:113
#: usr/local/www/load_balancer_pool.php:109
#, php-format
msgid ""
@@ -18379,15 +22376,18 @@ msgstr ""
#: usr/local/www/system_usermanager_settings.php:116
#: usr/local/www/system_usermanager.php:441
#: usr/local/www/system_groupmanager_addprivs.php:169
-#: usr/local/www/load_balancer_pool.php:134 usr/local/www/status_lb_vs.php:79
+#: usr/local/www/load_balancer_pool.php:134
+#: usr/local/www/load_balancer_pool.php:132
+#: usr/local/www/system_authservers.php:429
+#: usr/local/www/system_authservers.php:436
#: usr/local/www/system_groupmanager.php:243
-#: usr/local/www/system_usermanager.php:441
-#: usr/local/www/status_lb_pool.php:132
#: usr/local/www/system_usermanager_addprivs.php:170
-#: usr/local/www/system_groupmanager_addprivs.php:169
-#: usr/local/www/system_usermanager_settings.php:116
+#: usr/local/www/status_lb_pool.php:132
#: usr/local/www/load_balancer_pool.php:132
-#: usr/local/www/system_authservers.php:429
+#: usr/local/www/system_authservers.php:436
+#: usr/local/www/system_groupmanager_addprivs.php:169
+#: usr/local/www/system_usermanager_settings.php:118
+#: usr/local/www/system_usermanager.php:441 usr/local/www/status_lb_vs.php:79
msgid "Servers"
msgstr ""
@@ -18399,18 +22399,23 @@ msgstr ""
#: usr/local/www/status_gateways.php:74 usr/local/www/status_lb_pool.php:133
#: usr/local/www/load_balancer_pool_edit.php:240
#: usr/local/www/load_balancer_pool.php:136
+#: usr/local/www/status_gateways.php:75
+#: usr/local/www/load_balancer_pool_edit.php:238
+#: usr/local/www/load_balancer_pool.php:134
+#: usr/local/www/status_lb_pool.php:133
+#: usr/local/www/load_balancer_pool.php:134
#: usr/local/www/load_balancer_monitor_edit.php:193
-#: usr/local/www/status_lb_pool.php:133 usr/local/www/status_gateways.php:75
#: usr/local/www/load_balancer_monitor.php:88
#: usr/local/www/load_balancer_pool_edit.php:76
#: usr/local/www/load_balancer_pool_edit.php:238
-#: usr/local/www/load_balancer_pool.php:134
+#: usr/local/www/status_gateways.php:75
msgid "Monitor"
msgstr ""
#: usr/local/www/load_balancer_pool.php:149
#: usr/local/www/load_balancer_pool.php:150
#: usr/local/www/load_balancer_pool.php:148
+#: usr/local/www/load_balancer_pool.php:148
#, php-format
msgid ""
"The Load Balancer in %s 2.0 is for server load balancing, not Multi-WAN. For "
@@ -18425,13 +22430,17 @@ msgstr ""
#: usr/local/www/system_gateway_groups.php:88
#: usr/local/www/status_gateway_groups.php:65
#: usr/local/www/load_balancer_pool.php:151
-#: usr/local/www/system_gateway_groups.php:52
#: usr/local/www/system_gateway_groups.php:89
#: usr/local/www/status_gateways.php:64
+#: usr/local/www/status_gateway_groups.php:66
+#: usr/local/www/load_balancer_pool.php:149
+#: usr/local/www/load_balancer_pool.php:149
#: usr/local/www/status_gateway_groups.php:48
#: usr/local/www/status_gateway_groups.php:52
#: usr/local/www/status_gateway_groups.php:66
-#: usr/local/www/load_balancer_pool.php:149
+#: usr/local/www/status_gateways.php:64
+#: usr/local/www/system_gateway_groups.php:53
+#: usr/local/www/system_gateway_groups.php:98
msgid "Gateway Groups"
msgstr ""
@@ -18441,28 +22450,29 @@ msgid "Do you really want to delete this item?"
msgstr ""
#: usr/local/www/status_wireless.php:83 usr/local/www/status_wireless.php:84
+#: usr/local/www/status_wireless.php:84
msgid ""
"Rescan has been initiated in the background. Refresh this page in 10 seconds "
"to see the results."
msgstr ""
#: usr/local/www/status_wireless.php:97 usr/local/www/status_wireless.php:93
-#: usr/local/www/status_wireless.php:94
+#: usr/local/www/status_wireless.php:94 usr/local/www/status_wireless.php:94
msgid "Nearby access points or ad-hoc peers"
msgstr ""
#: usr/local/www/status_wireless.php:143 usr/local/www/status_wireless.php:140
-#: usr/local/www/status_wireless.php:141
+#: usr/local/www/status_wireless.php:141 usr/local/www/status_wireless.php:141
msgid "Associated or ad-hoc peers"
msgstr ""
#: usr/local/www/system.php:118 usr/local/www/system.php:119
-#: usr/local/www/system.php:112
+#: usr/local/www/system.php:112 usr/local/www/system.php:112
msgid "The hostname may only contain the characters a-z, 0-9 and '-'."
msgstr ""
#: usr/local/www/system.php:121 usr/local/www/system.php:122
-#: usr/local/www/system.php:115
+#: usr/local/www/system.php:115 usr/local/www/system.php:115
msgid "The domain may only contain the characters a-z, 0-9, '-' and '.'."
msgstr ""
@@ -18471,12 +22481,12 @@ msgid "'."
msgstr ""
#: usr/local/www/system.php:137 usr/local/www/system.php:143
-#: usr/local/www/system.php:136
+#: usr/local/www/system.php:136 usr/local/www/system.php:136
msgid "A valid TCP/IP port must be specified for the webConfigurator port."
msgstr ""
#: usr/local/www/system.php:148 usr/local/www/system.php:154
-#: usr/local/www/system.php:147
+#: usr/local/www/system.php:147 usr/local/www/system.php:147
#, php-format
msgid ""
"You can not assign a gateway to DNS '%s' server which is on a directly "
@@ -18484,13 +22494,13 @@ msgid ""
msgstr ""
#: usr/local/www/system.php:157 usr/local/www/system.php:163
-#: usr/local/www/system.php:156
+#: usr/local/www/system.php:156 usr/local/www/system.php:156
msgid ""
"The time update interval must be either 0 (disabled) or between 6 and 1440."
msgstr ""
#: usr/local/www/system.php:161 usr/local/www/system.php:167
-#: usr/local/www/system.php:160
+#: usr/local/www/system.php:160 usr/local/www/system.php:160
msgid ""
"A NTP Time Server name may only contain the characters a-z, 0-9, '-' and '.'."
msgstr ""
@@ -18498,23 +22508,25 @@ msgstr ""
#: usr/local/www/system.php:231 usr/local/www/fbegin.inc:85
#: usr/local/www/fbegin.inc:101 usr/local/www/system.php:242
#: usr/local/www/fbegin.inc:110 usr/local/www/system.php:235
+#: usr/local/www/fbegin.inc:102 usr/local/www/system.php:235
+#: usr/local/www/fbegin.inc:102
msgid "General Setup"
msgstr ""
#: usr/local/www/system.php:258 usr/local/www/system.php:269
-#: usr/local/www/system.php:262
+#: usr/local/www/system.php:262 usr/local/www/system.php:262
msgid "Name of the firewall host, without domain part"
msgstr ""
#: usr/local/www/system.php:269 usr/local/www/system.php:280
-#: usr/local/www/system.php:273
+#: usr/local/www/system.php:273 usr/local/www/system.php:273
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 ""
#: usr/local/www/system.php:271 usr/local/www/system.php:282
-#: usr/local/www/system.php:275
+#: usr/local/www/system.php:275 usr/local/www/system.php:275
msgid "mycorp.com, home, office, private, etc."
msgstr ""
@@ -18525,28 +22537,35 @@ msgstr ""
#: usr/local/www/services_router_advertisements.php:372
#: usr/local/www/services_dhcp.php:836 usr/local/www/system.php:280
#: usr/local/www/services_dhcpv6.php:598
+#: usr/local/www/services_dhcp_edit.php:402
+#: usr/local/www/vpn_pppoe_edit.php:455 usr/local/www/services_dhcp.php:850
+#: usr/local/www/services_dhcpv6.php:615
+#: usr/local/www/services_router_advertisements.php:367
+#: usr/local/www/system.php:280 usr/local/www/services_dhcp_edit.php:402
+#: usr/local/www/vpn_pppoe_edit.php:455 usr/local/www/services_dhcp.php:870
+#: usr/local/www/services_dhcpv6.php:615
msgid "DNS servers"
msgstr ""
#: usr/local/www/system.php:281 usr/local/www/system.php:292
-#: usr/local/www/system.php:285
+#: usr/local/www/system.php:285 usr/local/www/system.php:285
msgid "DNS Server"
msgstr ""
#: usr/local/www/system.php:283 usr/local/www/system.php:294
-#: usr/local/www/system.php:287
+#: usr/local/www/system.php:287 usr/local/www/system.php:287
msgid "Use gateway"
msgstr ""
#: usr/local/www/system.php:331 usr/local/www/system.php:342
-#: usr/local/www/system.php:335
+#: usr/local/www/system.php:335 usr/local/www/system.php:334
msgid ""
"Enter IP addresses to by used by the system for DNS resolution.These are "
"also used for the DHCP service, DNS forwarder and for PPTP VPN clients."
msgstr ""
#: usr/local/www/system.php:336 usr/local/www/system.php:347
-#: usr/local/www/system.php:340
+#: usr/local/www/system.php:340 usr/local/www/system.php:339
msgid ""
"In addition, optionally select the gateway for each DNS server. When using "
"multiple WAN connections there should be at least one unique DNS server per "
@@ -18554,12 +22573,12 @@ msgid ""
msgstr ""
#: usr/local/www/system.php:343 usr/local/www/system.php:354
-#: usr/local/www/system.php:347
+#: usr/local/www/system.php:347 usr/local/www/system.php:346
msgid "Allow DNS server list to be overridden by DHCP/PPP on WAN"
msgstr ""
#: usr/local/www/system.php:346 usr/local/www/system.php:357
-#: usr/local/www/system.php:350
+#: usr/local/www/system.php:350 usr/local/www/system.php:349
#, php-format
msgid ""
"If this option is set, %s will use DNS servers assigned by a DHCP/PPP server "
@@ -18568,12 +22587,12 @@ msgid ""
msgstr ""
#: usr/local/www/system.php:355 usr/local/www/system.php:366
-#: usr/local/www/system.php:359
+#: usr/local/www/system.php:359 usr/local/www/system.php:358
msgid "Do not use the DNS Forwarder as a DNS server for the firewall"
msgstr ""
#: usr/local/www/system.php:358 usr/local/www/system.php:369
-#: usr/local/www/system.php:362
+#: usr/local/www/system.php:362 usr/local/www/system.php:361
msgid ""
"By default localhost (127.0.0.1) will be used as the first DNS server where "
"the DNS forwarder is enabled, so system can use the DNS forwarder to perform "
@@ -18581,61 +22600,67 @@ msgid ""
msgstr ""
#: usr/local/www/system.php:365 usr/local/www/system.php:376
-#: usr/local/www/system.php:369
+#: usr/local/www/system.php:369 usr/local/www/system.php:367
msgid "Time zone"
msgstr ""
#: usr/local/www/system.php:377 usr/local/www/system.php:388
-#: usr/local/www/system.php:381
+#: usr/local/www/system.php:381 usr/local/www/system.php:379
msgid "Select the location closest to you"
msgstr ""
#: usr/local/www/system.php:395 usr/local/www/system.php:406
-#: usr/local/www/system.php:399
+#: usr/local/www/system.php:399 usr/local/www/system.php:397
msgid "NTP time server"
msgstr ""
#: usr/local/www/system.php:400 usr/local/www/system.php:411
-#: usr/local/www/system.php:404
+#: usr/local/www/system.php:404 usr/local/www/system.php:402
msgid ""
"Use a space to separate multiple hosts (only one required). Remember to set "
"up at least one DNS server if you enter a host name here!"
msgstr ""
#: usr/local/www/system.php:411 usr/local/www/system.php:440
-#: usr/local/www/system.php:433
+#: usr/local/www/system.php:433 usr/local/www/system.php:431
msgid "Theme"
msgstr ""
#: usr/local/www/system.php:435 usr/local/www/system.php:464
-#: usr/local/www/system.php:457
+#: usr/local/www/system.php:457 usr/local/www/system.php:455
msgid "This will change the look and feel of"
msgstr ""
-#: usr/local/www/interfaces_vlan.php:65 usr/local/www/interfaces_vlan.php:65
+#: usr/local/www/interfaces_vlan.php:65 usr/local/www/interfaces_vlan.php:69
+#: usr/local/www/interfaces_vlan.php:69
msgid ""
"This VLAN cannot be deleted because it is still being used as an interface."
msgstr ""
#: usr/local/www/interfaces_vlan.php:78
#: usr/local/www/interfaces_vlan_edit.php:139
-#: usr/local/www/interfaces_vlan_edit.php:139
-#: usr/local/www/interfaces_vlan.php:78
+#: usr/local/www/interfaces_vlan_edit.php:142
+#: usr/local/www/interfaces_vlan.php:84
+#: usr/local/www/interfaces_vlan_edit.php:142
+#: usr/local/www/interfaces_vlan.php:84
msgid "VLAN"
msgstr ""
#: usr/local/www/interfaces_vlan.php:109
#: usr/local/www/interfaces_vlan_edit.php:75
+#: usr/local/www/interfaces_vlan.php:110 usr/local/www/interfaces_vlan.php:116
#: usr/local/www/interfaces_vlan_edit.php:75
-#: usr/local/www/interfaces_vlan.php:110
+#: usr/local/www/interfaces_vlan.php:116
msgid "VLAN tag"
msgstr ""
#: usr/local/www/interfaces_vlan.php:125 usr/local/www/interfaces_vlan.php:126
+#: usr/local/www/interfaces_vlan.php:132 usr/local/www/interfaces_vlan.php:132
msgid "Do you really want to delete this VLAN?"
msgstr ""
#: usr/local/www/interfaces_vlan.php:136 usr/local/www/interfaces_vlan.php:137
+#: usr/local/www/interfaces_vlan.php:143 usr/local/www/interfaces_vlan.php:143
#, php-format
msgid ""
"Not all drivers/NICs support 802.1Q VLAN tagging properly. On cards that do "
@@ -18649,67 +22674,85 @@ msgid "The VLAN tag must be an integer between 1 and 4094."
msgstr ""
#: usr/local/www/interfaces_vlan_edit.php:88
-#: usr/local/www/interfaces_vlan_edit.php:88
+#: usr/local/www/interfaces_vlan_edit.php:91
+#: usr/local/www/interfaces_vlan_edit.php:91
#, php-format
msgid "A VLAN with the tag %s is already defined on this interface."
msgstr ""
#: usr/local/www/interfaces_vlan_edit.php:95
-#: usr/local/www/interfaces_vlan_edit.php:95
+#: usr/local/www/interfaces_vlan_edit.php:98
+#: usr/local/www/interfaces_vlan_edit.php:98
msgid "A QinQ VLAN exists with this tag please remove it to use this tag with."
msgstr ""
#: usr/local/www/interfaces_vlan_edit.php:150
#: usr/local/www/interfaces_vlan_edit.php:151
+#: usr/local/www/interfaces_vlan_edit.php:154
+#: usr/local/www/interfaces_vlan_edit.php:154
msgid "VLAN configuration"
msgstr ""
#: usr/local/www/interfaces_vlan_edit.php:169
#: usr/local/www/interfaces_vlan_edit.php:170
+#: usr/local/www/interfaces_vlan_edit.php:173
+#: usr/local/www/interfaces_vlan_edit.php:173
msgid "Only VLAN capable interfaces will be shown."
msgstr ""
#: usr/local/www/interfaces_vlan_edit.php:172
#: usr/local/www/interfaces_vlan_edit.php:173
+#: usr/local/www/interfaces_vlan_edit.php:176
+#: usr/local/www/interfaces_vlan_edit.php:176
msgid "VLAN tag "
msgstr ""
#: usr/local/www/interfaces_vlan_edit.php:176
#: usr/local/www/interfaces_vlan_edit.php:177
+#: usr/local/www/interfaces_vlan_edit.php:180
+#: usr/local/www/interfaces_vlan_edit.php:180
msgid "802.1Q VLAN tag (between 1 and 4094) "
msgstr ""
#: usr/local/www/system_firmware.php:82 usr/local/www/system_firmware.php:89
+#: usr/local/www/system_firmware.php:88 usr/local/www/system_firmware.php:88
msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini"
msgstr ""
#: usr/local/www/system_firmware.php:84 usr/local/www/system_firmware.php:91
+#: usr/local/www/system_firmware.php:90 usr/local/www/system_firmware.php:90
msgid ""
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
"the HTML form"
msgstr ""
#: usr/local/www/system_firmware.php:86 usr/local/www/system_firmware.php:93
+#: usr/local/www/system_firmware.php:92 usr/local/www/system_firmware.php:92
msgid "The uploaded file was only partially uploaded"
msgstr ""
#: usr/local/www/system_firmware.php:88 usr/local/www/system_firmware.php:95
+#: usr/local/www/system_firmware.php:94 usr/local/www/system_firmware.php:94
msgid "No file was uploaded"
msgstr ""
#: usr/local/www/system_firmware.php:90 usr/local/www/system_firmware.php:97
+#: usr/local/www/system_firmware.php:96 usr/local/www/system_firmware.php:96
msgid "Missing a temporary folder"
msgstr ""
#: usr/local/www/system_firmware.php:92 usr/local/www/system_firmware.php:99
+#: usr/local/www/system_firmware.php:98 usr/local/www/system_firmware.php:98
msgid "Failed to write file to disk"
msgstr ""
#: usr/local/www/system_firmware.php:94 usr/local/www/system_firmware.php:101
+#: usr/local/www/system_firmware.php:100 usr/local/www/system_firmware.php:100
msgid "File upload stopped by extension"
msgstr ""
#: usr/local/www/system_firmware.php:96 usr/local/www/system_firmware.php:103
+#: usr/local/www/system_firmware.php:102 usr/local/www/system_firmware.php:102
msgid "Unknown upload error"
msgstr ""
@@ -18718,10 +22761,13 @@ msgstr ""
#: usr/local/www/system_firmware_check.php:49
#: usr/local/www/system_firmware_settings.php:74 usr/local/www/fbegin.inc:84
#: usr/local/www/fbegin.inc:100 usr/local/www/fbegin.inc:109
-#: usr/local/www/system_firmware_auto.php:60
-#: usr/local/www/system_firmware_check.php:49
#: usr/local/www/system_firmware.php:109 usr/local/www/system_firmware.php:210
#: usr/local/www/system_firmware_settings.php:79
+#: usr/local/www/system_firmware.php:108 usr/local/www/fbegin.inc:101
+#: usr/local/www/system_firmware.php:108 usr/local/www/system_firmware.php:210
+#: usr/local/www/system_firmware_check.php:49
+#: usr/local/www/system_firmware_settings.php:79
+#: usr/local/www/system_firmware_auto.php:61 usr/local/www/fbegin.inc:101
msgid "Firmware"
msgstr ""
@@ -18730,71 +22776,89 @@ msgstr ""
#: usr/local/www/system_firmware_check.php:66
#: usr/local/www/system_firmware_settings.php:110
#: usr/local/www/system_firmware_restorefullbackup.php:125
-#: usr/local/www/system_firmware_auto.php:79
-#: usr/local/www/system_firmware_check.php:66
#: usr/local/www/system_firmware.php:109 usr/local/www/system_firmware.php:245
#: usr/local/www/system_firmware_settings.php:115
+#: usr/local/www/system_firmware.php:108 usr/local/www/system_firmware.php:248
+#: usr/local/www/system_firmware.php:108 usr/local/www/system_firmware.php:248
+#: usr/local/www/system_firmware_check.php:64
+#: usr/local/www/system_firmware_settings.php:117
+#: usr/local/www/system_firmware_auto.php:80
#: usr/local/www/system_firmware_restorefullbackup.php:125
msgid "Manual Update"
msgstr ""
#: usr/local/www/system_firmware.php:107 usr/local/www/system_firmware.php:114
+#: usr/local/www/system_firmware.php:113 usr/local/www/system_firmware.php:113
msgid ""
"An upgrade is currently in progress.<p>The firewall will reboot when the "
"operation is complete."
msgstr ""
#: usr/local/www/system_firmware.php:135 usr/local/www/system_firmware.php:142
+#: usr/local/www/system_firmware.php:137 usr/local/www/system_firmware.php:137
msgid "Upgrade"
msgstr ""
#: usr/local/www/system_firmware.php:154 usr/local/www/system_firmware.php:161
+#: usr/local/www/system_firmware.php:156 usr/local/www/system_firmware.php:156
msgid "The uploaded image file is not for this platform."
msgstr ""
#: usr/local/www/system_firmware.php:157 usr/local/www/system_firmware.php:164
+#: usr/local/www/system_firmware.php:159 usr/local/www/system_firmware.php:159
msgid "Image upload failed (out of memory?)"
msgstr ""
#: usr/local/www/system_firmware.php:168
#: usr/local/www/system_firmware_auto.php:201
-#: usr/local/www/system_firmware_auto.php:201
-#: usr/local/www/system_firmware.php:175
+#: usr/local/www/system_firmware.php:175 usr/local/www/system_firmware.php:170
+#: usr/local/www/system_firmware_auto.php:203
+#: usr/local/www/system_firmware.php:170
+#: usr/local/www/system_firmware_auto.php:199
msgid "The digital signature on this image is invalid."
msgstr ""
#: usr/local/www/system_firmware.php:170
#: usr/local/www/system_firmware_auto.php:204
-#: usr/local/www/system_firmware_auto.php:204
-#: usr/local/www/system_firmware.php:177
+#: usr/local/www/system_firmware.php:177 usr/local/www/system_firmware.php:172
+#: usr/local/www/system_firmware_auto.php:206
+#: usr/local/www/system_firmware.php:172
+#: usr/local/www/system_firmware_auto.php:202
msgid "This image is not digitally signed."
msgstr ""
#: usr/local/www/system_firmware.php:172
#: usr/local/www/system_firmware_auto.php:208
-#: usr/local/www/system_firmware_auto.php:208
-#: usr/local/www/system_firmware.php:179
+#: usr/local/www/system_firmware.php:179 usr/local/www/system_firmware.php:174
+#: usr/local/www/system_firmware_auto.php:210
+#: usr/local/www/system_firmware.php:174
+#: usr/local/www/system_firmware_auto.php:206
msgid "There has been an error verifying the signature on this image."
msgstr ""
#: usr/local/www/system_firmware.php:175
#: usr/local/www/system_firmware_auto.php:223
-#: usr/local/www/system_firmware_auto.php:223
-#: usr/local/www/system_firmware.php:182
+#: usr/local/www/system_firmware.php:182 usr/local/www/system_firmware.php:177
+#: usr/local/www/system_firmware_auto.php:225
+#: usr/local/www/system_firmware.php:177
+#: usr/local/www/system_firmware_auto.php:221
msgid "The image file is corrupt."
msgstr ""
#: usr/local/www/system_firmware.php:188 usr/local/www/system_firmware.php:195
+#: usr/local/www/system_firmware.php:190 usr/local/www/system_firmware.php:190
msgid ""
"The firmware is now being updated. The firewall will reboot automatically."
msgstr ""
#: usr/local/www/system_firmware.php:196 usr/local/www/system_firmware.php:203
+#: usr/local/www/system_firmware.php:204 usr/local/www/system_firmware.php:204
#, php-format
msgid "Firmware image missing or other error, please try again %s."
msgstr ""
#: usr/local/www/system_firmware.php:220 usr/local/www/system_firmware.php:227
+#: usr/local/www/system_firmware.php:230 usr/local/www/system_firmware.php:230
msgid ""
"This means that the image you uploaded is not an official/supported image "
"and may lead to unexpected behavior or security compromises. Only install "
@@ -18803,6 +22867,7 @@ msgid ""
msgstr ""
#: usr/local/www/system_firmware.php:224 usr/local/www/system_firmware.php:231
+#: usr/local/www/system_firmware.php:234 usr/local/www/system_firmware.php:234
msgid "Do you want to install this image anyway (on your own risk)?"
msgstr ""
@@ -18813,12 +22878,14 @@ msgstr ""
#: usr/local/www/system_firmware_check.php:67
#: usr/local/www/system_firmware_settings.php:111
#: usr/local/www/system_firmware_restorefullbackup.php:126
-#: usr/local/www/system_firmware_auto.php:60
-#: usr/local/www/system_firmware_auto.php:80
-#: usr/local/www/system_firmware_check.php:49
-#: usr/local/www/system_firmware_check.php:67
#: usr/local/www/system_firmware.php:246
#: usr/local/www/system_firmware_settings.php:116
+#: usr/local/www/system_firmware.php:249 usr/local/www/system_firmware.php:249
+#: usr/local/www/system_firmware_check.php:49
+#: usr/local/www/system_firmware_check.php:65
+#: usr/local/www/system_firmware_settings.php:118
+#: usr/local/www/system_firmware_auto.php:61
+#: usr/local/www/system_firmware_auto.php:81
#: usr/local/www/system_firmware_restorefullbackup.php:126
msgid "Auto Update"
msgstr ""
@@ -18828,10 +22895,12 @@ msgstr ""
#: usr/local/www/system_firmware_check.php:68
#: usr/local/www/system_firmware_settings.php:112
#: usr/local/www/system_firmware_restorefullbackup.php:127
-#: usr/local/www/system_firmware_auto.php:81
-#: usr/local/www/system_firmware_check.php:68
#: usr/local/www/system_firmware.php:247
#: usr/local/www/system_firmware_settings.php:117
+#: usr/local/www/system_firmware.php:250 usr/local/www/system_firmware.php:250
+#: usr/local/www/system_firmware_check.php:66
+#: usr/local/www/system_firmware_settings.php:119
+#: usr/local/www/system_firmware_auto.php:82
#: usr/local/www/system_firmware_restorefullbackup.php:127
msgid "Updater Settings"
msgstr ""
@@ -18841,36 +22910,44 @@ msgstr ""
#: usr/local/www/system_firmware_check.php:70
#: usr/local/www/system_firmware_settings.php:114
#: usr/local/www/system_firmware_restorefullbackup.php:129
-#: usr/local/www/system_firmware_auto.php:83
-#: usr/local/www/system_firmware_check.php:70
#: usr/local/www/system_firmware.php:249
#: usr/local/www/system_firmware_settings.php:119
+#: usr/local/www/system_firmware.php:252 usr/local/www/system_firmware.php:252
+#: usr/local/www/system_firmware_check.php:68
+#: usr/local/www/system_firmware_settings.php:121
+#: usr/local/www/system_firmware_auto.php:84
#: usr/local/www/system_firmware_restorefullbackup.php:129
msgid "Restore Full Backup"
msgstr ""
#: usr/local/www/system_firmware.php:252 usr/local/www/system_firmware.php:259
+#: usr/local/www/system_firmware.php:262 usr/local/www/system_firmware.php:262
msgid "Invoke"
msgstr ""
#: usr/local/www/system_firmware.php:252 usr/local/www/system_firmware.php:259
+#: usr/local/www/system_firmware.php:262 usr/local/www/system_firmware.php:262
msgid "Manual Upgrade"
msgstr ""
#: usr/local/www/system_firmware.php:259 usr/local/www/system_firmware.php:266
+#: usr/local/www/system_firmware.php:269 usr/local/www/system_firmware.php:269
msgid "Enable firmware upload"
msgstr ""
#: usr/local/www/system_firmware.php:261 usr/local/www/system_firmware.php:268
+#: usr/local/www/system_firmware.php:271 usr/local/www/system_firmware.php:271
#, php-format
msgid "Click \"Enable firmware upload\" to begin."
msgstr ""
#: usr/local/www/system_firmware.php:264 usr/local/www/system_firmware.php:271
+#: usr/local/www/system_firmware.php:274 usr/local/www/system_firmware.php:274
msgid "Disable firmware upload"
msgstr ""
#: usr/local/www/system_firmware.php:282 usr/local/www/system_firmware.php:289
+#: usr/local/www/system_firmware.php:292 usr/local/www/system_firmware.php:292
msgid "Please select kernel type"
msgstr ""
@@ -18892,28 +22969,35 @@ msgstr ""
#: usr/local/www/system_firmware.php:298
#: usr/local/www/system_firmware_check.php:103
-#: usr/local/www/system_firmware_check.php:103
-#: usr/local/www/system_firmware.php:304
+#: usr/local/www/system_firmware.php:304 usr/local/www/system_firmware.php:303
+#: usr/local/www/system_firmware_check.php:104
+#: usr/local/www/system_firmware.php:303
+#: usr/local/www/system_firmware_check.php:98
msgid "Perform full backup prior to upgrade"
msgstr ""
#: usr/local/www/system_firmware.php:300 usr/local/www/system_firmware.php:306
+#: usr/local/www/system_firmware.php:306
msgid "Upgrade firmware"
msgstr ""
#: usr/local/www/system_firmware.php:301 usr/local/www/system_firmware.php:307
+#: usr/local/www/system_firmware.php:307
msgid "Click \"Upgrade firmware\" to start the upgrade process."
msgstr ""
#: usr/local/www/system_firmware.php:303 usr/local/www/system_firmware.php:309
+#: usr/local/www/system_firmware.php:309
msgid "You must reboot the system before you can upgrade the firmware."
msgstr ""
#: usr/local/www/system_firmware.php:316 usr/local/www/system_firmware.php:322
+#: usr/local/www/system_firmware.php:320
msgid "Warning:"
msgstr ""
#: usr/local/www/system_firmware.php:319 usr/local/www/system_firmware.php:325
+#: usr/local/www/system_firmware.php:323
msgid ""
"DO NOT abort the firmware upgrade once it has started. The firewall will "
"reboot automatically after storing the new firmware. The configuration will "
@@ -18921,227 +23005,279 @@ msgid ""
msgstr ""
#: usr/local/www/system_firmware_auto.php:115
-#: usr/local/www/system_firmware_auto.php:115
+#: usr/local/www/system_firmware_auto.php:113
msgid "Beginning firmware upgrade"
msgstr ""
#: usr/local/www/system_firmware_auto.php:133
-#: usr/local/www/system_firmware_auto.php:133
+#: usr/local/www/system_firmware_auto.php:135
+#: usr/local/www/system_firmware_auto.php:131
msgid "Downloading current version information"
msgstr ""
#: usr/local/www/system_firmware_auto.php:148
#: usr/local/www/system_firmware_auto.php:157
#: usr/local/www/system_firmware_check.php:141
-#: usr/local/www/system_firmware_auto.php:148
-#: usr/local/www/system_firmware_auto.php:157
-#: usr/local/www/system_firmware_check.php:141
+#: usr/local/www/system_firmware_check.php:143
+#: usr/local/www/system_firmware_auto.php:150
+#: usr/local/www/system_firmware_auto.php:159
+#: usr/local/www/system_firmware_check.php:135
+#: usr/local/www/system_firmware_auto.php:146
+#: usr/local/www/system_firmware_auto.php:155
msgid "Unable to check for updates."
msgstr ""
#: usr/local/www/system_firmware_auto.php:162
-#: usr/local/www/system_firmware_auto.php:162
+#: usr/local/www/system_firmware_auto.php:164
+#: usr/local/www/system_firmware_auto.php:160
msgid "Downloading updates"
msgstr ""
#: usr/local/www/system_firmware_auto.php:172
-#: usr/local/www/system_firmware_auto.php:172
+#: usr/local/www/system_firmware_auto.php:174
+#: usr/local/www/system_firmware_auto.php:170
msgid "download complete."
msgstr ""
#: usr/local/www/system_firmware_auto.php:174
#: usr/local/www/system_firmware_check.php:159
-#: usr/local/www/system_firmware_auto.php:174
-#: usr/local/www/system_firmware_check.php:159
+#: usr/local/www/system_firmware_check.php:161
+#: usr/local/www/system_firmware_auto.php:176
+#: usr/local/www/system_firmware_check.php:153
+#: usr/local/www/system_firmware_auto.php:172
msgid "You are on the latest version."
msgstr ""
#: usr/local/www/system_firmware_auto.php:214
-#: usr/local/www/system_firmware_auto.php:214
+#: usr/local/www/system_firmware_auto.php:216
+#: usr/local/www/system_firmware_auto.php:212
msgid ""
"Update cannot continue. You can disable this check on the Updater Settings "
"tab."
msgstr ""
#: usr/local/www/system_firmware_auto.php:219
-#: usr/local/www/system_firmware_auto.php:219
+#: usr/local/www/system_firmware_auto.php:221
+#: usr/local/www/system_firmware_auto.php:217
msgid ""
"Upgrade Image does not contain a signature but the system has been "
"configured to allow unsigned images. One moment please..."
msgstr ""
#: usr/local/www/system_firmware_auto.php:224
-#: usr/local/www/system_firmware_auto.php:224
+#: usr/local/www/system_firmware_auto.php:226
+#: usr/local/www/system_firmware_auto.php:222
msgid "Update cannot continue"
msgstr ""
#: usr/local/www/system_firmware_auto.php:235
-#: usr/local/www/system_firmware_auto.php:235
+#: usr/local/www/system_firmware_auto.php:237
+#: usr/local/www/system_firmware_auto.php:233
msgid "Downloading complete but sha256 does not match."
msgstr ""
#: usr/local/www/system_firmware_auto.php:236
-#: usr/local/www/system_firmware_auto.php:236
+#: usr/local/www/system_firmware_auto.php:238
+#: usr/local/www/system_firmware_auto.php:234
msgid "Auto upgrade aborted."
msgstr ""
#: usr/local/www/system_firmware_auto.php:236
-#: usr/local/www/system_firmware_auto.php:236
+#: usr/local/www/system_firmware_auto.php:238
+#: usr/local/www/system_firmware_auto.php:234
msgid "Downloaded SHA256"
msgstr ""
#: usr/local/www/system_firmware_auto.php:236
-#: usr/local/www/system_firmware_auto.php:236
+#: usr/local/www/system_firmware_auto.php:238
+#: usr/local/www/system_firmware_auto.php:234
msgid "Needed SHA256"
msgstr ""
#: usr/local/www/system_firmware_auto.php:238
-#: usr/local/www/system_firmware_auto.php:238
+#: usr/local/www/system_firmware_auto.php:240
+#: usr/local/www/system_firmware_auto.php:236
msgid "is now upgrading."
msgstr ""
#: usr/local/www/system_firmware_auto.php:238
-#: usr/local/www/system_firmware_auto.php:238
+#: usr/local/www/system_firmware_auto.php:240
+#: usr/local/www/system_firmware_auto.php:236
msgid "The firewall will reboot once the operation is completed."
msgstr ""
#: usr/local/www/system_firmware_auto.php:256
-#: usr/local/www/system_firmware_auto.php:256
+#: usr/local/www/system_firmware_auto.php:258
+#: usr/local/www/system_firmware_auto.php:258
msgid "Auto Update Download Status"
msgstr ""
#: usr/local/www/system_firmware_auto.php:258
-#: usr/local/www/system_firmware_auto.php:258
+#: usr/local/www/system_firmware_auto.php:260
+#: usr/local/www/system_firmware_auto.php:260
msgid "Current Version"
msgstr ""
#: usr/local/www/system_firmware_auto.php:259
-#: usr/local/www/system_firmware_auto.php:259
+#: usr/local/www/system_firmware_auto.php:261
+#: usr/local/www/system_firmware_auto.php:261
msgid "Latest Version"
msgstr ""
#: usr/local/www/system_firmware_auto.php:260
-#: usr/local/www/system_firmware_auto.php:260
+#: usr/local/www/system_firmware_auto.php:262
+#: usr/local/www/system_firmware_auto.php:262
msgid "File size"
msgstr ""
#: usr/local/www/system_firmware_auto.php:261
-#: usr/local/www/system_firmware_auto.php:261
+#: usr/local/www/system_firmware_auto.php:263
+#: usr/local/www/system_firmware_auto.php:263
msgid "Downloaded"
msgstr ""
#: usr/local/www/system_firmware_auto.php:262
-#: usr/local/www/system_firmware_auto.php:262
+#: usr/local/www/system_firmware_auto.php:264
+#: usr/local/www/system_firmware_auto.php:264
msgid "Percent"
msgstr ""
#: usr/local/www/system_firmware_check.php:107
-#: usr/local/www/system_firmware_check.php:107
+#: usr/local/www/system_firmware_check.php:109
+#: usr/local/www/system_firmware_check.php:101
msgid "Invoke Auto Upgrade"
msgstr ""
#: usr/local/www/system_firmware_check.php:125
-#: usr/local/www/system_firmware_check.php:125
+#: usr/local/www/system_firmware_check.php:127
+#: usr/local/www/system_firmware_check.php:119
msgid "Downloading new version information..."
msgstr ""
#: usr/local/www/system_firmware_check.php:143
-#: usr/local/www/system_firmware_check.php:143
+#: usr/local/www/system_firmware_check.php:145
+#: usr/local/www/system_firmware_check.php:137
msgid "Could not contact custom update server."
msgstr ""
#: usr/local/www/system_firmware_check.php:145
-#: usr/local/www/system_firmware_check.php:145
+#: usr/local/www/system_firmware_check.php:147
+#: usr/local/www/system_firmware_check.php:139
#, php-format
msgid "Could not contact %1$s update server %2$s%3$s"
msgstr ""
#: usr/local/www/system_firmware_check.php:147
-#: usr/local/www/system_firmware_check.php:147
+#: usr/local/www/system_firmware_check.php:149
+#: usr/local/www/system_firmware_check.php:141
msgid "Obtaining current version information..."
msgstr ""
#: usr/local/www/system_firmware_check.php:172
-#: usr/local/www/system_firmware_check.php:172
+#: usr/local/www/system_firmware_check.php:174
+#: usr/local/www/system_firmware_check.php:178
msgid "A new version is now available"
msgstr ""
#: usr/local/www/system_firmware_check.php:173
-#: usr/local/www/system_firmware_check.php:173
+#: usr/local/www/system_firmware_check.php:175
+#: usr/local/www/system_firmware_check.php:179
msgid "Current version"
msgstr ""
#: usr/local/www/system_firmware_check.php:175
-#: usr/local/www/system_firmware_check.php:175
+#: usr/local/www/system_firmware_check.php:177
+#: usr/local/www/system_firmware_check.php:181
msgid "NanoBSD Size"
msgstr ""
#: usr/local/www/system_firmware_check.php:177
-#: usr/local/www/system_firmware_check.php:177
+#: usr/local/www/system_firmware_check.php:179
+#: usr/local/www/system_firmware_check.php:183
msgid "Built On"
msgstr ""
#: usr/local/www/system_firmware_check.php:178
-#: usr/local/www/system_firmware_check.php:178
+#: usr/local/www/system_firmware_check.php:180
+#: usr/local/www/system_firmware_check.php:184
msgid "New version"
msgstr ""
#: usr/local/www/system_firmware_check.php:179
-#: usr/local/www/system_firmware_check.php:179
+#: usr/local/www/system_firmware_check.php:181
+#: usr/local/www/system_firmware_check.php:185
msgid "Update source"
msgstr ""
#: usr/local/www/system_firmware_settings.php:122
#: usr/local/www/system_firmware_settings.php:127
+#: usr/local/www/system_firmware_settings.php:129
msgid "Firmware Branch"
msgstr ""
#: usr/local/www/system_firmware_settings.php:126
#: usr/local/www/system_firmware_settings.php:131
+#: usr/local/www/system_firmware_settings.php:133
msgid "Default Auto Update URLs"
msgstr ""
#: usr/local/www/system_firmware_settings.php:142
#: usr/local/www/system_firmware_settings.php:147
+#: usr/local/www/system_firmware_settings.php:156
+#: usr/local/www/system_firmware_settings.php:158
msgid "Firmware Auto Update URL"
msgstr ""
#: usr/local/www/system_firmware_settings.php:144
#: usr/local/www/system_firmware_settings.php:149
+#: usr/local/www/system_firmware_settings.php:158
+#: usr/local/www/system_firmware_settings.php:160
msgid "Use a URL server for firmware upgrades other than"
msgstr ""
#: usr/local/www/system_firmware_settings.php:146
#: usr/local/www/pkg_mgr_settings.php:109
#: usr/local/www/system_firmware_settings.php:151
-#: usr/local/www/pkg_mgr_settings.php:109
+#: usr/local/www/system_firmware_settings.php:160
+#: usr/local/www/system_firmware_settings.php:162
+#: usr/local/www/pkg_mgr_settings.php:108
msgid "Base URL:"
msgstr ""
#: usr/local/www/system_firmware_settings.php:149
#: usr/local/www/system_firmware_settings.php:154
+#: usr/local/www/system_firmware_settings.php:163
+#: usr/local/www/system_firmware_settings.php:165
msgid "This is where"
msgstr ""
#: usr/local/www/system_firmware_settings.php:149
#: usr/local/www/system_firmware_settings.php:154
+#: usr/local/www/system_firmware_settings.php:163
+#: usr/local/www/system_firmware_settings.php:165
msgid "will check for newer firmware versions when the"
msgstr ""
#: usr/local/www/system_firmware_settings.php:149
#: usr/local/www/system_firmware_settings.php:154
+#: usr/local/www/system_firmware_settings.php:163
+#: usr/local/www/system_firmware_settings.php:165
msgid "System: Firmware: Auto Update"
msgstr ""
#: usr/local/www/system_firmware_settings.php:149
#: usr/local/www/pkg_mgr_settings.php:112
#: usr/local/www/system_firmware_settings.php:154
-#: usr/local/www/pkg_mgr_settings.php:112
+#: usr/local/www/system_firmware_settings.php:163
+#: usr/local/www/system_firmware_settings.php:165
+#: usr/local/www/pkg_mgr_settings.php:111
msgid "page is viewed."
msgstr ""
#: usr/local/www/system_firmware_settings.php:151
#: usr/local/www/system_firmware_settings.php:156
+#: usr/local/www/system_firmware_settings.php:165
+#: usr/local/www/system_firmware_settings.php:167
#, php-format
msgid ""
"When a custom URL is enabled, the system will not verify the digital "
@@ -19150,16 +23286,22 @@ msgstr ""
#: usr/local/www/system_firmware_settings.php:159
#: usr/local/www/system_firmware_settings.php:164
+#: usr/local/www/system_firmware_settings.php:173
+#: usr/local/www/system_firmware_settings.php:175
msgid "Updates"
msgstr ""
#: usr/local/www/system_firmware_settings.php:162
#: usr/local/www/system_firmware_settings.php:167
+#: usr/local/www/system_firmware_settings.php:176
+#: usr/local/www/system_firmware_settings.php:178
msgid "Unsigned images"
msgstr ""
#: usr/local/www/system_firmware_settings.php:166
#: usr/local/www/system_firmware_settings.php:171
+#: usr/local/www/system_firmware_settings.php:180
+#: usr/local/www/system_firmware_settings.php:182
msgid ""
"Allow auto-update firmware images with a missing or invalid digital "
"signature to be used."
@@ -19167,62 +23309,82 @@ msgstr ""
#: usr/local/www/system_firmware_settings.php:174
#: usr/local/www/system_firmware_settings.php:187
+#: usr/local/www/system_firmware_settings.php:196
+#: usr/local/www/system_firmware_settings.php:198
msgid "Gitsync"
msgstr ""
#: usr/local/www/system_firmware_settings.php:177
#: usr/local/www/system_firmware_settings.php:190
+#: usr/local/www/system_firmware_settings.php:199
+#: usr/local/www/system_firmware_settings.php:201
msgid "Auto sync on update"
msgstr ""
#: usr/local/www/system_firmware_settings.php:181
#: usr/local/www/system_firmware_settings.php:194
+#: usr/local/www/system_firmware_settings.php:203
+#: usr/local/www/system_firmware_settings.php:205
msgid ""
"After updating, sync with the following repository/branch before reboot."
msgstr ""
#: usr/local/www/system_firmware_settings.php:193
#: usr/local/www/system_firmware_settings.php:206
+#: usr/local/www/system_firmware_settings.php:215
+#: usr/local/www/system_firmware_settings.php:217
msgid "Repository URL"
msgstr ""
#: usr/local/www/system_firmware_settings.php:198
#: usr/local/www/system_firmware_settings.php:211
+#: usr/local/www/system_firmware_settings.php:220
+#: usr/local/www/system_firmware_settings.php:222
#, php-format
msgid "The most recently used repository was %s"
msgstr ""
#: usr/local/www/system_firmware_settings.php:200
#: usr/local/www/system_firmware_settings.php:213
+#: usr/local/www/system_firmware_settings.php:222
+#: usr/local/www/system_firmware_settings.php:224
msgid "This will be used if the field is left blank."
msgstr ""
#: usr/local/www/system_firmware_settings.php:219
#: usr/local/www/system_firmware_settings.php:232
+#: usr/local/www/system_firmware_settings.php:241
+#: usr/local/www/system_firmware_settings.php:243
msgid "Branch name"
msgstr ""
#: usr/local/www/system_firmware_settings.php:224
#: usr/local/www/system_firmware_settings.php:237
+#: usr/local/www/system_firmware_settings.php:246
+#: usr/local/www/system_firmware_settings.php:248
#, php-format
msgid "The most recently used branch was %s"
msgstr ""
#: usr/local/www/system_firmware_settings.php:227
#: usr/local/www/system_firmware_settings.php:240
+#: usr/local/www/system_firmware_settings.php:249
+#: usr/local/www/system_firmware_settings.php:251
msgid "Usually the branch name is master"
msgstr ""
#: usr/local/www/system_firmware_settings.php:230
#: usr/local/www/system_firmware_settings.php:243
+#: usr/local/www/system_firmware_settings.php:252
+#: usr/local/www/system_firmware_settings.php:254
msgid "Note: Sync will not be performed if a branch is not specified."
msgstr ""
#: usr/local/www/system_routes.php:52 usr/local/www/system_routes.php:94
#: usr/local/www/system_routes_edit.php:165
-#: usr/local/www/system_routes_edit.php:198
-#: usr/local/www/system_routes_edit.php:198 usr/local/www/system_routes.php:52
-#: usr/local/www/system_routes.php:94
+#: usr/local/www/system_routes_edit.php:198 usr/local/www/system_routes.php:98
+#: usr/local/www/system_routes.php:52 usr/local/www/system_routes.php:98
+#: usr/local/www/system_routes_edit.php:227
msgid "Static Routes"
msgstr ""
@@ -19230,7 +23392,8 @@ msgstr ""
msgid "removed route to"
msgstr ""
-#: usr/local/www/system_routes.php:107 usr/local/www/system_routes.php:107
+#: usr/local/www/system_routes.php:107 usr/local/www/system_routes.php:111
+#: usr/local/www/system_routes.php:111
#, php-format
msgid ""
"The static route configuration has been changed.%sYou must apply the changes "
@@ -19255,37 +23418,49 @@ msgstr ""
#: usr/local/www/diag_logs_gateways.php:97
#: usr/local/www/diag_logs_routing.php:84
#: usr/local/www/system_gateway_groups_edit.php:146
-#: usr/local/www/fbegin.inc:184 usr/local/www/system_routes.php:115
-#: usr/local/www/diag_logs_resolver.php:98 usr/local/www/diag_logs.php:96
+#: usr/local/www/fbegin.inc:184 usr/local/www/diag_logs_resolver.php:98
#: usr/local/www/system_gateway_groups.php:109
#: usr/local/www/system_gateway_groups.php:122
#: usr/local/www/system_gateways_edit.php:425
-#: usr/local/www/status_gateways.php:51 usr/local/www/status_gateways.php:63
-#: usr/local/www/system_gateways.php:120 usr/local/www/system_gateways.php:141
+#: usr/local/www/status_gateways.php:63
#: usr/local/www/diag_logs_wireless.php:86
-#: usr/local/www/diag_logs_gateways.php:66
#: usr/local/www/diag_logs_gateways.php:98
#: usr/local/www/status_gateway_groups.php:65
#: usr/local/www/status_gateway_groups.php:76
+#: usr/local/www/system_routes.php:119 usr/local/www/fbegin.inc:175
+#: usr/local/www/system_gateways_edit.php:425
+#: usr/local/www/diag_logs_routing.php:84 usr/local/www/diag_logs.php:96
+#: usr/local/www/system_routes.php:119 usr/local/www/diag_logs_gateways.php:66
+#: usr/local/www/diag_logs_gateways.php:98
+#: usr/local/www/system_gateway_groups_edit.php:150
+#: usr/local/www/status_gateway_groups.php:65
+#: usr/local/www/status_gateway_groups.php:76 usr/local/www/fbegin.inc:175
+#: usr/local/www/system_gateways.php:120 usr/local/www/system_gateways.php:141
+#: usr/local/www/status_gateways.php:51 usr/local/www/status_gateways.php:63
+#: usr/local/www/diag_logs_wireless.php:86
+#: usr/local/www/system_gateway_groups.php:118
+#: usr/local/www/system_gateway_groups.php:131
+#: usr/local/www/diag_logs_resolver.php:98
msgid "Gateways"
msgstr ""
#: usr/local/www/system_routes.php:116 usr/local/www/fbegin.inc:204
#: usr/local/www/system_gateway_groups.php:109
#: usr/local/www/system_gateways.php:142 usr/local/www/fbegin.inc:222
-#: usr/local/www/fbegin.inc:230 usr/local/www/system_routes.php:116
-#: usr/local/www/system_gateway_groups.php:110
-#: usr/local/www/system_gateways.php:142
+#: usr/local/www/fbegin.inc:230 usr/local/www/system_gateway_groups.php:110
+#: usr/local/www/system_routes.php:120 usr/local/www/system_routes.php:120
+#: usr/local/www/fbegin.inc:222 usr/local/www/system_gateways.php:142
+#: usr/local/www/system_gateway_groups.php:119
msgid "Routes"
msgstr ""
#: usr/local/www/system_routes.php:161 usr/local/www/system_routes.php:172
-#: usr/local/www/system_routes.php:172
+#: usr/local/www/system_routes.php:176 usr/local/www/system_routes.php:176
msgid "Do you really want to delete this route?"
msgstr ""
#: usr/local/www/system_routes.php:188 usr/local/www/system_routes.php:199
-#: usr/local/www/system_routes.php:199
+#: usr/local/www/system_routes.php:203 usr/local/www/system_routes.php:203
msgid ""
"Do not enter static routes for networks assigned on any interface of this "
"firewall. Static routes are only used for networks reachable via a "
@@ -19296,32 +23471,33 @@ msgstr ""
#: usr/local/www/system_routes_edit.php:179
#: usr/local/www/system_routes_edit.php:90
#: usr/local/www/system_routes_edit.php:216
-#: usr/local/www/system_routes_edit.php:90
#: usr/local/www/system_routes_edit.php:217
+#: usr/local/www/system_routes_edit.php:93
+#: usr/local/www/system_routes_edit.php:244
msgid "Destination network"
msgstr ""
#: usr/local/www/system_routes_edit.php:90
#: usr/local/www/system_routes_edit.php:91
-#: usr/local/www/system_routes_edit.php:91
+#: usr/local/www/system_routes_edit.php:94
msgid "Destination network bit count"
msgstr ""
#: usr/local/www/system_routes_edit.php:96
#: usr/local/www/system_routes_edit.php:97
-#: usr/local/www/system_routes_edit.php:97
+#: usr/local/www/system_routes_edit.php:100
msgid "A valid IPv4 or IPv6 destination network must be specified."
msgstr ""
#: usr/local/www/system_routes_edit.php:99
#: usr/local/www/system_routes_edit.php:100
-#: usr/local/www/system_routes_edit.php:100
+#: usr/local/www/system_routes_edit.php:103
msgid "A valid destination network bit count must be specified."
msgstr ""
#: usr/local/www/system_routes_edit.php:114
#: usr/local/www/system_routes_edit.php:118
-#: usr/local/www/system_routes_edit.php:118
+#: usr/local/www/system_routes_edit.php:121
msgid "A IPv4 subnet can not be over 32 bits."
msgstr ""
@@ -19331,49 +23507,56 @@ msgstr ""
#: usr/local/www/system_routes_edit.php:165
#: usr/local/www/system_routes_edit.php:198
-#: usr/local/www/system_routes_edit.php:198
+#: usr/local/www/system_routes_edit.php:227
msgid "Edit route"
msgstr ""
#: usr/local/www/system_routes_edit.php:176
#: usr/local/www/system_routes_edit.php:213
#: usr/local/www/system_routes_edit.php:214
+#: usr/local/www/system_routes_edit.php:241
msgid "Edit route entry"
msgstr ""
#: usr/local/www/system_routes_edit.php:196
#: usr/local/www/system_routes_edit.php:228
#: usr/local/www/system_routes_edit.php:229
+#: usr/local/www/system_routes_edit.php:256
msgid "Destination network for this static route"
msgstr ""
#: usr/local/www/system_routes_edit.php:212
#: usr/local/www/system_routes_edit.php:244
#: usr/local/www/system_routes_edit.php:245
+#: usr/local/www/system_routes_edit.php:272
msgid "Choose which gateway this route applies to or"
msgstr ""
#: usr/local/www/system_routes_edit.php:228
#: usr/local/www/system_routes_edit.php:260
#: usr/local/www/system_routes_edit.php:261
+#: usr/local/www/system_routes_edit.php:287
msgid "Default gateway:"
msgstr ""
#: usr/local/www/system_routes_edit.php:231
#: usr/local/www/system_routes_edit.php:263
#: usr/local/www/system_routes_edit.php:264
+#: usr/local/www/system_routes_edit.php:290
msgid "Interface:"
msgstr ""
#: usr/local/www/system_routes_edit.php:243
#: usr/local/www/system_routes_edit.php:275
#: usr/local/www/system_routes_edit.php:276
+#: usr/local/www/system_routes_edit.php:302
msgid "Gateway IP:"
msgstr ""
#: usr/local/www/system_routes_edit.php:334
#: usr/local/www/system_routes_edit.php:374
#: usr/local/www/system_routes_edit.php:375
+#: usr/local/www/system_routes_edit.php:399
#, php-format
msgid "You can manage Gateways %shere%s."
msgstr ""
@@ -19381,6 +23564,7 @@ msgstr ""
#: usr/local/www/system_routes_edit.php:337
#: usr/local/www/system_routes_edit.php:377
#: usr/local/www/system_routes_edit.php:378
+#: usr/local/www/system_routes_edit.php:402
msgid "Sorry, we could not create your gateway at this time."
msgstr ""
@@ -19393,36 +23577,44 @@ msgstr ""
#: usr/local/www/load_balancer_relay_protocol_edit.php:230
#: usr/local/www/load_balancer_relay_protocol_edit.php:228
#: usr/local/www/diag_logs_filter_summary.php:46
+#: usr/local/www/load_balancer_relay_protocol_edit.php:228
+#: usr/local/www/diag_logs_filter_summary.php:46
msgid "Actions"
msgstr ""
#: usr/local/www/diag_logs_filter_summary.php:47
#: usr/local/www/diag_logs_filter_summary.php:48
+#: usr/local/www/diag_logs_filter_summary.php:48
msgid "Protocols"
msgstr ""
#: usr/local/www/diag_logs_filter_summary.php:48
#: usr/local/www/diag_logs_filter_summary.php:49
+#: usr/local/www/diag_logs_filter_summary.php:49
msgid "Source IPs"
msgstr ""
#: usr/local/www/diag_logs_filter_summary.php:49
#: usr/local/www/diag_logs_filter_summary.php:50
+#: usr/local/www/diag_logs_filter_summary.php:50
msgid "Destination IPs"
msgstr ""
#: usr/local/www/diag_logs_filter_summary.php:50
#: usr/local/www/diag_logs_filter_summary.php:51
+#: usr/local/www/diag_logs_filter_summary.php:51
msgid "Source Ports"
msgstr ""
#: usr/local/www/diag_logs_filter_summary.php:51
#: usr/local/www/diag_logs_filter_summary.php:52
+#: usr/local/www/diag_logs_filter_summary.php:52
msgid "Destination Ports"
msgstr ""
#: usr/local/www/diag_logs_filter_summary.php:71
#: usr/local/www/diag_logs_filter_summary.php:72
+#: usr/local/www/diag_logs_filter_summary.php:72
msgid "data"
msgstr ""
@@ -19460,6 +23652,8 @@ msgstr ""
#: usr/local/www/vpn_ipsec.php:134 usr/local/www/vpn_ipsec_keys.php:86
#: usr/local/www/vpn_ipsec_mobile.php:303 usr/local/www/vpn_ipsec.php:133
#: usr/local/www/vpn_ipsec_mobile.php:330 usr/local/www/vpn_ipsec_keys.php:85
+#: usr/local/www/vpn_ipsec.php:139 usr/local/www/vpn_ipsec.php:139
+#: usr/local/www/vpn_ipsec_mobile.php:330 usr/local/www/vpn_ipsec_keys.php:85
msgid "The IPsec tunnel configuration has been changed"
msgstr ""
@@ -19470,7 +23664,12 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:407 usr/local/www/vpn_ipsec.php:140
#: usr/local/www/vpn_ipsec_mobile.php:345 usr/local/www/vpn_ipsec_keys.php:92
#: usr/local/www/vpn_ipsec_phase2.php:473
-#: usr/local/www/vpn_ipsec_phase1.php:496
+#: usr/local/www/vpn_ipsec_phase1.php:496 usr/local/www/vpn_ipsec.php:146
+#: usr/local/www/vpn_ipsec_phase1.php:517
+#: usr/local/www/vpn_ipsec_phase2.php:495 usr/local/www/vpn_ipsec.php:146
+#: usr/local/www/vpn_ipsec_phase1.php:517
+#: usr/local/www/vpn_ipsec_mobile.php:345 usr/local/www/vpn_ipsec_keys.php:92
+#: usr/local/www/vpn_ipsec_phase2.php:495
msgid "Tunnels"
msgstr ""
@@ -19481,7 +23680,12 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:408 usr/local/www/vpn_ipsec.php:141
#: usr/local/www/vpn_ipsec_mobile.php:346 usr/local/www/vpn_ipsec_keys.php:93
#: usr/local/www/vpn_ipsec_phase2.php:474
-#: usr/local/www/vpn_ipsec_phase1.php:497
+#: usr/local/www/vpn_ipsec_phase1.php:497 usr/local/www/vpn_ipsec.php:147
+#: usr/local/www/vpn_ipsec_phase1.php:518
+#: usr/local/www/vpn_ipsec_phase2.php:496 usr/local/www/vpn_ipsec.php:147
+#: usr/local/www/vpn_ipsec_phase1.php:518
+#: usr/local/www/vpn_ipsec_mobile.php:346 usr/local/www/vpn_ipsec_keys.php:93
+#: usr/local/www/vpn_ipsec_phase2.php:496
msgid "Mobile clients"
msgstr ""
@@ -19494,6 +23698,7 @@ msgid "Pre-shared keys"
msgstr ""
#: usr/local/www/vpn_ipsec.php:160 usr/local/www/vpn_ipsec.php:159
+#: usr/local/www/vpn_ipsec.php:165 usr/local/www/vpn_ipsec.php:165
msgid "Enable IPsec"
msgstr ""
@@ -19501,7 +23706,10 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:552 usr/local/www/vpn_ipsec.php:232
#: usr/local/www/vpn_ipsec.php:362 usr/local/www/vpn_ipsec_phase2.php:578
#: usr/local/www/vpn_ipsec.php:231 usr/local/www/vpn_ipsec.php:361
-#: usr/local/www/vpn_ipsec_phase2.php:680
+#: usr/local/www/vpn_ipsec_phase2.php:680 usr/local/www/vpn_ipsec.php:237
+#: usr/local/www/vpn_ipsec.php:367 usr/local/www/vpn_ipsec_phase2.php:701
+#: usr/local/www/vpn_ipsec.php:237 usr/local/www/vpn_ipsec.php:367
+#: usr/local/www/vpn_ipsec_phase2.php:701
msgid "auto"
msgstr ""
@@ -19514,143 +23722,175 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:937
#: usr/local/www/system_camanager.php:466
#: usr/local/www/vpn_ipsec_phase2.php:589 usr/local/www/vpn_ipsec.php:233
-#: usr/local/www/vpn_ipsec.php:363 usr/local/www/system_certmanager.php:677
-#: usr/local/www/vpn_openvpn_server.php:965
-#: usr/local/www/system_camanager.php:466
+#: usr/local/www/vpn_ipsec.php:363 usr/local/www/vpn_openvpn_server.php:965
#: usr/local/www/vpn_ipsec_phase2.php:691
+#: usr/local/www/system_camanager.php:473 usr/local/www/vpn_ipsec.php:239
+#: usr/local/www/vpn_ipsec.php:369 usr/local/www/system_certmanager.php:686
+#: usr/local/www/vpn_openvpn_server.php:992
+#: usr/local/www/vpn_ipsec_phase2.php:712
+#: usr/local/www/system_camanager.php:473 usr/local/www/vpn_ipsec.php:239
+#: usr/local/www/vpn_ipsec.php:369 usr/local/www/system_certmanager.php:687
+#: usr/local/www/vpn_openvpn_server.php:992
+#: usr/local/www/vpn_ipsec_phase2.php:712
msgid "bits"
msgstr ""
#: usr/local/www/vpn_ipsec.php:243 usr/local/www/vpn_ipsec.php:254
-#: usr/local/www/vpn_ipsec.php:253
+#: usr/local/www/vpn_ipsec.php:253 usr/local/www/vpn_ipsec.php:259
+#: usr/local/www/vpn_ipsec.php:259
msgid "edit phase1 entry"
msgstr ""
#: usr/local/www/vpn_ipsec.php:247 usr/local/www/vpn_ipsec.php:258
-#: usr/local/www/vpn_ipsec.php:257
+#: usr/local/www/vpn_ipsec.php:257 usr/local/www/vpn_ipsec.php:263
+#: usr/local/www/vpn_ipsec.php:263
msgid ""
"Do you really want to delete this phase1 and all associated phase2 entries?"
msgstr ""
#: usr/local/www/vpn_ipsec.php:248 usr/local/www/vpn_ipsec.php:259
-#: usr/local/www/vpn_ipsec.php:258
+#: usr/local/www/vpn_ipsec.php:258 usr/local/www/vpn_ipsec.php:264
+#: usr/local/www/vpn_ipsec.php:264
msgid "delete phase1 entry"
msgstr ""
#: usr/local/www/vpn_ipsec.php:258 usr/local/www/vpn_ipsec.php:269
-#: usr/local/www/vpn_ipsec.php:268
+#: usr/local/www/vpn_ipsec.php:268 usr/local/www/vpn_ipsec.php:274
+#: usr/local/www/vpn_ipsec.php:274
msgid "copy phase1 entry"
msgstr ""
#: usr/local/www/vpn_ipsec.php:279 usr/local/www/vpn_ipsec.php:290
-#: usr/local/www/vpn_ipsec.php:289
+#: usr/local/www/vpn_ipsec.php:289 usr/local/www/vpn_ipsec.php:295
+#: usr/local/www/vpn_ipsec.php:295
#, php-format
msgid "Show %s Phase-2 entries"
msgstr ""
#: usr/local/www/vpn_ipsec.php:285 usr/local/www/vpn_ipsec.php:296
-#: usr/local/www/vpn_ipsec.php:295
+#: usr/local/www/vpn_ipsec.php:295 usr/local/www/vpn_ipsec.php:301
+#: usr/local/www/vpn_ipsec.php:301
msgid "Local Subnet"
msgstr ""
#: usr/local/www/vpn_ipsec.php:286 usr/local/www/vpn_ipsec.php:297
-#: usr/local/www/vpn_ipsec.php:296
+#: usr/local/www/vpn_ipsec.php:296 usr/local/www/vpn_ipsec.php:302
+#: usr/local/www/vpn_ipsec.php:302
msgid "Remote Subnet"
msgstr ""
#: usr/local/www/vpn_ipsec.php:288 usr/local/www/vpn_ipsec.php:299
-#: usr/local/www/vpn_ipsec.php:298
+#: usr/local/www/vpn_ipsec.php:298 usr/local/www/vpn_ipsec.php:304
+#: usr/local/www/vpn_ipsec.php:304
msgid "P2 Protocol"
msgstr ""
#: usr/local/www/vpn_ipsec.php:289 usr/local/www/vpn_ipsec.php:300
-#: usr/local/www/vpn_ipsec.php:299
+#: usr/local/www/vpn_ipsec.php:299 usr/local/www/vpn_ipsec.php:305
+#: usr/local/www/vpn_ipsec.php:305
msgid "P2 Transforms"
msgstr ""
#: usr/local/www/vpn_ipsec.php:290 usr/local/www/vpn_ipsec.php:301
-#: usr/local/www/vpn_ipsec.php:300
+#: usr/local/www/vpn_ipsec.php:300 usr/local/www/vpn_ipsec.php:306
+#: usr/local/www/vpn_ipsec.php:306
msgid "P2 Auth Methods"
msgstr ""
#: usr/local/www/vpn_ipsec.php:293 usr/local/www/vpn_ipsec.php:304
-#: usr/local/www/vpn_ipsec.php:303
+#: usr/local/www/vpn_ipsec.php:303 usr/local/www/vpn_ipsec.php:309
+#: usr/local/www/vpn_ipsec.php:309
msgid "add phase2 entry"
msgstr ""
#: usr/local/www/vpn_ipsec.php:373 usr/local/www/vpn_ipsec.php:384
-#: usr/local/www/vpn_ipsec.php:383
+#: usr/local/www/vpn_ipsec.php:383 usr/local/www/vpn_ipsec.php:389
+#: usr/local/www/vpn_ipsec.php:389
msgid "edit phase2 entry"
msgstr ""
#: usr/local/www/vpn_ipsec.php:375 usr/local/www/vpn_ipsec.php:386
-#: usr/local/www/vpn_ipsec.php:385
+#: usr/local/www/vpn_ipsec.php:385 usr/local/www/vpn_ipsec.php:391
+#: usr/local/www/vpn_ipsec.php:391
msgid "Do you really want to delete this phase2 entry?"
msgstr ""
#: usr/local/www/vpn_ipsec.php:376 usr/local/www/vpn_ipsec.php:387
-#: usr/local/www/vpn_ipsec.php:386
+#: usr/local/www/vpn_ipsec.php:386 usr/local/www/vpn_ipsec.php:392
+#: usr/local/www/vpn_ipsec.php:392
msgid "delete phase2 entry"
msgstr ""
#: usr/local/www/vpn_ipsec.php:379 usr/local/www/vpn_ipsec.php:390
-#: usr/local/www/vpn_ipsec.php:389
+#: usr/local/www/vpn_ipsec.php:389 usr/local/www/vpn_ipsec.php:395
+#: usr/local/www/vpn_ipsec.php:395
msgid "add a new Phase 2 based on this one"
msgstr ""
#: usr/local/www/vpn_ipsec.php:410 usr/local/www/vpn_ipsec.php:421
-#: usr/local/www/vpn_ipsec.php:420
+#: usr/local/www/vpn_ipsec.php:420 usr/local/www/vpn_ipsec.php:426
+#: usr/local/www/vpn_ipsec.php:426
msgid "add phase1 entry"
msgstr ""
#: usr/local/www/vpn_ipsec.php:424 usr/local/www/vpn_ipsec.php:435
-#: usr/local/www/vpn_ipsec.php:434
+#: usr/local/www/vpn_ipsec.php:434 usr/local/www/vpn_ipsec.php:440
+#: usr/local/www/vpn_ipsec.php:440
msgid "You can check your IPsec status at"
msgstr ""
#: usr/local/www/vpn_ipsec.php:424 usr/local/www/vpn_ipsec.php:435
-#: usr/local/www/vpn_ipsec.php:434
+#: usr/local/www/vpn_ipsec.php:434 usr/local/www/vpn_ipsec.php:440
+#: usr/local/www/vpn_ipsec.php:440
msgid "Status:IPsec"
msgstr ""
#: usr/local/www/vpn_ipsec.php:425 usr/local/www/vpn_ipsec.php:436
-#: usr/local/www/vpn_ipsec.php:435
+#: usr/local/www/vpn_ipsec.php:435 usr/local/www/vpn_ipsec.php:441
+#: usr/local/www/vpn_ipsec.php:441
msgid "IPsec Debug Mode can be enabled at"
msgstr ""
#: usr/local/www/vpn_ipsec.php:425 usr/local/www/vpn_ipsec.php:426
#: usr/local/www/vpn_ipsec.php:436 usr/local/www/vpn_ipsec.php:437
-#: usr/local/www/vpn_ipsec.php:435 usr/local/www/vpn_ipsec.php:436
+#: usr/local/www/vpn_ipsec.php:435 usr/local/www/vpn_ipsec.php:441
+#: usr/local/www/vpn_ipsec.php:442 usr/local/www/vpn_ipsec.php:441
+#: usr/local/www/vpn_ipsec.php:442
msgid "System:Advanced:Miscellaneous"
msgstr ""
#: usr/local/www/vpn_ipsec.php:426 usr/local/www/vpn_ipsec.php:437
-#: usr/local/www/vpn_ipsec.php:436
+#: usr/local/www/vpn_ipsec.php:436 usr/local/www/vpn_ipsec.php:442
+#: usr/local/www/vpn_ipsec.php:442
msgid "IPsec can be set to prefer older SAs at"
msgstr ""
#: usr/local/www/vpn_ipsec.php:456 usr/local/www/vpn_ipsec.php:467
-#: usr/local/www/vpn_ipsec.php:466
+#: usr/local/www/vpn_ipsec.php:466 usr/local/www/vpn_ipsec.php:472
+#: usr/local/www/vpn_ipsec.php:472
msgid "Remote Gateway"
msgstr ""
#: usr/local/www/vpn_ipsec.php:458 usr/local/www/vpn_ipsec.php:469
-#: usr/local/www/vpn_ipsec.php:468
+#: usr/local/www/vpn_ipsec.php:468 usr/local/www/vpn_ipsec.php:474
+#: usr/local/www/vpn_ipsec.php:474
msgid "P1 Protocol"
msgstr ""
#: usr/local/www/vpn_ipsec.php:459 usr/local/www/vpn_ipsec.php:470
-#: usr/local/www/vpn_ipsec.php:469
+#: usr/local/www/vpn_ipsec.php:469 usr/local/www/vpn_ipsec.php:475
+#: usr/local/www/vpn_ipsec.php:475
msgid "P1 Transforms"
msgstr ""
#: usr/local/www/vpn_ipsec.php:460 usr/local/www/vpn_ipsec.php:471
-#: usr/local/www/vpn_ipsec.php:470
+#: usr/local/www/vpn_ipsec.php:470 usr/local/www/vpn_ipsec.php:476
+#: usr/local/www/vpn_ipsec.php:476
msgid "P1 Description"
msgstr ""
#: usr/local/www/diag_logs_ppp.php:91 usr/local/www/diag_logs_ppp.php:90
-#: usr/local/www/diag_logs_ppp.php:90
+#: usr/local/www/diag_logs_ppp.php:88 usr/local/www/diag_logs_ppp.php:88
#, php-format
msgid "Last %s PPP log entries"
msgstr ""
@@ -19718,6 +23958,8 @@ msgstr ""
#: usr/local/www/exec.php:290 usr/local/www/exec.php:300
#: usr/local/www/exec.php:292 usr/local/www/exec.php:302
#: usr/local/www/services_captiveportal_filemanager.php:192
+#: usr/local/www/exec.php:292 usr/local/www/exec.php:302
+#: usr/local/www/services_captiveportal_filemanager.php:192
msgid "Upload"
msgstr ""
@@ -19758,8 +24000,10 @@ msgstr ""
#: usr/local/www/vpn_ipsec_keys_edit.php:69
#: usr/local/www/vpn_ipsec_keys_edit.php:128
#: usr/local/www/vpn_ipsec_keys.php:103
+#: usr/local/www/vpn_ipsec_keys_edit.php:127
#: usr/local/www/vpn_ipsec_keys_edit.php:69
#: usr/local/www/vpn_ipsec_keys_edit.php:127
+#: usr/local/www/vpn_ipsec_keys.php:103
msgid "Identifier"
msgstr ""
@@ -19771,11 +24015,13 @@ msgstr ""
#: usr/local/www/vpn_ipsec_keys.php:110 usr/local/www/vpn_ipsec_keys.php:146
#: usr/local/www/vpn_ipsec_keys.php:109 usr/local/www/vpn_ipsec_keys.php:145
+#: usr/local/www/vpn_ipsec_keys.php:109 usr/local/www/vpn_ipsec_keys.php:145
msgid "add key"
msgstr ""
#: usr/local/www/vpn_ipsec_keys.php:123 usr/local/www/vpn_ipsec_keys.php:136
#: usr/local/www/vpn_ipsec_keys.php:122 usr/local/www/vpn_ipsec_keys.php:135
+#: usr/local/www/vpn_ipsec_keys.php:122 usr/local/www/vpn_ipsec_keys.php:135
msgid "edit key"
msgstr ""
@@ -19784,6 +24030,7 @@ msgid "Do you really want to delete this pre-shared key?"
msgstr ""
#: usr/local/www/vpn_ipsec_keys.php:137 usr/local/www/vpn_ipsec_keys.php:136
+#: usr/local/www/vpn_ipsec_keys.php:136
msgid "delete key"
msgstr ""
@@ -19818,6 +24065,7 @@ msgstr ""
#: usr/local/www/vpn_ipsec_keys_edit.php:132
#: usr/local/www/vpn_ipsec_keys_edit.php:131
+#: usr/local/www/vpn_ipsec_keys_edit.php:131
msgid ""
"This can be either an IP address, fully qualified domain name or an e-mail "
"address"
@@ -19825,79 +24073,94 @@ msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:128
#: usr/local/www/vpn_ipsec_mobile.php:132
+#: usr/local/www/vpn_ipsec_mobile.php:132
msgid "User Authentication Source"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:128
#: usr/local/www/vpn_ipsec_mobile.php:132
+#: usr/local/www/vpn_ipsec_mobile.php:132
msgid "Group Authentication Source"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:134
#: usr/local/www/vpn_ipsec_mobile.php:138
+#: usr/local/www/vpn_ipsec_mobile.php:138
msgid ""
"A valid IP address for 'Virtual Address Pool Network' must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:138
#: usr/local/www/vpn_ipsec_mobile.php:142
+#: usr/local/www/vpn_ipsec_mobile.php:142
msgid "A valid value for 'DNS Default Domain' must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:143
#: usr/local/www/vpn_ipsec_mobile.php:159
+#: usr/local/www/vpn_ipsec_mobile.php:159
msgid ""
"At least one DNS server must be specified to enable the DNS Server option."
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:145
#: usr/local/www/vpn_ipsec_mobile.php:161
+#: usr/local/www/vpn_ipsec_mobile.php:161
msgid "A valid IP address for 'DNS Server #1' must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:147
#: usr/local/www/vpn_ipsec_mobile.php:163
+#: usr/local/www/vpn_ipsec_mobile.php:163
msgid "A valid IP address for 'DNS Server #2' must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:149
#: usr/local/www/vpn_ipsec_mobile.php:165
+#: usr/local/www/vpn_ipsec_mobile.php:165
msgid "A valid IP address for 'DNS Server #3' must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:151
#: usr/local/www/vpn_ipsec_mobile.php:167
+#: usr/local/www/vpn_ipsec_mobile.php:167
msgid "A valid IP address for 'DNS Server #4' must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:156
#: usr/local/www/vpn_ipsec_mobile.php:172
+#: usr/local/www/vpn_ipsec_mobile.php:172
msgid ""
"At least one WINS server must be specified to enable the DNS Server option."
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:158
#: usr/local/www/vpn_ipsec_mobile.php:174
+#: usr/local/www/vpn_ipsec_mobile.php:174
msgid "A valid IP address for 'WINS Server #1' must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:160
#: usr/local/www/vpn_ipsec_mobile.php:176
+#: usr/local/www/vpn_ipsec_mobile.php:176
msgid "A valid IP address for 'WINS Server #2' must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:165
#: usr/local/www/vpn_ipsec_mobile.php:181
+#: usr/local/www/vpn_ipsec_mobile.php:181
msgid "A valid value for 'Login Banner' must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:220
#: usr/local/www/vpn_ipsec_mobile.php:240
+#: usr/local/www/vpn_ipsec_mobile.php:240
msgid "Mobile"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:308
#: usr/local/www/vpn_ipsec_mobile.php:335
+#: usr/local/www/vpn_ipsec_mobile.php:335
msgid ""
"Support for IPsec Mobile clients is enabled but a Phase1 definition was not "
"found"
@@ -19905,82 +24168,98 @@ msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:308
#: usr/local/www/vpn_ipsec_mobile.php:335
+#: usr/local/www/vpn_ipsec_mobile.php:335
msgid "Please click Create to define one."
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:308
#: usr/local/www/vpn_ipsec_mobile.php:335
+#: usr/local/www/vpn_ipsec_mobile.php:335
msgid "Create Phase1"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:330
#: usr/local/www/vpn_ipsec_mobile.php:357
+#: usr/local/www/vpn_ipsec_mobile.php:357
msgid "IKE Extensions"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:339
#: usr/local/www/vpn_ipsec_mobile.php:366
+#: usr/local/www/vpn_ipsec_mobile.php:366
msgid "Enable IPsec Mobile Client Support"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:350
#: usr/local/www/vpn_ipsec_mobile.php:377
+#: usr/local/www/vpn_ipsec_mobile.php:377
msgid "Extended Authentication (Xauth)"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:354
#: usr/local/www/vpn_ipsec_mobile.php:381
+#: usr/local/www/vpn_ipsec_mobile.php:381
msgid "User Authentication"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:358
#: usr/local/www/vpn_ipsec_mobile.php:379
#: usr/local/www/vpn_ipsec_mobile.php:404
+#: usr/local/www/vpn_ipsec_mobile.php:404
msgid "system"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:375
#: usr/local/www/vpn_ipsec_mobile.php:399
+#: usr/local/www/vpn_ipsec_mobile.php:399
msgid "Group Authentication"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:388
#: usr/local/www/vpn_ipsec_mobile.php:413
+#: usr/local/www/vpn_ipsec_mobile.php:413
msgid "Client Configuration (mode-cfg)"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:392
#: usr/local/www/vpn_ipsec_mobile.php:417
+#: usr/local/www/vpn_ipsec_mobile.php:417
msgid "Virtual Address Pool"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:401
#: usr/local/www/vpn_ipsec_mobile.php:426
+#: usr/local/www/vpn_ipsec_mobile.php:426
msgid "Provide a virtual IP address to clients"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:424
#: usr/local/www/vpn_ipsec_mobile.php:449
+#: usr/local/www/vpn_ipsec_mobile.php:449
msgid "Network List"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:433
#: usr/local/www/vpn_ipsec_mobile.php:458
+#: usr/local/www/vpn_ipsec_mobile.php:458
msgid "Provide a list of accessible networks to clients"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:440
#: usr/local/www/vpn_ipsec_mobile.php:465
+#: usr/local/www/vpn_ipsec_mobile.php:465
msgid "Save Xauth Password"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:449
#: usr/local/www/vpn_ipsec_mobile.php:474
+#: usr/local/www/vpn_ipsec_mobile.php:474
msgid "Allow clients to save Xauth passwords (Cisco VPN client only)."
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:450
#: usr/local/www/vpn_ipsec_mobile.php:475
+#: usr/local/www/vpn_ipsec_mobile.php:475
msgid ""
"NOTE: With iPhone clients, this does not work when deployed via the iPhone "
"configuration utility, only by manual entry."
@@ -19993,6 +24272,10 @@ msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:482
#: usr/local/www/vpn_openvpn_csc.php:432
#: usr/local/www/vpn_openvpn_server.php:1378
+#: usr/local/www/vpn_openvpn_server.php:1430
+#: usr/local/www/vpn_openvpn_csc.php:432
+#: usr/local/www/vpn_ipsec_mobile.php:482
+#: usr/local/www/vpn_openvpn_server.php:1430
msgid "DNS Default Domain"
msgstr ""
@@ -20003,6 +24286,10 @@ msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:491
#: usr/local/www/vpn_openvpn_csc.php:442
#: usr/local/www/vpn_openvpn_server.php:1388
+#: usr/local/www/vpn_openvpn_server.php:1440
+#: usr/local/www/vpn_openvpn_csc.php:442
+#: usr/local/www/vpn_ipsec_mobile.php:491
+#: usr/local/www/vpn_openvpn_server.php:1440
msgid "Provide a default domain name to clients"
msgstr ""
@@ -20013,6 +24300,10 @@ msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:529
#: usr/local/www/vpn_openvpn_csc.php:457
#: usr/local/www/vpn_openvpn_server.php:1403
+#: usr/local/www/vpn_openvpn_server.php:1455
+#: usr/local/www/vpn_openvpn_csc.php:457
+#: usr/local/www/vpn_ipsec_mobile.php:529
+#: usr/local/www/vpn_openvpn_server.php:1455
msgid "DNS Servers"
msgstr ""
@@ -20023,6 +24314,10 @@ msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:538
#: usr/local/www/vpn_openvpn_csc.php:467
#: usr/local/www/vpn_openvpn_server.php:1413
+#: usr/local/www/vpn_openvpn_server.php:1465
+#: usr/local/www/vpn_openvpn_csc.php:467
+#: usr/local/www/vpn_ipsec_mobile.php:538
+#: usr/local/www/vpn_openvpn_server.php:1465
msgid "Provide a DNS server list to clients"
msgstr ""
@@ -20033,6 +24328,10 @@ msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:571
#: usr/local/www/vpn_openvpn_csc.php:605
#: usr/local/www/vpn_openvpn_server.php:1551
+#: usr/local/www/vpn_openvpn_server.php:1603
+#: usr/local/www/vpn_openvpn_csc.php:605
+#: usr/local/www/vpn_ipsec_mobile.php:571
+#: usr/local/www/vpn_openvpn_server.php:1603
msgid "WINS Servers"
msgstr ""
@@ -20043,16 +24342,22 @@ msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:580
#: usr/local/www/vpn_openvpn_csc.php:615
#: usr/local/www/vpn_openvpn_server.php:1561
+#: usr/local/www/vpn_openvpn_server.php:1613
+#: usr/local/www/vpn_openvpn_csc.php:615
+#: usr/local/www/vpn_ipsec_mobile.php:580
+#: usr/local/www/vpn_openvpn_server.php:1613
msgid "Provide a WINS server list to clients"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:552
#: usr/local/www/vpn_ipsec_mobile.php:601
+#: usr/local/www/vpn_ipsec_mobile.php:601
msgid "Phase2 PFS Group"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:561
#: usr/local/www/vpn_ipsec_mobile.php:610
+#: usr/local/www/vpn_ipsec_mobile.php:610
msgid ""
"Provide the Phase2 PFS group to clients ( overrides all mobile phase2 "
"settings )"
@@ -20060,6 +24365,7 @@ msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:568
#: usr/local/www/system_groupmanager.php:71
+#: usr/local/www/vpn_ipsec_mobile.php:617
#: usr/local/www/system_groupmanager.php:71
#: usr/local/www/vpn_ipsec_mobile.php:617
msgid "Group"
@@ -20067,51 +24373,66 @@ msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:582
#: usr/local/www/vpn_ipsec_mobile.php:631
+#: usr/local/www/vpn_ipsec_mobile.php:631
msgid "Login Banner"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:591
#: usr/local/www/vpn_ipsec_mobile.php:640
+#: usr/local/www/vpn_ipsec_mobile.php:640
msgid "Provide a login banner to clients"
msgstr ""
-#: usr/local/www/interfaces_lagg.php:70 usr/local/www/interfaces_lagg.php:70
+#: usr/local/www/interfaces_lagg.php:70 usr/local/www/interfaces_lagg.php:74
+#: usr/local/www/interfaces_lagg.php:74
msgid "This LAGG interface cannot be deleted because it is still being used."
msgstr ""
#: usr/local/www/interfaces_lagg.php:140 usr/local/www/interfaces_lagg.php:141
+#: usr/local/www/interfaces_lagg.php:145 usr/local/www/interfaces_lagg.php:145
msgid ""
"LAGG allows for link aggregation, bonding and fault tolerance. Only "
"unassigned interfaces can be added to LAGG."
msgstr ""
#: usr/local/www/interfaces_lagg_edit.php:86
-#: usr/local/www/interfaces_lagg_edit.php:86
+#: usr/local/www/interfaces_lagg_edit.php:88
+#: usr/local/www/interfaces_lagg_edit.php:88
msgid "Lagg protocol"
msgstr ""
#: usr/local/www/interfaces_lagg_edit.php:131
#: usr/local/www/interfaces_lagg_edit.php:132
+#: usr/local/www/interfaces_lagg_edit.php:145
+#: usr/local/www/interfaces_lagg_edit.php:145
msgid "LAGG configuration"
msgstr ""
#: usr/local/www/interfaces_lagg_edit.php:149
#: usr/local/www/interfaces_lagg_edit.php:150
+#: usr/local/www/interfaces_lagg_edit.php:163
+#: usr/local/www/interfaces_lagg_edit.php:163
msgid "Choose the members that will be used for the link aggregation"
msgstr ""
#: usr/local/www/interfaces_lagg_edit.php:152
#: usr/local/www/interfaces_lagg_edit.php:153
+#: usr/local/www/interfaces_lagg_edit.php:166
+#: usr/local/www/interfaces_lagg_edit.php:166
msgid "Lag proto"
msgstr ""
#: usr/local/www/interfaces_lagg_edit.php:168
#: usr/local/www/interfaces_lagg_edit.php:169
+#: usr/local/www/interfaces_lagg_edit.php:182
+#: usr/local/www/interfaces_lagg_edit.php:182
msgid "failover"
msgstr ""
#: usr/local/www/interfaces_lagg_edit.php:169
#: usr/local/www/interfaces_lagg_edit.php:170
+#: usr/local/www/interfaces_lagg_edit.php:183
+#: usr/local/www/interfaces_lagg_edit.php:183
msgid ""
"Sends and receives traffic only through the master port. If the master port "
"becomes unavailable, the next active port is used. The first interface "
@@ -20121,11 +24442,15 @@ msgstr ""
#: usr/local/www/interfaces_lagg_edit.php:174
#: usr/local/www/interfaces_lagg_edit.php:175
+#: usr/local/www/interfaces_lagg_edit.php:188
+#: usr/local/www/interfaces_lagg_edit.php:188
msgid "fec"
msgstr ""
#: usr/local/www/interfaces_lagg_edit.php:174
#: usr/local/www/interfaces_lagg_edit.php:175
+#: usr/local/www/interfaces_lagg_edit.php:188
+#: usr/local/www/interfaces_lagg_edit.php:188
msgid ""
"Supports Cisco EtherChannel. This is a static setup and does not negotiate "
"aggregation with the peer or exchange frames to monitor the link."
@@ -20133,11 +24458,15 @@ msgstr ""
#: usr/local/www/interfaces_lagg_edit.php:178
#: usr/local/www/interfaces_lagg_edit.php:179
+#: usr/local/www/interfaces_lagg_edit.php:192
+#: usr/local/www/interfaces_lagg_edit.php:192
msgid "lacp"
msgstr ""
#: usr/local/www/interfaces_lagg_edit.php:178
#: usr/local/www/interfaces_lagg_edit.php:179
+#: usr/local/www/interfaces_lagg_edit.php:192
+#: usr/local/www/interfaces_lagg_edit.php:192
msgid ""
"Supports the IEEE 802.3ad Link Aggregation Control Protocol (LACP) and the "
"Marker Protocol. LACP will negotiate a set of aggregable links with the "
@@ -20151,11 +24480,15 @@ msgstr ""
#: usr/local/www/interfaces_lagg_edit.php:189
#: usr/local/www/interfaces_lagg_edit.php:190
+#: usr/local/www/interfaces_lagg_edit.php:203
+#: usr/local/www/interfaces_lagg_edit.php:203
msgid "loadbalance"
msgstr ""
#: usr/local/www/interfaces_lagg_edit.php:189
#: usr/local/www/interfaces_lagg_edit.php:190
+#: usr/local/www/interfaces_lagg_edit.php:203
+#: usr/local/www/interfaces_lagg_edit.php:203
msgid ""
"Balances outgoing traffic across the active ports based on hashed protocol "
"header information and accepts incoming traffic from any active port. This "
@@ -20167,11 +24500,15 @@ msgstr ""
#: usr/local/www/interfaces_lagg_edit.php:197
#: usr/local/www/interfaces_lagg_edit.php:198
+#: usr/local/www/interfaces_lagg_edit.php:211
+#: usr/local/www/interfaces_lagg_edit.php:211
msgid "roundrobin"
msgstr ""
#: usr/local/www/interfaces_lagg_edit.php:197
#: usr/local/www/interfaces_lagg_edit.php:198
+#: usr/local/www/interfaces_lagg_edit.php:211
+#: usr/local/www/interfaces_lagg_edit.php:211
msgid ""
"Distributes outgoing traffic using a round-robin scheduler through all "
"active ports and accepts incoming traffic from any active port"
@@ -20179,6 +24516,8 @@ msgstr ""
#: usr/local/www/interfaces_lagg_edit.php:201
#: usr/local/www/interfaces_lagg_edit.php:202
+#: usr/local/www/interfaces_lagg_edit.php:215
+#: usr/local/www/interfaces_lagg_edit.php:215
msgid ""
"This protocol is intended to do nothing: it disables any traffic without "
"disabling the lagg interface itself"
@@ -20195,10 +24534,12 @@ msgid "Interfaces: PPPs"
msgstr ""
#: usr/local/www/interfaces_ppps.php:109 usr/local/www/interfaces_ppps.php:110
+#: usr/local/www/interfaces_ppps.php:110
msgid "Interface(s)/Port(s)"
msgstr ""
#: usr/local/www/interfaces_ppps.php:132 usr/local/www/interfaces_ppps.php:133
+#: usr/local/www/interfaces_ppps.php:133
msgid "Do you really want to delete this PPP interface?"
msgstr ""
@@ -20207,11 +24548,15 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:191
#: usr/local/www/interfaces_ppps_edit.php:199
#: usr/local/www/interfaces_ppps_edit.php:202
-#: usr/local/www/interfaces_ppps_edit.php:182
+#: usr/local/www/interfaces_ppps_edit.php:194
+#: usr/local/www/interfaces_ppps_edit.php:197
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
#: usr/local/www/interfaces_ppps_edit.php:188
-#: usr/local/www/interfaces_ppps_edit.php:191
-#: usr/local/www/interfaces_ppps_edit.php:199
-#: usr/local/www/interfaces_ppps_edit.php:202
+#: usr/local/www/interfaces_ppps_edit.php:194
+#: usr/local/www/interfaces_ppps_edit.php:197
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
msgid "Link Interface(s)"
msgstr ""
@@ -20219,80 +24564,96 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:202
#: usr/local/www/services_dhcp.php:587 usr/local/www/services_dhcpv6.php:522
#: usr/local/www/services_dhcp.php:600 usr/local/www/services_dhcpv6.php:596
-#: usr/local/www/interfaces_ppps_edit.php:199
-#: usr/local/www/interfaces_ppps_edit.php:202
#: usr/local/www/services_dhcp.php:710 usr/local/www/services_dhcpv6.php:527
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
+#: usr/local/www/services_dhcp.php:720 usr/local/www/services_dhcpv6.php:542
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
+#: usr/local/www/services_dhcp.php:740 usr/local/www/services_dhcpv6.php:542
msgid "Subnet"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:207
-#: usr/local/www/interfaces_ppps_edit.php:207
+#: usr/local/www/interfaces_ppps_edit.php:213
+#: usr/local/www/interfaces_ppps_edit.php:213
msgid "Please choose a Link Type."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:211
-#: usr/local/www/interfaces_ppps_edit.php:211
+#: usr/local/www/interfaces_ppps_edit.php:217
+#: usr/local/www/interfaces_ppps_edit.php:217
msgid ""
"Multilink connections (MLPPP) using the PPP link type is not currently "
"supported. Please select only one Link Interface."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:213
-#: usr/local/www/interfaces_ppps_edit.php:213
+#: usr/local/www/interfaces_ppps_edit.php:219
+#: usr/local/www/interfaces_ppps_edit.php:219
msgid "The Service name contains invalid characters."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:215
-#: usr/local/www/interfaces_ppps_edit.php:215
+#: usr/local/www/interfaces_ppps_edit.php:221
+#: usr/local/www/interfaces_ppps_edit.php:221
msgid "Do not specify both a Service name and a NULL Service name."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:229
-#: usr/local/www/interfaces_ppps_edit.php:229
+#: usr/local/www/interfaces_ppps_edit.php:235
+#: usr/local/www/interfaces_ppps_edit.php:235
msgid ""
"A valid PPPoE reset month must be specified (1-12) in the Custom PPPoE "
"Periodic reset fields."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:231
-#: usr/local/www/interfaces_ppps_edit.php:231
+#: usr/local/www/interfaces_ppps_edit.php:237
+#: usr/local/www/interfaces_ppps_edit.php:237
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 ""
#: usr/local/www/interfaces_ppps_edit.php:233
-#: usr/local/www/interfaces_ppps_edit.php:233
+#: usr/local/www/interfaces_ppps_edit.php:239
+#: usr/local/www/interfaces_ppps_edit.php:239
msgid ""
"A valid PPPoE reset year must be specified. Don't select a year in the past!"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:238
-#: usr/local/www/interfaces_ppps_edit.php:238
+#: usr/local/www/interfaces_ppps_edit.php:244
+#: usr/local/www/interfaces_ppps_edit.php:244
#, php-format
msgid "A valid local IP address must be specified for %s."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:240
-#: usr/local/www/interfaces_ppps_edit.php:240
+#: usr/local/www/interfaces_ppps_edit.php:246
+#: usr/local/www/interfaces_ppps_edit.php:246
#, php-format
msgid "A valid gateway IP address OR hostname must be specified for %s."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:242
-#: usr/local/www/interfaces_ppps_edit.php:242
+#: usr/local/www/interfaces_ppps_edit.php:248
+#: usr/local/www/interfaces_ppps_edit.php:248
#, php-format
msgid "The bandwidth value for %s must be an integer."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:244
-#: usr/local/www/interfaces_ppps_edit.php:244
+#: usr/local/www/interfaces_ppps_edit.php:250
+#: usr/local/www/interfaces_ppps_edit.php:250
#, php-format
msgid "The MTU for %s must be greater than 576 bytes."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:246
-#: usr/local/www/interfaces_ppps_edit.php:246
+#: usr/local/www/interfaces_ppps_edit.php:252
+#: usr/local/www/interfaces_ppps_edit.php:252
#, php-format
msgid "The MRU for %s must be greater than 576 bytes."
msgstr ""
@@ -20301,31 +24662,45 @@ msgstr ""
#: usr/local/www/system_authservers.php:577
#: usr/local/www/interfaces_ppps_edit.php:382
#: usr/local/www/system_authservers.php:582
+#: usr/local/www/interfaces_ppps_edit.php:388
+#: usr/local/www/system_authservers.php:589
+#: usr/local/www/interfaces_ppps_edit.php:388
+#: usr/local/www/system_authservers.php:589
msgid "Select"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:398
#: usr/local/www/interfaces_ppps_edit.php:399
+#: usr/local/www/interfaces_ppps_edit.php:405
+#: usr/local/www/interfaces_ppps_edit.php:405
msgid "PPPs configuration"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:401
#: usr/local/www/interfaces_ppps_edit.php:402
+#: usr/local/www/interfaces_ppps_edit.php:408
+#: usr/local/www/interfaces_ppps_edit.php:408
msgid "Link Type"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:416
#: usr/local/www/interfaces_ppps_edit.php:417
+#: usr/local/www/interfaces_ppps_edit.php:423
+#: usr/local/www/interfaces_ppps_edit.php:423
msgid "Link interface(s)"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:422
#: usr/local/www/interfaces_ppps_edit.php:423
+#: usr/local/www/interfaces_ppps_edit.php:429
+#: usr/local/www/interfaces_ppps_edit.php:429
msgid "Select at least two interfaces for Multilink (MLPPP) connections."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:470
#: usr/local/www/interfaces_ppps_edit.php:471
+#: usr/local/www/interfaces_ppps_edit.php:477
+#: usr/local/www/interfaces_ppps_edit.php:477
msgid ""
"You may enter a description here for your reference. Description will appear "
"in the \"Interfaces Assign\" select lists."
@@ -20333,32 +24708,44 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:526
#: usr/local/www/interfaces_ppps_edit.php:527
+#: usr/local/www/interfaces_ppps_edit.php:533
+#: usr/local/www/interfaces_ppps_edit.php:533
msgid "Note: Typically *99# for GSM networks and #777 for CDMA networks"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:540
#: usr/local/www/interfaces_ppps_edit.php:541
+#: usr/local/www/interfaces_ppps_edit.php:547
+#: usr/local/www/interfaces_ppps_edit.php:547
msgid "APN number (optional)"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:543
#: usr/local/www/interfaces_ppps_edit.php:544
+#: usr/local/www/interfaces_ppps_edit.php:550
+#: usr/local/www/interfaces_ppps_edit.php:550
msgid ""
"Note: Defaults to 1 if you set APN above. Ignored if you set no APN above."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:547
#: usr/local/www/interfaces_ppps_edit.php:548
+#: usr/local/www/interfaces_ppps_edit.php:554
+#: usr/local/www/interfaces_ppps_edit.php:554
msgid "SIM PIN"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:554
#: usr/local/www/interfaces_ppps_edit.php:555
+#: usr/local/www/interfaces_ppps_edit.php:561
+#: usr/local/www/interfaces_ppps_edit.php:561
msgid "SIM PIN wait"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:557
#: usr/local/www/interfaces_ppps_edit.php:558
+#: usr/local/www/interfaces_ppps_edit.php:564
+#: usr/local/www/interfaces_ppps_edit.php:564
msgid ""
"Note: Time to wait for SIM to discover network after PIN is sent to SIM "
"(seconds)."
@@ -20366,11 +24753,15 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:561
#: usr/local/www/interfaces_ppps_edit.php:562
+#: usr/local/www/interfaces_ppps_edit.php:568
+#: usr/local/www/interfaces_ppps_edit.php:568
msgid "Init String"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:564
#: usr/local/www/interfaces_ppps_edit.php:565
+#: usr/local/www/interfaces_ppps_edit.php:571
+#: usr/local/www/interfaces_ppps_edit.php:571
msgid ""
"Note: 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 "
@@ -20379,11 +24770,15 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:569
#: usr/local/www/interfaces_ppps_edit.php:570
+#: usr/local/www/interfaces_ppps_edit.php:576
+#: usr/local/www/interfaces_ppps_edit.php:576
msgid "Connection Timeout"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:572
#: usr/local/www/interfaces_ppps_edit.php:573
+#: usr/local/www/interfaces_ppps_edit.php:579
+#: usr/local/www/interfaces_ppps_edit.php:579
msgid ""
"Note: Enter timeout in seconds for connection to be established (sec.) "
"Default is 45 sec."
@@ -20391,16 +24786,22 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:576
#: usr/local/www/interfaces_ppps_edit.php:577
+#: usr/local/www/interfaces_ppps_edit.php:583
+#: usr/local/www/interfaces_ppps_edit.php:583
msgid "Uptime Logging"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:578
#: usr/local/www/interfaces_ppps_edit.php:579
+#: usr/local/www/interfaces_ppps_edit.php:585
+#: usr/local/www/interfaces_ppps_edit.php:585
msgid "Enable persistent logging of connection uptime."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:579
#: usr/local/www/interfaces_ppps_edit.php:580
+#: usr/local/www/interfaces_ppps_edit.php:586
+#: usr/local/www/interfaces_ppps_edit.php:586
msgid ""
"This option causes cumulative uptime to be recorded and displayed on the "
"Status Interfaces page."
@@ -20408,11 +24809,15 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:591
#: usr/local/www/interfaces_ppps_edit.php:592
+#: usr/local/www/interfaces_ppps_edit.php:598
+#: usr/local/www/interfaces_ppps_edit.php:598
msgid "Configure a NULL Service name"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:592
#: usr/local/www/interfaces_ppps_edit.php:593
+#: usr/local/www/interfaces_ppps_edit.php:599
+#: usr/local/www/interfaces_ppps_edit.php:599
msgid ""
"Hint: this field can usually be left empty. Service name will not be "
"configured if this field is empty. Check the \"Configure NULL\" box to "
@@ -20422,27 +24827,38 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:652 usr/local/www/vpn_pppoe.php:102
#: usr/local/www/diag_ipsec.php:91 usr/local/www/diag_ipsec.php:102
#: usr/local/www/vpn_pppoe.php:103 usr/local/www/diag_ipsec.php:103
-#: usr/local/www/interfaces_ppps_edit.php:653
+#: usr/local/www/interfaces_ppps_edit.php:653 usr/local/www/vpn_pppoe.php:104
+#: usr/local/www/interfaces_ppps_edit.php:659 usr/local/www/diag_ipsec.php:105
+#: usr/local/www/vpn_pppoe.php:104 usr/local/www/interfaces_ppps_edit.php:659
+#: usr/local/www/diag_ipsec.php:105
msgid "Local IP"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:667
#: usr/local/www/interfaces_ppps_edit.php:668
+#: usr/local/www/interfaces_ppps_edit.php:674
+#: usr/local/www/interfaces_ppps_edit.php:674
msgid "IP Address OR Hostname"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:678
#: usr/local/www/interfaces_ppps_edit.php:679
+#: usr/local/www/interfaces_ppps_edit.php:685
+#: usr/local/www/interfaces_ppps_edit.php:685
msgid "Dial On Demand"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:680
#: usr/local/www/interfaces_ppps_edit.php:681
+#: usr/local/www/interfaces_ppps_edit.php:687
+#: usr/local/www/interfaces_ppps_edit.php:687
msgid "Enable Dial-on-Demand mode"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:681
#: usr/local/www/interfaces_ppps_edit.php:682
+#: usr/local/www/interfaces_ppps_edit.php:688
+#: usr/local/www/interfaces_ppps_edit.php:688
msgid ""
"This option causes the interface to operate in dial-on-demand mode. Do NOT "
"enable if you want your link to be always up. The interface is configured, "
@@ -20452,16 +24868,22 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:686
#: usr/local/www/interfaces_ppps_edit.php:687
+#: usr/local/www/interfaces_ppps_edit.php:693
+#: usr/local/www/interfaces_ppps_edit.php:693
msgid "Idle Timeout"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:688
#: usr/local/www/interfaces_ppps_edit.php:689
+#: usr/local/www/interfaces_ppps_edit.php:695
+#: usr/local/www/interfaces_ppps_edit.php:695
msgid "(seconds) Default is 0, which disables the timeout feature."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:689
#: usr/local/www/interfaces_ppps_edit.php:690
+#: usr/local/www/interfaces_ppps_edit.php:696
+#: usr/local/www/interfaces_ppps_edit.php:696
msgid ""
"If no incoming or outgoing packets are transmitted for the entered number of "
"seconds the connection is brought down."
@@ -20469,6 +24891,8 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:690
#: usr/local/www/interfaces_ppps_edit.php:691
+#: usr/local/www/interfaces_ppps_edit.php:697
+#: usr/local/www/interfaces_ppps_edit.php:697
msgid ""
"When the idle timeout occurs, if the dial-on-demand option is enabled, mpd "
"goes back into dial-on-demand mode. Otherwise, the interface is brought down "
@@ -20483,16 +24907,26 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:695
#: usr/local/www/vpn_openvpn_server.php:1261
#: usr/local/www/vpn_openvpn_client.php:838
+#: usr/local/www/vpn_openvpn_client.php:857
+#: usr/local/www/interfaces_ppps_edit.php:701
+#: usr/local/www/vpn_openvpn_server.php:1288
+#: usr/local/www/vpn_openvpn_client.php:857
+#: usr/local/www/interfaces_ppps_edit.php:701
+#: usr/local/www/vpn_openvpn_server.php:1288
msgid "Compression"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:696
#: usr/local/www/interfaces_ppps_edit.php:697
+#: usr/local/www/interfaces_ppps_edit.php:703
+#: usr/local/www/interfaces_ppps_edit.php:703
msgid "Disable vjcomp(compression) (auto-negotiated by default)."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:697
#: usr/local/www/interfaces_ppps_edit.php:698
+#: usr/local/www/interfaces_ppps_edit.php:704
+#: usr/local/www/interfaces_ppps_edit.php:704
msgid ""
"This option enables Van Jacobson TCP header compression, which saves several "
"bytes per TCP data packet. You almost always want this option. This "
@@ -20503,16 +24937,22 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:703
#: usr/local/www/interfaces_ppps_edit.php:704
+#: usr/local/www/interfaces_ppps_edit.php:710
+#: usr/local/www/interfaces_ppps_edit.php:710
msgid "TCPmssFix"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:705
#: usr/local/www/interfaces_ppps_edit.php:706
+#: usr/local/www/interfaces_ppps_edit.php:712
+#: usr/local/www/interfaces_ppps_edit.php:712
msgid "Disable tcpmssfix (enabled by default)."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:706
#: usr/local/www/interfaces_ppps_edit.php:707
+#: usr/local/www/interfaces_ppps_edit.php:713
+#: usr/local/www/interfaces_ppps_edit.php:713
msgid ""
"This option causes mpd to adjust incoming and outgoing TCP SYN segments so "
"that the requested maximum segment size is not greater than the amount "
@@ -20529,16 +24969,22 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:714
#: usr/local/www/interfaces_ppps_edit.php:715
+#: usr/local/www/interfaces_ppps_edit.php:721
+#: usr/local/www/interfaces_ppps_edit.php:721
msgid "ShortSeq"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:716
#: usr/local/www/interfaces_ppps_edit.php:717
+#: usr/local/www/interfaces_ppps_edit.php:723
+#: usr/local/www/interfaces_ppps_edit.php:723
msgid "Disable shortseq (auto-negotiated by default)."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:717
#: usr/local/www/interfaces_ppps_edit.php:718
+#: usr/local/www/interfaces_ppps_edit.php:724
+#: usr/local/www/interfaces_ppps_edit.php:724
msgid ""
"This option is only meaningful if multi-link PPP is negotiated. It "
"proscribes shorter multi-link fragment headers, saving two bytes on every "
@@ -20548,16 +24994,22 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:722
#: usr/local/www/interfaces_ppps_edit.php:723
+#: usr/local/www/interfaces_ppps_edit.php:729
+#: usr/local/www/interfaces_ppps_edit.php:729
msgid "ACFComp"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:724
#: usr/local/www/interfaces_ppps_edit.php:725
+#: usr/local/www/interfaces_ppps_edit.php:731
+#: usr/local/www/interfaces_ppps_edit.php:731
msgid "Disable acfcomp (compression) (auto-negotiated by default)."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:725
#: usr/local/www/interfaces_ppps_edit.php:726
+#: usr/local/www/interfaces_ppps_edit.php:732
+#: usr/local/www/interfaces_ppps_edit.php:732
msgid ""
"Address and control field compression. This option only applies to "
"asynchronous link types. It saves two bytes per frame."
@@ -20565,16 +25017,22 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:729
#: usr/local/www/interfaces_ppps_edit.php:730
+#: usr/local/www/interfaces_ppps_edit.php:736
+#: usr/local/www/interfaces_ppps_edit.php:736
msgid "ProtoComp"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:731
#: usr/local/www/interfaces_ppps_edit.php:732
+#: usr/local/www/interfaces_ppps_edit.php:738
+#: usr/local/www/interfaces_ppps_edit.php:738
msgid "Disable protocomp (compression) (auto-negotiated by default)."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:732
#: usr/local/www/interfaces_ppps_edit.php:733
+#: usr/local/www/interfaces_ppps_edit.php:739
+#: usr/local/www/interfaces_ppps_edit.php:739
msgid ""
"Protocol field compression. This option saves one byte per frame for most "
"frames."
@@ -20582,22 +25040,30 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:746
#: usr/local/www/interfaces_ppps_edit.php:747
+#: usr/local/www/interfaces_ppps_edit.php:753
+#: usr/local/www/interfaces_ppps_edit.php:753
msgid "Link Parameters"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:753
#: usr/local/www/interfaces_ppps_edit.php:754
+#: usr/local/www/interfaces_ppps_edit.php:760
+#: usr/local/www/interfaces_ppps_edit.php:760
msgid ""
"Set ONLY for MLPPP connections and ONLY when links have different bandwidths."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:760
#: usr/local/www/interfaces_ppps_edit.php:761
+#: usr/local/www/interfaces_ppps_edit.php:767
+#: usr/local/www/interfaces_ppps_edit.php:767
msgid "MTU will default to 1492."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:764
#: usr/local/www/interfaces_ppps_edit.php:765
+#: usr/local/www/interfaces_ppps_edit.php:771
+#: usr/local/www/interfaces_ppps_edit.php:771
msgid "MRU"
msgstr ""
@@ -20605,47 +25071,61 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:774
#: usr/local/www/interfaces_ppps_edit.php:768
#: usr/local/www/interfaces_ppps_edit.php:775
+#: usr/local/www/interfaces_ppps_edit.php:781
+#: usr/local/www/interfaces_ppps_edit.php:774
+#: usr/local/www/interfaces_ppps_edit.php:781
msgid "will be auto-negotiated by default."
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:771
#: usr/local/www/interfaces_ppps_edit.php:772
+#: usr/local/www/interfaces_ppps_edit.php:778
+#: usr/local/www/interfaces_ppps_edit.php:778
msgid "MRRU"
msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:774
#: usr/local/www/interfaces_ppps_edit.php:775
+#: usr/local/www/interfaces_ppps_edit.php:781
+#: usr/local/www/interfaces_ppps_edit.php:781
msgid "Set ONLY for MLPPP connections."
msgstr ""
-#: usr/local/www/interfaces_qinq.php:64 usr/local/www/interfaces_qinq.php:64
+#: usr/local/www/interfaces_qinq.php:64 usr/local/www/interfaces_qinq.php:66
+#: usr/local/www/interfaces_qinq.php:66
msgid ""
"This QinQ cannot be deleted because it is still being used as an interface."
msgstr ""
#: usr/local/www/interfaces_qinq.php:86
#: usr/local/www/interfaces_qinq_edit.php:39
+#: usr/local/www/interfaces_qinq.php:89 usr/local/www/interfaces_qinq.php:89
#: usr/local/www/interfaces_qinq_edit.php:39
-#: usr/local/www/interfaces_qinq.php:86
msgid "QinQ"
msgstr ""
#: usr/local/www/interfaces_qinq.php:117
#: usr/local/www/interfaces_qinq_edit.php:356
#: usr/local/www/interfaces_qinq_edit.php:357
-#: usr/local/www/interfaces_qinq.php:118
+#: usr/local/www/interfaces_qinq.php:118 usr/local/www/interfaces_qinq.php:121
+#: usr/local/www/interfaces_qinq_edit.php:360
+#: usr/local/www/interfaces_qinq.php:121
+#: usr/local/www/interfaces_qinq_edit.php:360
msgid "Tag"
msgstr ""
#: usr/local/www/interfaces_qinq.php:118 usr/local/www/interfaces_qinq.php:119
+#: usr/local/www/interfaces_qinq.php:122 usr/local/www/interfaces_qinq.php:122
msgid "QinQ members"
msgstr ""
#: usr/local/www/interfaces_qinq.php:142 usr/local/www/interfaces_qinq.php:143
+#: usr/local/www/interfaces_qinq.php:146 usr/local/www/interfaces_qinq.php:146
msgid "Do you really want to delete this QinQ?"
msgstr ""
#: usr/local/www/interfaces_qinq.php:153 usr/local/www/interfaces_qinq.php:154
+#: usr/local/www/interfaces_qinq.php:157 usr/local/www/interfaces_qinq.php:157
#, php-format
msgid ""
"Not all drivers/NICs support 802.1Q QinQ tagging properly. On cards that do "
@@ -20655,11 +25135,13 @@ msgstr ""
#: usr/local/www/interfaces_qinq_edit.php:84
#: usr/local/www/interfaces_qinq_edit.php:85
+#: usr/local/www/interfaces_qinq_edit.php:85
msgid "First level tag cannot be empty."
msgstr ""
#: usr/local/www/interfaces_qinq_edit.php:86
#: usr/local/www/interfaces_qinq_edit.php:87
+#: usr/local/www/interfaces_qinq_edit.php:87
msgid ""
"You are editing an existing entry and modifying the first level tag is not "
"allowed."
@@ -20667,17 +25149,20 @@ msgstr ""
#: usr/local/www/interfaces_qinq_edit.php:88
#: usr/local/www/interfaces_qinq_edit.php:89
+#: usr/local/www/interfaces_qinq_edit.php:89
msgid ""
"You are editing an existing entry and modifying the interface is not allowed."
msgstr ""
#: usr/local/www/interfaces_qinq_edit.php:92
#: usr/local/www/interfaces_qinq_edit.php:93
+#: usr/local/www/interfaces_qinq_edit.php:93
msgid "QinQ level already exists for this interface, edit it!"
msgstr ""
#: usr/local/www/interfaces_qinq_edit.php:96
#: usr/local/www/interfaces_qinq_edit.php:97
+#: usr/local/www/interfaces_qinq_edit.php:97
msgid ""
"A normal VLAN exists with this tag please remove it to use this tag for QinQ "
"first level."
@@ -20687,41 +25172,57 @@ msgstr ""
#: usr/local/www/interfaces_qinq_edit.php:133
#: usr/local/www/interfaces_qinq_edit.php:124
#: usr/local/www/interfaces_qinq_edit.php:134
+#: usr/local/www/interfaces_qinq_edit.php:124
+#: usr/local/www/interfaces_qinq_edit.php:134
msgid "Tags can contain only numbers or a range in format #-#."
msgstr ""
#: usr/local/www/interfaces_qinq_edit.php:193
#: usr/local/www/interfaces_qinq_edit.php:194
+#: usr/local/www/interfaces_qinq_edit.php:197
+#: usr/local/www/interfaces_qinq_edit.php:197
msgid "QinQ VLANs group"
msgstr ""
#: usr/local/www/interfaces_qinq_edit.php:269
#: usr/local/www/interfaces_qinq_edit.php:270
+#: usr/local/www/interfaces_qinq_edit.php:273
+#: usr/local/www/interfaces_qinq_edit.php:273
msgid "members"
msgstr ""
#: usr/local/www/interfaces_qinq_edit.php:273
#: usr/local/www/interfaces_qinq_edit.php:274
+#: usr/local/www/interfaces_qinq_edit.php:277
+#: usr/local/www/interfaces_qinq_edit.php:277
msgid "detail"
msgstr ""
#: usr/local/www/interfaces_qinq_edit.php:285
#: usr/local/www/interfaces_qinq_edit.php:286
+#: usr/local/www/interfaces_qinq_edit.php:289
+#: usr/local/www/interfaces_qinq_edit.php:289
msgid "Interface QinQ Edit"
msgstr ""
#: usr/local/www/interfaces_qinq_edit.php:305
#: usr/local/www/interfaces_qinq_edit.php:306
+#: usr/local/www/interfaces_qinq_edit.php:309
+#: usr/local/www/interfaces_qinq_edit.php:309
msgid "Only QinQ capable interfaces will be shown."
msgstr ""
#: usr/local/www/interfaces_qinq_edit.php:308
#: usr/local/www/interfaces_qinq_edit.php:309
+#: usr/local/www/interfaces_qinq_edit.php:312
+#: usr/local/www/interfaces_qinq_edit.php:312
msgid "First level tag"
msgstr ""
#: usr/local/www/interfaces_qinq_edit.php:313
#: usr/local/www/interfaces_qinq_edit.php:314
+#: usr/local/www/interfaces_qinq_edit.php:317
+#: usr/local/www/interfaces_qinq_edit.php:317
msgid ""
"This is the first level VLAN tag. On top of this are stacked the member "
"VLANs defined below."
@@ -20729,30 +25230,39 @@ msgstr ""
#: usr/local/www/interfaces_qinq_edit.php:333
#: usr/local/www/interfaces_qinq_edit.php:334
+#: usr/local/www/interfaces_qinq_edit.php:337
+#: usr/local/www/interfaces_qinq_edit.php:337
msgid ""
"Adds interface to QinQ interface groups so you can write filter rules easily."
msgstr ""
#: usr/local/www/interfaces_qinq_edit.php:350
#: usr/local/www/interfaces_qinq_edit.php:351
+#: usr/local/www/interfaces_qinq_edit.php:354
+#: usr/local/www/interfaces_qinq_edit.php:354
msgid ""
"You can specify ranges in the input below. The format is pretty simple i.e "
"9-100 or 10.20..."
msgstr ""
#: usr/local/www/interfaces_wireless.php:63
-#: usr/local/www/interfaces_wireless.php:63
+#: usr/local/www/interfaces_wireless.php:65
+#: usr/local/www/interfaces_wireless.php:65
msgid ""
"This wireless clone cannot be deleted because it is assigned as an interface."
msgstr ""
#: usr/local/www/interfaces_wireless.php:124
#: usr/local/www/interfaces_wireless.php:125
+#: usr/local/www/interfaces_wireless.php:127
+#: usr/local/www/interfaces_wireless.php:127
msgid "Do you really want to delete this wireless clone?"
msgstr ""
#: usr/local/www/interfaces_wireless.php:135
#: usr/local/www/interfaces_wireless.php:136
+#: usr/local/www/interfaces_wireless.php:138
+#: usr/local/www/interfaces_wireless.php:138
msgid ""
"Here you can configure clones of wireless interfaces, which can be assigned "
"as separate independent interfaces. Only available on wireless chipsets that "
@@ -20761,20 +25271,23 @@ msgid ""
msgstr ""
#: usr/local/www/interfaces_wireless_edit.php:116
-#: usr/local/www/interfaces_wireless_edit.php:116
+#: usr/local/www/interfaces_wireless_edit.php:118
+#: usr/local/www/interfaces_wireless_edit.php:118
msgid ""
"This wireless clone cannot be modified because it is still assigned as an "
"interface."
msgstr ""
#: usr/local/www/interfaces_wireless_edit.php:118
-#: usr/local/www/interfaces_wireless_edit.php:118
+#: usr/local/www/interfaces_wireless_edit.php:120
+#: usr/local/www/interfaces_wireless_edit.php:120
msgid ""
"Use the configuration page for the assigned interface to change the mode."
msgstr ""
#: usr/local/www/interfaces_wireless_edit.php:123
-#: usr/local/www/interfaces_wireless_edit.php:123
+#: usr/local/www/interfaces_wireless_edit.php:125
+#: usr/local/www/interfaces_wireless_edit.php:125
#, php-format
msgid ""
"Error creating interface with mode %1$s. The %2$s interface may not support "
@@ -20782,18 +25295,21 @@ msgid ""
msgstr ""
#: usr/local/www/interfaces_wireless_edit.php:128
-#: usr/local/www/interfaces_wireless_edit.php:128
+#: usr/local/www/interfaces_wireless_edit.php:130
+#: usr/local/www/interfaces_wireless_edit.php:130
#, php-format
msgid "Created with id %s"
msgstr ""
#: usr/local/www/interfaces_wireless_edit.php:131
-#: usr/local/www/interfaces_wireless_edit.php:131
+#: usr/local/www/interfaces_wireless_edit.php:133
+#: usr/local/www/interfaces_wireless_edit.php:133
msgid "Created without id"
msgstr ""
#: usr/local/www/interfaces_wireless_edit.php:156
-#: usr/local/www/interfaces_wireless_edit.php:156
+#: usr/local/www/interfaces_wireless_edit.php:158
+#: usr/local/www/interfaces_wireless_edit.php:158
msgid "Wireless clone configuration"
msgstr ""
@@ -20810,10 +25326,14 @@ msgstr ""
#: usr/local/www/load_balancer_setting.php:110
#: usr/local/www/load_balancer_monitor.php:100
#: usr/local/www/load_balancer_relay_protocol.php:112
+#: usr/local/www/load_balancer_relay_protocol.php:112
+#: usr/local/www/load_balancer_setting.php:110
+#: usr/local/www/load_balancer_monitor.php:100
msgid "The load balancer configuration has been changed"
msgstr ""
#: usr/local/www/vpn_pppoe.php:96 usr/local/www/vpn_pppoe.php:97
+#: usr/local/www/vpn_pppoe.php:98 usr/local/www/vpn_pppoe.php:98
msgid "The PPPoE entry list has been changed"
msgstr ""
@@ -20821,25 +25341,32 @@ msgstr ""
#: usr/local/www/services_captiveportal_zones.php:54
#: usr/local/www/vpn_pppoe.php:104
#: usr/local/www/services_captiveportal_zones.php:55
+#: usr/local/www/vpn_pppoe.php:105 usr/local/www/vpn_pppoe.php:105
+#: usr/local/www/services_captiveportal_zones.php:55
msgid "Number of users"
msgstr ""
#: usr/local/www/vpn_pppoe.php:109 usr/local/www/vpn_pppoe.php:144
#: usr/local/www/vpn_pppoe.php:110 usr/local/www/vpn_pppoe.php:145
+#: usr/local/www/vpn_pppoe.php:111 usr/local/www/vpn_pppoe.php:146
+#: usr/local/www/vpn_pppoe.php:111 usr/local/www/vpn_pppoe.php:146
msgid "add a new pppoe instance"
msgstr ""
#: usr/local/www/vpn_pppoe.php:131 usr/local/www/vpn_pppoe.php:132
+#: usr/local/www/vpn_pppoe.php:133 usr/local/www/vpn_pppoe.php:133
msgid "edit pppoe instance"
msgstr ""
#: usr/local/www/vpn_pppoe.php:132 usr/local/www/vpn_pppoe.php:133
+#: usr/local/www/vpn_pppoe.php:134 usr/local/www/vpn_pppoe.php:134
msgid ""
"Do you really want to delete this entry? All elements that still use it will "
"become invalid (e.g. filter rules)!"
msgstr ""
#: usr/local/www/vpn_pppoe.php:132 usr/local/www/vpn_pppoe.php:133
+#: usr/local/www/vpn_pppoe.php:134 usr/local/www/vpn_pppoe.php:134
msgid "delete pppoe instance"
msgstr ""
@@ -20872,10 +25399,12 @@ msgstr ""
#: usr/local/www/services_dnsmasq_edit.php:86
#: usr/local/www/services_dhcpv6_edit.php:117
#: usr/local/www/services_dhcp_edit.php:120
-#: usr/local/www/services_dnsmasq_edit.php:86
-#: usr/local/www/services_dhcpv6_edit.php:117
+#: usr/local/www/services_dhcpv6_edit.php:120
+#: usr/local/www/services_dhcp_edit.php:154
+#: usr/local/www/services_dhcpv6_edit.php:120
+#: usr/local/www/services_dhcp_edit.php:154
#: usr/local/www/load_balancer_monitor_edit.php:112
-#: usr/local/www/services_dhcp_edit.php:120
+#: usr/local/www/services_dnsmasq_edit.php:86
msgid "The hostname can only contain the characters A-Z, 0-9 and '-'."
msgstr ""
@@ -20897,6 +25426,7 @@ msgstr ""
#: usr/local/www/load_balancer_monitor_edit.php:199
#: usr/local/www/load_balancer_monitor_edit.php:197
+#: usr/local/www/load_balancer_monitor_edit.php:197
msgid "ICMP"
msgstr ""
@@ -20909,7 +25439,11 @@ msgstr ""
#: usr/local/www/load_balancer_relay_action_edit.php:184
#: usr/local/www/load_balancer_monitor_edit.php:197
#: usr/local/www/load_balancer_monitor_edit.php:266
+#: usr/local/www/load_balancer_relay_protocol_edit.php:142
#: usr/local/www/system_advanced_admin.php:311
+#: usr/local/www/load_balancer_relay_action_edit.php:184
+#: usr/local/www/load_balancer_monitor_edit.php:197
+#: usr/local/www/load_balancer_monitor_edit.php:266
msgid "HTTP"
msgstr ""
@@ -20919,6 +25453,8 @@ msgstr ""
#: usr/local/www/load_balancer_monitor_edit.php:197
#: usr/local/www/load_balancer_monitor_edit.php:299
#: usr/local/www/system_advanced_admin.php:314
+#: usr/local/www/load_balancer_monitor_edit.php:197
+#: usr/local/www/load_balancer_monitor_edit.php:299
msgid "HTTPS"
msgstr ""
@@ -20926,11 +25462,14 @@ msgstr ""
#: usr/local/www/load_balancer_monitor_edit.php:335
#: usr/local/www/load_balancer_monitor_edit.php:197
#: usr/local/www/load_balancer_monitor_edit.php:333
+#: usr/local/www/load_balancer_monitor_edit.php:197
+#: usr/local/www/load_balancer_monitor_edit.php:333
msgid "Send/Expect"
msgstr ""
#: usr/local/www/load_balancer_monitor_edit.php:232
#: usr/local/www/load_balancer_monitor_edit.php:230
+#: usr/local/www/load_balancer_monitor_edit.php:230
msgid "Edit Load Balancer - Monitor entry"
msgstr ""
@@ -20938,6 +25477,8 @@ msgstr ""
#: usr/local/www/load_balancer_monitor_edit.php:305
#: usr/local/www/load_balancer_monitor_edit.php:270
#: usr/local/www/load_balancer_monitor_edit.php:303
+#: usr/local/www/load_balancer_monitor_edit.php:270
+#: usr/local/www/load_balancer_monitor_edit.php:303
msgid "Path"
msgstr ""
@@ -20954,12 +25495,19 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:244
#: usr/local/www/services_dnsmasq_edit.php:197
#: usr/local/www/services_dnsmasq_edit.php:238
-#: usr/local/www/services_unbound.php:279
#: usr/local/www/load_balancer_monitor_edit.php:276
#: usr/local/www/load_balancer_monitor_edit.php:309
-#: usr/local/www/diag_traceroute.php:62 usr/local/www/diag_traceroute.php:89
-#: usr/local/www/services_rfc2136_edit.php:169 usr/local/www/diag_ping.php:55
-#: usr/local/www/diag_ping.php:90
+#: usr/local/www/diag_testport.php:60 usr/local/www/diag_testport.php:117
+#: usr/local/www/diag_traceroute.php:93 usr/local/www/services_dnsmasq.php:269
+#: usr/local/www/diag_testport.php:60 usr/local/www/diag_testport.php:117
+#: usr/local/www/diag_traceroute.php:63 usr/local/www/diag_traceroute.php:99
+#: usr/local/www/load_balancer_monitor_edit.php:276
+#: usr/local/www/load_balancer_monitor_edit.php:309
+#: usr/local/www/diag_ping.php:57 usr/local/www/diag_ping.php:97
+#: usr/local/www/services_dnsmasq_edit.php:197
+#: usr/local/www/services_dnsmasq_edit.php:238
+#: usr/local/www/services_rfc2136_edit.php:169
+#: usr/local/www/services_dnsmasq.php:282
msgid "Host"
msgstr ""
@@ -20967,6 +25515,8 @@ msgstr ""
#: usr/local/www/load_balancer_monitor_edit.php:313
#: usr/local/www/load_balancer_monitor_edit.php:278
#: usr/local/www/load_balancer_monitor_edit.php:311
+#: usr/local/www/load_balancer_monitor_edit.php:278
+#: usr/local/www/load_balancer_monitor_edit.php:311
msgid "Hostname for Host: header if needed."
msgstr ""
@@ -20974,16 +25524,20 @@ msgstr ""
#: usr/local/www/load_balancer_monitor_edit.php:317
#: usr/local/www/load_balancer_monitor_edit.php:282
#: usr/local/www/load_balancer_monitor_edit.php:315
+#: usr/local/www/load_balancer_monitor_edit.php:282
+#: usr/local/www/load_balancer_monitor_edit.php:315
msgid "HTTP Code"
msgstr ""
#: usr/local/www/load_balancer_monitor_edit.php:339
#: usr/local/www/load_balancer_monitor_edit.php:337
+#: usr/local/www/load_balancer_monitor_edit.php:337
msgid "Send string"
msgstr ""
#: usr/local/www/load_balancer_monitor_edit.php:345
#: usr/local/www/load_balancer_monitor_edit.php:343
+#: usr/local/www/load_balancer_monitor_edit.php:343
msgid "Expect string"
msgstr ""
@@ -21038,36 +25592,42 @@ msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:178
#: usr/local/www/load_balancer_pool_edit.php:186
#: usr/local/www/load_balancer_pool_edit.php:184
+#: usr/local/www/load_balancer_pool_edit.php:184
msgid "Add/edit Load Balancer - Pool entry"
msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:190
#: usr/local/www/load_balancer_pool_edit.php:198
#: usr/local/www/load_balancer_pool_edit.php:196
+#: usr/local/www/load_balancer_pool_edit.php:196
msgid "Load Balance"
msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:191
#: usr/local/www/load_balancer_pool_edit.php:199
#: usr/local/www/load_balancer_pool_edit.php:197
+#: usr/local/www/load_balancer_pool_edit.php:197
msgid "Manual Failover"
msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:206
#: usr/local/www/load_balancer_pool_edit.php:215
#: usr/local/www/load_balancer_pool_edit.php:213
+#: usr/local/www/load_balancer_pool_edit.php:213
msgid "This is the port your servers are listening on."
msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:210
#: usr/local/www/load_balancer_pool_edit.php:227
#: usr/local/www/load_balancer_pool_edit.php:225
+#: usr/local/www/load_balancer_pool_edit.php:225
msgid "Retry"
msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:213
#: usr/local/www/load_balancer_pool_edit.php:230
#: usr/local/www/load_balancer_pool_edit.php:228
+#: usr/local/www/load_balancer_pool_edit.php:228
msgid ""
"Optionally specify how many times to retry checking a server before "
"declaring it down."
@@ -21076,12 +25636,14 @@ msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:220
#: usr/local/www/load_balancer_pool_edit.php:237
#: usr/local/www/load_balancer_pool_edit.php:235
+#: usr/local/www/load_balancer_pool_edit.php:235
msgid "Add item to pool"
msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:238
#: usr/local/www/load_balancer_pool_edit.php:255
#: usr/local/www/load_balancer_pool_edit.php:253
+#: usr/local/www/load_balancer_pool_edit.php:253
msgid ""
"Please add a monitor IP address on the monitors tab if you wish to use this "
"feature."
@@ -21090,24 +25652,28 @@ msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:244
#: usr/local/www/load_balancer_pool_edit.php:261
#: usr/local/www/load_balancer_pool_edit.php:259
+#: usr/local/www/load_balancer_pool_edit.php:259
msgid "Server IP Address"
msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:247
#: usr/local/www/load_balancer_pool_edit.php:264
#: usr/local/www/load_balancer_pool_edit.php:262
+#: usr/local/www/load_balancer_pool_edit.php:262
msgid "Add to pool"
msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:254
#: usr/local/www/load_balancer_pool_edit.php:271
#: usr/local/www/load_balancer_pool_edit.php:269
+#: usr/local/www/load_balancer_pool_edit.php:269
msgid "Current Pool Members"
msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:264
#: usr/local/www/load_balancer_pool_edit.php:281
#: usr/local/www/load_balancer_pool_edit.php:279
+#: usr/local/www/load_balancer_pool_edit.php:279
msgid "Pool Disabled"
msgstr ""
@@ -21119,12 +25685,16 @@ msgstr ""
#: usr/local/www/load_balancer_relay_protocol_edit.php:251
#: usr/local/www/load_balancer_pool_edit.php:292
#: usr/local/www/load_balancer_pool_edit.php:315
+#: usr/local/www/load_balancer_relay_protocol_edit.php:251
+#: usr/local/www/load_balancer_pool_edit.php:292
+#: usr/local/www/load_balancer_pool_edit.php:315
msgid "Remove"
msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:287
#: usr/local/www/load_balancer_pool_edit.php:304
#: usr/local/www/load_balancer_pool_edit.php:302
+#: usr/local/www/load_balancer_pool_edit.php:302
msgid "Enabled (default)"
msgstr ""
@@ -21138,10 +25708,11 @@ msgstr ""
#: usr/local/www/load_balancer_relay_protocol.php:100
#: usr/local/www/load_balancer_relay_protocol_edit.php:137
#: usr/local/www/load_balancer_virtual_server_edit.php:250
+#: usr/local/www/load_balancer_virtual_server_edit.php:248
#: usr/local/www/load_balancer_relay_protocol_edit.php:137
-#: usr/local/www/load_balancer_relay_protocol.php:100
#: usr/local/www/load_balancer_virtual_server_edit.php:77
#: usr/local/www/load_balancer_virtual_server_edit.php:248
+#: usr/local/www/load_balancer_relay_protocol.php:100
msgid "Relay Protocol"
msgstr ""
@@ -21174,20 +25745,22 @@ msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:134
#: usr/local/www/status_lb_vs.php:56
#: usr/local/www/load_balancer_virtual_server_edit.php:136
-#: usr/local/www/status_lb_vs.php:56
#: usr/local/www/load_balancer_virtual_server_edit.php:136
+#: usr/local/www/status_lb_vs.php:56
msgid "Virtual Server"
msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:180
#: usr/local/www/load_balancer_virtual_server_edit.php:154
#: usr/local/www/load_balancer_virtual_server_edit.php:152
+#: usr/local/www/load_balancer_virtual_server_edit.php:152
msgid "Edit Load Balancer - Virtual Server entry"
msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:198
#: usr/local/www/load_balancer_virtual_server_edit.php:172
#: usr/local/www/load_balancer_virtual_server_edit.php:170
+#: usr/local/www/load_balancer_virtual_server_edit.php:170
msgid ""
"This is normally the WAN IP address that you would like the server to listen "
"on. All connections to this IP and port will be forwarded to the pool "
@@ -21197,6 +25770,7 @@ msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:205
#: usr/local/www/load_balancer_virtual_server_edit.php:186
#: usr/local/www/load_balancer_virtual_server_edit.php:184
+#: usr/local/www/load_balancer_virtual_server_edit.php:184
msgid ""
"This is the port that the clients will connect to. All connections to this "
"port will be forwarded to the pool cluster."
@@ -21205,6 +25779,7 @@ msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:209
#: usr/local/www/load_balancer_virtual_server_edit.php:198
#: usr/local/www/load_balancer_virtual_server_edit.php:196
+#: usr/local/www/load_balancer_virtual_server_edit.php:196
msgid "Virtual Server Pool"
msgstr ""
@@ -21214,12 +25789,15 @@ msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:220
#: usr/local/www/load_balancer_virtual_server_edit.php:199
#: usr/local/www/load_balancer_virtual_server_edit.php:218
+#: usr/local/www/load_balancer_virtual_server_edit.php:199
+#: usr/local/www/load_balancer_virtual_server_edit.php:218
msgid "Please add a pool on the Pools tab to use this feature."
msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:244
#: usr/local/www/load_balancer_virtual_server_edit.php:233
#: usr/local/www/load_balancer_virtual_server_edit.php:231
+#: usr/local/www/load_balancer_virtual_server_edit.php:231
msgid ""
"This is the server that clients will be redirected to if *ALL* servers in "
"the pool are offline."
@@ -21230,12 +25808,18 @@ msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:268
#: usr/local/www/status_captiveportal_test.php:93
#: usr/local/www/load_balancer_virtual_server_edit.php:266
+#: usr/local/www/status_captiveportal_expire.php:92
+#: usr/local/www/status_captiveportal_test.php:94
+#: usr/local/www/load_balancer_virtual_server_edit.php:266
+#: usr/local/www/status_captiveportal_expire.php:92
+#: usr/local/www/status_captiveportal_test.php:94
msgid "Submit"
msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:289
#: usr/local/www/load_balancer_virtual_server_edit.php:278
#: usr/local/www/load_balancer_virtual_server_edit.php:276
+#: usr/local/www/load_balancer_virtual_server_edit.php:276
msgid ""
"Don't forget to add a firewall rule for the virtual server/pool after you're "
"finished setting it up."
@@ -21257,12 +25841,13 @@ msgstr ""
#: usr/local/www/pkg_mgr.php:122 usr/local/www/pkg_mgr.php:216
#: usr/local/www/pkg_mgr.php:137 usr/local/www/pkg_mgr.php:243
-#: usr/local/www/pkg_mgr.php:137 usr/local/www/pkg_mgr.php:246
+#: usr/local/www/pkg_mgr.php:246 usr/local/www/pkg_mgr.php:140
+#: usr/local/www/pkg_mgr.php:249
msgid "There are currently no packages available for installation."
msgstr ""
#: usr/local/www/pkg_mgr.php:192 usr/local/www/pkg_mgr.php:228
-#: usr/local/www/pkg_mgr.php:228
+#: usr/local/www/pkg_mgr.php:231
msgid "platform"
msgstr ""
@@ -21270,81 +25855,104 @@ msgstr ""
msgid "Do you really want to install this package?"
msgstr ""
-#: usr/local/www/pkg_mgr_install.php:57 usr/local/www/pkg_mgr_install.php:57
+#: usr/local/www/pkg_mgr_install.php:57 usr/local/www/pkg_mgr_install.php:55
+#: usr/local/www/pkg_mgr_install.php:55
msgid "Install Package"
msgstr ""
-#: usr/local/www/pkg_mgr_install.php:72 usr/local/www/pkg_mgr_install.php:72
+#: usr/local/www/pkg_mgr_install.php:72 usr/local/www/pkg_mgr_install.php:70
+#: usr/local/www/pkg_mgr_install.php:70
msgid "Available packages"
msgstr ""
-#: usr/local/www/pkg_mgr_install.php:75 usr/local/www/pkg_mgr_install.php:75
+#: usr/local/www/pkg_mgr_install.php:75 usr/local/www/pkg_mgr_install.php:73
+#: usr/local/www/pkg_mgr_install.php:73
msgid "Installed packages"
msgstr ""
-#: usr/local/www/pkg_mgr_install.php:76 usr/local/www/pkg_mgr_install.php:76
+#: usr/local/www/pkg_mgr_install.php:76 usr/local/www/pkg_mgr_install.php:74
+#: usr/local/www/pkg_mgr_install.php:74
msgid "Package Installer"
msgstr ""
#: usr/local/www/pkg_mgr_install.php:124 usr/local/www/pkg_mgr_install.php:134
+#: usr/local/www/pkg_mgr_install.php:132 usr/local/www/pkg_mgr_install.php:128
msgid "Creating restore point before package installation."
msgstr ""
#: usr/local/www/pkg_mgr_install.php:132 usr/local/www/pkg_mgr_install.php:133
#: usr/local/www/pkg_mgr_install.php:141 usr/local/www/pkg_mgr_install.php:142
+#: usr/local/www/pkg_mgr_install.php:139 usr/local/www/pkg_mgr_install.php:140
+#: usr/local/www/pkg_mgr_install.php:135 usr/local/www/pkg_mgr_install.php:136
msgid "Package deleted."
msgstr ""
#: usr/local/www/pkg_mgr_install.php:147 usr/local/www/pkg_mgr_install.php:148
#: usr/local/www/pkg_mgr_install.php:156 usr/local/www/pkg_mgr_install.php:157
+#: usr/local/www/pkg_mgr_install.php:154 usr/local/www/pkg_mgr_install.php:155
+#: usr/local/www/pkg_mgr_install.php:150 usr/local/www/pkg_mgr_install.php:151
msgid "Package reinstallation failed."
msgstr ""
#: usr/local/www/pkg_mgr_install.php:151 usr/local/www/pkg_mgr_install.php:152
#: usr/local/www/pkg_mgr_install.php:160 usr/local/www/pkg_mgr_install.php:161
+#: usr/local/www/pkg_mgr_install.php:158 usr/local/www/pkg_mgr_install.php:159
+#: usr/local/www/pkg_mgr_install.php:154 usr/local/www/pkg_mgr_install.php:155
msgid "Package reinstalled."
msgstr ""
#: usr/local/www/pkg_mgr_install.php:163 usr/local/www/pkg_mgr_install.php:172
+#: usr/local/www/pkg_mgr_install.php:170 usr/local/www/pkg_mgr_install.php:166
msgid "installation completed."
msgstr ""
#: usr/local/www/pkg_mgr_install.php:166 usr/local/www/pkg_mgr_install.php:175
+#: usr/local/www/pkg_mgr_install.php:173 usr/local/www/pkg_mgr_install.php:169
#, php-format
msgid "Could not find %s."
msgstr ""
#: usr/local/www/pkg_mgr_install.php:182 usr/local/www/pkg_mgr_install.php:183
#: usr/local/www/pkg_mgr_install.php:191 usr/local/www/pkg_mgr_install.php:192
+#: usr/local/www/pkg_mgr_install.php:188 usr/local/www/pkg_mgr_install.php:189
+#: usr/local/www/pkg_mgr_install.php:184 usr/local/www/pkg_mgr_install.php:185
msgid "All packages reinstalled."
msgstr ""
#: usr/local/www/pkg_mgr_install.php:190 usr/local/www/pkg_mgr_install.php:194
#: usr/local/www/pkg_mgr_install.php:200 usr/local/www/pkg_mgr_install.php:204
+#: usr/local/www/pkg_mgr_install.php:199 usr/local/www/pkg_mgr_install.php:203
+#: usr/local/www/pkg_mgr_install.php:195 usr/local/www/pkg_mgr_install.php:199
msgid "Installation of"
msgstr ""
#: usr/local/www/pkg_mgr_install.php:190 usr/local/www/pkg_mgr_install.php:200
+#: usr/local/www/pkg_mgr_install.php:199 usr/local/www/pkg_mgr_install.php:195
msgid "FAILED!"
msgstr ""
#: usr/local/www/pkg_mgr_install.php:191 usr/local/www/pkg_mgr_install.php:201
+#: usr/local/www/pkg_mgr_install.php:200 usr/local/www/pkg_mgr_install.php:196
msgid "Installation halted."
msgstr ""
#: usr/local/www/pkg_mgr_install.php:194 usr/local/www/pkg_mgr_install.php:204
+#: usr/local/www/pkg_mgr_install.php:203 usr/local/www/pkg_mgr_install.php:199
msgid "completed."
msgstr ""
#: usr/local/www/pkg_mgr_install.php:198 usr/local/www/pkg_mgr_install.php:208
+#: usr/local/www/pkg_mgr_install.php:207 usr/local/www/pkg_mgr_install.php:203
msgid "Installation completed."
msgstr ""
#: usr/local/www/pkg_mgr_install.php:198 usr/local/www/pkg_mgr_install.php:208
+#: usr/local/www/pkg_mgr_install.php:207 usr/local/www/pkg_mgr_install.php:203
msgid "setup instructions"
msgstr ""
#: usr/local/www/pkg_mgr_install.php:200 usr/local/www/pkg_mgr_install.php:210
+#: usr/local/www/pkg_mgr_install.php:209 usr/local/www/pkg_mgr_install.php:205
msgid ""
"Installation completed. Please check to make sure that the package is "
"configured from the respective menu then start the package."
@@ -21397,7 +26005,8 @@ msgstr ""
#: usr/local/www/diag_dns.php:34 usr/local/www/diag_dns.php:250
#: usr/local/www/fbegin.inc:192 usr/local/www/fbegin.inc:210
#: usr/local/www/diag_dns.php:249 usr/local/www/fbegin.inc:218
-#: usr/local/www/diag_dns.php:34 usr/local/www/diag_dns.php:249
+#: usr/local/www/fbegin.inc:209 usr/local/www/diag_dns.php:34
+#: usr/local/www/diag_dns.php:266 usr/local/www/fbegin.inc:209
msgid "DNS Lookup"
msgstr ""
@@ -21416,29 +26025,33 @@ msgid "No record found"
msgstr ""
#: usr/local/www/diag_dns.php:158 usr/local/www/diag_dns.php:157
-#: usr/local/www/diag_dns.php:157
+#: usr/local/www/diag_dns.php:174
msgid "Resolve DNS hostname or IP"
msgstr ""
#: usr/local/www/diag_dns.php:161 usr/local/www/system_authservers.php:162
#: usr/local/www/system_authservers.php:185 usr/local/www/diag_dns.php:160
-#: usr/local/www/diag_dns.php:160 usr/local/www/system_authservers.php:163
+#: usr/local/www/system_authservers.php:163
#: usr/local/www/system_authservers.php:186
+#: usr/local/www/system_authservers.php:164
+#: usr/local/www/system_authservers.php:187
+#: usr/local/www/system_authservers.php:164
+#: usr/local/www/system_authservers.php:187 usr/local/www/diag_dns.php:177
msgid "Hostname or IP"
msgstr ""
#: usr/local/www/diag_dns.php:203 usr/local/www/diag_dns.php:202
-#: usr/local/www/diag_dns.php:202
+#: usr/local/www/diag_dns.php:219
msgid "Resolution time per server"
msgstr ""
#: usr/local/www/diag_dns.php:211 usr/local/www/diag_dns.php:210
-#: usr/local/www/diag_dns.php:210
+#: usr/local/www/diag_dns.php:227
msgid "Query time"
msgstr ""
#: usr/local/www/diag_dns.php:235 usr/local/www/diag_dns.php:234
-#: usr/local/www/diag_dns.php:234
+#: usr/local/www/diag_dns.php:251
msgid "More Information:"
msgstr ""
@@ -21446,8 +26059,9 @@ msgstr ""
#: usr/local/www/diag_ping.php:87 usr/local/www/diag_ping.php:119
#: usr/local/www/fbegin.inc:200 usr/local/www/fbegin.inc:218
#: usr/local/www/diag_dns.php:236 usr/local/www/fbegin.inc:226
-#: usr/local/www/diag_dns.php:236 usr/local/www/diag_ping.php:43
-#: usr/local/www/diag_ping.php:87 usr/local/www/diag_ping.php:119
+#: usr/local/www/fbegin.inc:217 usr/local/www/diag_ping.php:44
+#: usr/local/www/diag_ping.php:94 usr/local/www/diag_ping.php:141
+#: usr/local/www/diag_dns.php:253 usr/local/www/fbegin.inc:217
msgid "Ping"
msgstr ""
@@ -21455,25 +26069,27 @@ msgstr ""
#: usr/local/www/diag_traceroute.php:86 usr/local/www/diag_traceroute.php:112
#: usr/local/www/fbegin.inc:209 usr/local/www/fbegin.inc:227
#: usr/local/www/diag_dns.php:237 usr/local/www/fbegin.inc:236
-#: usr/local/www/diag_traceroute.php:45 usr/local/www/diag_traceroute.php:86
-#: usr/local/www/diag_traceroute.php:112 usr/local/www/diag_dns.php:237
+#: usr/local/www/diag_traceroute.php:90 usr/local/www/diag_traceroute.php:136
+#: usr/local/www/fbegin.inc:228 usr/local/www/diag_traceroute.php:46
+#: usr/local/www/diag_traceroute.php:96 usr/local/www/diag_traceroute.php:155
+#: usr/local/www/diag_dns.php:254 usr/local/www/fbegin.inc:228
msgid "Traceroute"
msgstr ""
#: usr/local/www/diag_dns.php:240 usr/local/www/diag_dns.php:239
-#: usr/local/www/diag_dns.php:239
+#: usr/local/www/diag_dns.php:256
msgid ""
"NOTE: The following links are to external services, so their reliability "
"cannot be guaranteed."
msgstr ""
#: usr/local/www/diag_dns.php:241 usr/local/www/diag_dns.php:240
-#: usr/local/www/diag_dns.php:240
+#: usr/local/www/diag_dns.php:257
msgid "IP WHOIS @ DNS Stuff"
msgstr ""
#: usr/local/www/diag_dns.php:242 usr/local/www/diag_dns.php:241
-#: usr/local/www/diag_dns.php:241
+#: usr/local/www/diag_dns.php:258
msgid "IP Info @ DNS Stuff"
msgstr ""
@@ -21517,28 +26133,29 @@ msgid "Restarting mini_httpd"
msgstr ""
#: usr/local/www/edit.php:39 usr/local/www/edit.php:42
-#: usr/local/www/edit.php:42
+#: usr/local/www/edit.php:41 usr/local/www/edit.php:41
msgid "Edit file"
msgstr ""
#: usr/local/www/edit.php:46 usr/local/www/edit.php:62
#: usr/local/www/edit.php:49 usr/local/www/edit.php:65
-#: usr/local/www/edit.php:49 usr/local/www/edit.php:65
+#: usr/local/www/edit.php:48 usr/local/www/edit.php:48
+#: usr/local/www/edit.php:65
msgid "No file name specified"
msgstr ""
#: usr/local/www/edit.php:48 usr/local/www/edit.php:51
-#: usr/local/www/edit.php:51
+#: usr/local/www/edit.php:50 usr/local/www/edit.php:50
msgid "Loading a directory is not supported"
msgstr ""
#: usr/local/www/edit.php:50 usr/local/www/edit.php:53
-#: usr/local/www/edit.php:53
+#: usr/local/www/edit.php:52 usr/local/www/edit.php:52
msgid "File does not exist or is not a regular file"
msgstr ""
#: usr/local/www/edit.php:54 usr/local/www/edit.php:57
-#: usr/local/www/edit.php:57
+#: usr/local/www/edit.php:56 usr/local/www/edit.php:56
msgid "Failed to read file"
msgstr ""
@@ -21563,27 +26180,27 @@ msgid "Loading file"
msgstr ""
#: usr/local/www/edit.php:117 usr/local/www/edit.php:120
-#: usr/local/www/edit.php:120
+#: usr/local/www/edit.php:121 usr/local/www/edit.php:121
msgid "File successfully loaded"
msgstr ""
#: usr/local/www/edit.php:140 usr/local/www/edit.php:143
-#: usr/local/www/edit.php:143
+#: usr/local/www/edit.php:144 usr/local/www/edit.php:144
msgid "Saving file"
msgstr ""
#: usr/local/www/edit.php:177 usr/local/www/edit.php:180
-#: usr/local/www/edit.php:180
+#: usr/local/www/edit.php:181 usr/local/www/edit.php:181
msgid "Save / Load from path"
msgstr ""
#: usr/local/www/edit.php:179 usr/local/www/edit.php:182
-#: usr/local/www/edit.php:182
+#: usr/local/www/edit.php:183 usr/local/www/edit.php:183
msgid "Load"
msgstr ""
#: usr/local/www/edit.php:180 usr/local/www/edit.php:183
-#: usr/local/www/edit.php:183
+#: usr/local/www/edit.php:184 usr/local/www/edit.php:184
msgid "Browse"
msgstr ""
@@ -21607,7 +26224,6 @@ msgstr ""
#: usr/local/www/status_captiveportal_vouchers.php:57
#: usr/local/www/services_captiveportal_zones_edit.php:48
#: usr/local/www/services_captiveportal_vouchers.php:410
-#: usr/local/www/status_captiveportal_vouchers.php:57
#: usr/local/www/services_captiveportal_vouchers.php:82
#: usr/local/www/services_captiveportal_vouchers.php:423
#: usr/local/www/services_captiveportal_vouchers_edit.php:45
@@ -21617,15 +26233,37 @@ msgstr ""
#: usr/local/www/services_captiveportal_mac.php:60
#: usr/local/www/services_captiveportal_mac.php:152
#: usr/local/www/services_captiveportal_mac_edit.php:57
-#: usr/local/www/status_captiveportal_test.php:58
#: usr/local/www/services_captiveportal_hostname.php:63
#: usr/local/www/services_captiveportal_hostname.php:107
#: usr/local/www/services_captiveportal.php:60
#: usr/local/www/services_captiveportal_filemanager.php:71
#: usr/local/www/services_captiveportal_filemanager.php:147
#: usr/local/www/services_captiveportal_ip_edit.php:60
-#: usr/local/www/status_captiveportal_voucher_rolls.php:57
#: usr/local/www/services_captiveportal_zones_edit.php:45
+#: usr/local/www/status_captiveportal_expire.php:58
+#: usr/local/www/services_captiveportal_vouchers.php:89
+#: usr/local/www/services_captiveportal_vouchers.php:432
+#: usr/local/www/services_captiveportal_mac.php:162
+#: usr/local/www/services_captiveportal_ip_edit.php:60
+#: usr/local/www/services_captiveportal_zones_edit.php:45
+#: usr/local/www/services_captiveportal_ip.php:61
+#: usr/local/www/services_captiveportal_ip.php:102
+#: usr/local/www/status_captiveportal_expire.php:58
+#: usr/local/www/services_captiveportal_hostname_edit.php:59
+#: usr/local/www/services_captiveportal_vouchers.php:89
+#: usr/local/www/services_captiveportal_vouchers.php:432
+#: usr/local/www/services_captiveportal_vouchers_edit.php:45
+#: usr/local/www/services_captiveportal_mac_edit.php:57
+#: usr/local/www/status_captiveportal_vouchers.php:57
+#: usr/local/www/services_captiveportal_hostname.php:63
+#: usr/local/www/services_captiveportal_hostname.php:107
+#: usr/local/www/services_captiveportal_filemanager.php:71
+#: usr/local/www/services_captiveportal_filemanager.php:147
+#: usr/local/www/status_captiveportal_test.php:58
+#: usr/local/www/services_captiveportal.php:60
+#: usr/local/www/services_captiveportal_mac.php:60
+#: usr/local/www/services_captiveportal_mac.php:162
+#: usr/local/www/status_captiveportal_voucher_rolls.php:57
msgid "Captive portal"
msgstr ""
@@ -21636,12 +26274,19 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:153
#: usr/local/www/services_captiveportal_zones_edit.php:59
#: usr/local/www/services_captiveportal_zones_edit.php:101
+#: usr/local/www/services_captiveportal_zones_edit.php:97
+#: usr/local/www/services_captiveportal.php:155
+#: usr/local/www/services_captiveportal_zones_edit.php:59
+#: usr/local/www/services_captiveportal_zones_edit.php:97
+#: usr/local/www/services_captiveportal.php:155
msgid "Zone name"
msgstr ""
#: usr/local/www/services_captiveportal.php:154
#: usr/local/www/services_captiveportal.php:155
#: usr/local/www/services_captiveportal.php:161
+#: usr/local/www/services_captiveportal.php:163
+#: usr/local/www/services_captiveportal.php:163
#, php-format
msgid ""
"The captive portal cannot be used on interface %s since it is part of a "
@@ -21651,6 +26296,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:158
#: usr/local/www/services_captiveportal.php:159
#: usr/local/www/services_captiveportal.php:165
+#: usr/local/www/services_captiveportal.php:167
+#: usr/local/www/services_captiveportal.php:167
#, php-format
msgid ""
"The captive portal cannot be used on interface %s since it is used already "
@@ -21667,8 +26314,10 @@ msgstr ""
#: usr/local/www/system_certmanager.php:168
#: usr/local/www/system_certmanager.php:196
#: usr/local/www/services_captiveportal.php:170
-#: usr/local/www/system_certmanager.php:196
-#: usr/local/www/system_camanager.php:168
+#: usr/local/www/system_camanager.php:170
+#: usr/local/www/system_certmanager.php:199
+#: usr/local/www/system_camanager.php:170
+#: usr/local/www/system_certmanager.php:199
msgid "This certificate does not appear to be valid."
msgstr ""
@@ -21685,30 +26334,35 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:177
#: usr/local/www/services_captiveportal.php:178
#: usr/local/www/services_captiveportal.php:176
+#: usr/local/www/services_captiveportal.php:178
msgid "The HTTPS server name must be specified for HTTPS login."
msgstr ""
#: usr/local/www/services_captiveportal.php:183
#: usr/local/www/services_captiveportal.php:184
#: usr/local/www/services_captiveportal.php:182
+#: usr/local/www/services_captiveportal.php:185
msgid "The timeout must be at least 1 minute."
msgstr ""
#: usr/local/www/services_captiveportal.php:186
#: usr/local/www/services_captiveportal.php:187
#: usr/local/www/services_captiveportal.php:185
+#: usr/local/www/services_captiveportal.php:203
msgid "The idle timeout must be at least 1 minute."
msgstr ""
#: usr/local/www/services_captiveportal.php:189
#: usr/local/www/services_captiveportal.php:190
#: usr/local/www/services_captiveportal.php:188
+#: usr/local/www/services_captiveportal.php:206
msgid "The pass-through credit count must be a number or left blank."
msgstr ""
#: usr/local/www/services_captiveportal.php:192
#: usr/local/www/services_captiveportal.php:193
#: usr/local/www/services_captiveportal.php:191
+#: usr/local/www/services_captiveportal.php:209
msgid ""
"The waiting period to restore pass-through credits must be above 0 hours."
msgstr ""
@@ -21727,6 +26381,12 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:201
#: usr/local/www/services_captiveportal.php:204
#: usr/local/www/services_captiveportal_ip_edit.php:105
+#: usr/local/www/services_captiveportal_ip_edit.php:104
+#: usr/local/www/services_captiveportal_ip_edit.php:104
+#: usr/local/www/services_captiveportal.php:213
+#: usr/local/www/services_captiveportal.php:216
+#: usr/local/www/services_captiveportal.php:219
+#: usr/local/www/services_captiveportal.php:222
#, php-format
msgid "A valid IP address must be specified. [%s]"
msgstr ""
@@ -21746,6 +26406,11 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:213
#: usr/local/www/services_captiveportal.php:216
#: usr/local/www/services_captiveportal.php:219
+#: usr/local/www/services_captiveportal.php:225
+#: usr/local/www/services_captiveportal.php:228
+#: usr/local/www/services_captiveportal.php:231
+#: usr/local/www/services_captiveportal.php:234
+#: usr/local/www/services_captiveportal.php:237
#, php-format
msgid "A valid port number must be specified. [%s]"
msgstr ""
@@ -21753,6 +26418,7 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:223
#: usr/local/www/services_captiveportal.php:224
#: usr/local/www/services_captiveportal.php:222
+#: usr/local/www/services_captiveportal.php:240
msgid ""
"The maximum number of concurrent connections per client IP address may not "
"be larger than the global maximum."
@@ -21761,6 +26427,7 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:421
#: usr/local/www/services_captiveportal.php:425
#: usr/local/www/services_captiveportal.php:423
+#: usr/local/www/services_captiveportal.php:441
msgid "Captive portal(s)"
msgstr ""
@@ -21778,6 +26445,14 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname.php:108
#: usr/local/www/services_captiveportal.php:424
#: usr/local/www/services_captiveportal_filemanager.php:148
+#: usr/local/www/services_captiveportal_vouchers.php:433
+#: usr/local/www/services_captiveportal_mac.php:163
+#: usr/local/www/services_captiveportal_ip.php:103
+#: usr/local/www/services_captiveportal_vouchers.php:433
+#: usr/local/www/services_captiveportal_hostname.php:108
+#: usr/local/www/services_captiveportal_filemanager.php:148
+#: usr/local/www/services_captiveportal.php:442
+#: usr/local/www/services_captiveportal_mac.php:163
msgid "Pass-through MAC"
msgstr ""
@@ -21793,6 +26468,13 @@ msgstr ""
#: usr/local/www/services_captiveportal_mac.php:154
#: usr/local/www/services_captiveportal.php:425
#: usr/local/www/services_captiveportal_filemanager.php:149
+#: usr/local/www/services_captiveportal_vouchers.php:434
+#: usr/local/www/services_captiveportal_mac.php:164
+#: usr/local/www/services_captiveportal_ip.php:104
+#: usr/local/www/services_captiveportal_vouchers.php:434
+#: usr/local/www/services_captiveportal_filemanager.php:149
+#: usr/local/www/services_captiveportal.php:443
+#: usr/local/www/services_captiveportal_mac.php:164
msgid "Allowed IP addresses"
msgstr ""
@@ -21810,6 +26492,14 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname.php:110
#: usr/local/www/services_captiveportal.php:426
#: usr/local/www/services_captiveportal_filemanager.php:150
+#: usr/local/www/services_captiveportal_vouchers.php:435
+#: usr/local/www/services_captiveportal_mac.php:165
+#: usr/local/www/services_captiveportal_ip.php:105
+#: usr/local/www/services_captiveportal_vouchers.php:435
+#: usr/local/www/services_captiveportal_hostname.php:110
+#: usr/local/www/services_captiveportal_filemanager.php:150
+#: usr/local/www/services_captiveportal.php:444
+#: usr/local/www/services_captiveportal_mac.php:165
msgid "Allowed Hostnames"
msgstr ""
@@ -21825,7 +26515,6 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:414
#: usr/local/www/services_captiveportal.php:429
#: usr/local/www/services_captiveportal.php:592
-#: usr/local/www/status_captiveportal_vouchers.php:57
#: usr/local/www/services_captiveportal_vouchers.php:82
#: usr/local/www/services_captiveportal_vouchers.php:427
#: usr/local/www/services_captiveportal_ip.php:106
@@ -21834,6 +26523,19 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:427
#: usr/local/www/services_captiveportal.php:590
#: usr/local/www/services_captiveportal_filemanager.php:151
+#: usr/local/www/services_captiveportal_vouchers.php:89
+#: usr/local/www/services_captiveportal_vouchers.php:436
+#: usr/local/www/services_captiveportal.php:584
+#: usr/local/www/services_captiveportal_mac.php:166
+#: usr/local/www/services_captiveportal_ip.php:106
+#: usr/local/www/services_captiveportal_vouchers.php:89
+#: usr/local/www/services_captiveportal_vouchers.php:436
+#: usr/local/www/status_captiveportal_vouchers.php:57
+#: usr/local/www/services_captiveportal_hostname.php:111
+#: usr/local/www/services_captiveportal_filemanager.php:151
+#: usr/local/www/services_captiveportal.php:445
+#: usr/local/www/services_captiveportal.php:600
+#: usr/local/www/services_captiveportal_mac.php:166
msgid "Vouchers"
msgstr ""
@@ -21851,30 +26553,42 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname.php:112
#: usr/local/www/services_captiveportal.php:428
#: usr/local/www/services_captiveportal_filemanager.php:152
+#: usr/local/www/services_captiveportal_vouchers.php:437
+#: usr/local/www/services_captiveportal_mac.php:167
+#: usr/local/www/services_captiveportal_ip.php:107
+#: usr/local/www/services_captiveportal_vouchers.php:437
+#: usr/local/www/services_captiveportal_hostname.php:112
+#: usr/local/www/services_captiveportal_filemanager.php:152
+#: usr/local/www/services_captiveportal.php:446
+#: usr/local/www/services_captiveportal_mac.php:167
msgid "File Manager"
msgstr ""
#: usr/local/www/services_captiveportal.php:436
#: usr/local/www/services_captiveportal.php:440
#: usr/local/www/services_captiveportal.php:438
+#: usr/local/www/services_captiveportal.php:456
msgid "Enable captive portal"
msgstr ""
#: usr/local/www/services_captiveportal.php:450
#: usr/local/www/services_captiveportal.php:455
#: usr/local/www/services_captiveportal.php:453
+#: usr/local/www/services_captiveportal.php:471
msgid "Select the interface(s) to enable for captive portal."
msgstr ""
#: usr/local/www/services_captiveportal.php:453
#: usr/local/www/services_captiveportal.php:458
#: usr/local/www/services_captiveportal.php:456
+#: usr/local/www/services_captiveportal.php:474
msgid "Maximum concurrent connections"
msgstr ""
#: usr/local/www/services_captiveportal.php:457
#: usr/local/www/services_captiveportal.php:462
#: usr/local/www/services_captiveportal.php:460
+#: usr/local/www/services_captiveportal.php:478
msgid "per client IP address (0 = no limit)"
msgstr ""
@@ -21898,12 +26612,18 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:518
#: usr/local/www/services_captiveportal.php:471
#: usr/local/www/services_captiveportal.php:478
+#: usr/local/www/system_advanced_misc.php:530
+#: usr/local/www/services_captiveportal_vouchers_edit.php:92
+#: usr/local/www/system_advanced_misc.php:651
+#: usr/local/www/services_captiveportal.php:489
+#: usr/local/www/services_captiveportal.php:496
msgid "minutes"
msgstr ""
#: usr/local/www/services_captiveportal.php:469
#: usr/local/www/services_captiveportal.php:474
#: usr/local/www/services_captiveportal.php:472
+#: usr/local/www/services_captiveportal.php:490
msgid ""
"Clients will be disconnected after this amount of inactivity. They may log "
"in again immediately, though. Leave this field blank for no idle timeout."
@@ -21912,12 +26632,14 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:472
#: usr/local/www/services_captiveportal.php:477
#: usr/local/www/services_captiveportal.php:475
+#: usr/local/www/services_captiveportal.php:493
msgid "Hard timeout"
msgstr ""
#: usr/local/www/services_captiveportal.php:476
#: usr/local/www/services_captiveportal.php:481
#: usr/local/www/services_captiveportal.php:479
+#: usr/local/www/services_captiveportal.php:497
msgid ""
"Clients will be disconnected after this amount of time, regardless of "
"activity. They may log in again immediately, though. Leave this field blank "
@@ -21927,18 +26649,21 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:479
#: usr/local/www/services_captiveportal.php:484
#: usr/local/www/services_captiveportal.php:482
+#: usr/local/www/services_captiveportal.php:500
msgid "Pass-through credits allowed per MAC address"
msgstr ""
#: usr/local/www/services_captiveportal.php:482
#: usr/local/www/services_captiveportal.php:487
#: usr/local/www/services_captiveportal.php:485
+#: usr/local/www/services_captiveportal.php:503
msgid "per client MAC address (0 or blank = none)"
msgstr ""
#: usr/local/www/services_captiveportal.php:483
#: usr/local/www/services_captiveportal.php:488
#: usr/local/www/services_captiveportal.php:486
+#: usr/local/www/services_captiveportal.php:504
msgid ""
"This setting allows passing through the captive portal without "
"authentication a limited number of times per MAC address. Once used up, the "
@@ -21950,18 +26675,21 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:486
#: usr/local/www/services_captiveportal.php:491
#: usr/local/www/services_captiveportal.php:489
+#: usr/local/www/services_captiveportal.php:507
msgid "Waiting period to restore pass-through credits"
msgstr ""
#: usr/local/www/services_captiveportal.php:489
#: usr/local/www/services_captiveportal.php:494
#: usr/local/www/services_captiveportal.php:492
+#: usr/local/www/services_captiveportal.php:510
msgid "hours"
msgstr ""
#: usr/local/www/services_captiveportal.php:490
#: usr/local/www/services_captiveportal.php:495
#: usr/local/www/services_captiveportal.php:493
+#: usr/local/www/services_captiveportal.php:511
msgid ""
"Clients will have their available pass-through credits restored to the "
"original count after this amount of time since using the first one. This "
@@ -21971,18 +26699,21 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:493
#: usr/local/www/services_captiveportal.php:498
#: usr/local/www/services_captiveportal.php:496
+#: usr/local/www/services_captiveportal.php:514
msgid "Reset waiting period on attempted access"
msgstr ""
#: usr/local/www/services_captiveportal.php:496
#: usr/local/www/services_captiveportal.php:501
#: usr/local/www/services_captiveportal.php:499
+#: usr/local/www/services_captiveportal.php:517
msgid "Enable waiting period reset on attempted access"
msgstr ""
#: usr/local/www/services_captiveportal.php:497
#: usr/local/www/services_captiveportal.php:502
#: usr/local/www/services_captiveportal.php:500
+#: usr/local/www/services_captiveportal.php:518
msgid ""
"If enabled, the waiting period is reset to the original duration if access "
"is attempted when all pass-through credits have already been exhausted."
@@ -21991,18 +26722,21 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:500
#: usr/local/www/services_captiveportal.php:505
#: usr/local/www/services_captiveportal.php:503
+#: usr/local/www/services_captiveportal.php:521
msgid "Logout popup window"
msgstr ""
#: usr/local/www/services_captiveportal.php:503
#: usr/local/www/services_captiveportal.php:508
#: usr/local/www/services_captiveportal.php:506
+#: usr/local/www/services_captiveportal.php:524
msgid "Enable logout popup window"
msgstr ""
#: usr/local/www/services_captiveportal.php:504
#: usr/local/www/services_captiveportal.php:509
#: usr/local/www/services_captiveportal.php:507
+#: usr/local/www/services_captiveportal.php:525
msgid ""
"If enabled, a popup window will appear when clients are allowed through the "
"captive portal. This allows clients to explicitly disconnect themselves "
@@ -22012,12 +26746,14 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:507
#: usr/local/www/services_captiveportal.php:512
#: usr/local/www/services_captiveportal.php:510
+#: usr/local/www/services_captiveportal.php:528
msgid "Pre-authentication redirect URL"
msgstr ""
#: usr/local/www/services_captiveportal.php:510
#: usr/local/www/services_captiveportal.php:515
#: usr/local/www/services_captiveportal.php:513
+#: usr/local/www/services_captiveportal.php:531
#, php-format
msgid ""
"Use this field to set $PORTAL_REDIRURL$ variable which can be accessed using "
@@ -22027,12 +26763,14 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:514
#: usr/local/www/services_captiveportal.php:519
#: usr/local/www/services_captiveportal.php:517
+#: usr/local/www/services_captiveportal.php:535
msgid "After authentication Redirection URL"
msgstr ""
#: usr/local/www/services_captiveportal.php:518
#: usr/local/www/services_captiveportal.php:523
#: usr/local/www/services_captiveportal.php:521
+#: usr/local/www/services_captiveportal.php:539
msgid ""
"If you provide a URL here, clients will be redirected to that URL instead of "
"the one they initially tried to access after they've authenticated."
@@ -22041,18 +26779,21 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:522
#: usr/local/www/services_captiveportal.php:527
#: usr/local/www/services_captiveportal.php:525
+#: usr/local/www/services_captiveportal.php:543
msgid "Concurrent user logins"
msgstr ""
#: usr/local/www/services_captiveportal.php:525
#: usr/local/www/services_captiveportal.php:530
#: usr/local/www/services_captiveportal.php:528
+#: usr/local/www/services_captiveportal.php:546
msgid "Disable concurrent logins"
msgstr ""
#: usr/local/www/services_captiveportal.php:526
#: usr/local/www/services_captiveportal.php:531
#: usr/local/www/services_captiveportal.php:529
+#: usr/local/www/services_captiveportal.php:547
msgid ""
"If this option is set, only the most recent login per username will be "
"active. Subsequent logins will cause machines previously logged in with the "
@@ -22062,18 +26803,21 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:529
#: usr/local/www/services_captiveportal.php:534
#: usr/local/www/services_captiveportal.php:532
+#: usr/local/www/services_captiveportal.php:550
msgid "MAC filtering"
msgstr ""
#: usr/local/www/services_captiveportal.php:532
#: usr/local/www/services_captiveportal.php:537
#: usr/local/www/services_captiveportal.php:535
+#: usr/local/www/services_captiveportal.php:553
msgid "Disable MAC filtering"
msgstr ""
#: usr/local/www/services_captiveportal.php:533
#: usr/local/www/services_captiveportal.php:538
#: usr/local/www/services_captiveportal.php:536
+#: usr/local/www/services_captiveportal.php:554
msgid ""
"If this option is set, no attempts will be made to ensure that the MAC "
"address of clients stays the same while they're logged in.This is required "
@@ -22084,30 +26828,35 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:534
#: usr/local/www/services_captiveportal.php:539
#: usr/local/www/services_captiveportal.php:537
+#: usr/local/www/services_captiveportal.php:555
msgid "and the clients)."
msgstr ""
#: usr/local/www/services_captiveportal.php:535
#: usr/local/www/services_captiveportal.php:540
#: usr/local/www/services_captiveportal.php:538
+#: usr/local/www/services_captiveportal.php:556
msgid "If this is enabled, RADIUS MAC authentication cannot be used."
msgstr ""
#: usr/local/www/services_captiveportal.php:538
#: usr/local/www/services_captiveportal.php:543
#: usr/local/www/services_captiveportal.php:541
+#: usr/local/www/services_captiveportal.php:559
msgid "Pass-through MAC Auto Entry"
msgstr ""
#: usr/local/www/services_captiveportal.php:541
#: usr/local/www/services_captiveportal.php:546
#: usr/local/www/services_captiveportal.php:544
+#: usr/local/www/services_captiveportal.php:562
msgid "Enable Pass-through MAC automatic additions"
msgstr ""
#: usr/local/www/services_captiveportal.php:542
#: usr/local/www/services_captiveportal.php:547
#: usr/local/www/services_captiveportal.php:545
+#: usr/local/www/services_captiveportal.php:563
msgid ""
"If this option is set, a MAC passthrough entry is automatically added after "
"the user has successfully authenticated. Users of that MAC address will "
@@ -22120,6 +26869,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:554
#: usr/local/www/services_captiveportal.php:546
#: usr/local/www/services_captiveportal.php:552
+#: usr/local/www/services_captiveportal.php:564
+#: usr/local/www/services_captiveportal.php:570
msgid ""
"To remove the passthrough MAC entry you either have to log in and remove it "
"manually from the"
@@ -22131,6 +26882,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:554
#: usr/local/www/services_captiveportal.php:546
#: usr/local/www/services_captiveportal.php:552
+#: usr/local/www/services_captiveportal.php:564
+#: usr/local/www/services_captiveportal.php:570
msgid "Pass-through MAC tab"
msgstr ""
@@ -22140,12 +26893,15 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:554
#: usr/local/www/services_captiveportal.php:546
#: usr/local/www/services_captiveportal.php:552
+#: usr/local/www/services_captiveportal.php:564
+#: usr/local/www/services_captiveportal.php:570
msgid "or send a POST from another system to remove it."
msgstr ""
#: usr/local/www/services_captiveportal.php:544
#: usr/local/www/services_captiveportal.php:549
#: usr/local/www/services_captiveportal.php:547
+#: usr/local/www/services_captiveportal.php:565
msgid ""
"If this is enabled, RADIUS MAC authentication cannot be used. Also, the "
"logout window will not be shown."
@@ -22154,12 +26910,14 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:547
#: usr/local/www/services_captiveportal.php:552
#: usr/local/www/services_captiveportal.php:550
+#: usr/local/www/services_captiveportal.php:568
msgid "Enable Pass-through MAC automatic addition with username"
msgstr ""
#: usr/local/www/services_captiveportal.php:548
#: usr/local/www/services_captiveportal.php:553
#: usr/local/www/services_captiveportal.php:551
+#: usr/local/www/services_captiveportal.php:569
msgid ""
"If this option is set, with the automatically MAC passthrough entry created "
"the username, used during authentication, will be saved."
@@ -22168,30 +26926,35 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:553
#: usr/local/www/services_captiveportal.php:558
#: usr/local/www/services_captiveportal.php:556
+#: usr/local/www/services_captiveportal.php:574
msgid "Per-user bandwidth restriction"
msgstr ""
#: usr/local/www/services_captiveportal.php:556
#: usr/local/www/services_captiveportal.php:561
#: usr/local/www/services_captiveportal.php:559
+#: usr/local/www/services_captiveportal.php:577
msgid "Enable per-user bandwidth restriction"
msgstr ""
#: usr/local/www/services_captiveportal.php:559
#: usr/local/www/services_captiveportal.php:564
#: usr/local/www/services_captiveportal.php:562
+#: usr/local/www/services_captiveportal.php:580
msgid "Default download"
msgstr ""
#: usr/local/www/services_captiveportal.php:563
#: usr/local/www/services_captiveportal.php:568
#: usr/local/www/services_captiveportal.php:566
+#: usr/local/www/services_captiveportal.php:584
msgid "Default upload"
msgstr ""
#: usr/local/www/services_captiveportal.php:567
#: usr/local/www/services_captiveportal.php:572
#: usr/local/www/services_captiveportal.php:570
+#: usr/local/www/services_captiveportal.php:588
msgid ""
"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 "
@@ -22221,6 +26984,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:583
#: usr/local/www/services_captiveportal.php:588
#: usr/local/www/services_captiveportal.php:586
+#: usr/local/www/services_captiveportal.php:580
+#: usr/local/www/services_captiveportal.php:596
msgid "No Authentication"
msgstr ""
@@ -22229,6 +26994,10 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:592
#: usr/local/www/diag_ipsec.php:195
#: usr/local/www/services_captiveportal.php:590
+#: usr/local/www/diag_ipsec.php:196
+#: usr/local/www/services_captiveportal.php:584
+#: usr/local/www/diag_ipsec.php:196
+#: usr/local/www/services_captiveportal.php:600
msgid "Local"
msgstr ""
@@ -22236,14 +27005,18 @@ msgstr ""
#: usr/local/www/fbegin.inc:95 usr/local/www/system_usermanager.php:54
#: usr/local/www/fbegin.inc:110 usr/local/www/fbegin.inc:112
#: usr/local/www/services_captiveportal.php:592 usr/local/www/fbegin.inc:119
-#: usr/local/www/fbegin.inc:121 usr/local/www/system_usermanager.php:54
-#: usr/local/www/services_captiveportal.php:590
+#: usr/local/www/fbegin.inc:121 usr/local/www/services_captiveportal.php:590
+#: usr/local/www/services_captiveportal.php:584 usr/local/www/fbegin.inc:111
+#: usr/local/www/fbegin.inc:113 usr/local/www/services_captiveportal.php:600
+#: usr/local/www/fbegin.inc:111 usr/local/www/fbegin.inc:113
+#: usr/local/www/system_usermanager.php:54
msgid "User Manager"
msgstr ""
#: usr/local/www/services_captiveportal.php:591
#: usr/local/www/services_captiveportal.php:596
#: usr/local/www/services_captiveportal.php:594
+#: usr/local/www/services_captiveportal.php:612
msgid "RADIUS Authentication"
msgstr ""
@@ -22252,12 +27025,18 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:678
#: usr/local/www/services_captiveportal.php:633
#: usr/local/www/services_captiveportal.php:676
+#: usr/local/www/services_captiveportal.php:634
+#: usr/local/www/services_captiveportal.php:677
+#: usr/local/www/services_captiveportal.php:650
+#: usr/local/www/services_captiveportal.php:693
msgid "Primary RADIUS server"
msgstr ""
#: usr/local/www/services_captiveportal.php:604
#: usr/local/www/services_captiveportal.php:640
#: usr/local/www/services_captiveportal.php:638
+#: usr/local/www/services_captiveportal.php:639
+#: usr/local/www/services_captiveportal.php:655
msgid ""
"Enter the IP address of the RADIUS server which users of the captive portal "
"have to authenticate against."
@@ -22266,6 +27045,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:609
#: usr/local/www/services_captiveportal.php:645
#: usr/local/www/services_captiveportal.php:643
+#: usr/local/www/services_captiveportal.php:644
+#: usr/local/www/services_captiveportal.php:660
msgid "Leave this field blank to use the default port (1812)."
msgstr ""
@@ -22284,12 +27065,22 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:688
#: usr/local/www/services_captiveportal.php:707
#: usr/local/www/services_captiveportal.php:765
+#: usr/local/www/services_captiveportal.php:647
+#: usr/local/www/services_captiveportal.php:667
+#: usr/local/www/services_captiveportal.php:689
+#: usr/local/www/services_captiveportal.php:708
+#: usr/local/www/services_captiveportal.php:663
+#: usr/local/www/services_captiveportal.php:683
+#: usr/local/www/services_captiveportal.php:705
+#: usr/local/www/services_captiveportal.php:724
msgid "Shared secret"
msgstr ""
#: usr/local/www/services_captiveportal.php:614
#: usr/local/www/services_captiveportal.php:650
#: usr/local/www/services_captiveportal.php:648
+#: usr/local/www/services_captiveportal.php:649
+#: usr/local/www/services_captiveportal.php:665
msgid ""
"Leave this field blank to not use a RADIUS shared secret (not recommended)."
msgstr ""
@@ -22299,12 +27090,18 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:697 usr/local/www/vpn_pptp.php:442
#: usr/local/www/services_captiveportal.php:654
#: usr/local/www/services_captiveportal.php:695
+#: usr/local/www/services_captiveportal.php:655
+#: usr/local/www/services_captiveportal.php:696 usr/local/www/vpn_pptp.php:445
+#: usr/local/www/services_captiveportal.php:671
+#: usr/local/www/services_captiveportal.php:712 usr/local/www/vpn_pptp.php:445
msgid "Secondary RADIUS server"
msgstr ""
#: usr/local/www/services_captiveportal.php:625
#: usr/local/www/services_captiveportal.php:661
#: usr/local/www/services_captiveportal.php:659
+#: usr/local/www/services_captiveportal.php:660
+#: usr/local/www/services_captiveportal.php:676
msgid ""
"If you have a second RADIUS server, you can activate it by entering its IP "
"address here."
@@ -22317,6 +27114,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:644
#: usr/local/www/services_captiveportal.php:683
#: usr/local/www/services_captiveportal.php:681
+#: usr/local/www/services_captiveportal.php:682
+#: usr/local/www/services_captiveportal.php:698
msgid ""
"If you have a third RADIUS server, you can activate it by entering its IP "
"address here."
@@ -22329,6 +27128,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:663
#: usr/local/www/services_captiveportal.php:702
#: usr/local/www/services_captiveportal.php:700
+#: usr/local/www/services_captiveportal.php:701
+#: usr/local/www/services_captiveportal.php:717
msgid ""
"If you have a fourth RADIUS server, you can activate it by entering its IP "
"address here."
@@ -22337,18 +27138,24 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:677
#: usr/local/www/services_captiveportal.php:719
#: usr/local/www/services_captiveportal.php:717
+#: usr/local/www/services_captiveportal.php:715
+#: usr/local/www/services_captiveportal.php:731
msgid "Accounting"
msgstr ""
#: usr/local/www/services_captiveportal.php:682
#: usr/local/www/services_captiveportal.php:724
#: usr/local/www/services_captiveportal.php:722
+#: usr/local/www/services_captiveportal.php:720
+#: usr/local/www/services_captiveportal.php:736
msgid "send RADIUS accounting packets"
msgstr ""
#: usr/local/www/services_captiveportal.php:683
#: usr/local/www/services_captiveportal.php:725
#: usr/local/www/services_captiveportal.php:723
+#: usr/local/www/services_captiveportal.php:721
+#: usr/local/www/services_captiveportal.php:737
msgid ""
"If this is enabled, RADIUS accounting packets will be sent to the primary "
"RADIUS server."
@@ -22357,30 +27164,40 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:686
#: usr/local/www/services_captiveportal.php:728
#: usr/local/www/services_captiveportal.php:726
+#: usr/local/www/services_captiveportal.php:724
+#: usr/local/www/services_captiveportal.php:740
msgid "Accounting port"
msgstr ""
#: usr/local/www/services_captiveportal.php:688
#: usr/local/www/services_captiveportal.php:730
#: usr/local/www/services_captiveportal.php:728
+#: usr/local/www/services_captiveportal.php:726
+#: usr/local/www/services_captiveportal.php:742
msgid "Leave blank to use the default port (1813)."
msgstr ""
#: usr/local/www/services_captiveportal.php:694
#: usr/local/www/services_captiveportal.php:736
#: usr/local/www/services_captiveportal.php:734
+#: usr/local/www/services_captiveportal.php:746
+#: usr/local/www/services_captiveportal.php:762
msgid "Reauthentication"
msgstr ""
#: usr/local/www/services_captiveportal.php:699
#: usr/local/www/services_captiveportal.php:741
#: usr/local/www/services_captiveportal.php:739
+#: usr/local/www/services_captiveportal.php:748
+#: usr/local/www/services_captiveportal.php:764
msgid "Reauthenticate connected users every minute"
msgstr ""
#: usr/local/www/services_captiveportal.php:700
#: usr/local/www/services_captiveportal.php:742
#: usr/local/www/services_captiveportal.php:740
+#: usr/local/www/services_captiveportal.php:749
+#: usr/local/www/services_captiveportal.php:765
msgid ""
"If reauthentication is enabled, Access-Requests will be sent to the RADIUS "
"server for each user that is logged in every minute. If an Access-Reject is "
@@ -22391,42 +27208,56 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:704
#: usr/local/www/services_captiveportal.php:746
#: usr/local/www/services_captiveportal.php:744
+#: usr/local/www/services_captiveportal.php:732
+#: usr/local/www/services_captiveportal.php:748
msgid "Accounting updates"
msgstr ""
#: usr/local/www/services_captiveportal.php:706
#: usr/local/www/services_captiveportal.php:748
#: usr/local/www/services_captiveportal.php:746
+#: usr/local/www/services_captiveportal.php:734
+#: usr/local/www/services_captiveportal.php:750
msgid "no accounting updates"
msgstr ""
#: usr/local/www/services_captiveportal.php:707
#: usr/local/www/services_captiveportal.php:749
#: usr/local/www/services_captiveportal.php:747
+#: usr/local/www/services_captiveportal.php:735
+#: usr/local/www/services_captiveportal.php:751
msgid "stop/start accounting"
msgstr ""
#: usr/local/www/services_captiveportal.php:708
#: usr/local/www/services_captiveportal.php:750
#: usr/local/www/services_captiveportal.php:748
+#: usr/local/www/services_captiveportal.php:736
+#: usr/local/www/services_captiveportal.php:752
msgid "interim update"
msgstr ""
#: usr/local/www/services_captiveportal.php:715
#: usr/local/www/services_captiveportal.php:757
#: usr/local/www/services_captiveportal.php:755
+#: usr/local/www/services_captiveportal.php:753
+#: usr/local/www/services_captiveportal.php:769
msgid "RADIUS MAC authentication"
msgstr ""
#: usr/local/www/services_captiveportal.php:720
#: usr/local/www/services_captiveportal.php:762
#: usr/local/www/services_captiveportal.php:760
+#: usr/local/www/services_captiveportal.php:755
+#: usr/local/www/services_captiveportal.php:771
msgid "Enable RADIUS MAC authentication"
msgstr ""
#: usr/local/www/services_captiveportal.php:721
#: usr/local/www/services_captiveportal.php:763
#: usr/local/www/services_captiveportal.php:761
+#: usr/local/www/services_captiveportal.php:756
+#: usr/local/www/services_captiveportal.php:772
msgid ""
"If this option is enabled, the captive portal will try to authenticate users "
"by sending their MAC address as the username and the password entered below "
@@ -22436,36 +27267,48 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:732
#: usr/local/www/services_captiveportal.php:774
#: usr/local/www/services_captiveportal.php:772
+#: usr/local/www/services_captiveportal.php:743
+#: usr/local/www/services_captiveportal.php:759
msgid "RADIUS options"
msgstr ""
#: usr/local/www/services_captiveportal.php:736
#: usr/local/www/services_captiveportal.php:778
#: usr/local/www/services_captiveportal.php:776
+#: usr/local/www/services_captiveportal.php:764
+#: usr/local/www/services_captiveportal.php:780
msgid "RADIUS NAS IP attribute"
msgstr ""
#: usr/local/www/services_captiveportal.php:766
#: usr/local/www/services_captiveportal.php:808
#: usr/local/www/services_captiveportal.php:806
+#: usr/local/www/services_captiveportal.php:794
+#: usr/local/www/services_captiveportal.php:810
msgid "Choose the IP to use for calling station attribute."
msgstr ""
#: usr/local/www/services_captiveportal.php:771
#: usr/local/www/services_captiveportal.php:813
#: usr/local/www/services_captiveportal.php:811
+#: usr/local/www/services_captiveportal.php:799
+#: usr/local/www/services_captiveportal.php:815
msgid "Session-Timeout"
msgstr ""
#: usr/local/www/services_captiveportal.php:772
#: usr/local/www/services_captiveportal.php:814
#: usr/local/www/services_captiveportal.php:812
+#: usr/local/www/services_captiveportal.php:800
+#: usr/local/www/services_captiveportal.php:816
msgid "Use RADIUS Session-Timeout attributes"
msgstr ""
#: usr/local/www/services_captiveportal.php:773
#: usr/local/www/services_captiveportal.php:815
#: usr/local/www/services_captiveportal.php:813
+#: usr/local/www/services_captiveportal.php:801
+#: usr/local/www/services_captiveportal.php:817
msgid ""
"When this is enabled, clients will be disconnected after the amount of time "
"retrieved from the RADIUS Session-Timeout attribute."
@@ -22474,6 +27317,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:789
#: usr/local/www/services_captiveportal.php:831
#: usr/local/www/services_captiveportal.php:829
+#: usr/local/www/services_captiveportal.php:817
+#: usr/local/www/services_captiveportal.php:833
#, php-format
msgid ""
"If RADIUS type is set to Cisco, in Access-Requests the value of Calling-"
@@ -22485,6 +27330,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:796
#: usr/local/www/services_captiveportal.php:838
#: usr/local/www/services_captiveportal.php:836
+#: usr/local/www/services_captiveportal.php:834
+#: usr/local/www/services_captiveportal.php:850
msgid "MAC address format"
msgstr ""
@@ -22511,6 +27358,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:810
#: usr/local/www/services_captiveportal.php:852
#: usr/local/www/services_captiveportal.php:850
+#: usr/local/www/services_captiveportal.php:849
+#: usr/local/www/services_captiveportal.php:865
msgid ""
"This option changes the MAC address format used in the whole RADIUS system. "
"Change this if you also"
@@ -22519,48 +27368,62 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:811
#: usr/local/www/services_captiveportal.php:853
#: usr/local/www/services_captiveportal.php:851
+#: usr/local/www/services_captiveportal.php:850
+#: usr/local/www/services_captiveportal.php:866
msgid "need to change the username format for RADIUS MAC authentication."
msgstr ""
#: usr/local/www/services_captiveportal.php:812
#: usr/local/www/services_captiveportal.php:854
#: usr/local/www/services_captiveportal.php:852
+#: usr/local/www/services_captiveportal.php:851
+#: usr/local/www/services_captiveportal.php:867
msgid "default:"
msgstr ""
#: usr/local/www/services_captiveportal.php:813
#: usr/local/www/services_captiveportal.php:855
#: usr/local/www/services_captiveportal.php:853
+#: usr/local/www/services_captiveportal.php:852
+#: usr/local/www/services_captiveportal.php:868
msgid "singledash:"
msgstr ""
#: usr/local/www/services_captiveportal.php:814
#: usr/local/www/services_captiveportal.php:856
#: usr/local/www/services_captiveportal.php:854
+#: usr/local/www/services_captiveportal.php:853
+#: usr/local/www/services_captiveportal.php:869
msgid "ietf:"
msgstr ""
#: usr/local/www/services_captiveportal.php:815
#: usr/local/www/services_captiveportal.php:857
#: usr/local/www/services_captiveportal.php:855
+#: usr/local/www/services_captiveportal.php:854
+#: usr/local/www/services_captiveportal.php:870
msgid "cisco:"
msgstr ""
#: usr/local/www/services_captiveportal.php:816
#: usr/local/www/services_captiveportal.php:858
#: usr/local/www/services_captiveportal.php:856
+#: usr/local/www/services_captiveportal.php:855
+#: usr/local/www/services_captiveportal.php:871
msgid "unformatted:"
msgstr ""
#: usr/local/www/services_captiveportal.php:819
#: usr/local/www/services_captiveportal.php:861
#: usr/local/www/services_captiveportal.php:859
+#: usr/local/www/services_captiveportal.php:877
msgid "HTTPS login"
msgstr ""
#: usr/local/www/services_captiveportal.php:822
#: usr/local/www/services_captiveportal.php:864
#: usr/local/www/services_captiveportal.php:862
+#: usr/local/www/services_captiveportal.php:880
msgid "Enable HTTPS login"
msgstr ""
@@ -22575,12 +27438,14 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:826
#: usr/local/www/services_captiveportal.php:868
#: usr/local/www/services_captiveportal.php:866
+#: usr/local/www/services_captiveportal.php:884
msgid "HTTPS server name"
msgstr ""
#: usr/local/www/services_captiveportal.php:829
#: usr/local/www/services_captiveportal.php:871
#: usr/local/www/services_captiveportal.php:869
+#: usr/local/www/services_captiveportal.php:887
#, php-format
msgid ""
"This name will be used in the form action for the HTTPS POST and should "
@@ -22620,14 +27485,18 @@ msgstr ""
#: usr/local/www/system_certmanager.php:515
#: usr/local/www/system_certmanager.php:614
#: usr/local/www/services_captiveportal.php:892
-#: usr/local/www/system_certmanager.php:614
-#: usr/local/www/system_camanager.php:406
+#: usr/local/www/system_camanager.php:413
+#: usr/local/www/system_certmanager.php:623
+#: usr/local/www/system_camanager.php:413
+#: usr/local/www/system_certmanager.php:624
msgid "Paste a certificate in X.509 PEM format here."
msgstr ""
#: usr/local/www/services_captiveportal.php:853
#: usr/local/www/services_captiveportal.php:895
#: usr/local/www/services_captiveportal.php:891
+#: usr/local/www/services_captiveportal.php:893
+#: usr/local/www/services_captiveportal.php:909
msgid "Portal page contents"
msgstr ""
@@ -22640,12 +27509,20 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:906
#: usr/local/www/services_captiveportal.php:940
#: usr/local/www/services_captiveportal.php:954
+#: usr/local/www/services_captiveportal.php:908
+#: usr/local/www/services_captiveportal.php:942
+#: usr/local/www/services_captiveportal.php:956
+#: usr/local/www/services_captiveportal.php:924
+#: usr/local/www/services_captiveportal.php:958
+#: usr/local/www/services_captiveportal.php:972
msgid "View current page"
msgstr ""
#: usr/local/www/services_captiveportal.php:871
#: usr/local/www/services_captiveportal.php:916
#: usr/local/www/services_captiveportal.php:912
+#: usr/local/www/services_captiveportal.php:914
+#: usr/local/www/services_captiveportal.php:930
#, php-format
msgid ""
"Upload an HTML/PHP file for the portal page here (leave blank to keep the "
@@ -22658,12 +27535,16 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:882
#: usr/local/www/services_captiveportal.php:927
#: usr/local/www/services_captiveportal.php:923
+#: usr/local/www/services_captiveportal.php:925
+#: usr/local/www/services_captiveportal.php:941
msgid "Example code for the form:"
msgstr ""
#: usr/local/www/services_captiveportal.php:894
#: usr/local/www/services_captiveportal.php:939
#: usr/local/www/services_captiveportal.php:935
+#: usr/local/www/services_captiveportal.php:937
+#: usr/local/www/services_captiveportal.php:953
msgid "error page"
msgstr ""
@@ -22673,12 +27554,18 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:954
#: usr/local/www/services_captiveportal.php:936
#: usr/local/www/services_captiveportal.php:950
+#: usr/local/www/services_captiveportal.php:938
+#: usr/local/www/services_captiveportal.php:952
+#: usr/local/www/services_captiveportal.php:954
+#: usr/local/www/services_captiveportal.php:968
msgid "contents"
msgstr ""
#: usr/local/www/services_captiveportal.php:903
#: usr/local/www/services_captiveportal.php:948
#: usr/local/www/services_captiveportal.php:944
+#: usr/local/www/services_captiveportal.php:946
+#: usr/local/www/services_captiveportal.php:962
msgid ""
"The contents of the HTML/PHP file that you upload here are displayed when an "
"authentication error occurs. You may include"
@@ -22687,6 +27574,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:904
#: usr/local/www/services_captiveportal.php:949
#: usr/local/www/services_captiveportal.php:945
+#: usr/local/www/services_captiveportal.php:947
+#: usr/local/www/services_captiveportal.php:963
msgid ""
"which will be replaced by the error or reply messages from the RADIUS "
"server, if any."
@@ -22695,12 +27584,16 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:907 usr/local/www/fbegin.inc:86
#: usr/local/www/fbegin.inc:103 usr/local/www/services_captiveportal.php:952
#: usr/local/www/fbegin.inc:112 usr/local/www/services_captiveportal.php:948
+#: usr/local/www/services_captiveportal.php:950 usr/local/www/fbegin.inc:104
+#: usr/local/www/services_captiveportal.php:966 usr/local/www/fbegin.inc:104
msgid "Logout"
msgstr ""
#: usr/local/www/services_captiveportal.php:917
#: usr/local/www/services_captiveportal.php:962
#: usr/local/www/services_captiveportal.php:958
+#: usr/local/www/services_captiveportal.php:960
+#: usr/local/www/services_captiveportal.php:976
msgid ""
"The contents of the HTML/PHP file that you upload here are displayed on "
"authentication success when the logout popup is enabled."
@@ -22709,6 +27602,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:930
#: usr/local/www/services_captiveportal.php:975
#: usr/local/www/services_captiveportal.php:971
+#: usr/local/www/services_captiveportal.php:973
+#: usr/local/www/services_captiveportal.php:989
msgid ""
"Changing any settings on this page will disconnect all clients! Don't forget "
"to enable the DHCP server on your captive portal interface! Make sure that "
@@ -22719,18 +27614,25 @@ msgstr ""
#: usr/local/www/services_captiveportal_filemanager.php:101
#: usr/local/www/services_captiveportal_filemanager.php:98
+#: usr/local/www/services_captiveportal_filemanager.php:98
#, php-format
msgid "A file with the name '%s' already exists."
msgstr ""
#: usr/local/www/services_captiveportal_filemanager.php:108
#: usr/local/www/services_captiveportal_filemanager.php:105
+#: usr/local/www/services_captiveportal_filemanager.php:105
msgid "The total size of all files uploaded may not exceed "
msgstr ""
#: usr/local/www/services_captiveportal_filemanager.php:163
#: usr/local/www/system_firmware_restorefullbackup.php:141
#: usr/local/www/services_captiveportal_filemanager.php:160
+#: usr/local/www/diag_system_pftop.php:140
+#: usr/local/www/diag_system_pftop.php:159
+#: usr/local/www/diag_system_pftop.php:140
+#: usr/local/www/diag_system_pftop.php:159
+#: usr/local/www/services_captiveportal_filemanager.php:160
#: usr/local/www/system_firmware_restorefullbackup.php:141
msgid "Size"
msgstr ""
@@ -22739,31 +27641,38 @@ msgstr ""
#: usr/local/www/services_captiveportal_filemanager.php:207
#: usr/local/www/services_captiveportal_filemanager.php:165
#: usr/local/www/services_captiveportal_filemanager.php:204
+#: usr/local/www/services_captiveportal_filemanager.php:165
+#: usr/local/www/services_captiveportal_filemanager.php:204
msgid "add file"
msgstr ""
#: usr/local/www/services_captiveportal_filemanager.php:179
#: usr/local/www/services_captiveportal_filemanager.php:176
+#: usr/local/www/services_captiveportal_filemanager.php:176
msgid "Do you really want to delete this file?"
msgstr ""
#: usr/local/www/services_captiveportal_filemanager.php:179
#: usr/local/www/services_captiveportal_filemanager.php:176
+#: usr/local/www/services_captiveportal_filemanager.php:176
msgid "delete file"
msgstr ""
#: usr/local/www/services_captiveportal_filemanager.php:186
#: usr/local/www/services_captiveportal_filemanager.php:183
+#: usr/local/www/services_captiveportal_filemanager.php:183
msgid "TOTAL"
msgstr ""
#: usr/local/www/services_captiveportal_filemanager.php:197
#: usr/local/www/services_captiveportal_filemanager.php:194
+#: usr/local/www/services_captiveportal_filemanager.php:194
msgid "cancel"
msgstr ""
#: usr/local/www/services_captiveportal_filemanager.php:217
#: usr/local/www/services_captiveportal_filemanager.php:214
+#: usr/local/www/services_captiveportal_filemanager.php:214
msgid ""
"Any files that you upload here with the filename prefix of captiveportal- "
"will be made available in the root directory of the captive portal HTTP(S) "
@@ -22775,6 +27684,7 @@ msgstr ""
#: usr/local/www/services_captiveportal_filemanager.php:224
#: usr/local/www/services_captiveportal_filemanager.php:221
+#: usr/local/www/services_captiveportal_filemanager.php:221
msgid ""
"In addition, you can also upload .php files for execution. You can pass the "
"filename to your custom page from the initial page by using text similar to:"
@@ -22782,11 +27692,13 @@ msgstr ""
#: usr/local/www/services_captiveportal_filemanager.php:227
#: usr/local/www/services_captiveportal_filemanager.php:224
+#: usr/local/www/services_captiveportal_filemanager.php:224
msgid "Acceptable usage policy"
msgstr ""
#: usr/local/www/services_captiveportal_filemanager.php:229
#: usr/local/www/services_captiveportal_filemanager.php:226
+#: usr/local/www/services_captiveportal_filemanager.php:226
#, php-format
msgid "The total size limit for all files is %s."
msgstr ""
@@ -22798,92 +27710,116 @@ msgstr ""
#: usr/local/www/diag_limiter_info.php:108
#: usr/local/www/diag_limiter_info.php:109
+#: usr/local/www/diag_limiter_info.php:109
msgid "Gathering Limiter information, please wait..."
msgstr ""
#: usr/local/www/firewall_nat.php:197 usr/local/www/firewall_nat.php:202
+#: usr/local/www/firewall_nat.php:202
msgid "Src. addr"
msgstr ""
#: usr/local/www/firewall_nat.php:198 usr/local/www/firewall_nat.php:203
+#: usr/local/www/firewall_nat.php:203
msgid "Src. ports"
msgstr ""
#: usr/local/www/firewall_nat.php:199 usr/local/www/firewall_nat.php:204
+#: usr/local/www/firewall_nat.php:204
msgid "Dest. addr"
msgstr ""
#: usr/local/www/firewall_nat.php:200 usr/local/www/firewall_nat.php:205
+#: usr/local/www/firewall_nat.php:205
msgid "Dest. ports"
msgstr ""
#: usr/local/www/firewall_nat.php:201 usr/local/www/firewall_nat.php:206
+#: usr/local/www/firewall_nat.php:206
msgid "NAT IP"
msgstr ""
#: usr/local/www/firewall_nat.php:202 usr/local/www/firewall_nat.php:207
+#: usr/local/www/firewall_nat.php:207
msgid "NAT Ports"
msgstr ""
#: usr/local/www/firewall_nat.php:252 usr/local/www/firewall_nat.php:265
+#: usr/local/www/firewall_nat.php:265
msgid "All traffic matching this NAT entry is passed"
msgstr ""
#: usr/local/www/firewall_nat.php:254 usr/local/www/firewall_nat.php:267
+#: usr/local/www/firewall_nat.php:267
msgid "Firewall rule ID"
msgstr ""
#: usr/local/www/firewall_nat.php:254 usr/local/www/firewall_nat.php:267
+#: usr/local/www/firewall_nat.php:267
msgid "is managed with this rule"
msgstr ""
#: usr/local/www/firewall_nat.php:313 usr/local/www/firewall_nat_out.php:450
#: usr/local/www/firewall_nat_out.php:451 usr/local/www/firewall_nat.php:326
+#: usr/local/www/firewall_nat_out.php:448 usr/local/www/firewall_nat.php:326
+#: usr/local/www/firewall_nat_out.php:455
msgid "Do you really want to delete this rule?"
msgstr ""
#: usr/local/www/firewall_nat.php:349 usr/local/www/firewall_nat.php:362
+#: usr/local/www/firewall_nat.php:362
msgid "linked rule"
msgstr ""
#: usr/local/www/diag_ipsec.php:78 usr/local/www/diag_ipsec_sad.php:73
#: usr/local/www/diag_ipsec_spd.php:72 usr/local/www/diag_ipsec.php:88
#: usr/local/www/diag_ipsec.php:89 usr/local/www/diag_ipsec_sad.php:74
-#: usr/local/www/diag_ipsec_spd.php:73
+#: usr/local/www/diag_ipsec_spd.php:73 usr/local/www/diag_ipsec.php:91
+#: usr/local/www/diag_ipsec.php:91 usr/local/www/diag_ipsec_spd.php:73
+#: usr/local/www/diag_ipsec_sad.php:74
msgid "Overview"
msgstr ""
#: usr/local/www/diag_ipsec.php:79 usr/local/www/diag_ipsec_sad.php:49
#: usr/local/www/diag_ipsec_sad.php:74 usr/local/www/diag_ipsec_spd.php:73
#: usr/local/www/diag_ipsec.php:89 usr/local/www/diag_ipsec.php:90
-#: usr/local/www/diag_ipsec_sad.php:49 usr/local/www/diag_ipsec_sad.php:75
-#: usr/local/www/diag_ipsec_spd.php:74
+#: usr/local/www/diag_ipsec_sad.php:75 usr/local/www/diag_ipsec_spd.php:74
+#: usr/local/www/diag_ipsec.php:92 usr/local/www/diag_ipsec.php:92
+#: usr/local/www/diag_ipsec_spd.php:74 usr/local/www/diag_ipsec_sad.php:49
+#: usr/local/www/diag_ipsec_sad.php:75
msgid "SAD"
msgstr ""
#: usr/local/www/diag_ipsec.php:80 usr/local/www/diag_ipsec_sad.php:75
#: usr/local/www/diag_ipsec_spd.php:49 usr/local/www/diag_ipsec_spd.php:74
#: usr/local/www/diag_ipsec.php:90 usr/local/www/diag_ipsec.php:91
-#: usr/local/www/diag_ipsec_sad.php:76 usr/local/www/diag_ipsec_spd.php:49
-#: usr/local/www/diag_ipsec_spd.php:75
+#: usr/local/www/diag_ipsec_sad.php:76 usr/local/www/diag_ipsec_spd.php:75
+#: usr/local/www/diag_ipsec.php:93 usr/local/www/diag_ipsec.php:93
+#: usr/local/www/diag_ipsec_spd.php:49 usr/local/www/diag_ipsec_spd.php:75
+#: usr/local/www/diag_ipsec_sad.php:76
msgid "SPD"
msgstr ""
#: usr/local/www/diag_ipsec.php:81 usr/local/www/diag_ipsec_sad.php:76
#: usr/local/www/diag_ipsec_spd.php:75 usr/local/www/diag_ipsec.php:91
#: usr/local/www/diag_ipsec.php:92 usr/local/www/diag_ipsec_sad.php:77
-#: usr/local/www/diag_ipsec_spd.php:76
+#: usr/local/www/diag_ipsec_spd.php:76 usr/local/www/diag_ipsec.php:94
+#: usr/local/www/diag_ipsec.php:94 usr/local/www/diag_ipsec_spd.php:76
+#: usr/local/www/diag_ipsec_sad.php:77
msgid "Logs"
msgstr ""
#: usr/local/www/diag_ipsec.php:92 usr/local/www/diag_ipsec.php:103
-#: usr/local/www/diag_ipsec.php:104
+#: usr/local/www/diag_ipsec.php:104 usr/local/www/diag_ipsec.php:106
+#: usr/local/www/diag_ipsec.php:106
msgid "Remote IP"
msgstr ""
#: usr/local/www/diag_ipsec.php:93 usr/local/www/vpn_ipsec_phase2.php:419
#: usr/local/www/diag_ipsec.php:104 usr/local/www/vpn_ipsec_phase2.php:445
#: usr/local/www/diag_ipsec.php:105 usr/local/www/vpn_ipsec_phase2.php:511
+#: usr/local/www/diag_ipsec.php:107 usr/local/www/vpn_ipsec_phase2.php:533
+#: usr/local/www/diag_ipsec.php:107 usr/local/www/vpn_ipsec_phase2.php:533
msgid "Local Network"
msgstr ""
@@ -22893,37 +27829,46 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1197
#: usr/local/www/vpn_ipsec_phase2.php:487
#: usr/local/www/vpn_openvpn_client.php:767 usr/local/www/diag_ipsec.php:106
-#: usr/local/www/vpn_ipsec_phase2.php:589
+#: usr/local/www/vpn_ipsec_phase2.php:589 usr/local/www/diag_ipsec.php:108
+#: usr/local/www/vpn_ipsec_phase2.php:610 usr/local/www/diag_ipsec.php:108
+#: usr/local/www/vpn_ipsec_phase2.php:610
msgid "Remote Network"
msgstr ""
#: usr/local/www/diag_ipsec.php:165 usr/local/www/diag_ipsec_sad.php:135
#: usr/local/www/diag_ipsec_spd.php:144 usr/local/www/diag_ipsec_sad.php:136
-#: usr/local/www/diag_ipsec_spd.php:145
+#: usr/local/www/diag_ipsec_spd.php:145 usr/local/www/diag_ipsec_spd.php:145
+#: usr/local/www/diag_ipsec_sad.php:136
msgid "You can configure your IPsec"
msgstr ""
#: usr/local/www/diag_ipsec_sad.php:90 usr/local/www/diag_ipsec_sad.php:91
+#: usr/local/www/diag_ipsec_sad.php:91
msgid "SPI"
msgstr ""
#: usr/local/www/diag_ipsec_sad.php:91 usr/local/www/diag_ipsec_sad.php:92
+#: usr/local/www/diag_ipsec_sad.php:92
msgid "Enc. alg."
msgstr ""
#: usr/local/www/diag_ipsec_sad.php:92 usr/local/www/diag_ipsec_sad.php:93
+#: usr/local/www/diag_ipsec_sad.php:93
msgid "Auth. alg."
msgstr ""
#: usr/local/www/diag_ipsec_sad.php:93 usr/local/www/diag_ipsec_sad.php:94
+#: usr/local/www/diag_ipsec_sad.php:94
msgid "Data"
msgstr ""
#: usr/local/www/diag_ipsec_sad.php:112 usr/local/www/diag_ipsec_sad.php:113
+#: usr/local/www/diag_ipsec_sad.php:113
msgid "Do you really want to delete this security association?"
msgstr ""
#: usr/local/www/diag_ipsec_sad.php:121 usr/local/www/diag_ipsec_sad.php:122
+#: usr/local/www/diag_ipsec_sad.php:122
msgid "No IPsec security associations."
msgstr ""
@@ -22935,6 +27880,10 @@ msgstr ""
#: usr/local/www/services_captiveportal_ip.php:161
#: usr/local/www/services_captiveportal_hostname.php:126
#: usr/local/www/services_captiveportal_hostname.php:162
+#: usr/local/www/services_captiveportal_ip.php:121
+#: usr/local/www/services_captiveportal_ip.php:161
+#: usr/local/www/services_captiveportal_hostname.php:126
+#: usr/local/www/services_captiveportal_hostname.php:162
msgid "add address"
msgstr ""
@@ -22942,6 +27891,8 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname.php:154
#: usr/local/www/services_captiveportal_ip.php:151
#: usr/local/www/services_captiveportal_hostname.php:152
+#: usr/local/www/services_captiveportal_ip.php:151
+#: usr/local/www/services_captiveportal_hostname.php:152
msgid "edit address"
msgstr ""
@@ -22949,6 +27900,8 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname.php:155
#: usr/local/www/services_captiveportal_ip.php:152
#: usr/local/www/services_captiveportal_hostname.php:153
+#: usr/local/www/services_captiveportal_ip.php:152
+#: usr/local/www/services_captiveportal_hostname.php:153
msgid "Do you really want to delete this address?"
msgstr ""
@@ -22956,11 +27909,14 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname.php:155
#: usr/local/www/services_captiveportal_ip.php:152
#: usr/local/www/services_captiveportal_hostname.php:153
+#: usr/local/www/services_captiveportal_ip.php:152
+#: usr/local/www/services_captiveportal_hostname.php:153
msgid "delete address"
msgstr ""
#: usr/local/www/services_captiveportal_ip.php:172
#: usr/local/www/services_captiveportal_ip.php:170
+#: usr/local/www/services_captiveportal_ip.php:170
msgid ""
"Adding allowed IP addresses will allow IP access to/from these addresses "
"through the captive portal without being taken to the portal page. This can "
@@ -22978,6 +27934,10 @@ msgstr ""
#: usr/local/www/services_captiveportal_ip.php:181
#: usr/local/www/services_captiveportal_hostname.php:175
#: usr/local/www/services_captiveportal_hostname.php:182
+#: usr/local/www/services_captiveportal_ip.php:174
+#: usr/local/www/services_captiveportal_ip.php:181
+#: usr/local/www/services_captiveportal_hostname.php:175
+#: usr/local/www/services_captiveportal_hostname.php:182
msgid "All connections"
msgstr ""
@@ -22985,6 +27945,8 @@ msgstr ""
#: usr/local/www/services_captiveportal_ip.php:183
#: usr/local/www/services_captiveportal_ip.php:174
#: usr/local/www/services_captiveportal_ip.php:181
+#: usr/local/www/services_captiveportal_ip.php:174
+#: usr/local/www/services_captiveportal_ip.php:181
msgid "the IP address are allowed"
msgstr ""
@@ -22992,16 +27954,21 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname.php:184
#: usr/local/www/services_captiveportal_ip.php:181
#: usr/local/www/services_captiveportal_hostname.php:182
+#: usr/local/www/services_captiveportal_ip.php:181
+#: usr/local/www/services_captiveportal_hostname.php:182
msgid "from"
msgstr ""
#: usr/local/www/services_captiveportal_ip_edit.php:63
#: usr/local/www/services_captiveportal_ip_edit.php:60
+#: usr/local/www/services_captiveportal_ip_edit.php:60
msgid "Edit allowed IP address"
msgstr ""
#: usr/local/www/services_captiveportal_ip_edit.php:102
#: usr/local/www/services_captiveportal_ip_edit.php:100
+#: usr/local/www/services_captiveportal_ip_edit.php:99
+#: usr/local/www/services_captiveportal_ip_edit.php:99
msgid "Allowed IP address"
msgstr ""
@@ -23011,6 +27978,9 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname_edit.php:108
#: usr/local/www/services_captiveportal_mac_edit.php:106
#: usr/local/www/services_captiveportal_ip_edit.php:108
+#: usr/local/www/services_captiveportal_ip_edit.php:110
+#: usr/local/www/services_captiveportal_hostname_edit.php:108
+#: usr/local/www/services_captiveportal_mac_edit.php:106
msgid "Upload speed needs to be an integer"
msgstr ""
@@ -23020,6 +27990,9 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname_edit.php:110
#: usr/local/www/services_captiveportal_mac_edit.php:108
#: usr/local/www/services_captiveportal_ip_edit.php:111
+#: usr/local/www/services_captiveportal_ip_edit.php:113
+#: usr/local/www/services_captiveportal_hostname_edit.php:110
+#: usr/local/www/services_captiveportal_mac_edit.php:108
msgid "Download speed needs to be an integer"
msgstr ""
@@ -23029,11 +28002,16 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname_edit.php:117
#: usr/local/www/services_captiveportal_mac_edit.php:115
#: usr/local/www/services_captiveportal_ip_edit.php:118
+#: usr/local/www/services_captiveportal_ip_edit.php:120
+#: usr/local/www/services_captiveportal_hostname_edit.php:117
+#: usr/local/www/services_captiveportal_mac_edit.php:115
msgid "already allowed"
msgstr ""
#: usr/local/www/services_captiveportal_ip_edit.php:175
#: usr/local/www/services_captiveportal_ip_edit.php:173
+#: usr/local/www/services_captiveportal_ip_edit.php:184
+#: usr/local/www/services_captiveportal_ip_edit.php:184
msgid "Edit allowed ip rule"
msgstr ""
@@ -23051,6 +28029,12 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:581
#: usr/local/www/services_captiveportal_ip_edit.php:180
#: usr/local/www/services_captiveportal_ip_edit.php:189
+#: usr/local/www/system_gateways_edit.php:573
+#: usr/local/www/system_gateways_edit.php:585
+#: usr/local/www/system_gateways_edit.php:575
+#: usr/local/www/system_gateways_edit.php:587
+#: usr/local/www/services_captiveportal_hostname_edit.php:164
+#: usr/local/www/services_captiveportal_hostname_edit.php:172
msgid "From"
msgstr ""
@@ -23068,6 +28052,12 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:584
#: usr/local/www/services_captiveportal_ip_edit.php:180
#: usr/local/www/services_captiveportal_ip_edit.php:190
+#: usr/local/www/system_gateways_edit.php:576
+#: usr/local/www/system_gateways_edit.php:588
+#: usr/local/www/system_gateways_edit.php:578
+#: usr/local/www/system_gateways_edit.php:590
+#: usr/local/www/services_captiveportal_hostname_edit.php:164
+#: usr/local/www/services_captiveportal_hostname_edit.php:173
msgid "To"
msgstr ""
@@ -23079,6 +28069,8 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname_edit.php:171
#: usr/local/www/services_captiveportal_ip_edit.php:189
#: usr/local/www/services_captiveportal_ip_edit.php:190
+#: usr/local/www/services_captiveportal_hostname_edit.php:172
+#: usr/local/www/services_captiveportal_hostname_edit.php:173
msgid "Use"
msgstr ""
@@ -23098,6 +28090,8 @@ msgstr ""
#: usr/local/www/services_captiveportal_ip_edit.php:204
#: usr/local/www/services_captiveportal_ip_edit.php:202
+#: usr/local/www/services_captiveportal_ip_edit.php:196
+#: usr/local/www/services_captiveportal_ip_edit.php:196
msgid "IP address and subnet mask. Use /32 for a single IP"
msgstr ""
@@ -23107,11 +28101,18 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname_edit.php:187
#: usr/local/www/services_captiveportal_mac_edit.php:187
#: usr/local/www/services_captiveportal_ip_edit.php:213
+#: usr/local/www/services_captiveportal_ip_edit.php:207
+#: usr/local/www/services_captiveportal_mac_edit.php:200
+#: usr/local/www/services_captiveportal_ip_edit.php:207
+#: usr/local/www/services_captiveportal_hostname_edit.php:189
+#: usr/local/www/services_captiveportal_mac_edit.php:200
msgid "Bandwidth up"
msgstr ""
#: usr/local/www/services_captiveportal_ip_edit.php:218
#: usr/local/www/services_captiveportal_ip_edit.php:216
+#: usr/local/www/services_captiveportal_ip_edit.php:210
+#: usr/local/www/services_captiveportal_ip_edit.php:210
msgid "Enter a upload limit to be enforced on this IP address in Kbit/s"
msgstr ""
@@ -23121,41 +28122,57 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname_edit.php:193
#: usr/local/www/services_captiveportal_mac_edit.php:193
#: usr/local/www/services_captiveportal_ip_edit.php:220
+#: usr/local/www/services_captiveportal_ip_edit.php:214
+#: usr/local/www/services_captiveportal_mac_edit.php:206
+#: usr/local/www/services_captiveportal_ip_edit.php:214
+#: usr/local/www/services_captiveportal_hostname_edit.php:195
+#: usr/local/www/services_captiveportal_mac_edit.php:206
msgid "Bandwidth down"
msgstr ""
#: usr/local/www/services_captiveportal_ip_edit.php:225
#: usr/local/www/services_captiveportal_ip_edit.php:223
+#: usr/local/www/services_captiveportal_ip_edit.php:217
+#: usr/local/www/services_captiveportal_ip_edit.php:217
msgid "Enter a download limit to be enforced on this IP address in Kbit/s"
msgstr ""
#: usr/local/www/services_captiveportal_mac.php:80
#: usr/local/www/services_captiveportal_mac.php:78
+#: usr/local/www/services_captiveportal_mac.php:78
msgid "No entry exists yet!"
msgstr ""
#: usr/local/www/services_captiveportal_mac.php:84
#: usr/local/www/services_captiveportal_mac.php:82
+#: usr/local/www/services_captiveportal_mac.php:82
msgid "Please set the zone on which the operation should be allowed"
msgstr ""
#: usr/local/www/services_captiveportal_mac.php:96
#: usr/local/www/services_captiveportal_mac.php:94
+#: usr/local/www/services_captiveportal_mac.php:94
msgid "No entry exists for this username:"
msgstr ""
#: usr/local/www/services_captiveportal_mac.php:115
#: usr/local/www/services_captiveportal_mac.php:113
+#: usr/local/www/services_captiveportal_mac.php:118
+#: usr/local/www/services_captiveportal_mac.php:118
msgid "The entry was sucessfully deleted"
msgstr ""
#: usr/local/www/services_captiveportal_mac.php:117
#: usr/local/www/services_captiveportal_mac.php:115
+#: usr/local/www/services_captiveportal_mac.php:120
+#: usr/local/www/services_captiveportal_mac.php:120
msgid "No entry exists for this mac address:"
msgstr ""
#: usr/local/www/services_captiveportal_mac.php:148
#: usr/local/www/services_captiveportal_mac.php:146
+#: usr/local/www/services_captiveportal_mac.php:156
+#: usr/local/www/services_captiveportal_mac.php:156
msgid ""
"The captive portal MAC address configuration has been changed.<br>You must "
"apply the changes in order for them to take effect."
@@ -23163,6 +28180,8 @@ msgstr ""
#: usr/local/www/services_captiveportal_mac.php:180
#: usr/local/www/services_captiveportal_mac.php:178
+#: usr/local/www/services_captiveportal_mac.php:188
+#: usr/local/www/services_captiveportal_mac.php:188
msgid "edit host"
msgstr ""
@@ -23170,23 +28189,32 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:276
#: usr/local/www/services_unbound.php:312
#: usr/local/www/services_dnsmasq.php:277
-#: usr/local/www/services_unbound.php:312
#: usr/local/www/services_captiveportal_mac.php:179
+#: usr/local/www/services_dnsmasq.php:302
+#: usr/local/www/services_captiveportal_mac.php:189
+#: usr/local/www/services_dnsmasq.php:315
+#: usr/local/www/services_captiveportal_mac.php:189
msgid "Do you really want to delete this host?"
msgstr ""
#: usr/local/www/services_captiveportal_mac.php:181
#: usr/local/www/services_captiveportal_mac.php:179
+#: usr/local/www/services_captiveportal_mac.php:189
+#: usr/local/www/services_captiveportal_mac.php:189
msgid "delete host"
msgstr ""
#: usr/local/www/services_captiveportal_mac.php:186
#: usr/local/www/services_captiveportal_mac.php:184
+#: usr/local/www/services_captiveportal_mac.php:194
+#: usr/local/www/services_captiveportal_mac.php:194
msgid "add host"
msgstr ""
#: usr/local/www/services_captiveportal_mac.php:192
#: usr/local/www/services_captiveportal_mac.php:190
+#: usr/local/www/services_captiveportal_mac.php:200
+#: usr/local/www/services_captiveportal_mac.php:200
msgid ""
"Adding MAC addresses as pass-through MACs allows them access through the "
"captive portal automatically without being taken to the portal page."
@@ -23194,60 +28222,75 @@ msgstr ""
#: usr/local/www/services_captiveportal_mac_edit.php:60
#: usr/local/www/services_captiveportal_mac_edit.php:57
+#: usr/local/www/services_captiveportal_mac_edit.php:57
msgid "Edit pass-through MAC address"
msgstr ""
#: usr/local/www/services_captiveportal_mac_edit.php:105
#: usr/local/www/services_captiveportal_mac_edit.php:103
+#: usr/local/www/services_captiveportal_mac_edit.php:103
msgid "A valid MAC address must be specified"
msgstr ""
#: usr/local/www/services_captiveportal_mac_edit.php:172
#: usr/local/www/services_captiveportal_mac_edit.php:170
+#: usr/local/www/services_captiveportal_mac_edit.php:177
+#: usr/local/www/services_captiveportal_mac_edit.php:177
msgid "Edit Pass-through MAC address"
msgstr ""
#: usr/local/www/services_captiveportal_mac_edit.php:179
#: usr/local/www/services_captiveportal_mac_edit.php:177
+#: usr/local/www/services_captiveportal_mac_edit.php:190
+#: usr/local/www/services_captiveportal_mac_edit.php:190
msgid "MAC address (6 hex octets separated by colons)"
msgstr ""
#: usr/local/www/services_captiveportal_mac_edit.php:192
#: usr/local/www/services_captiveportal_mac_edit.php:190
+#: usr/local/www/services_captiveportal_mac_edit.php:203
+#: usr/local/www/services_captiveportal_mac_edit.php:203
msgid "Enter a upload limit to be enforced on this MAC address in Kbit/s"
msgstr ""
#: usr/local/www/services_captiveportal_mac_edit.php:198
#: usr/local/www/services_captiveportal_mac_edit.php:196
+#: usr/local/www/services_captiveportal_mac_edit.php:209
+#: usr/local/www/services_captiveportal_mac_edit.php:209
msgid "Enter a download limit to be enforced on this MAC address in Kbit/s"
msgstr ""
#: usr/local/www/diag_ipsec_spd.php:90 usr/local/www/diag_ipsec_spd.php:91
+#: usr/local/www/diag_ipsec_spd.php:91
msgid "Tunnel endpoints"
msgstr ""
#: usr/local/www/diag_ipsec_spd.php:108 usr/local/www/diag_ipsec_spd.php:109
+#: usr/local/www/diag_ipsec_spd.php:109
msgid "Do you really want to delete this security policy?"
msgstr ""
#: usr/local/www/diag_ipsec_spd.php:119 usr/local/www/diag_ipsec_spd.php:120
+#: usr/local/www/diag_ipsec_spd.php:120
msgid "incoming (as seen by firewall)"
msgstr ""
#: usr/local/www/diag_ipsec_spd.php:126 usr/local/www/diag_ipsec_spd.php:127
+#: usr/local/www/diag_ipsec_spd.php:127
msgid "outgoing (as seen by firewall)"
msgstr ""
#: usr/local/www/diag_ipsec_spd.php:131 usr/local/www/diag_ipsec_spd.php:132
+#: usr/local/www/diag_ipsec_spd.php:132
msgid "No IPsec security policies."
msgstr ""
-#: usr/local/www/diag_ping.php:59 usr/local/www/diag_ping.php:59
+#: usr/local/www/diag_ping.php:59 usr/local/www/diag_ping.php:61
#, php-format
msgid "Count must be between 1 and %s"
msgstr ""
-#: usr/local/www/diag_ping.php:126 usr/local/www/diag_ping.php:126
+#: usr/local/www/diag_ping.php:126 usr/local/www/diag_ping.php:148
msgid "Ping output"
msgstr ""
@@ -23259,6 +28302,8 @@ msgstr ""
#: usr/local/www/services_dhcp.php:111 usr/local/www/services_dhcpv6.php:74
#: usr/local/www/services_router_advertisements.php:75
+#: usr/local/www/services_dhcpv6.php:75
+#: usr/local/www/services_router_advertisements.php:75
#: usr/local/www/services_dhcp.php:111 usr/local/www/services_dhcpv6.php:75
msgid "Only interfaces configured with a static IP will be shown"
msgstr ""
@@ -23266,12 +28311,16 @@ msgstr ""
#: usr/local/www/services_dhcp.php:207 usr/local/www/services_dhcpv6.php:177
#: usr/local/www/services_dhcp.php:208 usr/local/www/services_dhcpv6.php:189
#: usr/local/www/services_dhcp.php:254 usr/local/www/services_dhcpv6.php:174
+#: usr/local/www/services_dhcp.php:235 usr/local/www/services_dhcpv6.php:168
+#: usr/local/www/services_dhcp.php:235 usr/local/www/services_dhcpv6.php:168
msgid "Range begin"
msgstr ""
#: usr/local/www/services_dhcp.php:207 usr/local/www/services_dhcpv6.php:177
#: usr/local/www/services_dhcp.php:208 usr/local/www/services_dhcpv6.php:189
#: usr/local/www/services_dhcp.php:254 usr/local/www/services_dhcpv6.php:174
+#: usr/local/www/services_dhcp.php:235 usr/local/www/services_dhcpv6.php:168
+#: usr/local/www/services_dhcp.php:235 usr/local/www/services_dhcpv6.php:168
msgid "Range end"
msgstr ""
@@ -23282,23 +28331,39 @@ msgstr ""
#: usr/local/www/services_dhcpv6.php:198 usr/local/www/services_dhcpv6.php:200
#: usr/local/www/services_dhcp.php:259 usr/local/www/services_dhcp.php:261
#: usr/local/www/services_dhcpv6.php:179 usr/local/www/services_dhcpv6.php:183
-#: usr/local/www/services_dhcpv6.php:185
+#: usr/local/www/services_dhcpv6.php:185 usr/local/www/services_dhcp.php:240
+#: usr/local/www/services_dhcp.php:242 usr/local/www/services_dhcpv6.php:173
+#: usr/local/www/services_dhcpv6.php:177 usr/local/www/services_dhcp.php:240
+#: usr/local/www/services_dhcp.php:242 usr/local/www/services_dhcpv6.php:173
+#: usr/local/www/services_dhcpv6.php:177 usr/local/www/services_dhcpv6.php:179
msgid "A valid range must be specified."
msgstr ""
#: usr/local/www/services_dhcp.php:216 usr/local/www/services_dhcp.php:217
#: usr/local/www/services_dhcp.php:263
+#: usr/local/www/services_dhcp_edit.php:207
+#: usr/local/www/services_dhcp.php:244
+#: usr/local/www/services_dhcp_edit.php:207
+#: usr/local/www/services_dhcp.php:244
msgid "A valid IP address must be specified for the gateway."
msgstr ""
#: usr/local/www/services_dhcp.php:218 usr/local/www/services_dhcp.php:219
#: usr/local/www/services_dhcp.php:265
+#: usr/local/www/services_dhcp_edit.php:209
+#: usr/local/www/services_dhcp.php:246
+#: usr/local/www/services_dhcp_edit.php:209
+#: usr/local/www/services_dhcp.php:246
msgid ""
"A valid IP address must be specified for the primary/secondary WINS servers."
msgstr ""
#: usr/local/www/services_dhcp.php:223 usr/local/www/services_dhcp.php:224
#: usr/local/www/services_dhcp.php:270
+#: usr/local/www/services_dhcp_edit.php:215
+#: usr/local/www/services_dhcp.php:251
+#: usr/local/www/services_dhcp_edit.php:215
+#: usr/local/www/services_dhcp.php:251
#, php-format
msgid ""
"The gateway address %s does not lie within the chosen interface's subnet."
@@ -23306,6 +28371,10 @@ msgstr ""
#: usr/local/www/services_dhcp.php:226 usr/local/www/services_dhcp.php:227
#: usr/local/www/services_dhcp.php:273
+#: usr/local/www/services_dhcp_edit.php:218
+#: usr/local/www/services_dhcp.php:254
+#: usr/local/www/services_dhcp_edit.php:218
+#: usr/local/www/services_dhcp.php:254
msgid ""
"A valid IP address must be specified for the primary/secondary DNS servers."
msgstr ""
@@ -23313,12 +28382,20 @@ msgstr ""
#: usr/local/www/services_dhcp.php:229 usr/local/www/services_dhcpv6.php:195
#: usr/local/www/services_dhcp.php:230 usr/local/www/services_dhcpv6.php:207
#: usr/local/www/services_dhcp.php:276 usr/local/www/services_dhcpv6.php:192
+#: usr/local/www/services_dhcp_edit.php:221
+#: usr/local/www/services_dhcp.php:257 usr/local/www/services_dhcpv6.php:186
+#: usr/local/www/services_dhcp_edit.php:221
+#: usr/local/www/services_dhcp.php:257 usr/local/www/services_dhcpv6.php:186
msgid "The default lease time must be at least 60 seconds."
msgstr ""
#: usr/local/www/services_dhcp.php:231 usr/local/www/services_dhcpv6.php:197
#: usr/local/www/services_dhcp.php:232 usr/local/www/services_dhcpv6.php:209
#: usr/local/www/services_dhcp.php:278 usr/local/www/services_dhcpv6.php:194
+#: usr/local/www/services_dhcp_edit.php:223
+#: usr/local/www/services_dhcp.php:259 usr/local/www/services_dhcpv6.php:188
+#: usr/local/www/services_dhcp_edit.php:223
+#: usr/local/www/services_dhcp.php:279 usr/local/www/services_dhcpv6.php:188
msgid ""
"The maximum lease time must be at least 60 seconds and higher than the "
"default lease time."
@@ -23327,11 +28404,19 @@ msgstr ""
#: usr/local/www/services_dhcp.php:233 usr/local/www/services_dhcpv6.php:199
#: usr/local/www/services_dhcp.php:234 usr/local/www/services_dhcpv6.php:211
#: usr/local/www/services_dhcp.php:280 usr/local/www/services_dhcpv6.php:196
+#: usr/local/www/services_dhcp_edit.php:225
+#: usr/local/www/services_dhcp.php:261 usr/local/www/services_dhcpv6.php:190
+#: usr/local/www/services_dhcp_edit.php:225
+#: usr/local/www/services_dhcp.php:281 usr/local/www/services_dhcpv6.php:190
msgid "A valid domain name must be specified for the dynamic DNS registration."
msgstr ""
#: usr/local/www/services_dhcp.php:235 usr/local/www/services_dhcp.php:246
#: usr/local/www/services_dhcp.php:298
+#: usr/local/www/services_dhcp_edit.php:237
+#: usr/local/www/services_dhcp.php:279
+#: usr/local/www/services_dhcp_edit.php:237
+#: usr/local/www/services_dhcp.php:299
msgid ""
"A valid IP address must be specified for the primary/secondary NTP servers."
msgstr ""
@@ -23339,42 +28424,57 @@ msgstr ""
#: usr/local/www/services_dhcp.php:237 usr/local/www/services_dhcpv6.php:203
#: usr/local/www/services_dhcp.php:248 usr/local/www/services_dhcpv6.php:225
#: usr/local/www/services_dhcp.php:300 usr/local/www/services_dhcpv6.php:210
+#: usr/local/www/services_dhcp.php:281 usr/local/www/services_dhcpv6.php:204
+#: usr/local/www/services_dhcp.php:301 usr/local/www/services_dhcpv6.php:204
msgid "A valid domain name must be specified for the DNS domain."
msgstr ""
#: usr/local/www/services_dhcp.php:239 usr/local/www/services_dhcp.php:250
#: usr/local/www/services_dhcp.php:302
+#: usr/local/www/services_dhcp_edit.php:239
+#: usr/local/www/services_dhcp.php:283
+#: usr/local/www/services_dhcp_edit.php:239
+#: usr/local/www/services_dhcp.php:303
msgid "A valid IP address or hostname must be specified for the TFTP server."
msgstr ""
#: usr/local/www/services_dhcp.php:241 usr/local/www/services_dhcp.php:252
#: usr/local/www/services_dhcp.php:304
+#: usr/local/www/services_dhcp_edit.php:241
+#: usr/local/www/services_dhcp.php:285
+#: usr/local/www/services_dhcp_edit.php:241
+#: usr/local/www/services_dhcp.php:305
msgid "A valid IP address must be specified for the network boot server."
msgstr ""
#: usr/local/www/services_dhcp.php:244 usr/local/www/services_dhcp.php:255
-#: usr/local/www/services_dhcp.php:307
+#: usr/local/www/services_dhcp.php:307 usr/local/www/services_dhcp.php:288
+#: usr/local/www/services_dhcp.php:308
msgid "You cannot use the network address in the starting subnet range."
msgstr ""
#: usr/local/www/services_dhcp.php:246 usr/local/www/services_dhcp.php:257
-#: usr/local/www/services_dhcp.php:309
+#: usr/local/www/services_dhcp.php:309 usr/local/www/services_dhcp.php:290
+#: usr/local/www/services_dhcp.php:310
msgid "You cannot use the broadcast address in the ending subnet range."
msgstr ""
#: usr/local/www/services_dhcp.php:253 usr/local/www/services_dhcp.php:264
-#: usr/local/www/services_dhcp.php:316
+#: usr/local/www/services_dhcp.php:316 usr/local/www/services_dhcp.php:297
+#: usr/local/www/services_dhcp.php:317
#, php-format
msgid "The subnet range cannot overlap with virtual IP address %s."
msgstr ""
#: usr/local/www/services_dhcp.php:268 usr/local/www/services_dhcp.php:279
-#: usr/local/www/services_dhcp.php:331
+#: usr/local/www/services_dhcp.php:331 usr/local/www/services_dhcp.php:312
+#: usr/local/www/services_dhcp.php:332
msgid "Text type cannot include quotation marks."
msgstr ""
#: usr/local/www/services_dhcp.php:270 usr/local/www/services_dhcp.php:281
-#: usr/local/www/services_dhcp.php:333
+#: usr/local/www/services_dhcp.php:333 usr/local/www/services_dhcp.php:314
+#: usr/local/www/services_dhcp.php:334
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:"
@@ -23382,64 +28482,78 @@ msgid ""
msgstr ""
#: usr/local/www/services_dhcp.php:272 usr/local/www/services_dhcp.php:283
-#: usr/local/www/services_dhcp.php:335
+#: usr/local/www/services_dhcp.php:335 usr/local/www/services_dhcp.php:316
+#: usr/local/www/services_dhcp.php:336
msgid "Boolean type must be true, false, on, or off."
msgstr ""
#: usr/local/www/services_dhcp.php:274 usr/local/www/services_dhcp.php:285
-#: usr/local/www/services_dhcp.php:337
+#: usr/local/www/services_dhcp.php:337 usr/local/www/services_dhcp.php:318
+#: usr/local/www/services_dhcp.php:338
msgid "Unsigned 8-bit integer type must be a number in the range 0 to 255."
msgstr ""
#: usr/local/www/services_dhcp.php:276 usr/local/www/services_dhcp.php:287
-#: usr/local/www/services_dhcp.php:339
+#: usr/local/www/services_dhcp.php:339 usr/local/www/services_dhcp.php:320
+#: usr/local/www/services_dhcp.php:340
msgid "Unsigned 16-bit integer type must be a number in the range 0 to 65535."
msgstr ""
#: usr/local/www/services_dhcp.php:278 usr/local/www/services_dhcp.php:289
-#: usr/local/www/services_dhcp.php:341
+#: usr/local/www/services_dhcp.php:341 usr/local/www/services_dhcp.php:322
+#: usr/local/www/services_dhcp.php:342
msgid ""
"Unsigned 32-bit integer type must be a number in the range 0 to 4294967295."
msgstr ""
#: usr/local/www/services_dhcp.php:280 usr/local/www/services_dhcp.php:291
-#: usr/local/www/services_dhcp.php:343
+#: usr/local/www/services_dhcp.php:343 usr/local/www/services_dhcp.php:324
+#: usr/local/www/services_dhcp.php:344
msgid "Signed 8-bit integer type must be a number in the range -128 to 127."
msgstr ""
#: usr/local/www/services_dhcp.php:282 usr/local/www/services_dhcp.php:293
-#: usr/local/www/services_dhcp.php:345
+#: usr/local/www/services_dhcp.php:345 usr/local/www/services_dhcp.php:326
+#: usr/local/www/services_dhcp.php:346
msgid ""
"Signed 16-bit integer type must be a number in the range -32768 to 32767."
msgstr ""
#: usr/local/www/services_dhcp.php:284 usr/local/www/services_dhcp.php:295
-#: usr/local/www/services_dhcp.php:347
+#: usr/local/www/services_dhcp.php:347 usr/local/www/services_dhcp.php:328
+#: usr/local/www/services_dhcp.php:348
msgid ""
"Signed 32-bit integer type must be a number in the range -2147483648 to "
"2147483647."
msgstr ""
#: usr/local/www/services_dhcp.php:286 usr/local/www/services_dhcp.php:297
-#: usr/local/www/services_dhcp.php:349
+#: usr/local/www/services_dhcp.php:349 usr/local/www/services_dhcp.php:330
+#: usr/local/www/services_dhcp.php:350
msgid "IP address or host type must be an IP address or host name."
msgstr ""
#: usr/local/www/services_dhcp.php:297 usr/local/www/services_dhcpv6.php:230
#: usr/local/www/services_dhcp.php:308 usr/local/www/services_dhcpv6.php:252
#: usr/local/www/services_dhcp.php:360 usr/local/www/services_dhcpv6.php:237
+#: usr/local/www/services_dhcp.php:341 usr/local/www/services_dhcpv6.php:232
+#: usr/local/www/services_dhcp.php:361 usr/local/www/services_dhcpv6.php:232
msgid "The specified range lies outside of the current subnet."
msgstr ""
#: usr/local/www/services_dhcp.php:301 usr/local/www/services_dhcp.php:312
#: usr/local/www/services_dhcpv6.php:257 usr/local/www/services_dhcp.php:364
-#: usr/local/www/services_dhcpv6.php:242
+#: usr/local/www/services_dhcpv6.php:242 usr/local/www/services_dhcp.php:345
+#: usr/local/www/services_dhcpv6.php:237 usr/local/www/services_dhcp.php:365
+#: usr/local/www/services_dhcpv6.php:237
msgid "The range is invalid (first element higher than second element)."
msgstr ""
#: usr/local/www/services_dhcp.php:305 usr/local/www/services_dhcpv6.php:240
#: usr/local/www/services_dhcp.php:316 usr/local/www/services_dhcpv6.php:261
#: usr/local/www/services_dhcp.php:372 usr/local/www/services_dhcpv6.php:246
+#: usr/local/www/services_dhcp.php:368 usr/local/www/services_dhcpv6.php:241
+#: usr/local/www/services_dhcp.php:388 usr/local/www/services_dhcpv6.php:241
#, php-format
msgid ""
"You must disable the DHCP relay on the %s interface before enabling the DHCP "
@@ -23448,69 +28562,84 @@ msgstr ""
#: usr/local/www/services_dhcp.php:315 usr/local/www/services_dhcp.php:326
#: usr/local/www/services_dhcpv6.php:276 usr/local/www/services_dhcp.php:382
-#: usr/local/www/services_dhcpv6.php:261
+#: usr/local/www/services_dhcpv6.php:261 usr/local/www/services_dhcp.php:378
+#: usr/local/www/services_dhcpv6.php:256 usr/local/www/services_dhcp.php:398
+#: usr/local/www/services_dhcpv6.php:256
#, php-format
msgid "The DHCP range cannot overlap any static DHCP mappings."
msgstr ""
#: usr/local/www/services_dhcp.php:421 usr/local/www/services_dhcp.php:433
-#: usr/local/www/services_dhcp.php:527
+#: usr/local/www/services_dhcp.php:527 usr/local/www/services_dhcp.php:526
+#: usr/local/www/services_dhcp.php:546
msgid "DHCP server"
msgstr ""
#: usr/local/www/services_dhcp.php:435 usr/local/www/services_dhcp.php:447
-#: usr/local/www/services_dhcp.php:540
+#: usr/local/www/services_dhcp.php:540 usr/local/www/services_dhcp.php:539
+#: usr/local/www/services_dhcp.php:559
msgid "Text"
msgstr ""
#: usr/local/www/services_dhcp.php:435 usr/local/www/services_dhcp.php:447
-#: usr/local/www/services_dhcp.php:540
+#: usr/local/www/services_dhcp.php:540 usr/local/www/services_dhcp.php:539
+#: usr/local/www/services_dhcp.php:559
msgid "String"
msgstr ""
#: usr/local/www/services_dhcp.php:435 usr/local/www/services_dhcp.php:447
-#: usr/local/www/services_dhcp.php:540
+#: usr/local/www/services_dhcp.php:540 usr/local/www/services_dhcp.php:539
+#: usr/local/www/services_dhcp.php:559
msgid "Boolean"
msgstr ""
#: usr/local/www/services_dhcp.php:436 usr/local/www/services_dhcp.php:448
-#: usr/local/www/services_dhcp.php:541
+#: usr/local/www/services_dhcp.php:541 usr/local/www/services_dhcp.php:540
+#: usr/local/www/services_dhcp.php:560
msgid "Unsigned 8-bit integer"
msgstr ""
#: usr/local/www/services_dhcp.php:436 usr/local/www/services_dhcp.php:448
-#: usr/local/www/services_dhcp.php:541
+#: usr/local/www/services_dhcp.php:541 usr/local/www/services_dhcp.php:540
+#: usr/local/www/services_dhcp.php:560
msgid "Unsigned 16-bit integer"
msgstr ""
#: usr/local/www/services_dhcp.php:436 usr/local/www/services_dhcp.php:448
-#: usr/local/www/services_dhcp.php:541
+#: usr/local/www/services_dhcp.php:541 usr/local/www/services_dhcp.php:540
+#: usr/local/www/services_dhcp.php:560
msgid "Unsigned 32-bit integer"
msgstr ""
#: usr/local/www/services_dhcp.php:437 usr/local/www/services_dhcp.php:449
-#: usr/local/www/services_dhcp.php:542
+#: usr/local/www/services_dhcp.php:542 usr/local/www/services_dhcp.php:541
+#: usr/local/www/services_dhcp.php:561
msgid "Signed 8-bit integer"
msgstr ""
#: usr/local/www/services_dhcp.php:437 usr/local/www/services_dhcp.php:449
-#: usr/local/www/services_dhcp.php:542
+#: usr/local/www/services_dhcp.php:542 usr/local/www/services_dhcp.php:541
+#: usr/local/www/services_dhcp.php:561
msgid "Signed 16-bit integer"
msgstr ""
#: usr/local/www/services_dhcp.php:437 usr/local/www/services_dhcp.php:449
-#: usr/local/www/services_dhcp.php:542
+#: usr/local/www/services_dhcp.php:542 usr/local/www/services_dhcp.php:541
+#: usr/local/www/services_dhcp.php:561
msgid "Signed 32-bit integer"
msgstr ""
#: usr/local/www/services_dhcp.php:437 usr/local/www/services_dhcp.php:449
-#: usr/local/www/services_dhcp.php:542
+#: usr/local/www/services_dhcp.php:542 usr/local/www/services_dhcp.php:541
+#: usr/local/www/services_dhcp.php:561
msgid "IP address or host"
msgstr ""
#: usr/local/www/services_dhcp.php:528 usr/local/www/services_dhcpv6.php:453
#: usr/local/www/services_dhcp.php:541 usr/local/www/services_dhcpv6.php:480
#: usr/local/www/services_dhcp.php:645 usr/local/www/services_dhcpv6.php:460
+#: usr/local/www/services_dhcp.php:647 usr/local/www/services_dhcpv6.php:455
+#: usr/local/www/services_dhcp.php:667 usr/local/www/services_dhcpv6.php:455
msgid ""
"DHCP Relay is currently enabled. Cannot enable the DHCP Server service while "
"the DHCP Relay is enabled on any interface."
@@ -23519,11 +28648,14 @@ msgstr ""
#: usr/local/www/services_dhcp.php:536 usr/local/www/services_dhcpv6.php:461
#: usr/local/www/services_dhcp.php:549 usr/local/www/services_dhcpv6.php:488
#: usr/local/www/services_dhcp.php:653 usr/local/www/services_dhcpv6.php:468
+#: usr/local/www/services_dhcp.php:655 usr/local/www/services_dhcpv6.php:463
+#: usr/local/www/services_dhcp.php:675 usr/local/www/services_dhcpv6.php:463
msgid "The static mapping configuration has been changed"
msgstr ""
#: usr/local/www/services_dhcp.php:575 usr/local/www/services_dhcp.php:588
-#: usr/local/www/services_dhcp.php:693
+#: usr/local/www/services_dhcp.php:693 usr/local/www/services_dhcp.php:695
+#: usr/local/www/services_dhcp.php:715
#, php-format
msgid "Enable DHCP server on %s interface"
msgstr ""
@@ -23531,12 +28663,16 @@ msgstr ""
#: usr/local/www/services_dhcp.php:583 usr/local/www/services_dhcpv6.php:518
#: usr/local/www/services_dhcp.php:596 usr/local/www/services_dhcpv6.php:592
#: usr/local/www/services_dhcp.php:706 usr/local/www/services_dhcpv6.php:523
+#: usr/local/www/services_dhcp.php:708 usr/local/www/services_dhcpv6.php:534
+#: usr/local/www/services_dhcp.php:728 usr/local/www/services_dhcpv6.php:534
msgid "Deny unknown clients"
msgstr ""
#: usr/local/www/services_dhcp.php:584 usr/local/www/services_dhcpv6.php:519
#: usr/local/www/services_dhcp.php:597 usr/local/www/services_dhcpv6.php:593
#: usr/local/www/services_dhcp.php:707 usr/local/www/services_dhcpv6.php:524
+#: usr/local/www/services_dhcp.php:709 usr/local/www/services_dhcpv6.php:535
+#: usr/local/www/services_dhcp.php:729 usr/local/www/services_dhcpv6.php:535
msgid ""
"If this is checked, only the clients defined below will get DHCP leases from "
"this server. "
@@ -23545,30 +28681,45 @@ msgstr ""
#: usr/local/www/services_dhcp.php:593 usr/local/www/services_dhcpv6.php:528
#: usr/local/www/services_dhcp.php:606 usr/local/www/services_dhcpv6.php:602
#: usr/local/www/services_dhcp.php:716 usr/local/www/services_dhcpv6.php:533
+#: usr/local/www/services_captiveportal_ip_edit.php:99
+#: usr/local/www/services_dhcp.php:726 usr/local/www/services_dhcpv6.php:548
+#: usr/local/www/services_captiveportal_ip_edit.php:99
+#: usr/local/www/services_dhcp.php:746 usr/local/www/services_dhcpv6.php:548
msgid "Subnet mask"
msgstr ""
#: usr/local/www/services_dhcp.php:599 usr/local/www/services_dhcpv6.php:534
#: usr/local/www/services_dhcp.php:612 usr/local/www/services_dhcpv6.php:608
#: usr/local/www/services_dhcp.php:722 usr/local/www/services_dhcpv6.php:539
+#: usr/local/www/services_dhcp.php:732 usr/local/www/services_dhcpv6.php:554
+#: usr/local/www/services_dhcp.php:752 usr/local/www/services_dhcpv6.php:554
msgid "Available range"
msgstr ""
#: usr/local/www/services_dhcp.php:616 usr/local/www/services_dhcpv6.php:552
#: usr/local/www/services_dhcp.php:629 usr/local/www/services_dhcpv6.php:625
#: usr/local/www/services_dhcp.php:750 usr/local/www/vpn_l2tp.php:342
-#: usr/local/www/services_dhcpv6.php:556
+#: usr/local/www/services_dhcpv6.php:556 usr/local/www/vpn_l2tp.php:345
+#: usr/local/www/services_dhcp.php:760 usr/local/www/services_dhcpv6.php:573
+#: usr/local/www/vpn_l2tp.php:345 usr/local/www/services_dhcp.php:780
+#: usr/local/www/services_dhcpv6.php:573
msgid "Subnet Mask"
msgstr ""
#: usr/local/www/services_dhcp.php:633 usr/local/www/services_dhcpv6.php:569
#: usr/local/www/services_dhcp.php:646 usr/local/www/services_dhcpv6.php:642
#: usr/local/www/services_dhcp.php:767 usr/local/www/services_dhcpv6.php:573
+#: usr/local/www/services_dhcp.php:777 usr/local/www/services_dhcpv6.php:590
+#: usr/local/www/services_dhcp.php:797 usr/local/www/services_dhcpv6.php:590
msgid "Range"
msgstr ""
#: usr/local/www/services_dhcp.php:640 usr/local/www/services_dhcp.php:653
#: usr/local/www/services_dhcp.php:829
+#: usr/local/www/services_dhcp_edit.php:395
+#: usr/local/www/services_dhcp.php:843
+#: usr/local/www/services_dhcp_edit.php:395
+#: usr/local/www/services_dhcp.php:863
msgid "WINS servers"
msgstr ""
@@ -23576,6 +28727,11 @@ msgstr ""
#: usr/local/www/services_dhcp.php:664 usr/local/www/services_dhcpv6.php:671
#: usr/local/www/services_router_advertisements.php:376
#: usr/local/www/services_dhcp.php:840 usr/local/www/services_dhcpv6.php:602
+#: usr/local/www/services_dhcp_edit.php:406
+#: usr/local/www/services_dhcp.php:854 usr/local/www/services_dhcpv6.php:619
+#: usr/local/www/services_router_advertisements.php:371
+#: usr/local/www/services_dhcp_edit.php:406
+#: usr/local/www/services_dhcp.php:874 usr/local/www/services_dhcpv6.php:619
msgid ""
"NOTE: leave blank to use the system default DNS servers - this interface's "
"IP if DNS forwarder is enabled, otherwise the servers configured on the "
@@ -23584,6 +28740,10 @@ msgstr ""
#: usr/local/www/services_dhcp.php:658 usr/local/www/services_dhcpv6.php:602
#: usr/local/www/services_dhcp.php:671 usr/local/www/services_dhcp.php:847
+#: usr/local/www/services_dhcp_edit.php:413
+#: usr/local/www/services_dhcp.php:861
+#: usr/local/www/services_dhcp_edit.php:413
+#: usr/local/www/services_dhcp.php:881
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 "
@@ -23593,12 +28753,20 @@ msgstr ""
#: usr/local/www/services_dhcp.php:662 usr/local/www/services_dhcpv6.php:607
#: usr/local/www/services_dhcp.php:675 usr/local/www/services_dhcpv6.php:675
#: usr/local/www/services_dhcp.php:851 usr/local/www/services_dhcpv6.php:606
+#: usr/local/www/services_dhcp_edit.php:417
+#: usr/local/www/services_dhcp.php:865 usr/local/www/services_dhcpv6.php:623
+#: usr/local/www/services_dhcp_edit.php:417
+#: usr/local/www/services_dhcp.php:885 usr/local/www/services_dhcpv6.php:623
msgid "Domain name"
msgstr ""
#: usr/local/www/services_dhcp.php:665 usr/local/www/services_dhcpv6.php:610
#: usr/local/www/services_dhcp.php:678 usr/local/www/services_dhcpv6.php:678
#: usr/local/www/services_dhcp.php:854 usr/local/www/services_dhcpv6.php:609
+#: usr/local/www/services_dhcp_edit.php:420
+#: usr/local/www/services_dhcp.php:868 usr/local/www/services_dhcpv6.php:626
+#: usr/local/www/services_dhcp_edit.php:420
+#: usr/local/www/services_dhcp.php:888 usr/local/www/services_dhcpv6.php:626
msgid ""
"The default is to use the domain name of this system as the default domain "
"name provided by DHCP. You may specify an alternate domain name here."
@@ -23608,6 +28776,11 @@ msgstr ""
#: usr/local/www/services_dhcp.php:682 usr/local/www/services_dhcpv6.php:682
#: usr/local/www/services_router_advertisements.php:381
#: usr/local/www/services_dhcp.php:858 usr/local/www/services_dhcpv6.php:613
+#: usr/local/www/services_dhcp_edit.php:424
+#: usr/local/www/services_dhcp.php:872 usr/local/www/services_dhcpv6.php:630
+#: usr/local/www/services_router_advertisements.php:376
+#: usr/local/www/services_dhcp_edit.php:424
+#: usr/local/www/services_dhcp.php:892 usr/local/www/services_dhcpv6.php:630
msgid "Domain search list"
msgstr ""
@@ -23618,12 +28791,20 @@ msgstr ""
#: usr/local/www/services_dhcp.php:676 usr/local/www/services_dhcpv6.php:621
#: usr/local/www/services_dhcp.php:689 usr/local/www/services_dhcpv6.php:689
#: usr/local/www/services_dhcp.php:865 usr/local/www/services_dhcpv6.php:620
+#: usr/local/www/services_dhcp_edit.php:431
+#: usr/local/www/services_dhcp.php:879 usr/local/www/services_dhcpv6.php:637
+#: usr/local/www/services_dhcp_edit.php:431
+#: usr/local/www/services_dhcp.php:899 usr/local/www/services_dhcpv6.php:637
msgid "Default lease time"
msgstr ""
#: usr/local/www/services_dhcp.php:680 usr/local/www/services_dhcpv6.php:625
#: usr/local/www/services_dhcp.php:693 usr/local/www/services_dhcpv6.php:693
#: usr/local/www/services_dhcp.php:869 usr/local/www/services_dhcpv6.php:624
+#: usr/local/www/services_dhcp_edit.php:435
+#: usr/local/www/services_dhcp.php:883 usr/local/www/services_dhcpv6.php:641
+#: usr/local/www/services_dhcp_edit.php:435
+#: usr/local/www/services_dhcp.php:903 usr/local/www/services_dhcpv6.php:641
msgid ""
"This is used for clients that do not ask for a specific expiration time."
msgstr ""
@@ -23631,18 +28812,30 @@ msgstr ""
#: usr/local/www/services_dhcp.php:682 usr/local/www/services_dhcpv6.php:627
#: usr/local/www/services_dhcp.php:695 usr/local/www/services_dhcpv6.php:695
#: usr/local/www/services_dhcp.php:871 usr/local/www/services_dhcpv6.php:626
+#: usr/local/www/services_dhcp_edit.php:437
+#: usr/local/www/services_dhcp.php:885 usr/local/www/services_dhcpv6.php:643
+#: usr/local/www/services_dhcp_edit.php:437
+#: usr/local/www/services_dhcp.php:905 usr/local/www/services_dhcpv6.php:643
msgid "The default is 7200 seconds."
msgstr ""
#: usr/local/www/services_dhcp.php:686 usr/local/www/services_dhcpv6.php:631
#: usr/local/www/services_dhcp.php:699 usr/local/www/services_dhcpv6.php:699
#: usr/local/www/services_dhcp.php:875 usr/local/www/services_dhcpv6.php:630
+#: usr/local/www/services_dhcp_edit.php:441
+#: usr/local/www/services_dhcp.php:889 usr/local/www/services_dhcpv6.php:647
+#: usr/local/www/services_dhcp_edit.php:441
+#: usr/local/www/services_dhcp.php:909 usr/local/www/services_dhcpv6.php:647
msgid "Maximum lease time"
msgstr ""
#: usr/local/www/services_dhcp.php:690 usr/local/www/services_dhcpv6.php:635
#: usr/local/www/services_dhcp.php:703 usr/local/www/services_dhcpv6.php:703
#: usr/local/www/services_dhcp.php:879 usr/local/www/services_dhcpv6.php:634
+#: usr/local/www/services_dhcp_edit.php:445
+#: usr/local/www/services_dhcp.php:893 usr/local/www/services_dhcpv6.php:651
+#: usr/local/www/services_dhcp_edit.php:445
+#: usr/local/www/services_dhcp.php:913 usr/local/www/services_dhcpv6.php:651
msgid ""
"This is the maximum lease time for clients that ask for a specific "
"expiration time."
@@ -23651,35 +28844,46 @@ msgstr ""
#: usr/local/www/services_dhcp.php:692 usr/local/www/services_dhcpv6.php:637
#: usr/local/www/services_dhcp.php:705 usr/local/www/services_dhcpv6.php:705
#: usr/local/www/services_dhcp.php:881 usr/local/www/services_dhcpv6.php:636
+#: usr/local/www/services_dhcp_edit.php:447
+#: usr/local/www/services_dhcp.php:895 usr/local/www/services_dhcpv6.php:653
+#: usr/local/www/services_dhcp_edit.php:447
+#: usr/local/www/services_dhcp.php:915 usr/local/www/services_dhcpv6.php:653
msgid "The default is 86400 seconds."
msgstr ""
#: usr/local/www/services_dhcp.php:696 usr/local/www/services_dhcpv6.php:641
#: usr/local/www/services_dhcp.php:709 usr/local/www/services_dhcpv6.php:709
#: usr/local/www/services_dhcp.php:886 usr/local/www/services_dhcpv6.php:640
+#: usr/local/www/services_dhcp.php:900 usr/local/www/services_dhcpv6.php:657
+#: usr/local/www/services_dhcp.php:920 usr/local/www/services_dhcpv6.php:657
msgid "Failover peer IP:"
msgstr ""
#: usr/local/www/services_dhcp.php:699 usr/local/www/services_dhcpv6.php:644
#: usr/local/www/services_dhcp.php:712 usr/local/www/services_dhcpv6.php:712
#: usr/local/www/services_dhcp.php:889 usr/local/www/services_dhcpv6.php:643
+#: usr/local/www/services_dhcpv6.php:660 usr/local/www/services_dhcpv6.php:660
msgid ""
"Leave blank to disable. Enter the interface IP address of the other "
"machine. Machines must be using CARP."
msgstr ""
#: usr/local/www/services_dhcp.php:703 usr/local/www/services_dhcp.php:716
-#: usr/local/www/services_dhcp.php:895
+#: usr/local/www/services_dhcp.php:895 usr/local/www/services_dhcp.php:909
+#: usr/local/www/services_dhcp.php:1150 usr/local/www/services_dhcp.php:929
+#: usr/local/www/services_dhcp.php:1170
msgid "Static ARP"
msgstr ""
#: usr/local/www/services_dhcp.php:710 usr/local/www/services_dhcp.php:723
-#: usr/local/www/services_dhcp.php:902
+#: usr/local/www/services_dhcp.php:902 usr/local/www/services_dhcp.php:916
+#: usr/local/www/services_dhcp.php:936
msgid "Enable Static ARP entries"
msgstr ""
#: usr/local/www/services_dhcp.php:715 usr/local/www/services_dhcp.php:728
-#: usr/local/www/services_dhcp.php:907
+#: usr/local/www/services_dhcp.php:907 usr/local/www/services_dhcp.php:921
+#: usr/local/www/services_dhcp.php:941
msgid ""
"Only the machines listed below will be able to communicate with the firewall "
"on this NIC."
@@ -23688,24 +28892,40 @@ msgstr ""
#: usr/local/www/services_dhcp.php:725 usr/local/www/services_dhcpv6.php:651
#: usr/local/www/services_dhcp.php:763 usr/local/www/services_dhcpv6.php:744
#: usr/local/www/services_dhcp.php:945 usr/local/www/services_dhcpv6.php:675
+#: usr/local/www/services_dhcp_edit.php:454
+#: usr/local/www/services_dhcp.php:958 usr/local/www/services_dhcpv6.php:692
+#: usr/local/www/services_dhcp_edit.php:454
+#: usr/local/www/services_dhcp.php:978 usr/local/www/services_dhcpv6.php:692
msgid "Show Dynamic DNS"
msgstr ""
#: usr/local/www/services_dhcp.php:729 usr/local/www/services_dhcpv6.php:655
#: usr/local/www/services_dhcp.php:767 usr/local/www/services_dhcpv6.php:748
#: usr/local/www/services_dhcp.php:949 usr/local/www/services_dhcpv6.php:679
+#: usr/local/www/services_dhcp_edit.php:458
+#: usr/local/www/services_dhcp.php:962 usr/local/www/services_dhcpv6.php:696
+#: usr/local/www/services_dhcp_edit.php:458
+#: usr/local/www/services_dhcp.php:982 usr/local/www/services_dhcpv6.php:696
msgid "Enable registration of DHCP client names in DNS."
msgstr ""
#: usr/local/www/services_dhcp.php:732 usr/local/www/services_dhcpv6.php:658
#: usr/local/www/services_dhcp.php:770 usr/local/www/services_dhcpv6.php:751
#: usr/local/www/services_dhcp.php:952 usr/local/www/services_dhcpv6.php:682
+#: usr/local/www/services_dhcp_edit.php:461
+#: usr/local/www/services_dhcp.php:965 usr/local/www/services_dhcpv6.php:699
+#: usr/local/www/services_dhcp_edit.php:461
+#: usr/local/www/services_dhcp.php:985 usr/local/www/services_dhcpv6.php:699
msgid "Note: Leave blank to disable dynamic DNS registration."
msgstr ""
#: usr/local/www/services_dhcp.php:733 usr/local/www/services_dhcpv6.php:659
#: usr/local/www/services_dhcp.php:771 usr/local/www/services_dhcpv6.php:752
#: usr/local/www/services_dhcp.php:953 usr/local/www/services_dhcpv6.php:683
+#: usr/local/www/services_dhcp_edit.php:462
+#: usr/local/www/services_dhcp.php:966 usr/local/www/services_dhcpv6.php:700
+#: usr/local/www/services_dhcp_edit.php:462
+#: usr/local/www/services_dhcp.php:986 usr/local/www/services_dhcpv6.php:700
msgid ""
"Enter the dynamic DNS domain which will be used to register client names in "
"the DNS server."
@@ -23714,30 +28934,50 @@ msgstr ""
#: usr/local/www/services_dhcp.php:738 usr/local/www/services_dhcpv6.php:664
#: usr/local/www/services_dhcp.php:776 usr/local/www/services_dhcpv6.php:757
#: usr/local/www/services_dhcp.php:972 usr/local/www/services_dhcpv6.php:688
+#: usr/local/www/services_dhcp_edit.php:467
+#: usr/local/www/services_dhcp.php:985 usr/local/www/services_dhcpv6.php:705
+#: usr/local/www/services_dhcp_edit.php:467
+#: usr/local/www/services_dhcp.php:1005 usr/local/www/services_dhcpv6.php:705
msgid "NTP servers"
msgstr ""
#: usr/local/www/services_dhcp.php:741 usr/local/www/services_dhcpv6.php:667
#: usr/local/www/services_dhcp.php:779 usr/local/www/services_dhcpv6.php:760
#: usr/local/www/services_dhcp.php:975 usr/local/www/services_dhcpv6.php:691
+#: usr/local/www/services_dhcp_edit.php:470
+#: usr/local/www/services_dhcp.php:988 usr/local/www/services_dhcpv6.php:708
+#: usr/local/www/services_dhcp_edit.php:470
+#: usr/local/www/services_dhcp.php:1008 usr/local/www/services_dhcpv6.php:708
msgid "Show NTP configuration"
msgstr ""
#: usr/local/www/services_dhcp.php:750 usr/local/www/services_dhcpv6.php:676
#: usr/local/www/services_dhcp.php:788 usr/local/www/services_dhcpv6.php:770
#: usr/local/www/services_dhcp.php:984 usr/local/www/services_dhcpv6.php:701
+#: usr/local/www/services_dhcp_edit.php:479
+#: usr/local/www/services_dhcp.php:997 usr/local/www/services_dhcpv6.php:718
+#: usr/local/www/services_dhcp_edit.php:479
+#: usr/local/www/services_dhcp.php:1017 usr/local/www/services_dhcpv6.php:718
msgid "TFTP server"
msgstr ""
#: usr/local/www/services_dhcp.php:753 usr/local/www/services_dhcpv6.php:679
#: usr/local/www/services_dhcp.php:791 usr/local/www/services_dhcpv6.php:773
#: usr/local/www/services_dhcp.php:987 usr/local/www/services_dhcpv6.php:704
+#: usr/local/www/services_dhcp_edit.php:482
+#: usr/local/www/services_dhcp.php:1000 usr/local/www/services_dhcpv6.php:721
+#: usr/local/www/services_dhcp_edit.php:482
+#: usr/local/www/services_dhcp.php:1020 usr/local/www/services_dhcpv6.php:721
msgid "Show TFTP configuration"
msgstr ""
#: usr/local/www/services_dhcp.php:757 usr/local/www/services_dhcpv6.php:683
#: usr/local/www/services_dhcp.php:795 usr/local/www/services_dhcpv6.php:777
#: usr/local/www/services_dhcp.php:991 usr/local/www/services_dhcpv6.php:708
+#: usr/local/www/services_dhcp_edit.php:486
+#: usr/local/www/services_dhcp.php:1004 usr/local/www/services_dhcpv6.php:725
+#: usr/local/www/services_dhcp_edit.php:486
+#: usr/local/www/services_dhcp.php:1024 usr/local/www/services_dhcpv6.php:725
msgid ""
"Leave blank to disable. Enter a full hostname or IP for the TFTP server."
msgstr ""
@@ -23745,18 +28985,24 @@ msgstr ""
#: usr/local/www/services_dhcp.php:762 usr/local/www/services_dhcpv6.php:688
#: usr/local/www/services_dhcp.php:800 usr/local/www/services_dhcpv6.php:783
#: usr/local/www/services_dhcp.php:996 usr/local/www/services_dhcpv6.php:714
+#: usr/local/www/services_dhcp.php:1009 usr/local/www/services_dhcpv6.php:731
+#: usr/local/www/services_dhcp.php:1029 usr/local/www/services_dhcpv6.php:731
msgid "LDAP URI"
msgstr ""
#: usr/local/www/services_dhcp.php:765 usr/local/www/services_dhcpv6.php:691
#: usr/local/www/services_dhcp.php:803 usr/local/www/services_dhcpv6.php:786
#: usr/local/www/services_dhcp.php:999 usr/local/www/services_dhcpv6.php:717
+#: usr/local/www/services_dhcp.php:1012 usr/local/www/services_dhcpv6.php:734
+#: usr/local/www/services_dhcp.php:1032 usr/local/www/services_dhcpv6.php:734
msgid "Show LDAP configuration"
msgstr ""
#: usr/local/www/services_dhcp.php:769 usr/local/www/services_dhcpv6.php:695
#: usr/local/www/services_dhcp.php:807 usr/local/www/services_dhcpv6.php:790
#: usr/local/www/services_dhcp.php:1003 usr/local/www/services_dhcpv6.php:721
+#: usr/local/www/services_dhcp.php:1016 usr/local/www/services_dhcpv6.php:738
+#: usr/local/www/services_dhcp.php:1036 usr/local/www/services_dhcpv6.php:738
msgid ""
"Leave blank to disable. Enter a full URI for the LDAP server in the form "
"ldap://ldap.example.com/dc=example,dc=com"
@@ -23765,42 +29011,56 @@ msgstr ""
#: usr/local/www/services_dhcp.php:774 usr/local/www/services_dhcpv6.php:700
#: usr/local/www/services_dhcp.php:812 usr/local/www/services_dhcpv6.php:795
#: usr/local/www/services_dhcp.php:1008 usr/local/www/services_dhcpv6.php:726
+#: usr/local/www/services_dhcp.php:1021 usr/local/www/services_dhcpv6.php:743
+#: usr/local/www/services_dhcp.php:1041 usr/local/www/services_dhcpv6.php:743
msgid "Enable network booting"
msgstr ""
#: usr/local/www/services_dhcp.php:777 usr/local/www/services_dhcpv6.php:703
#: usr/local/www/services_dhcp.php:815 usr/local/www/services_dhcpv6.php:798
#: usr/local/www/services_dhcp.php:1011 usr/local/www/services_dhcpv6.php:729
+#: usr/local/www/services_dhcp.php:1024 usr/local/www/services_dhcpv6.php:746
+#: usr/local/www/services_dhcp.php:1044 usr/local/www/services_dhcpv6.php:746
msgid "Show Network booting"
msgstr ""
#: usr/local/www/services_dhcp.php:781 usr/local/www/services_dhcpv6.php:707
#: usr/local/www/services_dhcp.php:819 usr/local/www/services_dhcpv6.php:802
#: usr/local/www/services_dhcp.php:1015 usr/local/www/services_dhcpv6.php:733
+#: usr/local/www/services_dhcp.php:1028 usr/local/www/services_dhcpv6.php:750
+#: usr/local/www/services_dhcp.php:1048 usr/local/www/services_dhcpv6.php:750
msgid "Enables network booting."
msgstr ""
#: usr/local/www/services_dhcp.php:783 usr/local/www/services_dhcpv6.php:709
#: usr/local/www/services_dhcp.php:821 usr/local/www/services_dhcpv6.php:804
#: usr/local/www/services_dhcp.php:1017 usr/local/www/services_dhcpv6.php:735
+#: usr/local/www/services_dhcp.php:1030 usr/local/www/services_dhcpv6.php:752
+#: usr/local/www/services_dhcp.php:1050 usr/local/www/services_dhcpv6.php:752
msgid "Enter the IP of the"
msgstr ""
#: usr/local/www/services_dhcp.php:783 usr/local/www/services_dhcpv6.php:709
#: usr/local/www/services_dhcp.php:821 usr/local/www/services_dhcpv6.php:804
#: usr/local/www/services_dhcp.php:1017 usr/local/www/services_dhcpv6.php:735
+#: usr/local/www/services_dhcp.php:1030 usr/local/www/services_dhcpv6.php:752
+#: usr/local/www/services_dhcp.php:1050 usr/local/www/services_dhcpv6.php:752
msgid "next-server"
msgstr ""
#: usr/local/www/services_dhcp.php:785 usr/local/www/services_dhcpv6.php:711
#: usr/local/www/services_dhcp.php:823 usr/local/www/services_dhcpv6.php:806
#: usr/local/www/services_dhcp.php:1019 usr/local/www/services_dhcpv6.php:737
+#: usr/local/www/services_dhcp.php:1032 usr/local/www/services_dhcpv6.php:754
+#: usr/local/www/services_dhcp.php:1052 usr/local/www/services_dhcpv6.php:754
msgid "and the filename"
msgstr ""
#: usr/local/www/services_dhcp.php:787 usr/local/www/services_dhcpv6.php:713
#: usr/local/www/services_dhcp.php:825 usr/local/www/services_dhcpv6.php:808
#: usr/local/www/services_dhcp.php:1021 usr/local/www/services_dhcpv6.php:739
+#: usr/local/www/services_dhcp.php:1034 usr/local/www/services_dhcpv6.php:756
+#: usr/local/www/services_dhcp.php:1054 usr/local/www/services_dhcpv6.php:756
msgid ""
"Note: You need both a filename and a boot server configured for this to work!"
msgstr ""
@@ -23814,6 +29074,12 @@ msgstr ""
#: usr/local/www/services_dhcp.php:1023
#: usr/local/www/services_dhcp_edit.php:249
#: usr/local/www/services_dhcpv6.php:741
+#: usr/local/www/services_dhcpv6_edit.php:229
+#: usr/local/www/services_dhcp_edit.php:377
+#: usr/local/www/services_dhcp.php:1036 usr/local/www/services_dhcpv6.php:758
+#: usr/local/www/services_dhcpv6_edit.php:229
+#: usr/local/www/services_dhcp_edit.php:377
+#: usr/local/www/services_dhcp.php:1056 usr/local/www/services_dhcpv6.php:758
msgid "Enter the"
msgstr ""
@@ -23826,6 +29092,12 @@ msgstr ""
#: usr/local/www/services_dhcp.php:1023
#: usr/local/www/services_dhcp_edit.php:249
#: usr/local/www/services_dhcpv6.php:741
+#: usr/local/www/services_dhcpv6_edit.php:229
+#: usr/local/www/services_dhcp_edit.php:377
+#: usr/local/www/services_dhcp.php:1036 usr/local/www/services_dhcpv6.php:758
+#: usr/local/www/services_dhcpv6_edit.php:229
+#: usr/local/www/services_dhcp_edit.php:377
+#: usr/local/www/services_dhcp.php:1056 usr/local/www/services_dhcpv6.php:758
msgid "root-path"
msgstr ""
@@ -23838,12 +29110,20 @@ msgstr ""
#: usr/local/www/services_dhcp.php:1023
#: usr/local/www/services_dhcp_edit.php:249
#: usr/local/www/services_dhcpv6.php:741
+#: usr/local/www/services_dhcpv6_edit.php:229
+#: usr/local/www/services_dhcp_edit.php:377
+#: usr/local/www/services_dhcp.php:1036 usr/local/www/services_dhcpv6.php:758
+#: usr/local/www/services_dhcpv6_edit.php:229
+#: usr/local/www/services_dhcp_edit.php:377
+#: usr/local/www/services_dhcp.php:1056 usr/local/www/services_dhcpv6.php:758
msgid "string"
msgstr ""
#: usr/local/www/services_dhcp.php:791 usr/local/www/services_dhcpv6.php:717
#: usr/local/www/services_dhcp.php:829 usr/local/www/services_dhcpv6.php:812
#: usr/local/www/services_dhcp.php:1025 usr/local/www/services_dhcpv6.php:743
+#: usr/local/www/services_dhcp.php:1038 usr/local/www/services_dhcpv6.php:760
+#: usr/local/www/services_dhcp.php:1058 usr/local/www/services_dhcpv6.php:760
msgid ""
"Note: string-format: iscsi:(servername):(protocol):(port):(LUN):targetname"
msgstr ""
@@ -23851,18 +29131,24 @@ msgstr ""
#: usr/local/www/services_dhcp.php:796 usr/local/www/services_dhcpv6.php:722
#: usr/local/www/services_dhcp.php:834 usr/local/www/services_dhcpv6.php:817
#: usr/local/www/services_dhcp.php:1031 usr/local/www/services_dhcpv6.php:748
+#: usr/local/www/services_dhcp.php:1044 usr/local/www/services_dhcpv6.php:765
+#: usr/local/www/services_dhcp.php:1064 usr/local/www/services_dhcpv6.php:765
msgid "Additional BOOTP/DHCP Options"
msgstr ""
#: usr/local/www/services_dhcp.php:799 usr/local/www/services_dhcpv6.php:725
#: usr/local/www/services_dhcp.php:837 usr/local/www/services_dhcpv6.php:820
#: usr/local/www/services_dhcp.php:1034 usr/local/www/services_dhcpv6.php:751
+#: usr/local/www/services_dhcp.php:1047 usr/local/www/services_dhcpv6.php:768
+#: usr/local/www/services_dhcp.php:1067 usr/local/www/services_dhcpv6.php:768
msgid "Show Additional BOOTP/DHCP Options"
msgstr ""
#: usr/local/www/services_dhcp.php:807 usr/local/www/services_dhcpv6.php:733
#: usr/local/www/services_dhcp.php:845 usr/local/www/services_dhcpv6.php:828
#: usr/local/www/services_dhcp.php:1042 usr/local/www/services_dhcpv6.php:759
+#: usr/local/www/services_dhcp.php:1055 usr/local/www/services_dhcpv6.php:776
+#: usr/local/www/services_dhcp.php:1075 usr/local/www/services_dhcpv6.php:776
msgid ""
"Enter the DHCP option number and the value for each item you would like to "
"include in the DHCP lease information. For a list of available options "
@@ -23875,6 +29161,10 @@ msgstr ""
#: usr/local/www/services_dhcpv6.php:833
#: usr/local/www/services_captiveportal_vouchers_edit.php:92
#: usr/local/www/services_dhcp.php:1047 usr/local/www/services_dhcpv6.php:764
+#: usr/local/www/services_dhcp.php:1060 usr/local/www/services_dhcpv6.php:781
+#: usr/local/www/services_dhcp.php:1080
+#: usr/local/www/services_captiveportal_vouchers_edit.php:92
+#: usr/local/www/services_dhcpv6.php:781
msgid "Number"
msgstr ""
@@ -23886,59 +29176,79 @@ msgstr ""
#: usr/local/www/system_certmanager.php:763
#: usr/local/www/load_balancer_relay_action_edit.php:505
#: usr/local/www/services_dhcp.php:852 usr/local/www/services_dhcpv6.php:834
-#: usr/local/www/system_certmanager.php:763
#: usr/local/www/load_balancer_relay_action_edit.php:503
+#: usr/local/www/services_dhcp.php:1049 usr/local/www/services_dhcpv6.php:765
+#: usr/local/www/services_dhcp.php:1062
+#: usr/local/www/system_certmanager.php:788
+#: usr/local/www/services_dhcpv6.php:782 usr/local/www/services_dhcp.php:1082
+#: usr/local/www/system_certmanager.php:789
+#: usr/local/www/load_balancer_relay_action_edit.php:503
+#: usr/local/www/services_dhcpv6.php:782
#: usr/local/www/system_advanced_sysctl.php:173
#: usr/local/www/system_advanced_sysctl.php:249
-#: usr/local/www/services_dhcp.php:1049 usr/local/www/services_dhcpv6.php:765
msgid "Value"
msgstr ""
#: usr/local/www/services_dhcp.php:877 usr/local/www/services_dhcpv6.php:790
#: usr/local/www/services_dhcp.php:915 usr/local/www/services_dhcpv6.php:885
#: usr/local/www/services_dhcp.php:1119 usr/local/www/services_dhcpv6.php:816
+#: usr/local/www/services_dhcp.php:1132 usr/local/www/services_dhcpv6.php:833
+#: usr/local/www/services_dhcp.php:1152 usr/local/www/services_dhcpv6.php:833
msgid "The DNS servers entered in"
msgstr ""
#: usr/local/www/services_dhcp.php:877 usr/local/www/services_dhcpv6.php:790
#: usr/local/www/services_dhcp.php:915 usr/local/www/services_dhcpv6.php:885
#: usr/local/www/services_dhcp.php:1119 usr/local/www/services_dhcpv6.php:816
+#: usr/local/www/services_dhcp.php:1132 usr/local/www/services_dhcpv6.php:833
+#: usr/local/www/services_dhcp.php:1152 usr/local/www/services_dhcpv6.php:833
msgid "System: General setup"
msgstr ""
#: usr/local/www/services_dhcp.php:878 usr/local/www/services_dhcpv6.php:791
#: usr/local/www/services_dhcp.php:916 usr/local/www/services_dhcpv6.php:886
#: usr/local/www/services_dhcp.php:1120 usr/local/www/services_dhcpv6.php:817
+#: usr/local/www/services_dhcp.php:1133 usr/local/www/services_dhcpv6.php:834
+#: usr/local/www/services_dhcp.php:1153 usr/local/www/services_dhcpv6.php:834
msgid "(or the"
msgstr ""
#: usr/local/www/services_dhcp.php:879 usr/local/www/services_dhcpv6.php:792
#: usr/local/www/services_dhcp.php:917 usr/local/www/services_dhcpv6.php:887
#: usr/local/www/services_dhcp.php:1121 usr/local/www/services_dhcpv6.php:818
+#: usr/local/www/services_dhcp.php:1134 usr/local/www/services_dhcpv6.php:835
+#: usr/local/www/services_dhcp.php:1154 usr/local/www/services_dhcpv6.php:835
msgid "if enabled)"
msgstr ""
#: usr/local/www/services_dhcp.php:879 usr/local/www/services_dhcpv6.php:792
#: usr/local/www/services_dhcp.php:917 usr/local/www/services_dhcpv6.php:887
#: usr/local/www/services_dhcp.php:1121 usr/local/www/services_dhcpv6.php:818
+#: usr/local/www/services_dhcp.php:1134 usr/local/www/services_dhcpv6.php:835
+#: usr/local/www/services_dhcp.php:1154 usr/local/www/services_dhcpv6.php:835
msgid "will be assigned to clients by the DHCP server."
msgstr ""
#: usr/local/www/services_dhcp.php:882 usr/local/www/services_dhcpv6.php:795
#: usr/local/www/services_dhcp.php:920 usr/local/www/services_dhcpv6.php:890
#: usr/local/www/services_dhcp.php:1124 usr/local/www/services_dhcpv6.php:821
+#: usr/local/www/services_dhcp.php:1137 usr/local/www/services_dhcpv6.php:838
+#: usr/local/www/services_dhcp.php:1157 usr/local/www/services_dhcpv6.php:838
msgid "The DHCP lease table can be viewed on the"
msgstr ""
#: usr/local/www/services_dhcp.php:882 usr/local/www/services_dhcpv6.php:795
#: usr/local/www/services_dhcp.php:920 usr/local/www/services_dhcpv6.php:890
-#: usr/local/www/services_dhcp.php:1124
+#: usr/local/www/services_dhcp.php:1124 usr/local/www/services_dhcp.php:1137
+#: usr/local/www/services_dhcp.php:1157
msgid "Status: DHCP leases"
msgstr ""
#: usr/local/www/services_dhcp.php:883 usr/local/www/services_dhcpv6.php:796
#: usr/local/www/services_dhcp.php:921 usr/local/www/services_dhcpv6.php:891
#: usr/local/www/services_dhcp.php:1125 usr/local/www/services_dhcpv6.php:822
+#: usr/local/www/services_dhcp.php:1138 usr/local/www/services_dhcpv6.php:839
+#: usr/local/www/services_dhcp.php:1158 usr/local/www/services_dhcpv6.php:839
msgid "page."
msgstr ""
@@ -23946,8 +29256,10 @@ msgstr ""
#: usr/local/www/services_dhcpv6_edit.php:113
#: usr/local/www/services_dhcpv6_edit.php:115
#: usr/local/www/services_dhcp_edit.php:118
-#: usr/local/www/services_dhcpv6_edit.php:115
-#: usr/local/www/services_dhcp_edit.php:118
+#: usr/local/www/services_dhcpv6_edit.php:118
+#: usr/local/www/services_dhcp_edit.php:152
+#: usr/local/www/services_dhcpv6_edit.php:118
+#: usr/local/www/services_dhcp_edit.php:152
msgid "The hostname cannot end with a hyphen according to RFC952"
msgstr ""
@@ -23955,34 +29267,40 @@ msgstr ""
#: usr/local/www/services_dhcpv6_edit.php:118
#: usr/local/www/services_dhcpv6_edit.php:120
#: usr/local/www/services_dhcp_edit.php:123
-#: usr/local/www/services_dhcpv6_edit.php:120
-#: usr/local/www/services_dhcp_edit.php:123
+#: usr/local/www/services_dhcpv6_edit.php:123
+#: usr/local/www/services_dhcp_edit.php:157
+#: usr/local/www/services_dhcpv6_edit.php:123
+#: usr/local/www/services_dhcp_edit.php:157
msgid ""
"A valid hostname is specified, but the domain name part should be omitted"
msgstr ""
#: usr/local/www/services_dhcp_edit.php:132
#: usr/local/www/services_dhcp_edit.php:134
-#: usr/local/www/services_dhcp_edit.php:134
+#: usr/local/www/services_dhcp_edit.php:168
+#: usr/local/www/services_dhcp_edit.php:168
msgid "Static ARP is enabled. You must specify an IP address."
msgstr ""
#: usr/local/www/services_dhcp_edit.php:141
#: usr/local/www/services_dhcp_edit.php:143
-#: usr/local/www/services_dhcp_edit.php:143
+#: usr/local/www/services_dhcp_edit.php:177
+#: usr/local/www/services_dhcp_edit.php:177
msgid "This Hostname, IP or MAC address already exists."
msgstr ""
#: usr/local/www/services_dhcp_edit.php:152
#: usr/local/www/services_dhcp_edit.php:154
-#: usr/local/www/services_dhcp_edit.php:154
+#: usr/local/www/services_dhcp_edit.php:188
+#: usr/local/www/services_dhcp_edit.php:188
#, php-format
msgid "The IP address must not be within the DHCP range for this interface."
msgstr ""
#: usr/local/www/services_dhcp_edit.php:159
#: usr/local/www/services_dhcp_edit.php:161
-#: usr/local/www/services_dhcp_edit.php:161
+#: usr/local/www/services_dhcp_edit.php:202
+#: usr/local/www/services_dhcp_edit.php:202
#, php-format
msgid "The IP address must lie in the %s subnet."
msgstr ""
@@ -23991,26 +29309,36 @@ msgstr ""
#: usr/local/www/services_dhcpv6_edit.php:172
#: usr/local/www/services_dhcpv6_edit.php:175
#: usr/local/www/services_dhcp_edit.php:193
-#: usr/local/www/services_dhcpv6_edit.php:175
-#: usr/local/www/services_dhcp_edit.php:193
+#: usr/local/www/services_dhcpv6_edit.php:178
+#: usr/local/www/services_dhcp_edit.php:301
+#: usr/local/www/services_dhcpv6_edit.php:178
+#: usr/local/www/services_dhcp_edit.php:301
msgid "Edit static mapping"
msgstr ""
#: usr/local/www/services_dhcp_edit.php:204
#: usr/local/www/services_dhcp_edit.php:207
#: usr/local/www/services_dhcp_edit.php:206
+#: usr/local/www/services_dhcp_edit.php:334
+#: usr/local/www/services_dhcp_edit.php:334
msgid "Static DHCP Mapping"
msgstr ""
#: usr/local/www/services_dhcp_edit.php:215
#: usr/local/www/services_dhcp_edit.php:218
#: usr/local/www/services_dhcp_edit.php:217
+#: usr/local/www/services_dhcp_edit.php:345
+#: usr/local/www/services_captiveportal_mac_edit.php:188
+#: usr/local/www/services_dhcp_edit.php:345
+#: usr/local/www/services_captiveportal_mac_edit.php:188
msgid "Copy my MAC address"
msgstr ""
#: usr/local/www/services_dhcp_edit.php:217
#: usr/local/www/services_dhcp_edit.php:220
#: usr/local/www/services_dhcp_edit.php:219
+#: usr/local/www/services_dhcp_edit.php:347
+#: usr/local/www/services_dhcp_edit.php:347
msgid "Enter a MAC address in the following format: xx:xx:xx:xx:xx:xx"
msgstr ""
@@ -24026,13 +29354,17 @@ msgstr ""
#: usr/local/www/services_dhcp_edit.php:234
#: usr/local/www/services_dhcpv6_edit.php:213
#: usr/local/www/services_dhcp_edit.php:236
+#: usr/local/www/services_dhcpv6_edit.php:216
+#: usr/local/www/services_dhcp_edit.php:364
+#: usr/local/www/services_dhcpv6_edit.php:216
+#: usr/local/www/services_dhcp_edit.php:364
msgid "Name of the host, without domain part."
msgstr ""
#: usr/local/www/services_dhcp_relay.php:72
#: usr/local/www/services_dhcpv6_relay.php:73
-#: usr/local/www/services_dhcp_relay.php:72
#: usr/local/www/services_dhcpv6_relay.php:73
+#: usr/local/www/services_dhcp_relay.php:72
msgid "Destination Server"
msgstr ""
@@ -24044,17 +29376,21 @@ msgstr ""
#: usr/local/www/status_services.php:295
#: usr/local/www/widgets/widgets/services_status.widget.php:100
#: usr/local/www/fbegin.inc:139 etc/inc/service-utils.inc:278
-#: usr/local/www/fbegin.inc:148 usr/local/www/services_dhcp_relay.php:100
+#: usr/local/www/fbegin.inc:148 usr/local/www/fbegin.inc:140
+#: etc/inc/service-utils.inc:277 usr/local/www/fbegin.inc:140
+#: usr/local/www/services_dhcp_relay.php:100 etc/inc/service-utils.inc:294
msgid "DHCP Relay"
msgstr ""
#: usr/local/www/services_dhcp_relay.php:144
#: usr/local/www/services_dhcp_relay.php:145
+#: usr/local/www/services_dhcp_relay.php:145
msgid "DHCP Relay configuration"
msgstr ""
#: usr/local/www/services_dhcp_relay.php:150
#: usr/local/www/services_dhcp_relay.php:151
+#: usr/local/www/services_dhcp_relay.php:151
#, php-format
msgid "Enable DHCP relay on interface"
msgstr ""
@@ -24063,11 +29399,14 @@ msgstr ""
#: usr/local/www/services_dhcpv6_relay.php:176
#: usr/local/www/services_dhcp_relay.php:176
#: usr/local/www/services_dhcpv6_relay.php:177
+#: usr/local/www/services_dhcpv6_relay.php:177
+#: usr/local/www/services_dhcp_relay.php:176
msgid "Append circuit ID and agent ID to requests"
msgstr ""
#: usr/local/www/services_dhcp_relay.php:176
#: usr/local/www/services_dhcp_relay.php:177
+#: usr/local/www/services_dhcp_relay.php:177
#, php-format
msgid ""
"If this is checked, the DHCP relay will append the circuit ID (%s interface "
@@ -24078,11 +29417,14 @@ msgstr ""
#: usr/local/www/services_dhcpv6_relay.php:180
#: usr/local/www/services_dhcp_relay.php:180
#: usr/local/www/services_dhcpv6_relay.php:181
+#: usr/local/www/services_dhcpv6_relay.php:181
+#: usr/local/www/services_dhcp_relay.php:180
msgid "Destination server"
msgstr ""
#: usr/local/www/services_dhcp_relay.php:183
#: usr/local/www/services_dhcp_relay.php:184
+#: usr/local/www/services_dhcp_relay.php:184
msgid ""
"This is the IP address of the server to which DHCP requests are relayed. You "
"can enter multiple server IP addresses, separated by commas. Select \"Proxy "
@@ -24090,39 +29432,51 @@ msgid ""
"that was used on the WAN interface."
msgstr ""
-#: usr/local/www/services_dnsmasq.php:80 usr/local/www/services_dnsmasq.php:80
+#: usr/local/www/services_dnsmasq.php:80 usr/local/www/services_dnsmasq.php:84
+#: usr/local/www/services_dnsmasq.php:86
msgid "Invalid custom options"
msgstr ""
#: usr/local/www/services_dnsmasq.php:147
#: usr/local/www/services_dnsmasq.php:148
+#: usr/local/www/services_dnsmasq.php:152
+#: usr/local/www/services_dnsmasq.php:154
msgid "The DNS forwarder configuration has been changed"
msgstr ""
#: usr/local/www/services_dnsmasq.php:151
#: usr/local/www/services_dnsmasq.php:152
+#: usr/local/www/services_dnsmasq.php:156
+#: usr/local/www/services_dnsmasq.php:158
msgid "General DNS Forwarder Options"
msgstr ""
#: usr/local/www/services_dnsmasq.php:157
#: usr/local/www/services_dnsmasq.php:158
+#: usr/local/www/services_dnsmasq.php:162
+#: usr/local/www/services_dnsmasq.php:164
msgid "Enable DNS forwarder"
msgstr ""
#: usr/local/www/services_dnsmasq.php:161
#: usr/local/www/services_unbound.php:211
#: usr/local/www/services_dnsmasq.php:162
-#: usr/local/www/services_unbound.php:211
+#: usr/local/www/services_dnsmasq.php:166
+#: usr/local/www/services_dnsmasq.php:168
msgid "DHCP Registration"
msgstr ""
#: usr/local/www/services_dnsmasq.php:164
#: usr/local/www/services_dnsmasq.php:165
+#: usr/local/www/services_dnsmasq.php:169
+#: usr/local/www/services_dnsmasq.php:171
msgid "Register DHCP leases in DNS forwarder"
msgstr ""
#: usr/local/www/services_dnsmasq.php:165
#: usr/local/www/services_dnsmasq.php:166
+#: usr/local/www/services_dnsmasq.php:170
+#: usr/local/www/services_dnsmasq.php:172
#, php-format
msgid ""
"If this option is set, then machines that specify their hostname when "
@@ -24134,17 +29488,22 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:173
#: usr/local/www/services_unbound.php:223
#: usr/local/www/services_dnsmasq.php:174
-#: usr/local/www/services_unbound.php:223
+#: usr/local/www/services_dnsmasq.php:178
+#: usr/local/www/services_dnsmasq.php:180
msgid "Static DHCP"
msgstr ""
#: usr/local/www/services_dnsmasq.php:176
#: usr/local/www/services_dnsmasq.php:177
+#: usr/local/www/services_dnsmasq.php:181
+#: usr/local/www/services_dnsmasq.php:183
msgid "Register DHCP static mappings in DNS forwarder"
msgstr ""
#: usr/local/www/services_dnsmasq.php:177
#: usr/local/www/services_dnsmasq.php:178
+#: usr/local/www/services_dnsmasq.php:182
+#: usr/local/www/services_dnsmasq.php:184
#, php-format
msgid ""
"If this option is set, then DHCP static mappings will be registered in the "
@@ -24155,21 +29514,24 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:184
#: usr/local/www/services_unbound.php:234
#: usr/local/www/services_dnsmasq.php:185
-#: usr/local/www/services_unbound.php:234
+#: usr/local/www/services_dnsmasq.php:189
+#: usr/local/www/services_dnsmasq.php:191
msgid "Prefer DHCP"
msgstr ""
#: usr/local/www/services_dnsmasq.php:187
#: usr/local/www/services_unbound.php:237
#: usr/local/www/services_dnsmasq.php:188
-#: usr/local/www/services_unbound.php:237
+#: usr/local/www/services_dnsmasq.php:192
+#: usr/local/www/services_dnsmasq.php:194
msgid "Resolve DHCP mappings first"
msgstr ""
#: usr/local/www/services_dnsmasq.php:188
#: usr/local/www/services_unbound.php:238
#: usr/local/www/services_dnsmasq.php:189
-#: usr/local/www/services_unbound.php:238
+#: usr/local/www/services_dnsmasq.php:193
+#: usr/local/www/services_dnsmasq.php:195
#, php-format
msgid ""
"If this option is set, then DHCP mappings will be resolved before the manual "
@@ -24179,6 +29541,8 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:202
#: usr/local/www/services_dnsmasq.php:203
+#: usr/local/www/services_dnsmasq.php:228
+#: usr/local/www/services_dnsmasq.php:241
msgid ""
"Enter any additional options you would like to add to the dnsmasq "
"configuration here, separated by a space or newline"
@@ -24186,6 +29550,8 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:215
#: usr/local/www/services_dnsmasq.php:216
+#: usr/local/www/services_dnsmasq.php:241
+#: usr/local/www/services_dnsmasq.php:254
#, php-format
msgid ""
"If the DNS forwarder is enabled, the DHCP service (if enabled) will "
@@ -24201,14 +29567,16 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:231
#: usr/local/www/services_unbound.php:267
#: usr/local/www/services_dnsmasq.php:232
-#: usr/local/www/services_unbound.php:267
+#: usr/local/www/services_dnsmasq.php:257
+#: usr/local/www/services_dnsmasq.php:270
msgid "Host Overrides"
msgstr ""
#: usr/local/www/services_dnsmasq.php:235
#: usr/local/www/services_unbound.php:271
#: usr/local/www/services_dnsmasq.php:236
-#: usr/local/www/services_unbound.php:271
+#: usr/local/www/services_dnsmasq.php:261
+#: usr/local/www/services_dnsmasq.php:274
msgid ""
"Entries in this section override individual results from the forwarders."
msgstr ""
@@ -24216,7 +29584,8 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:236
#: usr/local/www/services_unbound.php:272
#: usr/local/www/services_dnsmasq.php:237
-#: usr/local/www/services_unbound.php:272
+#: usr/local/www/services_dnsmasq.php:262
+#: usr/local/www/services_dnsmasq.php:275
msgid "Use these for changing DNS results or for adding custom DNS records."
msgstr ""
@@ -24224,7 +29593,8 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:320
#: usr/local/www/services_unbound.php:335
#: usr/local/www/services_dnsmasq.php:321
-#: usr/local/www/services_unbound.php:335
+#: usr/local/www/services_dnsmasq.php:346
+#: usr/local/www/services_dnsmasq.php:359
msgid "Domain Overrides"
msgstr ""
@@ -24232,7 +29602,8 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:324
#: usr/local/www/services_unbound.php:339
#: usr/local/www/services_dnsmasq.php:325
-#: usr/local/www/services_unbound.php:339
+#: usr/local/www/services_dnsmasq.php:350
+#: usr/local/www/services_dnsmasq.php:363
msgid ""
"Entries in this area override an entire domain by specifying an "
"authoritative DNS server to be queried for that domain."
@@ -24242,7 +29613,8 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:358
#: usr/local/www/services_unbound.php:373
#: usr/local/www/services_dnsmasq.php:359
-#: usr/local/www/services_unbound.php:373
+#: usr/local/www/services_dnsmasq.php:384
+#: usr/local/www/services_dnsmasq.php:397
msgid "Do you really want to delete this domain override?"
msgstr ""
@@ -24261,36 +29633,42 @@ msgstr ""
#: usr/local/www/services_dnsmasq_edit.php:138
#: usr/local/www/services_dnsmasq_edit.php:193
#: usr/local/www/services_dnsmasq_edit.php:194
+#: usr/local/www/services_dnsmasq_edit.php:194
msgid "Edit DNS Forwarder entry"
msgstr ""
#: usr/local/www/services_dnsmasq_edit.php:144
#: usr/local/www/services_dnsmasq_edit.php:199
#: usr/local/www/services_dnsmasq_edit.php:200
+#: usr/local/www/services_dnsmasq_edit.php:200
msgid "Name of the host, without domain part"
msgstr ""
#: usr/local/www/services_dnsmasq_edit.php:146
#: usr/local/www/services_dnsmasq_edit.php:201
#: usr/local/www/services_dnsmasq_edit.php:202
+#: usr/local/www/services_dnsmasq_edit.php:202
msgid "myhost"
msgstr ""
#: usr/local/www/services_dnsmasq_edit.php:152
#: usr/local/www/services_dnsmasq_edit.php:207
#: usr/local/www/services_dnsmasq_edit.php:208
+#: usr/local/www/services_dnsmasq_edit.php:208
msgid "Domain of the host"
msgstr ""
#: usr/local/www/services_dnsmasq_edit.php:153
#: usr/local/www/services_dnsmasq_edit.php:208
#: usr/local/www/services_dnsmasq_edit.php:209
+#: usr/local/www/services_dnsmasq_edit.php:209
msgid "example.com"
msgstr ""
#: usr/local/www/services_dnsmasq_edit.php:159
#: usr/local/www/services_dnsmasq_edit.php:214
#: usr/local/www/services_dnsmasq_edit.php:215
+#: usr/local/www/services_dnsmasq_edit.php:215
msgid "IP address of the host"
msgstr ""
@@ -24313,95 +29691,115 @@ msgstr ""
msgid "Last %1$s %2$s log entries"
msgstr ""
-#: usr/local/www/status.php:110 usr/local/www/status.php:110
+#: usr/local/www/status.php:110 usr/local/www/status.php:111
+#: usr/local/www/status.php:111
msgid "This status page includes the following information"
msgstr ""
-#: usr/local/www/status.php:225 usr/local/www/status.php:225
+#: usr/local/www/status.php:225 usr/local/www/status.php:226
+#: usr/local/www/status.php:230
msgid ""
"Note: make sure to remove any sensitive information (passwords, maybe also "
"IP addresses) before posting information from this page in public places "
"(like mailing lists)"
msgstr ""
-#: usr/local/www/status.php:228 usr/local/www/status.php:228
+#: usr/local/www/status.php:228 usr/local/www/status.php:229
+#: usr/local/www/status.php:233
msgid "Passwords in config.xml have been automatically removed"
msgstr ""
#: usr/local/www/bandwidth_by_ip.php:54 usr/local/www/bandwidth_by_ip.php:67
+#: usr/local/www/bandwidth_by_ip.php:61 usr/local/www/bandwidth_by_ip.php:103
msgid "no info"
msgstr ""
#: usr/local/www/vpn_pptp.php:82 usr/local/www/vpn_pptp.php:353
#: usr/local/www/vpn_l2tp.php:73 usr/local/www/vpn_l2tp.php:321
#: usr/local/www/vpn_pppoe_edit.php:112 usr/local/www/vpn_pppoe_edit.php:424
-#: usr/local/www/vpn_pppoe_edit.php:112 usr/local/www/vpn_pppoe_edit.php:425
-#: usr/local/www/vpn_pptp.php:82 usr/local/www/vpn_pptp.php:355
-#: usr/local/www/vpn_l2tp.php:74
+#: usr/local/www/vpn_pppoe_edit.php:425 usr/local/www/vpn_pptp.php:355
+#: usr/local/www/vpn_l2tp.php:74 usr/local/www/vpn_pppoe_edit.php:428
+#: usr/local/www/vpn_pptp.php:358 usr/local/www/vpn_l2tp.php:74
+#: usr/local/www/vpn_pppoe_edit.php:112 usr/local/www/vpn_pppoe_edit.php:428
+#: usr/local/www/vpn_pptp.php:82 usr/local/www/vpn_pptp.php:358
msgid "Server address"
msgstr ""
#: usr/local/www/vpn_pptp.php:82 usr/local/www/vpn_l2tp.php:73
-#: usr/local/www/vpn_pppoe_edit.php:112 usr/local/www/vpn_pppoe_edit.php:112
-#: usr/local/www/vpn_pptp.php:82 usr/local/www/vpn_l2tp.php:74
+#: usr/local/www/vpn_pppoe_edit.php:112 usr/local/www/vpn_l2tp.php:74
+#: usr/local/www/vpn_l2tp.php:74 usr/local/www/vpn_pppoe_edit.php:112
+#: usr/local/www/vpn_pptp.php:82
msgid "Remote start address"
msgstr ""
#: usr/local/www/vpn_pptp.php:87 usr/local/www/vpn_l2tp.php:78
-#: usr/local/www/vpn_pppoe_edit.php:117 usr/local/www/vpn_pppoe_edit.php:117
-#: usr/local/www/vpn_pptp.php:87 usr/local/www/vpn_l2tp.php:79
+#: usr/local/www/vpn_pppoe_edit.php:117 usr/local/www/vpn_l2tp.php:79
+#: usr/local/www/vpn_l2tp.php:79 usr/local/www/vpn_pppoe_edit.php:117
+#: usr/local/www/vpn_pptp.php:87
msgid "RADIUS server address"
msgstr ""
#: usr/local/www/vpn_pptp.php:87 usr/local/www/vpn_pptp.php:432
#: usr/local/www/vpn_l2tp.php:78 usr/local/www/vpn_l2tp.php:428
-#: usr/local/www/vpn_pppoe_edit.php:117 usr/local/www/vpn_pppoe_edit.php:117
-#: usr/local/www/vpn_pptp.php:87 usr/local/www/vpn_pptp.php:434
-#: usr/local/www/vpn_l2tp.php:79
+#: usr/local/www/vpn_pppoe_edit.php:117 usr/local/www/vpn_pptp.php:434
+#: usr/local/www/vpn_l2tp.php:79 usr/local/www/vpn_pptp.php:437
+#: usr/local/www/vpn_l2tp.php:79 usr/local/www/vpn_pppoe_edit.php:117
+#: usr/local/www/vpn_pptp.php:87 usr/local/www/vpn_pptp.php:437
msgid "RADIUS shared secret"
msgstr ""
#: usr/local/www/vpn_pptp.php:93 usr/local/www/vpn_l2tp.php:84
-#: usr/local/www/vpn_pppoe_edit.php:123 usr/local/www/vpn_pppoe_edit.php:123
-#: usr/local/www/vpn_pptp.php:93 usr/local/www/vpn_l2tp.php:85
+#: usr/local/www/vpn_pppoe_edit.php:123 usr/local/www/vpn_l2tp.php:85
+#: usr/local/www/vpn_l2tp.php:85 usr/local/www/vpn_pppoe_edit.php:123
+#: usr/local/www/vpn_pptp.php:93
msgid "A valid server address must be specified."
msgstr ""
#: usr/local/www/vpn_pptp.php:96 usr/local/www/vpn_l2tp.php:87
-#: usr/local/www/vpn_pppoe_edit.php:125 usr/local/www/vpn_pppoe_edit.php:125
-#: usr/local/www/vpn_pptp.php:96 usr/local/www/vpn_l2tp.php:88
+#: usr/local/www/vpn_pppoe_edit.php:125 usr/local/www/vpn_l2tp.php:88
+#: usr/local/www/vpn_l2tp.php:91 usr/local/www/vpn_pptp.php:99
+#: usr/local/www/vpn_l2tp.php:91 usr/local/www/vpn_pppoe_edit.php:125
+#: usr/local/www/vpn_pptp.php:99
msgid "A valid remote start address must be specified."
msgstr ""
#: usr/local/www/vpn_pptp.php:99 usr/local/www/vpn_l2tp.php:90
-#: usr/local/www/vpn_pppoe_edit.php:127 usr/local/www/vpn_pppoe_edit.php:127
-#: usr/local/www/vpn_pptp.php:99 usr/local/www/vpn_l2tp.php:91
+#: usr/local/www/vpn_pppoe_edit.php:127 usr/local/www/vpn_l2tp.php:91
+#: usr/local/www/vpn_l2tp.php:94 usr/local/www/vpn_pptp.php:102
+#: usr/local/www/vpn_l2tp.php:94 usr/local/www/vpn_pppoe_edit.php:127
+#: usr/local/www/vpn_pptp.php:102
msgid "A valid RADIUS server address must be specified."
msgstr ""
#: usr/local/www/vpn_pptp.php:108 usr/local/www/vpn_l2tp.php:106
-#: usr/local/www/vpn_pppoe_edit.php:134 usr/local/www/vpn_pppoe_edit.php:134
-#: usr/local/www/vpn_pptp.php:108 usr/local/www/vpn_l2tp.php:107
+#: usr/local/www/vpn_pppoe_edit.php:134 usr/local/www/vpn_l2tp.php:107
+#: usr/local/www/vpn_l2tp.php:110 usr/local/www/vpn_pptp.php:111
+#: usr/local/www/vpn_l2tp.php:110 usr/local/www/vpn_pppoe_edit.php:134
+#: usr/local/www/vpn_pptp.php:111
msgid "The specified server address lies in the remote subnet."
msgstr ""
#: usr/local/www/vpn_pptp.php:112 usr/local/www/vpn_l2tp.php:109
-#: usr/local/www/vpn_pptp.php:112 usr/local/www/vpn_l2tp.php:110
+#: usr/local/www/vpn_l2tp.php:110 usr/local/www/vpn_l2tp.php:113
+#: usr/local/www/vpn_pptp.php:115 usr/local/www/vpn_l2tp.php:113
+#: usr/local/www/vpn_pptp.php:115
msgid "The specified server address is equal to the LAN interface address."
msgstr ""
-#: usr/local/www/vpn_pptp.php:117 usr/local/www/vpn_pptp.php:117
+#: usr/local/www/vpn_pptp.php:117 usr/local/www/vpn_pptp.php:120
+#: usr/local/www/vpn_pptp.php:120
msgid "PPTP redirection target address"
msgstr ""
-#: usr/local/www/vpn_pptp.php:122 usr/local/www/vpn_pptp.php:122
+#: usr/local/www/vpn_pptp.php:122 usr/local/www/vpn_pptp.php:125
+#: usr/local/www/vpn_pptp.php:125
msgid "A valid target address must be specified."
msgstr ""
#: usr/local/www/vpn_pptp.php:193 usr/local/www/vpn_pptp_users.php:71
-#: usr/local/www/vpn_pptp_users_edit.php:135 usr/local/www/vpn_pptp.php:193
+#: usr/local/www/vpn_pptp_users_edit.php:135 usr/local/www/vpn_pptp.php:196
+#: usr/local/www/vpn_pptp_users.php:71 usr/local/www/vpn_pptp.php:196
#: usr/local/www/vpn_pptp_users_edit.php:135
-#: usr/local/www/vpn_pptp_users.php:71
msgid "VPN PPTP"
msgstr ""
@@ -24409,6 +29807,9 @@ msgstr ""
#: usr/local/www/vpn_l2tp.php:280 usr/local/www/vpn_l2tp_users.php:92
#: usr/local/www/vpn_pptp.php:302 usr/local/www/vpn_l2tp_users.php:93
#: usr/local/www/vpn_l2tp.php:281 usr/local/www/vpn_pptp_users.php:90
+#: usr/local/www/vpn_l2tp.php:284 usr/local/www/vpn_pptp.php:305
+#: usr/local/www/vpn_l2tp.php:284 usr/local/www/vpn_pptp_users.php:90
+#: usr/local/www/vpn_l2tp_users.php:93 usr/local/www/vpn_pptp.php:305
msgid "Configuration"
msgstr ""
@@ -24424,44 +29825,55 @@ msgstr ""
#: usr/local/www/vpn_l2tp_users.php:93
#: usr/local/www/system_usermanager.php:438
#: usr/local/www/system_groupmanager_addprivs.php:166
-#: usr/local/www/system_groupmanager.php:240
-#: usr/local/www/system_usermanager.php:438 usr/local/www/vpn_pptp.php:303
+#: usr/local/www/vpn_pptp.php:303 usr/local/www/vpn_l2tp_users.php:94
+#: usr/local/www/vpn_l2tp.php:282 usr/local/www/vpn_pptp_users.php:91
+#: usr/local/www/system_authservers.php:426 usr/local/www/vpn_l2tp.php:285
+#: usr/local/www/system_authservers.php:433 usr/local/www/vpn_pptp.php:306
+#: usr/local/www/vpn_l2tp.php:285 usr/local/www/system_groupmanager.php:240
+#: usr/local/www/vpn_pptp_users.php:71 usr/local/www/vpn_pptp_users.php:91
#: usr/local/www/system_usermanager_addprivs.php:167
#: usr/local/www/vpn_l2tp_users.php:38 usr/local/www/vpn_l2tp_users.php:94
+#: usr/local/www/system_authservers.php:433
#: usr/local/www/system_groupmanager_addprivs.php:166
-#: usr/local/www/system_usermanager_settings.php:113
-#: usr/local/www/vpn_l2tp.php:282 usr/local/www/vpn_pptp_users.php:71
-#: usr/local/www/vpn_pptp_users.php:91
-#: usr/local/www/system_authservers.php:426
+#: usr/local/www/vpn_pptp.php:306
+#: usr/local/www/system_usermanager_settings.php:115
+#: usr/local/www/system_usermanager.php:438
msgid "Users"
msgstr ""
#: usr/local/www/vpn_pptp.php:320 usr/local/www/vpn_pptp.php:322
+#: usr/local/www/vpn_pptp.php:325 usr/local/www/vpn_pptp.php:325
msgid "Redirect incoming PPTP connections to"
msgstr ""
#: usr/local/www/vpn_pptp.php:322 usr/local/www/vpn_pptp.php:324
+#: usr/local/www/vpn_pptp.php:327 usr/local/www/vpn_pptp.php:327
msgid "PPTP redirection"
msgstr ""
#: usr/local/www/vpn_pptp.php:326 usr/local/www/vpn_pptp.php:328
+#: usr/local/www/vpn_pptp.php:331 usr/local/www/vpn_pptp.php:331
msgid ""
"Enter the IP address of a host which will accept incoming PPTP connections"
msgstr ""
#: usr/local/www/vpn_pptp.php:332 usr/local/www/vpn_pptp.php:334
+#: usr/local/www/vpn_pptp.php:337 usr/local/www/vpn_pptp.php:337
msgid "Enable PPTP server"
msgstr ""
#: usr/local/www/vpn_pptp.php:335 usr/local/www/vpn_pptp.php:337
+#: usr/local/www/vpn_pptp.php:340 usr/local/www/vpn_pptp.php:340
msgid "No. PPTP users"
msgstr ""
#: usr/local/www/vpn_pptp.php:349 usr/local/www/vpn_pptp.php:351
+#: usr/local/www/vpn_pptp.php:354 usr/local/www/vpn_pptp.php:354
msgid "Hint: 10 is ten PPTP clients"
msgstr ""
#: usr/local/www/vpn_pptp.php:357 usr/local/www/vpn_pptp.php:359
+#: usr/local/www/vpn_pptp.php:362 usr/local/www/vpn_pptp.php:362
msgid ""
"Enter the IP address the PPTP server should give to clients for use as their "
"\"gateway\""
@@ -24470,12 +29882,18 @@ msgstr ""
#: usr/local/www/vpn_pptp.php:359 usr/local/www/vpn_l2tp.php:327
#: usr/local/www/vpn_pppoe_edit.php:430 usr/local/www/vpn_pppoe_edit.php:431
#: usr/local/www/vpn_pptp.php:361 usr/local/www/vpn_l2tp.php:328
+#: usr/local/www/vpn_l2tp.php:331 usr/local/www/vpn_pppoe_edit.php:434
+#: usr/local/www/vpn_pptp.php:364 usr/local/www/vpn_l2tp.php:331
+#: usr/local/www/vpn_pppoe_edit.php:434 usr/local/www/vpn_pptp.php:364
msgid "Typically this is set to an unused IP just outside of the client range"
msgstr ""
#: usr/local/www/vpn_pptp.php:362 usr/local/www/vpn_l2tp.php:330
#: usr/local/www/vpn_pppoe_edit.php:433 usr/local/www/vpn_pppoe_edit.php:434
#: usr/local/www/vpn_pptp.php:364 usr/local/www/vpn_l2tp.php:331
+#: usr/local/www/vpn_l2tp.php:334 usr/local/www/vpn_pppoe_edit.php:437
+#: usr/local/www/vpn_pptp.php:367 usr/local/www/vpn_l2tp.php:334
+#: usr/local/www/vpn_pppoe_edit.php:437 usr/local/www/vpn_pptp.php:367
msgid ""
"NOTE: This should NOT be set to any IP address currently in use on this "
"firewall"
@@ -24483,41 +29901,56 @@ msgstr ""
#: usr/local/www/vpn_pptp.php:365 usr/local/www/vpn_l2tp.php:333
#: usr/local/www/vpn_pppoe_edit.php:436 usr/local/www/vpn_pppoe_edit.php:437
-#: usr/local/www/vpn_pptp.php:367
+#: usr/local/www/vpn_pptp.php:367 usr/local/www/vpn_pppoe_edit.php:440
+#: usr/local/www/vpn_pptp.php:370 usr/local/www/vpn_pppoe_edit.php:440
+#: usr/local/www/vpn_pptp.php:370
msgid "Remote address range"
msgstr ""
#: usr/local/www/vpn_pptp.php:370 usr/local/www/vpn_pptp.php:372
+#: usr/local/www/vpn_pptp.php:375 usr/local/www/vpn_pptp.php:375
msgid "Specify the starting address for the client IP subnet"
msgstr ""
#: usr/local/www/vpn_pptp.php:373 usr/local/www/vpn_pptp.php:375
+#: usr/local/www/vpn_pptp.php:378 usr/local/www/vpn_pptp.php:378
msgid "PPTP DNS Servers"
msgstr ""
#: usr/local/www/vpn_pptp.php:379 usr/local/www/vpn_pptp.php:381
+#: usr/local/www/vpn_pptp.php:384 usr/local/www/vpn_pptp.php:384
msgid "primary and secondary DNS servers assigned to PPTP clients"
msgstr ""
#: usr/local/www/vpn_pptp.php:382 usr/local/www/vpn_l2tp.php:404
#: usr/local/www/vpn_pptp.php:384 usr/local/www/vpn_l2tp.php:405
+#: usr/local/www/vpn_l2tp.php:408 usr/local/www/vpn_pptp.php:387
+#: usr/local/www/vpn_l2tp.php:408 usr/local/www/vpn_pptp.php:387
msgid "WINS Server"
msgstr ""
#: usr/local/www/vpn_pptp.php:388 usr/local/www/vpn_l2tp.php:410
#: usr/local/www/vpn_pppoe_edit.php:461 usr/local/www/vpn_pppoe_edit.php:462
#: usr/local/www/vpn_pptp.php:390 usr/local/www/vpn_l2tp.php:411
+#: usr/local/www/vpn_l2tp.php:414 usr/local/www/vpn_pppoe_edit.php:465
+#: usr/local/www/vpn_pptp.php:393 usr/local/www/vpn_l2tp.php:414
+#: usr/local/www/vpn_pppoe_edit.php:465 usr/local/www/vpn_pptp.php:393
msgid "RADIUS"
msgstr ""
#: usr/local/www/vpn_pptp.php:391 usr/local/www/vpn_l2tp.php:413
#: usr/local/www/vpn_pppoe_edit.php:464 usr/local/www/vpn_pppoe_edit.php:465
#: usr/local/www/vpn_pptp.php:393 usr/local/www/vpn_l2tp.php:414
+#: usr/local/www/vpn_l2tp.php:417 usr/local/www/vpn_pppoe_edit.php:468
+#: usr/local/www/vpn_pptp.php:396 usr/local/www/vpn_l2tp.php:417
+#: usr/local/www/vpn_pppoe_edit.php:468 usr/local/www/vpn_pptp.php:396
msgid "Use a RADIUS server for authentication"
msgstr ""
#: usr/local/www/vpn_pptp.php:392 usr/local/www/vpn_pppoe_edit.php:465
#: usr/local/www/vpn_pppoe_edit.php:466 usr/local/www/vpn_pptp.php:394
+#: usr/local/www/vpn_pppoe_edit.php:469 usr/local/www/vpn_pptp.php:397
+#: usr/local/www/vpn_pppoe_edit.php:469 usr/local/www/vpn_pptp.php:397
msgid ""
"When set, all users will be authenticated using the RADIUS server specified "
"below. The local user database will not be used"
@@ -24526,48 +29959,65 @@ msgstr ""
#: usr/local/www/vpn_pptp.php:397 usr/local/www/vpn_l2tp.php:417
#: usr/local/www/vpn_pppoe_edit.php:470 usr/local/www/vpn_pppoe_edit.php:471
#: usr/local/www/vpn_pptp.php:399 usr/local/www/vpn_l2tp.php:418
+#: usr/local/www/vpn_l2tp.php:421 usr/local/www/vpn_pppoe_edit.php:474
+#: usr/local/www/vpn_pptp.php:402 usr/local/www/vpn_l2tp.php:421
+#: usr/local/www/vpn_pppoe_edit.php:474 usr/local/www/vpn_pptp.php:402
msgid "Enable RADIUS accounting"
msgstr ""
#: usr/local/www/vpn_pptp.php:398 usr/local/www/vpn_pppoe_edit.php:472
#: usr/local/www/vpn_pppoe_edit.php:473 usr/local/www/vpn_pptp.php:400
+#: usr/local/www/vpn_pppoe_edit.php:476 usr/local/www/vpn_pptp.php:403
+#: usr/local/www/vpn_pppoe_edit.php:476 usr/local/www/vpn_pptp.php:403
msgid "Sends accounting packets to the RADIUS server"
msgstr ""
#: usr/local/www/vpn_pptp.php:401 usr/local/www/vpn_pptp.php:403
+#: usr/local/www/vpn_pptp.php:406 usr/local/www/vpn_pptp.php:406
msgid "Secondary RADIUS server for failover authentication"
msgstr ""
#: usr/local/www/vpn_pptp.php:402 usr/local/www/vpn_pptp.php:404
+#: usr/local/www/vpn_pptp.php:407 usr/local/www/vpn_pptp.php:407
msgid ""
"When set, all requests will go to the secondary server when primary fails"
msgstr ""
#: usr/local/www/vpn_pptp.php:405 usr/local/www/vpn_pppoe_edit.php:492
#: usr/local/www/vpn_pppoe_edit.php:493 usr/local/www/vpn_pptp.php:407
+#: usr/local/www/vpn_pppoe_edit.php:496 usr/local/www/vpn_pptp.php:410
+#: usr/local/www/vpn_pppoe_edit.php:496 usr/local/www/vpn_pptp.php:410
msgid "RADIUS issued IPs"
msgstr ""
#: usr/local/www/vpn_pptp.php:406 usr/local/www/vpn_pptp.php:408
+#: usr/local/www/vpn_pptp.php:411 usr/local/www/vpn_pptp.php:411
msgid "Issue IP addresses via RADIUS server"
msgstr ""
#: usr/local/www/vpn_pptp.php:411 usr/local/www/vpn_pptp.php:413
+#: usr/local/www/vpn_pptp.php:416 usr/local/www/vpn_pptp.php:416
msgid "RADIUS NAS IP"
msgstr ""
#: usr/local/www/vpn_pptp.php:417 usr/local/www/vpn_pppoe_edit.php:485
#: usr/local/www/vpn_pppoe_edit.php:486 usr/local/www/vpn_pptp.php:419
+#: usr/local/www/vpn_pppoe_edit.php:489 usr/local/www/vpn_pptp.php:422
+#: usr/local/www/vpn_pppoe_edit.php:489 usr/local/www/vpn_pptp.php:422
msgid "RADIUS Accounting Update"
msgstr ""
#: usr/local/www/vpn_pptp.php:423 usr/local/www/vpn_pptp.php:425
-#: usr/local/www/vpn_l2tp.php:422
+#: usr/local/www/vpn_l2tp.php:422 usr/local/www/vpn_l2tp.php:425
+#: usr/local/www/vpn_pptp.php:428 usr/local/www/vpn_l2tp.php:425
+#: usr/local/www/vpn_pptp.php:428
msgid "RADIUS Server"
msgstr ""
#: usr/local/www/vpn_pptp.php:429 usr/local/www/vpn_pptp.php:446
#: usr/local/www/vpn_pptp.php:431 usr/local/www/vpn_pptp.php:448
+#: usr/local/www/vpn_pptp.php:434 usr/local/www/vpn_pptp.php:451
+#: usr/local/www/vpn_pptp.php:434 usr/local/www/vpn_pptp.php:451
msgid ""
"Enter the IP address, RADIUS port, and RADIUS accounting port of the RADIUS "
"server"
@@ -24576,26 +30026,33 @@ msgstr ""
#: usr/local/www/vpn_pptp.php:436 usr/local/www/vpn_pppoe_edit.php:510
#: usr/local/www/vpn_pppoe_edit.php:527 usr/local/www/vpn_pppoe_edit.php:511
#: usr/local/www/vpn_pppoe_edit.php:528 usr/local/www/vpn_pptp.php:438
+#: usr/local/www/vpn_pppoe_edit.php:514 usr/local/www/vpn_pppoe_edit.php:531
+#: usr/local/www/vpn_pptp.php:441 usr/local/www/vpn_pppoe_edit.php:514
+#: usr/local/www/vpn_pppoe_edit.php:531 usr/local/www/vpn_pptp.php:441
msgid ""
"Enter the shared secret that will be used to authenticate to the RADIUS "
"server"
msgstr ""
#: usr/local/www/vpn_pptp.php:449 usr/local/www/vpn_pptp.php:451
+#: usr/local/www/vpn_pptp.php:454 usr/local/www/vpn_pptp.php:454
msgid "Secondary RADIUS shared secret"
msgstr ""
#: usr/local/www/vpn_pptp.php:453 usr/local/www/vpn_pptp.php:455
+#: usr/local/www/vpn_pptp.php:458 usr/local/www/vpn_pptp.php:458
msgid ""
"Enter the shared secret that will be used to authenticate to the secondary "
"RADIUS server"
msgstr ""
#: usr/local/www/vpn_pptp.php:463 usr/local/www/vpn_pptp.php:465
+#: usr/local/www/vpn_pptp.php:468 usr/local/www/vpn_pptp.php:468
msgid "Require 128-bit encryption"
msgstr ""
#: usr/local/www/vpn_pptp.php:464 usr/local/www/vpn_pptp.php:466
+#: usr/local/www/vpn_pptp.php:469 usr/local/www/vpn_pptp.php:469
msgid ""
"When set, only 128-bit encryption will be accepted. Otherwise 40-bit and 56-"
"bit encryption will be accepted as well. Note that encryption will always be "
@@ -24604,32 +30061,39 @@ msgid ""
msgstr ""
#: usr/local/www/vpn_pptp.php:478 usr/local/www/vpn_pptp.php:480
+#: usr/local/www/vpn_pptp.php:483 usr/local/www/vpn_pptp.php:483
msgid "don't forget to "
msgstr ""
#: usr/local/www/vpn_pptp.php:478 usr/local/www/vpn_pptp.php:480
+#: usr/local/www/vpn_pptp.php:483 usr/local/www/vpn_pptp.php:483
msgid "add a firewall rule"
msgstr ""
#: usr/local/www/vpn_pptp.php:478 usr/local/www/vpn_pptp.php:480
+#: usr/local/www/vpn_pptp.php:483 usr/local/www/vpn_pptp.php:483
msgid "to permit traffic from PPTP clients"
msgstr ""
#: usr/local/www/vpn_pptp_users.php:81 usr/local/www/vpn_l2tp_users.php:84
#: usr/local/www/vpn_l2tp_users.php:85 usr/local/www/vpn_pptp_users.php:82
+#: usr/local/www/vpn_pptp_users.php:82 usr/local/www/vpn_l2tp_users.php:85
msgid "Warning: RADIUS is enabled. The local user database will not be used."
msgstr ""
#: usr/local/www/vpn_pptp_users.php:83 usr/local/www/vpn_pptp_users.php:84
+#: usr/local/www/vpn_pptp_users.php:84
msgid "The PPTP user list has been modified"
msgstr ""
#: usr/local/www/vpn_pptp_users.php:83 usr/local/www/vpn_l2tp_users.php:86
#: usr/local/www/vpn_l2tp_users.php:87 usr/local/www/vpn_pptp_users.php:84
+#: usr/local/www/vpn_pptp_users.php:84 usr/local/www/vpn_l2tp_users.php:87
msgid "You must apply the changes in order for them to take effect"
msgstr ""
#: usr/local/www/vpn_pptp_users.php:83 usr/local/www/vpn_pptp_users.php:84
+#: usr/local/www/vpn_pptp_users.php:84
msgid "Warning: this will terminate all current PPTP sessions"
msgstr ""
@@ -24639,7 +30103,9 @@ msgstr ""
#: usr/local/www/system_usermanager.php:840
#: usr/local/www/system_usermanager.php:845
#: usr/local/www/vpn_l2tp_users.php:121 usr/local/www/vpn_pptp_users.php:105
-#: usr/local/www/vpn_pptp_users.php:128
+#: usr/local/www/vpn_pptp_users.php:128 usr/local/www/vpn_pptp_users.php:105
+#: usr/local/www/vpn_pptp_users.php:128 usr/local/www/vpn_l2tp_users.php:121
+#: usr/local/www/system_usermanager.php:798
msgid "add user"
msgstr ""
@@ -24647,12 +30113,14 @@ msgstr ""
#: usr/local/www/system_usermanager.php:824
#: usr/local/www/system_usermanager.php:822
#: usr/local/www/system_usermanager.php:825
-#: usr/local/www/vpn_pptp_users.php:118
+#: usr/local/www/vpn_pptp_users.php:118 usr/local/www/vpn_pptp_users.php:118
+#: usr/local/www/system_usermanager.php:848
msgid "edit user"
msgstr ""
#: usr/local/www/vpn_pptp_users.php:118 usr/local/www/vpn_l2tp_users.php:115
#: usr/local/www/vpn_l2tp_users.php:116 usr/local/www/vpn_pptp_users.php:119
+#: usr/local/www/vpn_pptp_users.php:119 usr/local/www/vpn_l2tp_users.php:116
msgid "Do you really want to delete this user?"
msgstr ""
@@ -24662,6 +30130,8 @@ msgstr ""
#: usr/local/www/system_usermanager.php:827
#: usr/local/www/system_usermanager.php:830
#: usr/local/www/vpn_l2tp_users.php:116 usr/local/www/vpn_pptp_users.php:119
+#: usr/local/www/vpn_pptp_users.php:119 usr/local/www/vpn_l2tp_users.php:116
+#: usr/local/www/system_usermanager.php:853
msgid "delete user"
msgstr ""
@@ -24670,10 +30140,11 @@ msgstr ""
#: usr/local/www/system_usermanager.php:199
#: usr/local/www/vpn_l2tp_users_edit.php:87
#: usr/local/www/services_dyndns_edit.php:110
-#: usr/local/www/services_dyndns_edit.php:110
-#: usr/local/www/system_usermanager.php:199
-#: usr/local/www/vpn_pptp_users_edit.php:85
#: usr/local/www/vpn_l2tp_users_edit.php:88
+#: usr/local/www/services_dyndns_edit.php:111
+#: usr/local/www/vpn_l2tp_users_edit.php:88
+#: usr/local/www/vpn_pptp_users_edit.php:85
+#: usr/local/www/system_usermanager.php:199
msgid "The username contains invalid characters."
msgstr ""
@@ -24684,8 +30155,9 @@ msgstr ""
#: usr/local/www/vpn_pptp_users_edit.php:91
#: usr/local/www/vpn_l2tp_users_edit.php:90
-#: usr/local/www/vpn_pptp_users_edit.php:91
#: usr/local/www/vpn_l2tp_users_edit.php:91
+#: usr/local/www/vpn_l2tp_users_edit.php:91
+#: usr/local/www/vpn_pptp_users_edit.php:91
msgid "The password contains invalid characters."
msgstr ""
@@ -24693,26 +30165,29 @@ msgstr ""
#: usr/local/www/system_usermanager.php:205
#: usr/local/www/system_usermanager_passwordmg.php:54
#: usr/local/www/vpn_l2tp_users_edit.php:93
-#: usr/local/www/system_usermanager.php:205
+#: usr/local/www/vpn_l2tp_users_edit.php:94
#: usr/local/www/system_usermanager_passwordmg.php:54
-#: usr/local/www/vpn_pptp_users_edit.php:94
#: usr/local/www/vpn_l2tp_users_edit.php:94
+#: usr/local/www/vpn_pptp_users_edit.php:94
+#: usr/local/www/system_usermanager.php:205
msgid "The passwords do not match."
msgstr ""
#: usr/local/www/vpn_pptp_users_edit.php:97
#: usr/local/www/vpn_l2tp_users_edit.php:96
-#: usr/local/www/vpn_pptp_users_edit.php:97
#: usr/local/www/vpn_l2tp_users_edit.php:97
+#: usr/local/www/vpn_l2tp_users_edit.php:97
+#: usr/local/www/vpn_pptp_users_edit.php:97
msgid "The IP address entered is not valid."
msgstr ""
#: usr/local/www/vpn_pptp_users_edit.php:104
#: usr/local/www/system_usermanager.php:215
#: usr/local/www/vpn_l2tp_users_edit.php:103
-#: usr/local/www/system_usermanager.php:215
-#: usr/local/www/vpn_pptp_users_edit.php:104
#: usr/local/www/vpn_l2tp_users_edit.php:104
+#: usr/local/www/vpn_l2tp_users_edit.php:104
+#: usr/local/www/vpn_pptp_users_edit.php:104
+#: usr/local/www/system_usermanager.php:215
msgid "Another entry with the same username already exists."
msgstr ""
@@ -24720,11 +30195,14 @@ msgstr ""
#: usr/local/www/vpn_l2tp_users_edit.php:163
#: usr/local/www/vpn_pptp_users_edit.php:156
#: usr/local/www/vpn_l2tp_users_edit.php:164
+#: usr/local/www/vpn_l2tp_users_edit.php:164
+#: usr/local/www/vpn_pptp_users_edit.php:156
msgid "confirmation"
msgstr ""
#: usr/local/www/vpn_pptp_users_edit.php:156
#: usr/local/www/vpn_pptp_users_edit.php:157
+#: usr/local/www/vpn_pptp_users_edit.php:157
msgid "If you want to change the users' password, enter it here twice."
msgstr ""
@@ -24732,6 +30210,8 @@ msgstr ""
#: usr/local/www/vpn_l2tp_users_edit.php:171
#: usr/local/www/vpn_pptp_users_edit.php:164
#: usr/local/www/vpn_l2tp_users_edit.php:172
+#: usr/local/www/vpn_l2tp_users_edit.php:172
+#: usr/local/www/vpn_pptp_users_edit.php:164
msgid ""
"If you want the user to be assigned a specific IP address, enter it here."
msgstr ""
@@ -24767,12 +30247,15 @@ msgstr ""
#: usr/local/www/load_balancer_relay_protocol_edit.php:144
#: usr/local/www/load_balancer_relay_protocol_edit.php:142
#: usr/local/www/load_balancer_relay_action_edit.php:184
+#: usr/local/www/load_balancer_relay_protocol_edit.php:142
+#: usr/local/www/load_balancer_relay_action_edit.php:184
msgid "DNS"
msgstr ""
#: usr/local/www/load_balancer_relay_action_edit.php:408
#: usr/local/www/load_balancer_relay_action_edit.php:407
#: usr/local/www/load_balancer_relay_action_edit.php:405
+#: usr/local/www/load_balancer_relay_action_edit.php:405
msgid "Edit Load Balancer - Relay Action entry"
msgstr ""
@@ -24781,6 +30264,7 @@ msgstr ""
#: usr/local/www/services_rfc2136_edit.php:173
#: usr/local/www/load_balancer_relay_action_edit.php:507
#: usr/local/www/load_balancer_relay_action_edit.php:505
+#: usr/local/www/load_balancer_relay_action_edit.php:505
#: usr/local/www/services_rfc2136_edit.php:71
#: usr/local/www/services_rfc2136_edit.php:173
msgid "Key"
@@ -24792,21 +30276,22 @@ msgstr ""
#: usr/local/www/load_balancer_relay_action_edit.php:536
#: usr/local/www/load_balancer_relay_action_edit.php:514
#: usr/local/www/load_balancer_relay_action_edit.php:534
+#: usr/local/www/load_balancer_relay_action_edit.php:514
+#: usr/local/www/load_balancer_relay_action_edit.php:534
msgid "TODO"
msgstr ""
#: usr/local/www/xmlrpc.php:58 usr/local/www/xmlrpc.php:54
-#: usr/local/www/xmlrpc.php:54
msgid "Disallowing CARP sync loop."
msgstr ""
#: usr/local/www/xmlrpc.php:67 usr/local/www/xmlrpc.php:63
-#: usr/local/www/xmlrpc.php:63
+#: usr/local/www/xmlrpc.php:67
msgid "Authentication failed"
msgstr ""
#: usr/local/www/xmlrpc.php:78 usr/local/www/xmlrpc.php:74
-#: usr/local/www/xmlrpc.php:74
+#: usr/local/www/xmlrpc.php:78
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 "
@@ -24814,7 +30299,7 @@ msgid ""
msgstr ""
#: usr/local/www/xmlrpc.php:109 usr/local/www/xmlrpc.php:105
-#: usr/local/www/xmlrpc.php:105
+#: usr/local/www/xmlrpc.php:109
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 "
@@ -24822,7 +30307,7 @@ msgid ""
msgstr ""
#: usr/local/www/xmlrpc.php:133 usr/local/www/xmlrpc.php:129
-#: usr/local/www/xmlrpc.php:129
+#: usr/local/www/xmlrpc.php:133
msgid ""
"XMLRPC wrapper for backup_config_section. This method must be called with "
"two parameters: a string containing the local system\\'s password followed "
@@ -24830,7 +30315,7 @@ msgid ""
msgstr ""
#: usr/local/www/xmlrpc.php:156 usr/local/www/xmlrpc.php:152
-#: usr/local/www/xmlrpc.php:152
+#: usr/local/www/xmlrpc.php:159 usr/local/www/xmlrpc.php:159
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 "
@@ -24841,14 +30326,17 @@ msgstr ""
#: usr/local/www/xmlrpc.php:203 usr/local/www/xmlrpc.php:282
#: usr/local/www/xmlrpc.php:307 usr/local/www/xmlrpc.php:212
#: usr/local/www/xmlrpc.php:291 usr/local/www/xmlrpc.php:316
-#: usr/local/www/xmlrpc.php:212 usr/local/www/xmlrpc.php:288
-#: usr/local/www/xmlrpc.php:313
+#: usr/local/www/xmlrpc.php:288 usr/local/www/xmlrpc.php:313
+#: usr/local/www/xmlrpc.php:224 usr/local/www/xmlrpc.php:308
+#: usr/local/www/xmlrpc.php:337 usr/local/www/xmlrpc.php:224
+#: usr/local/www/xmlrpc.php:308 usr/local/www/xmlrpc.php:337
#, php-format
msgid "Merged in config (%s sections) from XMLRPC client."
msgstr ""
#: usr/local/www/xmlrpc.php:263 usr/local/www/xmlrpc.php:272
-#: usr/local/www/xmlrpc.php:269
+#: usr/local/www/xmlrpc.php:269 usr/local/www/xmlrpc.php:286
+#: usr/local/www/xmlrpc.php:286
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 "
@@ -24857,7 +30345,8 @@ msgid ""
msgstr ""
#: usr/local/www/xmlrpc.php:288 usr/local/www/xmlrpc.php:297
-#: usr/local/www/xmlrpc.php:294
+#: usr/local/www/xmlrpc.php:294 usr/local/www/xmlrpc.php:314
+#: usr/local/www/xmlrpc.php:314
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 "
@@ -24866,7 +30355,8 @@ msgid ""
msgstr ""
#: usr/local/www/xmlrpc.php:312 usr/local/www/xmlrpc.php:321
-#: usr/local/www/xmlrpc.php:318
+#: usr/local/www/xmlrpc.php:318 usr/local/www/xmlrpc.php:342
+#: usr/local/www/xmlrpc.php:342
msgid ""
"Basic XMLRPC wrapper for filter_configure. This method must be called with "
"one paramater: a string containing the local system\\'s password. This "
@@ -24874,20 +30364,24 @@ msgid ""
msgstr ""
#: usr/local/www/xmlrpc.php:342 usr/local/www/xmlrpc.php:351
-#: usr/local/www/xmlrpc.php:348
+#: usr/local/www/xmlrpc.php:348 usr/local/www/xmlrpc.php:372
+#: usr/local/www/xmlrpc.php:372
msgid "Basic XMLRPC wrapper for configuring CARP interfaces."
msgstr ""
#: usr/local/www/xmlrpc.php:364 usr/local/www/xmlrpc.php:385
#: usr/local/www/xmlrpc.php:373 usr/local/www/xmlrpc.php:394
#: usr/local/www/xmlrpc.php:370 usr/local/www/xmlrpc.php:391
+#: usr/local/www/xmlrpc.php:397 usr/local/www/xmlrpc.php:418
+#: usr/local/www/xmlrpc.php:397 usr/local/www/xmlrpc.php:418
msgid ""
"Basic XMLRPC wrapper for check_firmware_version. This function will return "
"the output of check_firmware_version upon completion."
msgstr ""
#: usr/local/www/xmlrpc.php:406 usr/local/www/xmlrpc.php:415
-#: usr/local/www/xmlrpc.php:412
+#: usr/local/www/xmlrpc.php:412 usr/local/www/xmlrpc.php:439
+#: usr/local/www/xmlrpc.php:439
msgid "Basic XMLRPC wrapper for rc.reboot."
msgstr ""
@@ -24932,16 +30426,19 @@ msgstr ""
#: usr/local/www/load_balancer_relay_protocol_edit.php:192
#: usr/local/www/load_balancer_relay_protocol_edit.php:190
+#: usr/local/www/load_balancer_relay_protocol_edit.php:190
msgid "Edit Load Balancer - Relay Protocol entry"
msgstr ""
#: usr/local/www/load_balancer_relay_protocol_edit.php:227
#: usr/local/www/load_balancer_relay_protocol_edit.php:225
+#: usr/local/www/load_balancer_relay_protocol_edit.php:225
msgid "Add / remove available actions"
msgstr ""
#: usr/local/www/load_balancer_relay_protocol_edit.php:237
#: usr/local/www/load_balancer_relay_protocol_edit.php:235
+#: usr/local/www/load_balancer_relay_protocol_edit.php:235
msgid "Available Actions"
msgstr ""
@@ -24949,54 +30446,59 @@ msgstr ""
#: usr/local/www/system_crlmanager.php:474
#: usr/local/www/load_balancer_relay_protocol_edit.php:250
#: usr/local/www/system_crlmanager.php:507
+#: usr/local/www/load_balancer_relay_protocol_edit.php:250
+#: usr/local/www/system_crlmanager.php:507
msgid "Add"
msgstr ""
#: usr/local/www/load_balancer_relay_protocol_edit.php:259
#: usr/local/www/load_balancer_relay_protocol_edit.php:257
+#: usr/local/www/load_balancer_relay_protocol_edit.php:257
msgid "Enabled Actions"
msgstr ""
#: usr/local/www/pkg_mgr_settings.php:62 usr/local/www/pkg_mgr_settings.php:94
-#: usr/local/www/pkg_mgr_settings.php:62 usr/local/www/pkg_mgr_settings.php:94
+#: usr/local/www/pkg_mgr_settings.php:62 usr/local/www/pkg_mgr_settings.php:93
msgid "Package Settings"
msgstr ""
-#: usr/local/www/pkg_mgr_settings.php:92 usr/local/www/pkg_mgr_settings.php:92
+#: usr/local/www/pkg_mgr_settings.php:92 usr/local/www/pkg_mgr_settings.php:91
#, php-format
msgid "%s packages"
msgstr ""
#: usr/local/www/pkg_mgr_settings.php:102
#: usr/local/www/pkg_mgr_settings.php:105
-#: usr/local/www/pkg_mgr_settings.php:102
-#: usr/local/www/pkg_mgr_settings.php:105
+#: usr/local/www/pkg_mgr_settings.php:101
+#: usr/local/www/pkg_mgr_settings.php:104
msgid "Package Repository URL"
msgstr ""
#: usr/local/www/pkg_mgr_settings.php:107
-#: usr/local/www/pkg_mgr_settings.php:107
+#: usr/local/www/pkg_mgr_settings.php:106
msgid "Use a different URL server for packages other than"
msgstr ""
#: usr/local/www/pkg_mgr_settings.php:112
-#: usr/local/www/pkg_mgr_settings.php:112
+#: usr/local/www/pkg_mgr_settings.php:111
#, php-format
msgid "This is where %s will check for packages when the"
msgstr ""
#: usr/local/www/pkg_mgr_settings.php:112
-#: usr/local/www/pkg_mgr_settings.php:112
+#: usr/local/www/pkg_mgr_settings.php:111
msgid "System: Packages"
msgstr ""
#: usr/local/www/services_captiveportal_hostname.php:111
#: usr/local/www/services_captiveportal_hostname.php:109
+#: usr/local/www/services_captiveportal_hostname.php:109
msgid "Allowed IP Addresses"
msgstr ""
#: usr/local/www/services_captiveportal_hostname.php:173
#: usr/local/www/services_captiveportal_hostname.php:171
+#: usr/local/www/services_captiveportal_hostname.php:171
msgid ""
"Adding allowed Hostnames will allow a DNS hostname access to/from access "
"through the captive portal without being taken to the portal page. This can "
@@ -25010,27 +30512,33 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname.php:184
#: usr/local/www/services_captiveportal_hostname.php:175
#: usr/local/www/services_captiveportal_hostname.php:182
+#: usr/local/www/services_captiveportal_hostname.php:175
+#: usr/local/www/services_captiveportal_hostname.php:182
msgid "the Hostname are allowed"
msgstr ""
#: usr/local/www/services_captiveportal_hostname_edit.php:62
#: usr/local/www/services_captiveportal_hostname_edit.php:59
+#: usr/local/www/services_captiveportal_hostname_edit.php:59
msgid "Edit allowed Hostname"
msgstr ""
#: usr/local/www/services_captiveportal_hostname_edit.php:102
#: usr/local/www/services_captiveportal_hostname_edit.php:100
+#: usr/local/www/services_captiveportal_hostname_edit.php:100
msgid "Allowed Hostname"
msgstr ""
#: usr/local/www/services_captiveportal_hostname_edit.php:107
#: usr/local/www/services_captiveportal_hostname_edit.php:105
+#: usr/local/www/services_captiveportal_hostname_edit.php:105
#, php-format
msgid "A valid Hostname must be specified. [%s]"
msgstr ""
#: usr/local/www/services_captiveportal_hostname_edit.php:172
#: usr/local/www/services_captiveportal_hostname_edit.php:170
+#: usr/local/www/services_captiveportal_hostname_edit.php:172
msgid ""
"to always allow an Hostname through the captive portal (without "
"authentication)"
@@ -25038,6 +30546,7 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname_edit.php:173
#: usr/local/www/services_captiveportal_hostname_edit.php:171
+#: usr/local/www/services_captiveportal_hostname_edit.php:173
msgid ""
"to allow access from all clients (even non-authenticated ones) behind the "
"portal to this Hostname"
@@ -25045,16 +30554,19 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname_edit.php:192
#: usr/local/www/services_captiveportal_hostname_edit.php:190
+#: usr/local/www/services_captiveportal_hostname_edit.php:192
msgid "Enter a upload limit to be enforced on this Hostname in Kbit/s"
msgstr ""
#: usr/local/www/services_captiveportal_hostname_edit.php:198
#: usr/local/www/services_captiveportal_hostname_edit.php:196
+#: usr/local/www/services_captiveportal_hostname_edit.php:198
msgid "Enter a download limit to be enforced on this Hostname in Kbit/s"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:67
#: usr/local/www/services_captiveportal_vouchers.php:64
+#: usr/local/www/services_captiveportal_vouchers.php:64
msgid ""
"You will need to recreate any existing Voucher Rolls due to the public and "
"private key changes. Click cancel if you do not wish to recreate the "
@@ -25063,51 +30575,71 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:114
#: usr/local/www/services_captiveportal_vouchers.php:123
+#: usr/local/www/services_captiveportal_vouchers.php:130
+#: usr/local/www/services_captiveportal_vouchers.php:130
msgid "Voucher invalid"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:116
#: usr/local/www/services_captiveportal_vouchers.php:125
+#: usr/local/www/services_captiveportal_vouchers.php:132
+#: usr/local/www/services_captiveportal_vouchers.php:132
msgid "Voucher expired"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:139
#: usr/local/www/services_captiveportal_vouchers.php:148
+#: usr/local/www/services_captiveportal_vouchers.php:155
+#: usr/local/www/services_captiveportal_vouchers.php:155
msgid "Cannot write private key file"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:157
#: usr/local/www/services_captiveportal_vouchers.php:166
+#: usr/local/www/services_captiveportal_vouchers.php:175
+#: usr/local/www/services_captiveportal_vouchers.php:175
msgid "Need private RSA key to print vouchers"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:191
#: usr/local/www/services_captiveportal_vouchers.php:201
+#: usr/local/www/services_captiveportal_vouchers.php:210
+#: usr/local/www/services_captiveportal_vouchers.php:210
msgid "charset"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:191
#: usr/local/www/services_captiveportal_vouchers.php:201
+#: usr/local/www/services_captiveportal_vouchers.php:210
+#: usr/local/www/services_captiveportal_vouchers.php:210
msgid "rollbits"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:191
#: usr/local/www/services_captiveportal_vouchers.php:201
+#: usr/local/www/services_captiveportal_vouchers.php:210
+#: usr/local/www/services_captiveportal_vouchers.php:210
msgid "ticketbits"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:191
#: usr/local/www/services_captiveportal_vouchers.php:201
+#: usr/local/www/services_captiveportal_vouchers.php:210
+#: usr/local/www/services_captiveportal_vouchers.php:210
msgid "checksumbits"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:191
#: usr/local/www/services_captiveportal_vouchers.php:201
+#: usr/local/www/services_captiveportal_vouchers.php:210
+#: usr/local/www/services_captiveportal_vouchers.php:210
msgid "publickey"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:191
#: usr/local/www/services_captiveportal_vouchers.php:201
+#: usr/local/www/services_captiveportal_vouchers.php:210
+#: usr/local/www/services_captiveportal_vouchers.php:210
msgid "magic"
msgstr ""
@@ -25116,72 +30648,102 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:572
#: usr/local/www/services_captiveportal_vouchers.php:204
#: usr/local/www/services_captiveportal_vouchers.php:585
+#: usr/local/www/services_captiveportal_vouchers.php:213
+#: usr/local/www/services_captiveportal_vouchers.php:594
+#: usr/local/www/services_captiveportal_vouchers.php:213
+#: usr/local/www/services_captiveportal_vouchers.php:594
msgid "Synchronize Voucher Database IP"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:194
#: usr/local/www/services_captiveportal_vouchers.php:204
+#: usr/local/www/services_captiveportal_vouchers.php:213
+#: usr/local/www/services_captiveportal_vouchers.php:213
msgid "Sync port"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:194
#: usr/local/www/services_captiveportal_vouchers.php:204
+#: usr/local/www/services_captiveportal_vouchers.php:213
+#: usr/local/www/services_captiveportal_vouchers.php:213
msgid "Sync password"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:194
#: usr/local/www/services_captiveportal_vouchers.php:204
+#: usr/local/www/services_captiveportal_vouchers.php:213
+#: usr/local/www/services_captiveportal_vouchers.php:213
msgid "Sync username"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:203
#: usr/local/www/services_captiveportal_vouchers.php:213
+#: usr/local/www/services_captiveportal_vouchers.php:222
+#: usr/local/www/services_captiveportal_vouchers.php:222
msgid "Need at least 2 characters to create vouchers."
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:205
#: usr/local/www/services_captiveportal_vouchers.php:215
+#: usr/local/www/services_captiveportal_vouchers.php:224
+#: usr/local/www/services_captiveportal_vouchers.php:224
msgid "Double quotes aren't allowed."
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:207
#: usr/local/www/services_captiveportal_vouchers.php:217
+#: usr/local/www/services_captiveportal_vouchers.php:226
+#: usr/local/www/services_captiveportal_vouchers.php:226
msgid "aren't allowed."
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:209
#: usr/local/www/services_captiveportal_vouchers.php:219
+#: usr/local/www/services_captiveportal_vouchers.php:228
+#: usr/local/www/services_captiveportal_vouchers.php:228
msgid "# of Bits to store Roll Id needs to be between 1..31."
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:211
#: usr/local/www/services_captiveportal_vouchers.php:221
+#: usr/local/www/services_captiveportal_vouchers.php:230
+#: usr/local/www/services_captiveportal_vouchers.php:230
msgid "# of Bits to store Ticket Id needs to be between 1..16."
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:213
#: usr/local/www/services_captiveportal_vouchers.php:223
+#: usr/local/www/services_captiveportal_vouchers.php:232
+#: usr/local/www/services_captiveportal_vouchers.php:232
msgid "# of Bits to store checksum needs to be between 1..31."
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:215
#: usr/local/www/services_captiveportal_vouchers.php:225
+#: usr/local/www/services_captiveportal_vouchers.php:234
+#: usr/local/www/services_captiveportal_vouchers.php:234
msgid "This doesn't look like an RSA Public key."
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:217
#: usr/local/www/services_captiveportal_vouchers.php:227
+#: usr/local/www/services_captiveportal_vouchers.php:236
+#: usr/local/www/services_captiveportal_vouchers.php:236
msgid "This doesn't look like an RSA Private key."
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:219
#: usr/local/www/services_captiveportal_vouchers.php:229
+#: usr/local/www/services_captiveportal_vouchers.php:238
+#: usr/local/www/services_captiveportal_vouchers.php:238
msgid "You cannot sync the voucher database to this host (itself)."
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:421
#: usr/local/www/services_captiveportal_vouchers.php:428
#: usr/local/www/services_captiveportal_vouchers.php:441
+#: usr/local/www/services_captiveportal_vouchers.php:450
+#: usr/local/www/services_captiveportal_vouchers.php:450
msgid "Enable Vouchers"
msgstr ""
@@ -25192,6 +30754,11 @@ msgstr ""
#: usr/local/www/status_captiveportal_vouchers.php:117
#: usr/local/www/services_captiveportal_vouchers.php:455
#: usr/local/www/services_captiveportal_vouchers_edit.php:171
+#: usr/local/www/services_captiveportal_vouchers.php:464
+#: usr/local/www/status_captiveportal_vouchers.php:122
+#: usr/local/www/services_captiveportal_vouchers.php:464
+#: usr/local/www/services_captiveportal_vouchers_edit.php:171
+#: usr/local/www/status_captiveportal_vouchers.php:122
msgid "Roll"
msgstr ""
@@ -25200,12 +30767,18 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:443
#: usr/local/www/services_captiveportal_vouchers.php:456
#: usr/local/www/status_captiveportal_voucher_rolls.php:87
+#: usr/local/www/services_captiveportal_vouchers.php:465
+#: usr/local/www/status_captiveportal_voucher_rolls.php:89
+#: usr/local/www/services_captiveportal_vouchers.php:465
+#: usr/local/www/status_captiveportal_voucher_rolls.php:89
msgid "Minutes/Ticket"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:437
#: usr/local/www/services_captiveportal_vouchers.php:444
#: usr/local/www/services_captiveportal_vouchers.php:457
+#: usr/local/www/services_captiveportal_vouchers.php:466
+#: usr/local/www/services_captiveportal_vouchers.php:466
msgid "of Tickets"
msgstr ""
@@ -25216,18 +30789,27 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:458
#: usr/local/www/services_captiveportal_vouchers_edit.php:195
#: usr/local/www/status_captiveportal_voucher_rolls.php:89
+#: usr/local/www/services_captiveportal_vouchers.php:467
+#: usr/local/www/status_captiveportal_voucher_rolls.php:91
+#: usr/local/www/services_captiveportal_vouchers.php:467
+#: usr/local/www/services_captiveportal_vouchers_edit.php:195
+#: usr/local/www/status_captiveportal_voucher_rolls.php:91
msgid "Comment"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:458
#: usr/local/www/services_captiveportal_vouchers.php:465
#: usr/local/www/services_captiveportal_vouchers.php:478
+#: usr/local/www/services_captiveportal_vouchers.php:487
+#: usr/local/www/services_captiveportal_vouchers.php:487
msgid "edit voucher"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:459
#: usr/local/www/services_captiveportal_vouchers.php:466
#: usr/local/www/services_captiveportal_vouchers.php:479
+#: usr/local/www/services_captiveportal_vouchers.php:488
+#: usr/local/www/services_captiveportal_vouchers.php:488
msgid ""
"Do you really want to delete this voucher? This makes all vouchers from this "
"roll invalid"
@@ -25236,24 +30818,32 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:459
#: usr/local/www/services_captiveportal_vouchers.php:466
#: usr/local/www/services_captiveportal_vouchers.php:479
+#: usr/local/www/services_captiveportal_vouchers.php:488
+#: usr/local/www/services_captiveportal_vouchers.php:488
msgid "delete vouchers"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:460
#: usr/local/www/services_captiveportal_vouchers.php:467
#: usr/local/www/services_captiveportal_vouchers.php:480
+#: usr/local/www/services_captiveportal_vouchers.php:489
+#: usr/local/www/services_captiveportal_vouchers.php:489
msgid "generate vouchers for this roll to CSV file"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:470
#: usr/local/www/services_captiveportal_vouchers.php:477
#: usr/local/www/services_captiveportal_vouchers.php:490
+#: usr/local/www/services_captiveportal_vouchers.php:499
+#: usr/local/www/services_captiveportal_vouchers.php:499
msgid "add voucher"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:475
#: usr/local/www/services_captiveportal_vouchers.php:482
#: usr/local/www/services_captiveportal_vouchers.php:495
+#: usr/local/www/services_captiveportal_vouchers.php:504
+#: usr/local/www/services_captiveportal_vouchers.php:504
msgid ""
"Create, generate and activate Rolls with Vouchers that allow access through "
"the captive portal for the configured time. Once a voucher is activated, its "
@@ -25265,6 +30855,8 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:481
#: usr/local/www/services_captiveportal_vouchers.php:488
#: usr/local/www/services_captiveportal_vouchers.php:501
+#: usr/local/www/services_captiveportal_vouchers.php:510
+#: usr/local/www/services_captiveportal_vouchers.php:510
msgid ""
"Enable Voucher support first using the checkbox above and hit Save at the "
"bottom."
@@ -25273,12 +30865,16 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:486
#: usr/local/www/services_captiveportal_vouchers.php:493
#: usr/local/www/services_captiveportal_vouchers.php:506
+#: usr/local/www/services_captiveportal_vouchers.php:515
+#: usr/local/www/services_captiveportal_vouchers.php:515
msgid "Voucher public key"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:491
#: usr/local/www/services_captiveportal_vouchers.php:498
#: usr/local/www/services_captiveportal_vouchers.php:511
+#: usr/local/www/services_captiveportal_vouchers.php:520
+#: usr/local/www/services_captiveportal_vouchers.php:520
msgid ""
"Paste an RSA public key (64 Bit or smaller) in PEM format here. This key is "
"used to decrypt vouchers."
@@ -25289,6 +30885,10 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:505
#: usr/local/www/services_captiveportal_vouchers.php:511
#: usr/local/www/services_captiveportal_vouchers.php:518
+#: usr/local/www/services_captiveportal_vouchers.php:520
+#: usr/local/www/services_captiveportal_vouchers.php:527
+#: usr/local/www/services_captiveportal_vouchers.php:520
+#: usr/local/www/services_captiveportal_vouchers.php:527
msgid "Generate"
msgstr ""
@@ -25297,18 +30897,26 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:505
#: usr/local/www/services_captiveportal_vouchers.php:511
#: usr/local/www/services_captiveportal_vouchers.php:518
+#: usr/local/www/services_captiveportal_vouchers.php:520
+#: usr/local/www/services_captiveportal_vouchers.php:527
+#: usr/local/www/services_captiveportal_vouchers.php:520
+#: usr/local/www/services_captiveportal_vouchers.php:527
msgid "new key"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:494
#: usr/local/www/services_captiveportal_vouchers.php:501
#: usr/local/www/services_captiveportal_vouchers.php:514
+#: usr/local/www/services_captiveportal_vouchers.php:523
+#: usr/local/www/services_captiveportal_vouchers.php:523
msgid "Voucher private key"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:498
#: usr/local/www/services_captiveportal_vouchers.php:505
#: usr/local/www/services_captiveportal_vouchers.php:518
+#: usr/local/www/services_captiveportal_vouchers.php:527
+#: usr/local/www/services_captiveportal_vouchers.php:527
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 "
@@ -25318,12 +30926,16 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:502
#: usr/local/www/services_captiveportal_vouchers.php:509
#: usr/local/www/services_captiveportal_vouchers.php:522
+#: usr/local/www/services_captiveportal_vouchers.php:531
+#: usr/local/www/services_captiveportal_vouchers.php:531
msgid "Character set"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:506
#: usr/local/www/services_captiveportal_vouchers.php:513
#: usr/local/www/services_captiveportal_vouchers.php:526
+#: usr/local/www/services_captiveportal_vouchers.php:535
+#: usr/local/www/services_captiveportal_vouchers.php:535
msgid ""
"Tickets are generated with the specified character set. It should contain "
"printable characters (numbers, lower case and upper case letters) that are "
@@ -25333,12 +30945,16 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:510
#: usr/local/www/services_captiveportal_vouchers.php:517
#: usr/local/www/services_captiveportal_vouchers.php:530
+#: usr/local/www/services_captiveportal_vouchers.php:539
+#: usr/local/www/services_captiveportal_vouchers.php:539
msgid "of Roll Bits"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:514
#: usr/local/www/services_captiveportal_vouchers.php:521
#: usr/local/www/services_captiveportal_vouchers.php:534
+#: usr/local/www/services_captiveportal_vouchers.php:543
+#: usr/local/www/services_captiveportal_vouchers.php:543
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 "
@@ -25348,12 +30964,16 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:518
#: usr/local/www/services_captiveportal_vouchers.php:525
#: usr/local/www/services_captiveportal_vouchers.php:538
+#: usr/local/www/services_captiveportal_vouchers.php:547
+#: usr/local/www/services_captiveportal_vouchers.php:547
msgid "of Ticket Bits"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:522
#: usr/local/www/services_captiveportal_vouchers.php:529
#: usr/local/www/services_captiveportal_vouchers.php:542
+#: usr/local/www/services_captiveportal_vouchers.php:551
+#: usr/local/www/services_captiveportal_vouchers.php:551
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 "
@@ -25364,12 +30984,16 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:526
#: usr/local/www/services_captiveportal_vouchers.php:533
#: usr/local/www/services_captiveportal_vouchers.php:546
+#: usr/local/www/services_captiveportal_vouchers.php:555
+#: usr/local/www/services_captiveportal_vouchers.php:555
msgid "of Checksum Bits"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:530
#: usr/local/www/services_captiveportal_vouchers.php:537
#: usr/local/www/services_captiveportal_vouchers.php:550
+#: usr/local/www/services_captiveportal_vouchers.php:559
+#: usr/local/www/services_captiveportal_vouchers.php:559
msgid ""
"Reserves a range in each voucher to store a simple checksum over Roll # and "
"Ticket#. Allowed range is 0..31."
@@ -25378,12 +31002,16 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:534
#: usr/local/www/services_captiveportal_vouchers.php:541
#: usr/local/www/services_captiveportal_vouchers.php:554
+#: usr/local/www/services_captiveportal_vouchers.php:563
+#: usr/local/www/services_captiveportal_vouchers.php:563
msgid "Magic Number"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:538
#: usr/local/www/services_captiveportal_vouchers.php:545
#: usr/local/www/services_captiveportal_vouchers.php:558
+#: usr/local/www/services_captiveportal_vouchers.php:567
+#: usr/local/www/services_captiveportal_vouchers.php:567
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 "
@@ -25393,12 +31021,16 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:542
#: usr/local/www/services_captiveportal_vouchers.php:549
#: usr/local/www/services_captiveportal_vouchers.php:562
+#: usr/local/www/services_captiveportal_vouchers.php:571
+#: usr/local/www/services_captiveportal_vouchers.php:571
msgid "Invalid Voucher Message"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:545
#: usr/local/www/services_captiveportal_vouchers.php:552
#: usr/local/www/services_captiveportal_vouchers.php:565
+#: usr/local/www/services_captiveportal_vouchers.php:574
+#: usr/local/www/services_captiveportal_vouchers.php:574
msgid ""
"Error message displayed for invalid vouchers on captive portal error page"
msgstr ""
@@ -25406,12 +31038,16 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:549
#: usr/local/www/services_captiveportal_vouchers.php:556
#: usr/local/www/services_captiveportal_vouchers.php:569
+#: usr/local/www/services_captiveportal_vouchers.php:578
+#: usr/local/www/services_captiveportal_vouchers.php:578
msgid "Expired Voucher Message"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:552
#: usr/local/www/services_captiveportal_vouchers.php:559
#: usr/local/www/services_captiveportal_vouchers.php:572
+#: usr/local/www/services_captiveportal_vouchers.php:581
+#: usr/local/www/services_captiveportal_vouchers.php:581
msgid ""
"Error message displayed for expired vouchers on captive portal error page"
msgstr ""
@@ -25419,12 +31055,16 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:562
#: usr/local/www/services_captiveportal_vouchers.php:569
#: usr/local/www/services_captiveportal_vouchers.php:582
+#: usr/local/www/services_captiveportal_vouchers.php:591
+#: usr/local/www/services_captiveportal_vouchers.php:591
msgid "Voucher database synchronization"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:568
#: usr/local/www/services_captiveportal_vouchers.php:575
#: usr/local/www/services_captiveportal_vouchers.php:588
+#: usr/local/www/services_captiveportal_vouchers.php:597
+#: usr/local/www/services_captiveportal_vouchers.php:597
msgid ""
"IP address of master nodes webConfigurator to synchronize voucher database "
"and used vouchers from."
@@ -25433,18 +31073,24 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:569
#: usr/local/www/services_captiveportal_vouchers.php:576
#: usr/local/www/services_captiveportal_vouchers.php:589
+#: usr/local/www/services_captiveportal_vouchers.php:598
+#: usr/local/www/services_captiveportal_vouchers.php:598
msgid "NOTE: this should be setup on the slave nodes and not the primary node!"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:573
#: usr/local/www/services_captiveportal_vouchers.php:580
#: usr/local/www/services_captiveportal_vouchers.php:593
+#: usr/local/www/services_captiveportal_vouchers.php:602
+#: usr/local/www/services_captiveportal_vouchers.php:602
msgid "Voucher sync port"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:576
#: usr/local/www/services_captiveportal_vouchers.php:583
#: usr/local/www/services_captiveportal_vouchers.php:596
+#: usr/local/www/services_captiveportal_vouchers.php:605
+#: usr/local/www/services_captiveportal_vouchers.php:605
msgid ""
"This is the port of the master voucher nodes webConfigurator. Example: 443"
msgstr ""
@@ -25452,30 +31098,40 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:580
#: usr/local/www/services_captiveportal_vouchers.php:587
#: usr/local/www/services_captiveportal_vouchers.php:600
+#: usr/local/www/services_captiveportal_vouchers.php:609
+#: usr/local/www/services_captiveportal_vouchers.php:609
msgid "Voucher sync username"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:583
#: usr/local/www/services_captiveportal_vouchers.php:590
#: usr/local/www/services_captiveportal_vouchers.php:603
+#: usr/local/www/services_captiveportal_vouchers.php:612
+#: usr/local/www/services_captiveportal_vouchers.php:612
msgid "This is the username of the master voucher nodes webConfigurator."
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:587
#: usr/local/www/services_captiveportal_vouchers.php:594
#: usr/local/www/services_captiveportal_vouchers.php:607
+#: usr/local/www/services_captiveportal_vouchers.php:616
+#: usr/local/www/services_captiveportal_vouchers.php:616
msgid "Voucher sync password"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:590
#: usr/local/www/services_captiveportal_vouchers.php:597
#: usr/local/www/services_captiveportal_vouchers.php:610
+#: usr/local/www/services_captiveportal_vouchers.php:619
+#: usr/local/www/services_captiveportal_vouchers.php:619
msgid "This is the password of the master voucher nodes webConfigurator."
msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:604
#: usr/local/www/services_captiveportal_vouchers.php:611
#: usr/local/www/services_captiveportal_vouchers.php:625
+#: usr/local/www/services_captiveportal_vouchers.php:634
+#: usr/local/www/services_captiveportal_vouchers.php:634
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 "
@@ -25485,6 +31141,8 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:606
#: usr/local/www/services_captiveportal_vouchers.php:613
#: usr/local/www/services_captiveportal_vouchers.php:627
+#: usr/local/www/services_captiveportal_vouchers.php:636
+#: usr/local/www/services_captiveportal_vouchers.php:636
msgid ""
"Specifying the Voucher Database Synchronization options will not record any "
"other value from the other options. They will be retrieved/synced from the "
@@ -25493,55 +31151,65 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers_edit.php:48
#: usr/local/www/services_captiveportal_vouchers_edit.php:45
+#: usr/local/www/services_captiveportal_vouchers_edit.php:45
msgid "Edit Voucher Rolls"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers_edit.php:101
#: usr/local/www/services_captiveportal_vouchers_edit.php:99
+#: usr/local/www/services_captiveportal_vouchers_edit.php:99
#, php-format
msgid "Roll number %s already exists."
msgstr ""
#: usr/local/www/services_captiveportal_vouchers_edit.php:107
#: usr/local/www/services_captiveportal_vouchers_edit.php:105
+#: usr/local/www/services_captiveportal_vouchers_edit.php:105
#, php-format
msgid "Roll number must be numeric and less than %s"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers_edit.php:110
#: usr/local/www/services_captiveportal_vouchers_edit.php:108
+#: usr/local/www/services_captiveportal_vouchers_edit.php:108
#, php-format
msgid "A roll has at least one voucher and less than %s."
msgstr ""
#: usr/local/www/services_captiveportal_vouchers_edit.php:113
#: usr/local/www/services_captiveportal_vouchers_edit.php:111
+#: usr/local/www/services_captiveportal_vouchers_edit.php:111
msgid "Each voucher must be good for at least 1 minute."
msgstr ""
#: usr/local/www/services_captiveportal_vouchers_edit.php:134
#: usr/local/www/services_captiveportal_vouchers_edit.php:132
+#: usr/local/www/services_captiveportal_vouchers_edit.php:132
#, php-format
msgid "All %1$s vouchers from Roll %2$s marked unused"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers_edit.php:177
#: usr/local/www/services_captiveportal_vouchers_edit.php:175
+#: usr/local/www/services_captiveportal_vouchers_edit.php:175
msgid "Enter the Roll"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers_edit.php:177
#: usr/local/www/services_captiveportal_vouchers_edit.php:175
+#: usr/local/www/services_captiveportal_vouchers_edit.php:175
msgid "found on top of the generated/printed vouchers"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers_edit.php:181
#: usr/local/www/services_captiveportal_vouchers_edit.php:179
+#: usr/local/www/services_captiveportal_vouchers_edit.php:179
msgid "Minutes per Ticket"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers_edit.php:185
#: usr/local/www/services_captiveportal_vouchers_edit.php:183
+#: usr/local/www/services_captiveportal_vouchers_edit.php:183
msgid ""
"Defines the time in minutes that a user is allowed access. The clock starts "
"ticking the first time a voucher is used for authentication"
@@ -25549,11 +31217,13 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers_edit.php:193
#: usr/local/www/services_captiveportal_vouchers_edit.php:191
+#: usr/local/www/services_captiveportal_vouchers_edit.php:191
msgid "Enter the number of vouchers"
msgstr ""
#: usr/local/www/services_captiveportal_vouchers_edit.php:193
#: usr/local/www/services_captiveportal_vouchers_edit.php:191
+#: usr/local/www/services_captiveportal_vouchers_edit.php:191
msgid ""
"found on top of the generated/printed vouchers. WARNING: Changing this "
"number for an existing Roll will mark all vouchers as unused again"
@@ -25561,6 +31231,7 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers_edit.php:201
#: usr/local/www/services_captiveportal_vouchers_edit.php:199
+#: usr/local/www/services_captiveportal_vouchers_edit.php:199
msgid "Can be used to further identify this roll. Ignored by the system"
msgstr ""
@@ -25617,7 +31288,7 @@ msgid "This does not clear active connection states, only source tracking."
msgstr ""
#: usr/local/www/diag_resetstate.php:127 usr/local/www/status_lb_pool.php:218
-#: usr/local/www/diag_resetstate.php:127 usr/local/www/status_lb_pool.php:218
+#: usr/local/www/status_lb_pool.php:218 usr/local/www/diag_resetstate.php:127
msgid "Reset"
msgstr ""
@@ -25628,6 +31299,7 @@ msgstr ""
#: usr/local/www/status_filter_reload.php:88
#: usr/local/www/status_filter_reload.php:89
+#: usr/local/www/status_filter_reload.php:89
msgid ""
"This page will automatically refresh every 3 seconds until the filter is "
"done reloading"
@@ -25638,14 +31310,17 @@ msgid "Routing tables"
msgstr ""
#: usr/local/www/diag_routes.php:58 usr/local/www/diag_routes.php:59
+#: usr/local/www/diag_routes.php:59
msgid "Name resolution"
msgstr ""
#: usr/local/www/diag_routes.php:62 usr/local/www/diag_routes.php:63
+#: usr/local/www/diag_routes.php:63
msgid "Enable this to attempt to resolve names when displaying the tables."
msgstr ""
#: usr/local/www/diag_routes.php:69 usr/local/www/diag_routes.php:70
+#: usr/local/www/diag_routes.php:70
msgid "Show"
msgstr ""
@@ -25655,40 +31330,46 @@ msgid ""
"stop it at any time by clicking the Stop button in your browser"
msgstr ""
-#: usr/local/www/diag_traceroute.php:62 usr/local/www/diag_traceroute.php:62
+#: usr/local/www/diag_traceroute.php:62 usr/local/www/diag_traceroute.php:63
msgid "ttl"
msgstr ""
-#: usr/local/www/diag_traceroute.php:66 usr/local/www/diag_traceroute.php:66
+#: usr/local/www/diag_traceroute.php:66 usr/local/www/diag_traceroute.php:67
#, php-format
msgid "Maximum number of hops must be between 1 and %s"
msgstr ""
-#: usr/local/www/diag_traceroute.php:94 usr/local/www/diag_traceroute.php:94
+#: usr/local/www/diag_traceroute.php:94 usr/local/www/diag_traceroute.php:112
+#: usr/local/www/diag_traceroute.php:131
msgid "Maximum number of hops"
msgstr ""
-#: usr/local/www/diag_traceroute.php:104 usr/local/www/diag_traceroute.php:104
+#: usr/local/www/diag_traceroute.php:104 usr/local/www/diag_traceroute.php:128
+#: usr/local/www/diag_traceroute.php:147
msgid "Use ICMP"
msgstr ""
-#: usr/local/www/diag_traceroute.php:117 usr/local/www/diag_traceroute.php:117
+#: usr/local/www/diag_traceroute.php:117 usr/local/www/diag_traceroute.php:141
+#: usr/local/www/diag_traceroute.php:162
msgid ""
"Traceroute may take a while to complete. You may hit the Stop button on your "
"browser at any time to see the progress of failed traceroutes."
msgstr ""
-#: usr/local/www/diag_traceroute.php:120 usr/local/www/diag_traceroute.php:120
+#: usr/local/www/diag_traceroute.php:120 usr/local/www/diag_traceroute.php:144
+#: usr/local/www/diag_traceroute.php:173
msgid "Traceroute output:"
msgstr ""
-#: usr/local/www/diag_traceroute.php:137 usr/local/www/diag_traceroute.php:137
+#: usr/local/www/diag_traceroute.php:137
msgid "Multi-wan is not supported from this utility currently."
msgstr ""
#: usr/local/www/status_graph.php:85 usr/local/www/fbegin.inc:173
#: usr/local/www/fbegin.inc:191 usr/local/www/fbegin.inc:199
-#: usr/local/www/status_graph.php:90
+#: usr/local/www/status_graph.php:90 usr/local/www/status_graph.php:101
+#: usr/local/www/fbegin.inc:190 usr/local/www/status_graph.php:111
+#: usr/local/www/fbegin.inc:190
msgid "Traffic Graph"
msgstr ""
@@ -25699,38 +31380,45 @@ msgid ""
msgstr ""
#: usr/local/www/status_graph.php:203 usr/local/www/status_graph.php:198
-#: usr/local/www/status_graph.php:209
+#: usr/local/www/status_graph.php:209 usr/local/www/status_graph.php:220
+#: usr/local/www/status_graph.php:242
msgid "Host IP"
msgstr ""
#: usr/local/www/status_graph.php:204 usr/local/www/status_graph.php:199
-#: usr/local/www/status_graph.php:210
+#: usr/local/www/status_graph.php:210 usr/local/www/status_graph.php:221
+#: usr/local/www/status_graph.php:243
msgid "Bandwidth In"
msgstr ""
#: usr/local/www/status_graph.php:205 usr/local/www/status_graph.php:200
-#: usr/local/www/status_graph.php:211
+#: usr/local/www/status_graph.php:211 usr/local/www/status_graph.php:222
+#: usr/local/www/status_graph.php:244
msgid "Bandwidth Out"
msgstr ""
#: usr/local/www/status_graph.php:291 usr/local/www/status_graph.php:286
-#: usr/local/www/status_graph.php:297
+#: usr/local/www/status_graph.php:297 usr/local/www/status_graph.php:308
+#: usr/local/www/status_graph.php:330
msgid "the"
msgstr ""
#: usr/local/www/status_graph.php:291 usr/local/www/status_graph.php:286
-#: usr/local/www/status_graph.php:297
+#: usr/local/www/status_graph.php:297 usr/local/www/status_graph.php:308
+#: usr/local/www/status_graph.php:330
msgid "Adobe SVG Viewer"
msgstr ""
#: usr/local/www/status_graph.php:291 usr/local/www/status_graph.php:286
-#: usr/local/www/status_graph.php:297
+#: usr/local/www/status_graph.php:297 usr/local/www/status_graph.php:308
+#: usr/local/www/status_graph.php:330
msgid ""
"Firefox 1.5 or later or other browser supporting SVG is required to view the "
"graph"
msgstr ""
#: usr/local/www/carp_status.php:71 usr/local/www/carp_status.php:67
+#: usr/local/www/carp_status.php:67
#, php-format
msgid ""
"%s IPs have been disabled. Please note that disabling does not survive a "
@@ -25738,22 +31426,27 @@ msgid ""
msgstr ""
#: usr/local/www/carp_status.php:73 usr/local/www/carp_status.php:69
+#: usr/local/www/carp_status.php:69
msgid "CARP has been enabled."
msgstr ""
#: usr/local/www/carp_status.php:127 usr/local/www/carp_status.php:120
+#: usr/local/www/carp_status.php:120
msgid "Enable Carp"
msgstr ""
#: usr/local/www/carp_status.php:130 usr/local/www/carp_status.php:123
+#: usr/local/www/carp_status.php:123
msgid "Disable Carp"
msgstr ""
#: usr/local/www/carp_status.php:138 usr/local/www/carp_status.php:131
+#: usr/local/www/carp_status.php:131
msgid "CARP Interface"
msgstr ""
#: usr/local/www/carp_status.php:144 usr/local/www/carp_status.php:137
+#: usr/local/www/carp_status.php:137
msgid "Could not locate any defined CARP interfaces."
msgstr ""
@@ -25762,11 +31455,13 @@ msgid "You can configure CARP settings"
msgstr ""
#: usr/local/www/carp_status.php:202 usr/local/www/carp_status.php:195
+#: usr/local/www/carp_status.php:195
msgid "pfSync nodes"
msgstr ""
#: usr/local/www/status_interfaces.php:81
#: usr/local/www/status_interfaces.php:84
+#: usr/local/www/status_interfaces.php:84
msgid "interface"
msgstr ""
@@ -25774,6 +31469,8 @@ msgstr ""
#: usr/local/www/status_interfaces.php:117
#: usr/local/www/status_interfaces.php:102
#: usr/local/www/status_interfaces.php:120
+#: usr/local/www/status_interfaces.php:102
+#: usr/local/www/status_interfaces.php:120
msgid "Release"
msgstr ""
@@ -25781,6 +31478,8 @@ msgstr ""
#: usr/local/www/status_interfaces.php:120
#: usr/local/www/status_interfaces.php:105
#: usr/local/www/status_interfaces.php:123
+#: usr/local/www/status_interfaces.php:105
+#: usr/local/www/status_interfaces.php:123
msgid "Renew"
msgstr ""
@@ -25796,48 +31495,59 @@ msgstr ""
#: usr/local/www/status_interfaces.php:153
#: usr/local/www/status_interfaces.php:168
#: usr/local/www/status_interfaces.php:184
+#: usr/local/www/status_interfaces.php:138
+#: usr/local/www/status_interfaces.php:153
+#: usr/local/www/status_interfaces.php:168
+#: usr/local/www/status_interfaces.php:184
msgid "Connect"
msgstr ""
#: usr/local/www/status_interfaces.php:171
#: usr/local/www/status_interfaces.php:189
#: usr/local/www/status_interfaces.php:192
+#: usr/local/www/status_interfaces.php:192
msgid "Uptime "
msgstr ""
#: usr/local/www/status_interfaces.php:200
#: usr/local/www/status_interfaces.php:274
#: usr/local/www/status_interfaces.php:277
+#: usr/local/www/status_interfaces.php:277
msgid "Subnet mask IPv4"
msgstr ""
#: usr/local/www/status_interfaces.php:207
#: usr/local/www/status_interfaces.php:281
#: usr/local/www/status_interfaces.php:284
+#: usr/local/www/status_interfaces.php:284
msgid "Gateway IPv4"
msgstr ""
#: usr/local/www/status_interfaces.php:224
#: usr/local/www/status_interfaces.php:305
#: usr/local/www/status_interfaces.php:308
+#: usr/local/www/status_interfaces.php:308
msgid "Subnet mask IPv6"
msgstr ""
#: usr/local/www/status_interfaces.php:239
#: usr/local/www/status_interfaces.php:320
#: usr/local/www/status_interfaces.php:323
+#: usr/local/www/status_interfaces.php:323
msgid "ISP DNS servers"
msgstr ""
#: usr/local/www/status_interfaces.php:251
#: usr/local/www/status_interfaces.php:332
#: usr/local/www/status_interfaces.php:335
+#: usr/local/www/status_interfaces.php:335
msgid "Media"
msgstr ""
#: usr/local/www/status_interfaces.php:272
#: usr/local/www/status_interfaces.php:369
#: usr/local/www/status_interfaces.php:372
+#: usr/local/www/status_interfaces.php:372
msgid "BSSID"
msgstr ""
@@ -25846,48 +31556,59 @@ msgstr ""
#: usr/local/www/status_interfaces.php:376
#: usr/local/www/status_interfaces.php:379
#: usr/local/www/diag_dump_states_sources.php:147
+#: usr/local/www/diag_system_pftop.php:158
+#: usr/local/www/diag_dump_states_sources.php:147
+#: usr/local/www/status_interfaces.php:379
+#: usr/local/www/diag_system_pftop.php:158
msgid "Rate"
msgstr ""
#: usr/local/www/status_interfaces.php:286
#: usr/local/www/status_interfaces.php:383
#: usr/local/www/status_interfaces.php:386
+#: usr/local/www/status_interfaces.php:386
msgid "RSSI"
msgstr ""
#: usr/local/www/status_interfaces.php:293
#: usr/local/www/status_interfaces.php:390
#: usr/local/www/status_interfaces.php:393
+#: usr/local/www/status_interfaces.php:393
msgid "In/out packets"
msgstr ""
#: usr/local/www/status_interfaces.php:302
#: usr/local/www/status_interfaces.php:399
#: usr/local/www/status_interfaces.php:402
+#: usr/local/www/status_interfaces.php:402
msgid "In/out packets (pass)"
msgstr ""
#: usr/local/www/status_interfaces.php:311
#: usr/local/www/status_interfaces.php:408
#: usr/local/www/status_interfaces.php:411
+#: usr/local/www/status_interfaces.php:411
msgid "In/out packets (block)"
msgstr ""
#: usr/local/www/status_interfaces.php:321
#: usr/local/www/status_interfaces.php:418
#: usr/local/www/status_interfaces.php:421
+#: usr/local/www/status_interfaces.php:421
msgid "In/out errors"
msgstr ""
#: usr/local/www/status_interfaces.php:329
#: usr/local/www/status_interfaces.php:426
#: usr/local/www/status_interfaces.php:429
+#: usr/local/www/status_interfaces.php:429
msgid "Collisions"
msgstr ""
#: usr/local/www/status_interfaces.php:338
#: usr/local/www/status_interfaces.php:435
#: usr/local/www/status_interfaces.php:438
+#: usr/local/www/status_interfaces.php:438
#, php-format
msgid "Bridge (%s)"
msgstr ""
@@ -25895,18 +31616,21 @@ msgstr ""
#: usr/local/www/status_interfaces.php:360
#: usr/local/www/status_interfaces.php:457
#: usr/local/www/status_interfaces.php:460
+#: usr/local/www/status_interfaces.php:460
msgid "Interrupts/Second"
msgstr ""
#: usr/local/www/status_interfaces.php:363
#: usr/local/www/status_interfaces.php:460
#: usr/local/www/status_interfaces.php:463
+#: usr/local/www/status_interfaces.php:463
msgid "total"
msgstr ""
#: usr/local/www/status_interfaces.php:376
#: usr/local/www/status_interfaces.php:473
#: usr/local/www/status_interfaces.php:476
+#: usr/local/www/status_interfaces.php:476
#, php-format
msgid ""
"Using dial-on-demand will bring the connection up again if any packet "
@@ -25916,63 +31640,76 @@ msgid ""
msgstr ""
#: usr/local/www/exec.php:91 usr/local/www/exec.php:93
+#: usr/local/www/exec.php:93
msgid "Execute command"
msgstr ""
#: usr/local/www/exec.php:153 usr/local/www/exec.php:155
+#: usr/local/www/exec.php:155
msgid "Nothing to recall"
msgstr ""
#: usr/local/www/exec.php:222 usr/local/www/exec.php:224
+#: usr/local/www/exec.php:224
msgid "Note: this function is unsupported. Use it on your own risk"
msgstr ""
#: usr/local/www/exec.php:253 usr/local/www/exec.php:255
+#: usr/local/www/exec.php:255
msgid "Execute Shell command"
msgstr ""
#: usr/local/www/exec.php:256 usr/local/www/exec.php:309
#: usr/local/www/exec.php:258 usr/local/www/exec.php:311
+#: usr/local/www/exec.php:258 usr/local/www/exec.php:311
msgid "Command"
msgstr ""
#: usr/local/www/exec.php:264 usr/local/www/exec.php:315
#: usr/local/www/exec.php:266 usr/local/www/exec.php:317
+#: usr/local/www/exec.php:266 usr/local/www/exec.php:317
msgid "Execute"
msgstr ""
#: usr/local/www/exec.php:266 usr/local/www/status_upnp.php:77
#: usr/local/www/exec.php:268 usr/local/www/status_upnp.php:78
+#: usr/local/www/exec.php:268 usr/local/www/status_upnp.php:78
msgid "Clear"
msgstr ""
#: usr/local/www/exec.php:276 usr/local/www/exec.php:278
+#: usr/local/www/exec.php:278
msgid "File to download"
msgstr ""
#: usr/local/www/exec.php:293 usr/local/www/exec.php:295
+#: usr/local/www/exec.php:295
msgid "File to upload"
msgstr ""
#: usr/local/www/exec.php:306 usr/local/www/exec.php:308
+#: usr/local/www/exec.php:308
msgid "PHP Execute"
msgstr ""
#: usr/local/www/exec.php:317 usr/local/www/exec.php:319
+#: usr/local/www/exec.php:319
msgid "Example"
msgstr ""
-#: usr/local/www/exec_raw.php:47 usr/local/www/exec_raw.php:47
+#: usr/local/www/exec_raw.php:47
msgid "Nothing specified. Cannot continue."
msgstr ""
#: usr/local/www/fbegin.inc:88 usr/local/www/fbegin.inc:105
-#: usr/local/www/fbegin.inc:114
+#: usr/local/www/fbegin.inc:114 usr/local/www/fbegin.inc:106
+#: usr/local/www/fbegin.inc:106
msgid "Packages"
msgstr ""
#: usr/local/www/fbegin.inc:89 usr/local/www/fbegin.inc:106
-#: usr/local/www/fbegin.inc:115
+#: usr/local/www/fbegin.inc:115 usr/local/www/fbegin.inc:107
+#: usr/local/www/fbegin.inc:107
msgid "Setup Wizard"
msgstr ""
@@ -25981,22 +31718,28 @@ msgstr ""
#: usr/local/www/diag_logs_resolver.php:98 usr/local/www/diag_logs.php:97
#: usr/local/www/diag_logs_wireless.php:86
#: usr/local/www/diag_logs_gateways.php:98
-#: usr/local/www/diag_logs_routing.php:54
#: usr/local/www/diag_logs_routing.php:85 usr/local/www/fbegin.inc:116
-#: usr/local/www/diag_logs_resolver.php:99 usr/local/www/diag_logs.php:97
+#: usr/local/www/diag_logs_resolver.php:99
#: usr/local/www/diag_logs_wireless.php:87
-#: usr/local/www/diag_logs_gateways.php:99
+#: usr/local/www/diag_logs_gateways.php:99 usr/local/www/fbegin.inc:108
+#: usr/local/www/diag_logs_routing.php:54
+#: usr/local/www/diag_logs_routing.php:85 usr/local/www/diag_logs.php:97
+#: usr/local/www/diag_logs_gateways.php:99 usr/local/www/fbegin.inc:108
+#: usr/local/www/diag_logs_wireless.php:87
+#: usr/local/www/diag_logs_resolver.php:99
msgid "Routing"
msgstr ""
#: usr/local/www/fbegin.inc:91 usr/local/www/fbegin.inc:108
-#: usr/local/www/fbegin.inc:117
+#: usr/local/www/fbegin.inc:117 usr/local/www/fbegin.inc:109
+#: usr/local/www/fbegin.inc:109
msgid "Cert Manager"
msgstr ""
#: usr/local/www/fbegin.inc:123 usr/local/www/services_dhcpv6_relay.php:101
#: usr/local/www/fbegin.inc:140 usr/local/www/fbegin.inc:149
-#: usr/local/www/services_dhcpv6_relay.php:101
+#: usr/local/www/fbegin.inc:141 usr/local/www/services_dhcpv6_relay.php:101
+#: usr/local/www/fbegin.inc:141
msgid "DHCPv6 Relay"
msgstr ""
@@ -26004,13 +31747,18 @@ msgstr ""
#: usr/local/www/services_dhcpv6.php:581
#: usr/local/www/services_router_advertisements.php:260
#: usr/local/www/services_dhcpv6.php:502 usr/local/www/services_dhcpv6.php:512
+#: usr/local/www/services_dhcpv6.php:513 usr/local/www/services_dhcpv6.php:523
+#: usr/local/www/services_router_advertisements.php:255
+#: usr/local/www/services_dhcpv6.php:513 usr/local/www/services_dhcpv6.php:523
msgid "DHCPv6 Server"
msgstr ""
#: usr/local/www/fbegin.inc:129 usr/local/www/status_services.php:316
#: usr/local/www/widgets/widgets/services_status.widget.php:121
#: usr/local/www/fbegin.inc:146 etc/inc/service-utils.inc:299
-#: usr/local/www/fbegin.inc:155
+#: usr/local/www/fbegin.inc:155 usr/local/www/fbegin.inc:147
+#: etc/inc/service-utils.inc:298 usr/local/www/fbegin.inc:147
+#: etc/inc/service-utils.inc:315
msgid "IGMP proxy"
msgstr ""
@@ -26019,8 +31767,9 @@ msgid "OLSR"
msgstr ""
#: usr/local/www/fbegin.inc:132 usr/local/www/vpn_pppoe_edit.php:234
-#: usr/local/www/fbegin.inc:150 usr/local/www/vpn_pppoe_edit.php:234
-#: usr/local/www/fbegin.inc:158
+#: usr/local/www/fbegin.inc:150 usr/local/www/fbegin.inc:158
+#: usr/local/www/vpn_pppoe_edit.php:237 usr/local/www/vpn_pppoe_edit.php:237
+#: usr/local/www/fbegin.inc:150
msgid "PPPoE Server"
msgstr ""
@@ -26032,36 +31781,44 @@ msgstr ""
#: usr/local/www/fbegin.inc:139 usr/local/www/fbegin.inc:175
#: usr/local/www/fbegin.inc:157 usr/local/www/fbegin.inc:193
#: usr/local/www/fbegin.inc:165 usr/local/www/fbegin.inc:201
+#: usr/local/www/fbegin.inc:156 usr/local/www/fbegin.inc:192
+#: usr/local/www/fbegin.inc:156 usr/local/www/fbegin.inc:192
msgid "UPnP &amp; NAT-PMP"
msgstr ""
#: usr/local/www/fbegin.inc:157 usr/local/www/fbegin.inc:174
-#: usr/local/www/fbegin.inc:182
+#: usr/local/www/fbegin.inc:182 usr/local/www/fbegin.inc:173
+#: usr/local/www/fbegin.inc:173
msgid "CARP (failover)"
msgstr ""
#: usr/local/www/fbegin.inc:158 usr/local/www/fbegin.inc:175
-#: usr/local/www/fbegin.inc:183
+#: usr/local/www/fbegin.inc:183 usr/local/www/fbegin.inc:174
+#: usr/local/www/fbegin.inc:174
msgid "Dashboard"
msgstr ""
#: usr/local/www/fbegin.inc:160 usr/local/www/fbegin.inc:177
-#: usr/local/www/fbegin.inc:185
+#: usr/local/www/fbegin.inc:185 usr/local/www/fbegin.inc:176
+#: usr/local/www/fbegin.inc:176
msgid "DHCP Leases"
msgstr ""
#: usr/local/www/fbegin.inc:161 usr/local/www/fbegin.inc:178
-#: usr/local/www/fbegin.inc:186
+#: usr/local/www/fbegin.inc:186 usr/local/www/fbegin.inc:177
+#: usr/local/www/fbegin.inc:177
msgid "DHCPv6 Leases"
msgstr ""
#: usr/local/www/fbegin.inc:162 usr/local/www/fbegin.inc:179
-#: usr/local/www/fbegin.inc:187
+#: usr/local/www/fbegin.inc:187 usr/local/www/fbegin.inc:178
+#: usr/local/www/fbegin.inc:178
msgid "Filter Reload"
msgstr ""
#: usr/local/www/fbegin.inc:168 usr/local/www/fbegin.inc:186
-#: usr/local/www/fbegin.inc:194
+#: usr/local/www/fbegin.inc:194 usr/local/www/fbegin.inc:185
+#: usr/local/www/fbegin.inc:185
msgid "Package Logs"
msgstr ""
@@ -26072,9 +31829,12 @@ msgstr ""
#: usr/local/www/fbegin.inc:187
#: usr/local/www/status_rrd_graph_settings.php:138
#: usr/local/www/status_queues.php:101 usr/local/www/status_rrd_graph.php:386
-#: usr/local/www/fbegin.inc:195 usr/local/www/status_rrd_graph_settings.php:57
+#: usr/local/www/fbegin.inc:195 usr/local/www/status_rrd_graph.php:411
+#: usr/local/www/status_queues.php:109 usr/local/www/fbegin.inc:186
+#: usr/local/www/status_rrd_graph.php:411
+#: usr/local/www/status_rrd_graph_settings.php:57
#: usr/local/www/status_rrd_graph_settings.php:138
-#: usr/local/www/status_queues.php:101 usr/local/www/status_rrd_graph.php:386
+#: usr/local/www/status_queues.php:109 usr/local/www/fbegin.inc:186
msgid "Queues"
msgstr ""
@@ -26086,15 +31846,19 @@ msgstr ""
#: usr/local/www/status_rrd_graph_settings.php:114
#: usr/local/www/status_rrd_graph_settings.php:172
#: usr/local/www/status_rrd_graph.php:244 usr/local/www/fbegin.inc:196
+#: usr/local/www/status_rrd_graph_img.php:43
+#: usr/local/www/status_rrd_graph.php:248 usr/local/www/fbegin.inc:187
+#: usr/local/www/status_rrd_graph_img.php:43
+#: usr/local/www/status_rrd_graph.php:248
#: usr/local/www/status_rrd_graph_settings.php:114
#: usr/local/www/status_rrd_graph_settings.php:172
-#: usr/local/www/status_rrd_graph.php:244
-#: usr/local/www/status_rrd_graph_img.php:41
+#: usr/local/www/fbegin.inc:187
msgid "RRD Graphs"
msgstr ""
#: usr/local/www/fbegin.inc:172 usr/local/www/fbegin.inc:190
-#: usr/local/www/fbegin.inc:198
+#: usr/local/www/fbegin.inc:198 usr/local/www/fbegin.inc:189
+#: usr/local/www/fbegin.inc:189
msgid "System Logs"
msgstr ""
@@ -26103,120 +31867,139 @@ msgid "ARP Tables"
msgstr ""
#: usr/local/www/fbegin.inc:191 usr/local/www/fbegin.inc:209
-#: usr/local/www/fbegin.inc:217
+#: usr/local/www/fbegin.inc:217 usr/local/www/fbegin.inc:208
+#: usr/local/www/fbegin.inc:208
msgid "Command Prompt"
msgstr ""
#: usr/local/www/fbegin.inc:193 usr/local/www/fbegin.inc:211
-#: usr/local/www/fbegin.inc:219
+#: usr/local/www/fbegin.inc:219 usr/local/www/fbegin.inc:210
+#: usr/local/www/fbegin.inc:210
msgid "Edit File"
msgstr ""
#: usr/local/www/fbegin.inc:194 usr/local/www/fbegin.inc:212
-#: usr/local/www/fbegin.inc:220
+#: usr/local/www/fbegin.inc:220 usr/local/www/fbegin.inc:211
+#: usr/local/www/fbegin.inc:211
msgid "Factory Defaults"
msgstr ""
#: usr/local/www/fbegin.inc:195 usr/local/www/fbegin.inc:213
-#: usr/local/www/fbegin.inc:221
+#: usr/local/www/fbegin.inc:221 usr/local/www/fbegin.inc:212
+#: usr/local/www/fbegin.inc:212
msgid "Halt System"
msgstr ""
#: usr/local/www/fbegin.inc:196 usr/local/www/fbegin.inc:214
-#: usr/local/www/fbegin.inc:222
+#: usr/local/www/fbegin.inc:222 usr/local/www/fbegin.inc:213
+#: usr/local/www/fbegin.inc:213
msgid "Limiter Info"
msgstr ""
#: usr/local/www/fbegin.inc:197 usr/local/www/diag_ndp.php:103
#: usr/local/www/fbegin.inc:215 usr/local/www/fbegin.inc:223
-#: usr/local/www/diag_ndp.php:103
+#: usr/local/www/fbegin.inc:214 usr/local/www/diag_ndp.php:103
+#: usr/local/www/fbegin.inc:214
msgid "NDP Table"
msgstr ""
#: usr/local/www/fbegin.inc:201 usr/local/www/fbegin.inc:219
-#: usr/local/www/fbegin.inc:227
+#: usr/local/www/fbegin.inc:227 usr/local/www/fbegin.inc:219
msgid "pfInfo"
msgstr ""
#: usr/local/www/fbegin.inc:202 usr/local/www/fbegin.inc:220
-#: usr/local/www/fbegin.inc:228
+#: usr/local/www/fbegin.inc:228 usr/local/www/fbegin.inc:220
msgid "pfTop"
msgstr ""
#: usr/local/www/fbegin.inc:203 usr/local/www/fbegin.inc:221
-#: usr/local/www/fbegin.inc:229
+#: usr/local/www/fbegin.inc:229 usr/local/www/fbegin.inc:221
msgid "Reboot"
msgstr ""
#: usr/local/www/fbegin.inc:205 usr/local/www/fbegin.inc:223
#: usr/local/www/widgets/widgets/smart_status.widget.php:38
-#: usr/local/www/fbegin.inc:231
-#: usr/local/www/widgets/widgets/smart_status.widget.php:38
+#: usr/local/www/fbegin.inc:231 usr/local/www/fbegin.inc:223
+#: usr/local/www/widgets/widgets/smart_status.widget.php:39
msgid "SMART Status"
msgstr ""
#: usr/local/www/fbegin.inc:207 usr/local/www/fbegin.inc:225
-#: usr/local/www/fbegin.inc:234
+#: usr/local/www/fbegin.inc:234 usr/local/www/fbegin.inc:226
+#: usr/local/www/fbegin.inc:226
msgid "States Summary"
msgstr ""
#: usr/local/www/fbegin.inc:208 usr/local/www/fbegin.inc:226
-#: usr/local/www/fbegin.inc:235
+#: usr/local/www/fbegin.inc:235 usr/local/www/fbegin.inc:227
+#: usr/local/www/fbegin.inc:227
msgid "System Activity"
msgstr ""
#: usr/local/www/fbegin.inc:216 usr/local/www/fbegin.inc:233
-#: usr/local/www/fbegin.inc:242
+#: usr/local/www/fbegin.inc:242 usr/local/www/fbegin.inc:234
+#: usr/local/www/fbegin.inc:234
msgid "Restart HTTPD"
msgstr ""
#: usr/local/www/fbegin.inc:222 usr/local/www/fbegin.inc:240
-#: usr/local/www/fbegin.inc:249
+#: usr/local/www/fbegin.inc:249 usr/local/www/fbegin.inc:241
+#: usr/local/www/fbegin.inc:241
msgid "About this Page"
msgstr ""
#: usr/local/www/fbegin.inc:224 usr/local/www/fbegin.inc:242
-#: usr/local/www/fbegin.inc:251
+#: usr/local/www/fbegin.inc:251 usr/local/www/fbegin.inc:243
+#: usr/local/www/fbegin.inc:243
msgid "Bug Database"
msgstr ""
#: usr/local/www/fbegin.inc:225 usr/local/www/fbegin.inc:243
-#: usr/local/www/fbegin.inc:252
+#: usr/local/www/fbegin.inc:252 usr/local/www/fbegin.inc:244
+#: usr/local/www/fbegin.inc:244
msgid "User Forum"
msgstr ""
#: usr/local/www/fbegin.inc:226 usr/local/www/fbegin.inc:244
-#: usr/local/www/fbegin.inc:253
+#: usr/local/www/fbegin.inc:253 usr/local/www/fbegin.inc:245
+#: usr/local/www/fbegin.inc:245
msgid "Documentation"
msgstr ""
#: usr/local/www/fbegin.inc:227 usr/local/www/fbegin.inc:245
-#: usr/local/www/fbegin.inc:254
+#: usr/local/www/fbegin.inc:254 usr/local/www/fbegin.inc:246
+#: usr/local/www/fbegin.inc:246
msgid "Developers Wiki"
msgstr ""
#: usr/local/www/fbegin.inc:228 usr/local/www/fbegin.inc:246
-#: usr/local/www/fbegin.inc:255
+#: usr/local/www/fbegin.inc:255 usr/local/www/fbegin.inc:247
+#: usr/local/www/fbegin.inc:247
msgid "Paid Support"
msgstr ""
#: usr/local/www/fbegin.inc:229 usr/local/www/fbegin.inc:247
-#: usr/local/www/fbegin.inc:256
+#: usr/local/www/fbegin.inc:256 usr/local/www/fbegin.inc:248
+#: usr/local/www/fbegin.inc:248
msgid "pfSense Book"
msgstr ""
#: usr/local/www/fbegin.inc:230 usr/local/www/fbegin.inc:248
-#: usr/local/www/fbegin.inc:257
+#: usr/local/www/fbegin.inc:257 usr/local/www/fbegin.inc:249
+#: usr/local/www/fbegin.inc:249
msgid "Search portal"
msgstr ""
#: usr/local/www/fbegin.inc:231 usr/local/www/fbegin.inc:249
-#: usr/local/www/fbegin.inc:258
+#: usr/local/www/fbegin.inc:258 usr/local/www/fbegin.inc:250
+#: usr/local/www/fbegin.inc:250
msgid "FreeBSD Handbook"
msgstr ""
#: usr/local/www/fbegin.inc:376 usr/local/www/fbegin.inc:394
-#: usr/local/www/fbegin.inc:340
+#: usr/local/www/fbegin.inc:340 usr/local/www/fbegin.inc:332
+#: usr/local/www/fbegin.inc:332
msgid "Help"
msgstr ""
@@ -26233,79 +32016,90 @@ msgid "Help for items on this page."
msgstr ""
#: usr/local/www/fbegin.inc:441 usr/local/www/fbegin.inc:459
-#: usr/local/www/fbegin.inc:429
+#: usr/local/www/fbegin.inc:429 usr/local/www/fbegin.inc:421
+#: usr/local/www/fbegin.inc:421
msgid ""
"Packages are currently being reinstalled in the background.<p>Do not make "
"changes in the GUI until this is complete."
msgstr ""
#: usr/local/www/status_queues.php:98 usr/local/www/status_queues.php:101
-#: usr/local/www/status_queues.php:101
+#: usr/local/www/status_queues.php:109 usr/local/www/status_queues.php:109
msgid "Traffic shaper"
msgstr ""
#: usr/local/www/status_queues.php:107 usr/local/www/status_queues.php:110
-#: usr/local/www/status_queues.php:111
+#: usr/local/www/status_queues.php:111 usr/local/www/status_queues.php:117
+#: usr/local/www/status_queues.php:117
msgid "Traffic shaping is not configured."
msgstr ""
#: usr/local/www/status_queues.php:136 usr/local/www/status_queues.php:143
-#: usr/local/www/status_queues.php:144
+#: usr/local/www/status_queues.php:144 usr/local/www/status_queues.php:149
+#: usr/local/www/status_queues.php:149
msgid "Statistics"
msgstr ""
#: usr/local/www/status_queues.php:158 usr/local/www/status_queues.php:165
-#: usr/local/www/status_queues.php:166
+#: usr/local/www/status_queues.php:166 usr/local/www/status_queues.php:223
+#: usr/local/www/status_queues.php:224
msgid "Loading"
msgstr ""
#: usr/local/www/status_queues.php:173 usr/local/www/status_queues.php:181
-#: usr/local/www/status_queues.php:182
+#: usr/local/www/status_queues.php:182 usr/local/www/status_queues.php:164
+#: usr/local/www/status_queues.php:164
msgid "Queue graphs take 5 seconds to sample data"
msgstr ""
#: usr/local/www/status_queues.php:174 usr/local/www/status_queues.php:182
-#: usr/local/www/status_queues.php:183
+#: usr/local/www/status_queues.php:183 usr/local/www/status_queues.php:165
+#: usr/local/www/status_queues.php:165
msgid "You can configure the Traffic Shaper"
msgstr ""
#: usr/local/www/status_rrd_graph.php:211
#: usr/local/www/status_rrd_graph_settings.php:59
#: usr/local/www/status_rrd_graph.php:174
+#: usr/local/www/status_rrd_graph.php:179
+#: usr/local/www/status_rrd_graph.php:179
#: usr/local/www/status_rrd_graph_settings.php:59
-#: usr/local/www/status_rrd_graph.php:174
msgid "Inverse"
msgstr ""
#: usr/local/www/status_rrd_graph.php:212
#: usr/local/www/status_rrd_graph_settings.php:60
#: usr/local/www/status_rrd_graph.php:175
+#: usr/local/www/status_rrd_graph.php:180
+#: usr/local/www/status_rrd_graph.php:180
#: usr/local/www/status_rrd_graph_settings.php:60
-#: usr/local/www/status_rrd_graph.php:175
msgid "Absolute"
msgstr ""
#: usr/local/www/status_rrd_graph.php:214
#: usr/local/www/status_rrd_graph_settings.php:61
#: usr/local/www/status_rrd_graph.php:234
+#: usr/local/www/status_rrd_graph.php:238
+#: usr/local/www/status_rrd_graph.php:238
#: usr/local/www/status_rrd_graph_settings.php:61
-#: usr/local/www/status_rrd_graph.php:234
msgid "Absolute Timespans"
msgstr ""
#: usr/local/www/status_rrd_graph.php:214
#: usr/local/www/status_rrd_graph_settings.php:62
#: usr/local/www/status_rrd_graph.php:234
+#: usr/local/www/status_rrd_graph.php:238
+#: usr/local/www/status_rrd_graph.php:238
#: usr/local/www/status_rrd_graph_settings.php:62
-#: usr/local/www/status_rrd_graph.php:234
msgid "Current Period"
msgstr ""
#: usr/local/www/status_rrd_graph.php:214
#: usr/local/www/status_rrd_graph_settings.php:63
#: usr/local/www/status_rrd_graph.php:234
+#: usr/local/www/status_rrd_graph.php:238
+#: usr/local/www/status_rrd_graph.php:238
#: usr/local/www/status_rrd_graph_settings.php:63
-#: usr/local/www/status_rrd_graph.php:234
msgid "Previous Period"
msgstr ""
@@ -26314,9 +32108,10 @@ msgstr ""
#: usr/local/www/status_rrd_graph_settings.php:130
#: usr/local/www/status_rrd_graph_settings.php:131
#: usr/local/www/status_rrd_graph.php:379
+#: usr/local/www/status_rrd_graph.php:404
+#: usr/local/www/status_rrd_graph.php:404
#: usr/local/www/status_rrd_graph_settings.php:54
#: usr/local/www/status_rrd_graph_settings.php:131
-#: usr/local/www/status_rrd_graph.php:379
msgid "Traffic"
msgstr ""
@@ -26325,9 +32120,10 @@ msgstr ""
#: usr/local/www/status_rrd_graph_settings.php:132
#: usr/local/www/status_rrd_graph_settings.php:133
#: usr/local/www/status_rrd_graph.php:381
+#: usr/local/www/status_rrd_graph.php:406
+#: usr/local/www/status_rrd_graph.php:406
#: usr/local/www/status_rrd_graph_settings.php:55
#: usr/local/www/status_rrd_graph_settings.php:133
-#: usr/local/www/status_rrd_graph.php:381
msgid "Packets"
msgstr ""
@@ -26336,9 +32132,10 @@ msgstr ""
#: usr/local/www/status_rrd_graph_settings.php:134
#: usr/local/www/status_rrd_graph_settings.php:135
#: usr/local/www/status_rrd_graph.php:383
+#: usr/local/www/status_rrd_graph.php:408
+#: usr/local/www/status_rrd_graph.php:408
#: usr/local/www/status_rrd_graph_settings.php:56
#: usr/local/www/status_rrd_graph_settings.php:135
-#: usr/local/www/status_rrd_graph.php:383
msgid "Quality"
msgstr ""
@@ -26346,8 +32143,9 @@ msgstr ""
#: usr/local/www/status_rrd_graph_settings.php:139
#: usr/local/www/status_rrd_graph_settings.php:140
#: usr/local/www/status_rrd_graph.php:388
+#: usr/local/www/status_rrd_graph.php:413
+#: usr/local/www/status_rrd_graph.php:413
#: usr/local/www/status_rrd_graph_settings.php:140
-#: usr/local/www/status_rrd_graph.php:388
msgid "QueueDrops"
msgstr ""
@@ -26355,75 +32153,87 @@ msgstr ""
#: usr/local/www/status_rrd_graph_settings.php:147
#: usr/local/www/status_rrd_graph_settings.php:148
#: usr/local/www/status_rrd_graph.php:396
+#: usr/local/www/status_rrd_graph.php:421
+#: usr/local/www/status_rrd_graph.php:421
#: usr/local/www/status_rrd_graph_settings.php:148
-#: usr/local/www/status_rrd_graph.php:396
msgid "Cellular"
msgstr ""
#: usr/local/www/status_rrd_graph.php:371
#: usr/local/www/status_rrd_graph.php:419
-#: usr/local/www/status_rrd_graph.php:419
+#: usr/local/www/status_rrd_graph.php:451
+#: usr/local/www/status_rrd_graph.php:451
msgid ""
"Note: Change of color and/or style may not take effect until the next refresh"
msgstr ""
#: usr/local/www/status_rrd_graph.php:375
#: usr/local/www/status_rrd_graph.php:423
-#: usr/local/www/status_rrd_graph.php:423
+#: usr/local/www/status_rrd_graph.php:455
+#: usr/local/www/status_rrd_graph.php:455
msgid "Graphs:"
msgstr ""
#: usr/local/www/status_rrd_graph.php:432
#: usr/local/www/status_rrd_graph.php:480
-#: usr/local/www/status_rrd_graph.php:480
+#: usr/local/www/status_rrd_graph.php:515
+#: usr/local/www/status_rrd_graph.php:515
msgid "Style:"
msgstr ""
#: usr/local/www/status_rrd_graph.php:446
#: usr/local/www/status_rrd_graph.php:494
-#: usr/local/www/status_rrd_graph.php:494
+#: usr/local/www/status_rrd_graph.php:529
+#: usr/local/www/status_rrd_graph.php:529
msgid "Period:"
msgstr ""
#: usr/local/www/status_rrd_graph.php:461
#: usr/local/www/status_rrd_graph.php:513
-#: usr/local/www/status_rrd_graph.php:513
+#: usr/local/www/status_rrd_graph.php:548
+#: usr/local/www/status_rrd_graph.php:548
msgid "Start:"
msgstr ""
#: usr/local/www/status_rrd_graph.php:463
#: usr/local/www/status_rrd_graph.php:515
-#: usr/local/www/status_rrd_graph.php:515
+#: usr/local/www/status_rrd_graph.php:550
+#: usr/local/www/status_rrd_graph.php:550
msgid "End:"
msgstr ""
#: usr/local/www/status_rrd_graph.php:465
#: usr/local/www/status_rrd_graph.php:517
-#: usr/local/www/status_rrd_graph.php:517
+#: usr/local/www/status_rrd_graph.php:552
+#: usr/local/www/status_rrd_graph.php:552
msgid "Go"
msgstr ""
#: usr/local/www/status_rrd_graph_img.php:41
-#: usr/local/www/status_rrd_graph_img.php:41
+#: usr/local/www/status_rrd_graph_img.php:43
+#: usr/local/www/status_rrd_graph_img.php:43
msgid "Image viewer"
msgstr ""
#: usr/local/www/status_rrd_graph_img.php:216
-#: usr/local/www/status_rrd_graph_img.php:216
+#: usr/local/www/status_rrd_graph_img.php:221
+#: usr/local/www/status_rrd_graph_img.php:221
#, php-format
msgid "rrdcolors.inc.php for theme %s does not exist, using defaults!"
msgstr ""
#: usr/local/www/status_rrd_graph_img.php:1095
#: usr/local/www/status_rrd_graph_img.php:1088
-#: usr/local/www/status_rrd_graph_img.php:1088
+#: usr/local/www/status_rrd_graph_img.php:1093
+#: usr/local/www/status_rrd_graph_img.php:1093
#, php-format
msgid "Sorry we do not have data to graph for %s"
msgstr ""
#: usr/local/www/status_rrd_graph_img.php:1115
#: usr/local/www/status_rrd_graph_img.php:1108
-#: usr/local/www/status_rrd_graph_img.php:1108
+#: usr/local/www/status_rrd_graph_img.php:1113
+#: usr/local/www/status_rrd_graph_img.php:1113
#, php-format
msgid "Failed to create graph with error code %1$s, the error is: %2$s"
msgstr ""
@@ -26431,8 +32241,10 @@ msgstr ""
#: usr/local/www/status_rrd_graph_img.php:1117
#: usr/local/www/status_rrd_graph_img.php:1124
#: usr/local/www/status_rrd_graph_img.php:1110
-#: usr/local/www/status_rrd_graph_img.php:1110
-#: usr/local/www/status_rrd_graph_img.php:1117
+#: usr/local/www/status_rrd_graph_img.php:1115
+#: usr/local/www/status_rrd_graph_img.php:1122
+#: usr/local/www/status_rrd_graph_img.php:1115
+#: usr/local/www/status_rrd_graph_img.php:1122
#, php-format
msgid "failed to create graph from %s%s, removing database"
msgstr ""
@@ -26502,64 +32314,75 @@ msgstr ""
#: usr/local/www/status_services.php:60
#: usr/local/www/widgets/widgets/services_status.widget.php:54
-#: etc/inc/service-utils.inc:387
+#: etc/inc/service-utils.inc:387 etc/inc/service-utils.inc:386
+#: etc/inc/service-utils.inc:403
msgid "Not available."
msgstr ""
#: usr/local/www/status_services.php:112 usr/local/www/status_services.php:100
+#: usr/local/www/status_services.php:98 etc/inc/service-utils.inc:657
#, php-format
msgid "%s has been restarted."
msgstr ""
#: usr/local/www/status_services.php:159 usr/local/www/status_services.php:151
+#: usr/local/www/status_services.php:149 etc/inc/service-utils.inc:544
#, php-format
msgid "%s has been started."
msgstr ""
#: usr/local/www/status_services.php:218 usr/local/www/status_services.php:214
+#: usr/local/www/status_services.php:212 etc/inc/service-utils.inc:605
#, php-format
msgid "%s has been stopped."
msgstr ""
#: usr/local/www/status_services.php:269
#: usr/local/www/widgets/widgets/services_status.widget.php:74
-#: etc/inc/service-utils.inc:247
+#: etc/inc/service-utils.inc:247 etc/inc/service-utils.inc:246
+#: etc/inc/service-utils.inc:263
msgid "NTP clock sync"
msgstr ""
#: usr/local/www/status_services.php:302
#: usr/local/www/widgets/widgets/services_status.widget.php:107
-#: etc/inc/service-utils.inc:285
+#: etc/inc/service-utils.inc:285 etc/inc/service-utils.inc:284
+#: etc/inc/service-utils.inc:301
msgid "DHCP Service"
msgstr ""
#: usr/local/www/status_services.php:309
#: usr/local/www/widgets/widgets/services_status.widget.php:114
-#: etc/inc/service-utils.inc:292
+#: etc/inc/service-utils.inc:292 etc/inc/service-utils.inc:291
+#: etc/inc/service-utils.inc:308
msgid "SNMP Service"
msgstr ""
#: usr/local/www/status_services.php:323
#: usr/local/www/widgets/widgets/services_status.widget.php:128
-#: etc/inc/service-utils.inc:306
+#: etc/inc/service-utils.inc:306 etc/inc/service-utils.inc:305
+#: etc/inc/service-utils.inc:322
msgid "UPnP Service"
msgstr ""
#: usr/local/www/status_services.php:353
#: usr/local/www/widgets/widgets/services_status.widget.php:158
-#: etc/inc/service-utils.inc:343
+#: etc/inc/service-utils.inc:343 etc/inc/service-utils.inc:342
+#: etc/inc/service-utils.inc:359
msgid "Server load balancing daemon"
msgstr ""
#: usr/local/www/status_services.php:380
#: usr/local/www/widgets/widgets/services_status.widget.php:210
-#: etc/inc/service-utils.inc:411
+#: etc/inc/service-utils.inc:411 etc/inc/service-utils.inc:410
+#: etc/inc/service-utils.inc:427
msgid "Running"
msgstr ""
#: usr/local/www/status_services.php:383
#: usr/local/www/widgets/widgets/services_status.widget.php:213
-#: etc/inc/service-utils.inc:420
+#: etc/inc/service-utils.inc:420 etc/inc/service-utils.inc:419
+#: etc/inc/service-utils.inc:437
msgid "Stopped"
msgstr ""
@@ -26582,6 +32405,8 @@ msgstr ""
#: usr/local/www/widgets/widgets/services_status.widget.php:242
#: usr/local/www/status_services.php:271
#: usr/local/www/widgets/widgets/services_status.widget.php:83
+#: usr/local/www/status_services.php:269 usr/local/www/status_services.php:110
+#: usr/local/www/widgets/widgets/services_status.widget.php:84
msgid "No services found"
msgstr ""
@@ -26594,15 +32419,18 @@ msgid "UPnP &amp; NAT-PMP Status"
msgstr ""
#: usr/local/www/status_upnp.php:67 usr/local/www/status_upnp.php:68
+#: usr/local/www/status_upnp.php:68
msgid "UPnP is currently disabled."
msgstr ""
#: usr/local/www/status_upnp.php:77 usr/local/www/status_upnp.php:78
+#: usr/local/www/status_upnp.php:78
msgid "all currently connected sessions"
msgstr ""
#: usr/local/www/diag_arp.php:261 usr/local/www/fbegin.inc:206
-#: usr/local/www/fbegin.inc:214 usr/local/www/diag_arp.php:261
+#: usr/local/www/fbegin.inc:214 usr/local/www/fbegin.inc:205
+#: usr/local/www/diag_arp.php:261 usr/local/www/fbegin.inc:205
msgid "ARP Table"
msgstr ""
@@ -26615,14 +32443,15 @@ msgstr ""
#: usr/local/www/services_dyndns_edit.php:158
#: usr/local/www/services_dyndns_edit.php:92
#: usr/local/www/services_dyndns_edit.php:216
-#: usr/local/www/services_dyndns_edit.php:92
-#: usr/local/www/services_dyndns_edit.php:216
+#: usr/local/www/services_dyndns_edit.php:220
+#: usr/local/www/services_dyndns_edit.php:93
+#: usr/local/www/services_dyndns_edit.php:222
msgid "Service type"
msgstr ""
#: usr/local/www/services_dyndns_edit.php:92
#: usr/local/www/services_dyndns_edit.php:108
-#: usr/local/www/services_dyndns_edit.php:108
+#: usr/local/www/services_dyndns_edit.php:109
msgid "The MX contains invalid characters."
msgstr ""
@@ -26630,15 +32459,18 @@ msgstr ""
#: usr/local/www/services_dyndns_edit.php:147
#: usr/local/www/services_dyndns_edit.php:156
#: usr/local/www/services_dyndns_edit.php:205
-#: usr/local/www/services_dyndns_edit.php:156
-#: usr/local/www/services_dyndns_edit.php:205
+#: usr/local/www/services_dyndns_edit.php:160
+#: usr/local/www/services_dyndns_edit.php:209
+#: usr/local/www/services_dyndns_edit.php:162
+#: usr/local/www/services_dyndns_edit.php:211
msgid "Dynamic DNS client"
msgstr ""
#: usr/local/www/services_dyndns_edit.php:154
#: usr/local/www/services_rfc2136_edit.php:188
#: usr/local/www/services_dyndns_edit.php:212
-#: usr/local/www/services_dyndns_edit.php:212
+#: usr/local/www/services_dyndns_edit.php:216
+#: usr/local/www/services_dyndns_edit.php:218
#: usr/local/www/services_rfc2136_edit.php:188
msgid "yes"
msgstr ""
@@ -26646,39 +32478,45 @@ msgstr ""
#: usr/local/www/services_dyndns_edit.php:172
#: usr/local/www/services_rfc2136_edit.php:134
#: usr/local/www/services_dyndns_edit.php:230
-#: usr/local/www/services_dyndns_edit.php:230
+#: usr/local/www/services_dyndns_edit.php:234
+#: usr/local/www/services_dyndns_edit.php:236
#: usr/local/www/services_rfc2136_edit.php:134
msgid "Interface to monitor"
msgstr ""
#: usr/local/www/services_dyndns_edit.php:191
#: usr/local/www/services_dyndns_edit.php:274
-#: usr/local/www/services_dyndns_edit.php:274
+#: usr/local/www/services_dyndns_edit.php:278
+#: usr/local/www/services_dyndns_edit.php:280
msgid "Enter the complete host/domain name. example: myhost.dyndns.org"
msgstr ""
#: usr/local/www/services_dyndns_edit.php:192
#: usr/local/www/services_dyndns_edit.php:275
-#: usr/local/www/services_dyndns_edit.php:275
+#: usr/local/www/services_dyndns_edit.php:279
+#: usr/local/www/services_dyndns_edit.php:281
msgid "For he.net tunnelbroker, enter your tunnel ID"
msgstr ""
#: usr/local/www/services_dyndns_edit.php:197
#: usr/local/www/services_dyndns_edit.php:280
-#: usr/local/www/services_dyndns_edit.php:280
+#: usr/local/www/services_dyndns_edit.php:284
+#: usr/local/www/services_dyndns_edit.php:286
msgid "MX"
msgstr ""
#: usr/local/www/services_dyndns_edit.php:201
#: usr/local/www/services_dyndns_edit.php:284
-#: usr/local/www/services_dyndns_edit.php:284
+#: usr/local/www/services_dyndns_edit.php:288
+#: usr/local/www/services_dyndns_edit.php:290
msgid ""
"Note: With DynDNS service you can only use a hostname, not an IP address."
msgstr ""
#: usr/local/www/services_dyndns_edit.php:203
#: usr/local/www/services_dyndns_edit.php:286
-#: usr/local/www/services_dyndns_edit.php:286
+#: usr/local/www/services_dyndns_edit.php:290
+#: usr/local/www/services_dyndns_edit.php:292
msgid ""
"Set this option only if you need a special MX record. Not all services "
"support this."
@@ -26686,19 +32524,23 @@ msgstr ""
#: usr/local/www/services_dyndns_edit.php:207
#: usr/local/www/services_dyndns_edit.php:290
-#: usr/local/www/services_dyndns_edit.php:290
+#: usr/local/www/services_dyndns_edit.php:294
+#: usr/local/www/services_dyndns_edit.php:296
msgid "Wildcards"
msgstr ""
#: usr/local/www/services_dyndns_edit.php:210
#: usr/local/www/services_dyndns_edit.php:293
-#: usr/local/www/services_dyndns_edit.php:293
+#: usr/local/www/services_dyndns_edit.php:297
+#: usr/local/www/services_dyndns_edit.php:299
+#: usr/local/www/services_dyndns_edit.php:305
msgid "Enable "
msgstr ""
#: usr/local/www/services_dyndns_edit.php:210
#: usr/local/www/services_dyndns_edit.php:293
-#: usr/local/www/services_dyndns_edit.php:293
+#: usr/local/www/services_dyndns_edit.php:297
+#: usr/local/www/services_dyndns_edit.php:299
msgid "Wildcard"
msgstr ""
@@ -26708,7 +32550,8 @@ msgstr ""
#: usr/local/www/services_dyndns_edit.php:224
#: usr/local/www/services_dyndns_edit.php:309
-#: usr/local/www/services_dyndns_edit.php:309
+#: usr/local/www/services_dyndns_edit.php:313
+#: usr/local/www/services_dyndns_edit.php:321
msgid ""
"FreeDNS (freedns.afraid.org): Enter your \"Authentication Token\" provided "
"by FreeDNS."
@@ -26716,7 +32559,8 @@ msgstr ""
#: usr/local/www/services_dyndns_edit.php:246
#: usr/local/www/services_dyndns_edit.php:377
-#: usr/local/www/services_dyndns_edit.php:377
+#: usr/local/www/services_dyndns_edit.php:381
+#: usr/local/www/services_dyndns_edit.php:389
#, php-format
msgid ""
"You must configure a DNS server in %sSystem:\n"
@@ -26844,15 +32688,19 @@ msgstr ""
#: usr/local/www/services_rfc2136.php:99
#: usr/local/www/vpn_openvpn_client.php:894
#: usr/local/www/vpn_openvpn_client.php:899
-#: usr/local/www/services_rfc2136.php:99
#: usr/local/www/vpn_openvpn_client.php:952
+#: usr/local/www/services_rfc2136.php:118
+#: usr/local/www/vpn_openvpn_client.php:971
+#: usr/local/www/services_rfc2136.php:118
+#: usr/local/www/vpn_openvpn_client.php:971
msgid "Do you really want to delete this client?"
msgstr ""
#: usr/local/www/services_rfc2136_edit.php:71
#: usr/local/www/services_rfc2136_edit.php:153
#: usr/local/www/services_dyndns_edit.php:348
-#: usr/local/www/services_dyndns_edit.php:348
+#: usr/local/www/services_dyndns_edit.php:352
+#: usr/local/www/services_dyndns_edit.php:360
#: usr/local/www/services_rfc2136_edit.php:71
#: usr/local/www/services_rfc2136_edit.php:153
msgid "TTL"
@@ -26904,8 +32752,9 @@ msgstr ""
#: usr/local/www/services_rfc2136_edit.php:168
#: usr/local/www/services_captiveportal_zones.php:52
-#: usr/local/www/services_rfc2136_edit.php:168
#: usr/local/www/services_captiveportal_zones.php:53
+#: usr/local/www/services_captiveportal_zones.php:53
+#: usr/local/www/services_rfc2136_edit.php:168
msgid "Zone"
msgstr ""
@@ -26935,11 +32784,17 @@ msgstr ""
#: usr/local/www/status_captiveportal_test.php:82
#: usr/local/www/status_captiveportal_test.php:83
+#: usr/local/www/status_captiveportal_expire.php:82
+#: usr/local/www/status_captiveportal_test.php:84
+#: usr/local/www/status_captiveportal_expire.php:82
+#: usr/local/www/status_captiveportal_test.php:84
msgid "Voucher(s)"
msgstr ""
#: usr/local/www/status_captiveportal_test.php:86
#: usr/local/www/status_captiveportal_test.php:87
+#: usr/local/www/status_captiveportal_test.php:88
+#: usr/local/www/status_captiveportal_test.php:88
msgid ""
"Enter multiple vouchers separated by space or newline. The remaining time, "
"if valid, will be shown for each voucher"
@@ -26947,51 +32802,71 @@ msgstr ""
#: usr/local/www/status_captiveportal_voucher_rolls.php:85
#: usr/local/www/status_captiveportal_voucher_rolls.php:86
+#: usr/local/www/status_captiveportal_voucher_rolls.php:88
+#: usr/local/www/status_captiveportal_voucher_rolls.php:88
msgid "Roll#"
msgstr ""
#: usr/local/www/status_captiveportal_voucher_rolls.php:87
#: usr/local/www/status_captiveportal_voucher_rolls.php:88
+#: usr/local/www/status_captiveportal_voucher_rolls.php:90
+#: usr/local/www/status_captiveportal_voucher_rolls.php:90
msgid "# of Tickets"
msgstr ""
#: usr/local/www/status_captiveportal_voucher_rolls.php:89
#: usr/local/www/status_captiveportal_voucher_rolls.php:90
+#: usr/local/www/status_captiveportal_voucher_rolls.php:92
+#: usr/local/www/status_captiveportal_voucher_rolls.php:92
msgid "used"
msgstr ""
#: usr/local/www/status_captiveportal_voucher_rolls.php:90
#: usr/local/www/status_captiveportal_voucher_rolls.php:91
+#: usr/local/www/status_captiveportal_voucher_rolls.php:93
+#: usr/local/www/status_captiveportal_voucher_rolls.php:93
msgid "active"
msgstr ""
#: usr/local/www/status_captiveportal_voucher_rolls.php:91
#: usr/local/www/status_captiveportal_voucher_rolls.php:92
+#: usr/local/www/status_captiveportal_voucher_rolls.php:94
+#: usr/local/www/status_captiveportal_voucher_rolls.php:94
msgid "ready"
msgstr ""
#: usr/local/www/status_captiveportal_vouchers.php:115
#: usr/local/www/status_captiveportal_vouchers.php:116
+#: usr/local/www/status_captiveportal_vouchers.php:121
+#: usr/local/www/status_captiveportal_vouchers.php:121
msgid "Voucher"
msgstr ""
#: usr/local/www/status_captiveportal_vouchers.php:117
#: usr/local/www/status_captiveportal_vouchers.php:118
+#: usr/local/www/status_captiveportal_vouchers.php:123
+#: usr/local/www/status_captiveportal_vouchers.php:123
msgid "Activated at"
msgstr ""
#: usr/local/www/status_captiveportal_vouchers.php:118
#: usr/local/www/status_captiveportal_vouchers.php:119
+#: usr/local/www/status_captiveportal_vouchers.php:124
+#: usr/local/www/status_captiveportal_vouchers.php:124
msgid "Expires in"
msgstr ""
#: usr/local/www/status_captiveportal_vouchers.php:119
#: usr/local/www/status_captiveportal_vouchers.php:120
+#: usr/local/www/status_captiveportal_vouchers.php:125
+#: usr/local/www/status_captiveportal_vouchers.php:125
msgid "Expires at"
msgstr ""
#: usr/local/www/status_captiveportal_vouchers.php:127
#: usr/local/www/status_captiveportal_vouchers.php:128
+#: usr/local/www/status_captiveportal_vouchers.php:133
+#: usr/local/www/status_captiveportal_vouchers.php:133
msgid "min"
msgstr ""
@@ -27007,6 +32882,9 @@ msgstr ""
#: usr/local/www/status_dhcp_leases.php:308
#: usr/local/www/status_dhcpv6_leases.php:373
#: usr/local/www/status_dhcp_leases.php:310
+#: usr/local/www/status_dhcpv6_leases.php:376
+#: usr/local/www/status_dhcpv6_leases.php:376
+#: usr/local/www/status_dhcp_leases.php:310
msgid "Failover Group"
msgstr ""
@@ -27016,6 +32894,9 @@ msgstr ""
#: usr/local/www/status_dhcp_leases.php:309
#: usr/local/www/status_dhcpv6_leases.php:374
#: usr/local/www/status_dhcp_leases.php:311
+#: usr/local/www/status_dhcpv6_leases.php:377
+#: usr/local/www/status_dhcpv6_leases.php:377
+#: usr/local/www/status_dhcp_leases.php:311
msgid "My State"
msgstr ""
@@ -27029,6 +32910,11 @@ msgstr ""
#: usr/local/www/status_dhcp_leases.php:312
#: usr/local/www/status_dhcpv6_leases.php:375
#: usr/local/www/status_dhcpv6_leases.php:377
+#: usr/local/www/status_dhcp_leases.php:314
+#: usr/local/www/status_dhcpv6_leases.php:378
+#: usr/local/www/status_dhcpv6_leases.php:380
+#: usr/local/www/status_dhcpv6_leases.php:378
+#: usr/local/www/status_dhcpv6_leases.php:380
#: usr/local/www/status_dhcp_leases.php:312
#: usr/local/www/status_dhcp_leases.php:314
msgid "Since"
@@ -27040,6 +32926,9 @@ msgstr ""
#: usr/local/www/status_dhcp_leases.php:311
#: usr/local/www/status_dhcpv6_leases.php:376
#: usr/local/www/status_dhcp_leases.php:313
+#: usr/local/www/status_dhcpv6_leases.php:379
+#: usr/local/www/status_dhcpv6_leases.php:379
+#: usr/local/www/status_dhcp_leases.php:313
msgid "Peer State"
msgstr ""
@@ -27051,6 +32940,11 @@ msgstr ""
#: usr/local/www/status_dhcpv6_leases.php:409
#: usr/local/www/status_dhcpv6_leases.php:486
#: usr/local/www/status_dhcp_leases.php:345
+#: usr/local/www/status_dhcpv6_leases.php:412
+#: usr/local/www/status_dhcpv6_leases.php:489
+#: usr/local/www/status_dhcpv6_leases.php:412
+#: usr/local/www/status_dhcpv6_leases.php:489
+#: usr/local/www/status_dhcp_leases.php:345
msgid "End"
msgstr ""
@@ -27065,7 +32959,12 @@ msgstr ""
#: usr/local/www/status_gateways.php:128 usr/local/www/status_gateways.php:132
#: usr/local/www/status_dhcp_leases.php:346
#: usr/local/www/status_gateway_groups.php:133
+#: usr/local/www/status_dhcpv6_leases.php:413
+#: usr/local/www/status_dhcpv6_leases.php:413
+#: usr/local/www/status_dhcp_leases.php:346
+#: usr/local/www/status_gateway_groups.php:133
#: usr/local/www/widgets/widgets/wake_on_lan.widget.php:57
+#: usr/local/www/status_gateways.php:128 usr/local/www/status_gateways.php:132
msgid "Online"
msgstr ""
@@ -27075,12 +32974,16 @@ msgstr ""
#: usr/local/www/status_dhcp_leases.php:345
#: usr/local/www/status_dhcpv6_leases.php:411
#: usr/local/www/status_dhcp_leases.php:347
+#: usr/local/www/status_dhcpv6_leases.php:414
+#: usr/local/www/status_dhcpv6_leases.php:414
+#: usr/local/www/status_dhcp_leases.php:347
msgid "Lease Type"
msgstr ""
#: usr/local/www/status_dhcp_leases.php:368
#: usr/local/www/status_dhcp_leases.php:389
#: usr/local/www/status_dhcp_leases.php:393
+#: usr/local/www/status_dhcp_leases.php:393
msgid "send Wake on LAN packet to this MAC address"
msgstr ""
@@ -27090,12 +32993,16 @@ msgstr ""
#: usr/local/www/status_dhcp_leases.php:411
#: usr/local/www/status_dhcpv6_leases.php:462
#: usr/local/www/status_dhcp_leases.php:415
+#: usr/local/www/status_dhcpv6_leases.php:465
+#: usr/local/www/status_dhcpv6_leases.php:465
+#: usr/local/www/status_dhcp_leases.php:415
msgid "add a static mapping for this MAC address"
msgstr ""
#: usr/local/www/status_dhcp_leases.php:397
#: usr/local/www/status_dhcp_leases.php:418
#: usr/local/www/status_dhcp_leases.php:422
+#: usr/local/www/status_dhcp_leases.php:422
msgid "add a Wake on LAN mapping for this MAC address"
msgstr ""
@@ -27105,6 +33012,9 @@ msgstr ""
#: usr/local/www/status_dhcp_leases.php:423
#: usr/local/www/status_dhcpv6_leases.php:471
#: usr/local/www/status_dhcp_leases.php:427
+#: usr/local/www/status_dhcpv6_leases.php:474
+#: usr/local/www/status_dhcpv6_leases.php:474
+#: usr/local/www/status_dhcp_leases.php:427
msgid "delete this DHCP lease"
msgstr ""
@@ -27114,6 +33024,9 @@ msgstr ""
#: usr/local/www/status_dhcp_leases.php:436
#: usr/local/www/status_dhcpv6_leases.php:541
#: usr/local/www/status_dhcp_leases.php:440
+#: usr/local/www/status_dhcpv6_leases.php:544
+#: usr/local/www/status_dhcpv6_leases.php:544
+#: usr/local/www/status_dhcp_leases.php:440
msgid "Show active and static leases only"
msgstr ""
@@ -27123,6 +33036,9 @@ msgstr ""
#: usr/local/www/status_dhcp_leases.php:439
#: usr/local/www/status_dhcpv6_leases.php:544
#: usr/local/www/status_dhcp_leases.php:443
+#: usr/local/www/status_dhcpv6_leases.php:547
+#: usr/local/www/status_dhcpv6_leases.php:547
+#: usr/local/www/status_dhcp_leases.php:443
msgid "Show all configured leases"
msgstr ""
@@ -27132,11 +33048,15 @@ msgstr ""
#: usr/local/www/status_dhcp_leases.php:443
#: usr/local/www/status_dhcpv6_leases.php:548
#: usr/local/www/status_dhcp_leases.php:447
+#: usr/local/www/status_dhcpv6_leases.php:551
+#: usr/local/www/status_dhcpv6_leases.php:551
+#: usr/local/www/status_dhcp_leases.php:447
msgid "No leases file found. Is the DHCP server active"
msgstr ""
#: usr/local/www/status_gateway_groups.php:100
#: usr/local/www/status_gateway_groups.php:101
+#: usr/local/www/status_gateway_groups.php:101
#, php-format
msgid "Tier %s"
msgstr ""
@@ -27144,12 +33064,16 @@ msgstr ""
#: usr/local/www/status_gateway_groups.php:126
#: usr/local/www/status_gateways.php:121 usr/local/www/status_gateways.php:122
#: usr/local/www/status_gateway_groups.php:127
+#: usr/local/www/status_gateway_groups.php:127
+#: usr/local/www/status_gateways.php:122
msgid "Warning, Packetloss"
msgstr ""
#: usr/local/www/status_gateway_groups.php:129
#: usr/local/www/status_gateways.php:124 usr/local/www/status_gateways.php:125
#: usr/local/www/status_gateway_groups.php:130
+#: usr/local/www/status_gateway_groups.php:130
+#: usr/local/www/status_gateways.php:125
msgid "Warning, Latency"
msgstr ""
@@ -27160,14 +33084,17 @@ msgstr ""
#: usr/local/www/widgets/widgets/gateways.widget.php:77
#: usr/local/www/widgets/widgets/gateways.widget.php:98
#: usr/local/www/status_gateway_groups.php:136
+#: usr/local/www/status_gateway_groups.php:136
msgid "Gathering data"
msgstr ""
#: usr/local/www/status_gateways.php:75 usr/local/www/status_gateways.php:76
+#: usr/local/www/status_gateways.php:76
msgid "RTT"
msgstr ""
#: usr/local/www/status_gateways.php:76 usr/local/www/status_gateways.php:77
+#: usr/local/www/status_gateways.php:77
msgid "Loss"
msgstr ""
@@ -27197,15 +33124,24 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:475
#: usr/local/www/vpn_ipsec_phase2.php:453
#: usr/local/www/vpn_ipsec_phase2.php:495
-#: usr/local/www/vpn_ipsec_phase2.php:501 usr/local/www/status_lb_vs.php:78
+#: usr/local/www/vpn_ipsec_phase2.php:501
#: usr/local/www/vpn_ipsec_phase2.php:519
#: usr/local/www/vpn_ipsec_phase2.php:555
#: usr/local/www/vpn_ipsec_phase2.php:597
#: usr/local/www/vpn_ipsec_phase2.php:603
+#: usr/local/www/vpn_ipsec_phase2.php:541
+#: usr/local/www/vpn_ipsec_phase2.php:576
+#: usr/local/www/vpn_ipsec_phase2.php:618
+#: usr/local/www/vpn_ipsec_phase2.php:624 usr/local/www/status_lb_vs.php:78
+#: usr/local/www/vpn_ipsec_phase2.php:541
+#: usr/local/www/vpn_ipsec_phase2.php:576
+#: usr/local/www/vpn_ipsec_phase2.php:618
+#: usr/local/www/vpn_ipsec_phase2.php:624
msgid "Address"
msgstr ""
#: usr/local/www/status_openvpn.php:145 usr/local/www/status_openvpn.php:146
+#: usr/local/www/status_openvpn.php:147
msgid "Client connections"
msgstr ""
@@ -27216,68 +33152,89 @@ msgstr ""
#: usr/local/www/system_certmanager.php:743
#: usr/local/www/system_certmanager.php:896
#: usr/local/www/system_camanager.php:535 usr/local/www/status_openvpn.php:153
-#: usr/local/www/system_certmanager.php:743
-#: usr/local/www/system_certmanager.php:896
#: usr/local/www/vpn_openvpn_csc.php:672
-#: usr/local/www/system_camanager.php:535
+#: usr/local/www/system_camanager.php:559 usr/local/www/status_openvpn.php:214
+#: usr/local/www/system_certmanager.php:768
+#: usr/local/www/system_certmanager.php:938
+#: usr/local/www/system_camanager.php:559 usr/local/www/status_openvpn.php:154
+#: usr/local/www/status_openvpn.php:224 usr/local/www/vpn_openvpn_csc.php:672
+#: usr/local/www/system_certmanager.php:769
+#: usr/local/www/system_certmanager.php:942
msgid "Common Name"
msgstr ""
#: usr/local/www/status_openvpn.php:153 usr/local/www/status_openvpn.php:154
+#: usr/local/www/status_openvpn.php:215 usr/local/www/status_openvpn.php:155
+#: usr/local/www/status_openvpn.php:225
msgid "Real Address"
msgstr ""
#: usr/local/www/status_openvpn.php:154 usr/local/www/status_openvpn.php:155
+#: usr/local/www/status_openvpn.php:156
msgid "Virtual Address"
msgstr ""
#: usr/local/www/status_openvpn.php:155 usr/local/www/status_openvpn.php:213
#: usr/local/www/status_openvpn.php:264 usr/local/www/status_openvpn.php:156
#: usr/local/www/status_openvpn.php:216 usr/local/www/status_openvpn.php:267
+#: usr/local/www/status_openvpn.php:315 usr/local/www/status_openvpn.php:157
+#: usr/local/www/status_openvpn.php:274 usr/local/www/status_openvpn.php:335
msgid "Connected Since"
msgstr ""
#: usr/local/www/status_openvpn.php:156 usr/local/www/status_openvpn.php:216
#: usr/local/www/status_openvpn.php:267 usr/local/www/status_openvpn.php:157
#: usr/local/www/status_openvpn.php:219 usr/local/www/status_openvpn.php:270
+#: usr/local/www/status_openvpn.php:318 usr/local/www/status_openvpn.php:158
+#: usr/local/www/status_openvpn.php:277 usr/local/www/status_openvpn.php:338
msgid "Bytes Sent"
msgstr ""
#: usr/local/www/status_openvpn.php:157 usr/local/www/status_openvpn.php:217
#: usr/local/www/status_openvpn.php:268 usr/local/www/status_openvpn.php:158
#: usr/local/www/status_openvpn.php:220 usr/local/www/status_openvpn.php:271
+#: usr/local/www/status_openvpn.php:319 usr/local/www/status_openvpn.php:159
msgid "Bytes Received"
msgstr ""
#: usr/local/www/status_openvpn.php:184 usr/local/www/status_openvpn.php:185
+#: usr/local/www/status_openvpn.php:186
msgid "Kill client connection from"
msgstr ""
#: usr/local/www/status_openvpn.php:205 usr/local/www/status_openvpn.php:208
+#: usr/local/www/status_openvpn.php:256 usr/local/www/status_openvpn.php:266
msgid "Peer to Peer Server Instance Statistics"
msgstr ""
#: usr/local/www/status_openvpn.php:214 usr/local/www/status_openvpn.php:265
#: usr/local/www/status_openvpn.php:217 usr/local/www/status_openvpn.php:268
+#: usr/local/www/status_openvpn.php:316 usr/local/www/status_openvpn.php:275
+#: usr/local/www/status_openvpn.php:336
msgid "Virtual Addr"
msgstr ""
#: usr/local/www/status_openvpn.php:215 usr/local/www/status_openvpn.php:266
#: usr/local/www/status_openvpn.php:218 usr/local/www/status_openvpn.php:269
+#: usr/local/www/status_openvpn.php:317 usr/local/www/status_openvpn.php:276
+#: usr/local/www/status_openvpn.php:337
msgid "Remote Host"
msgstr ""
#: usr/local/www/status_openvpn.php:256 usr/local/www/status_openvpn.php:259
+#: usr/local/www/status_openvpn.php:307 usr/local/www/status_openvpn.php:327
msgid "Client Instance Statistics"
msgstr ""
#: usr/local/www/status_openvpn.php:304 usr/local/www/status_openvpn.php:307
+#: usr/local/www/status_openvpn.php:355
msgid ""
"You need to bind each OpenVPN client to enable its management daemon: use "
"'Local port' setting in the OpenVPN client screen"
msgstr ""
#: usr/local/www/status_openvpn.php:308 usr/local/www/status_openvpn.php:311
+#: usr/local/www/status_openvpn.php:359 usr/local/www/status_openvpn.php:389
msgid "No OpenVPN instance defined"
msgstr ""
@@ -27322,12 +33279,15 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:229
#: usr/local/www/system_advanced_notifications.php:160
#: usr/local/www/system_advanced_misc.php:232
-#: usr/local/www/system_advanced_firewall.php:229
+#: usr/local/www/system_advanced_misc.php:251
+#: usr/local/www/system_advanced_misc.php:255
+#: usr/local/www/system_advanced_firewall.php:258
#: usr/local/www/system_advanced_admin.php:274
+#: usr/local/www/system_advanced_misc.php:302
+#: usr/local/www/system_advanced_firewall.php:258
#: usr/local/www/system_advanced_notifications.php:160
-#: usr/local/www/system_advanced_misc.php:251
-#: usr/local/www/system_advanced_sysctl.php:147
#: usr/local/www/system_advanced_network.php:182
+#: usr/local/www/system_advanced_sysctl.php:147
msgid "Admin Access"
msgstr ""
@@ -27340,12 +33300,15 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:230
#: usr/local/www/system_advanced_notifications.php:161
#: usr/local/www/system_advanced_misc.php:233
-#: usr/local/www/system_advanced_firewall.php:230
+#: usr/local/www/system_advanced_misc.php:252
+#: usr/local/www/system_advanced_misc.php:256
+#: usr/local/www/system_advanced_firewall.php:259
#: usr/local/www/system_advanced_admin.php:275
+#: usr/local/www/system_advanced_misc.php:303
+#: usr/local/www/system_advanced_firewall.php:259
#: usr/local/www/system_advanced_notifications.php:161
-#: usr/local/www/system_advanced_misc.php:252
-#: usr/local/www/system_advanced_sysctl.php:148
#: usr/local/www/system_advanced_network.php:183
+#: usr/local/www/system_advanced_sysctl.php:148
msgid "Firewall / NAT"
msgstr ""
@@ -27358,12 +33321,15 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:231
#: usr/local/www/system_advanced_notifications.php:162
#: usr/local/www/system_advanced_misc.php:234
-#: usr/local/www/system_advanced_firewall.php:231
+#: usr/local/www/system_advanced_misc.php:253
+#: usr/local/www/system_advanced_misc.php:257
+#: usr/local/www/system_advanced_firewall.php:260
#: usr/local/www/system_advanced_admin.php:276
+#: usr/local/www/system_advanced_misc.php:304
+#: usr/local/www/system_advanced_firewall.php:260
#: usr/local/www/system_advanced_notifications.php:162
-#: usr/local/www/system_advanced_misc.php:253
-#: usr/local/www/system_advanced_sysctl.php:149
#: usr/local/www/system_advanced_network.php:184
+#: usr/local/www/system_advanced_sysctl.php:149
msgid "Networking"
msgstr ""
@@ -27376,12 +33342,15 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:232
#: usr/local/www/system_advanced_notifications.php:163
#: usr/local/www/system_advanced_misc.php:235
-#: usr/local/www/system_advanced_firewall.php:232
+#: usr/local/www/system_advanced_misc.php:254
+#: usr/local/www/system_advanced_misc.php:258
+#: usr/local/www/system_advanced_firewall.php:261
#: usr/local/www/system_advanced_admin.php:277
+#: usr/local/www/system_advanced_misc.php:305
+#: usr/local/www/system_advanced_firewall.php:261
#: usr/local/www/system_advanced_notifications.php:163
-#: usr/local/www/system_advanced_misc.php:254
-#: usr/local/www/system_advanced_sysctl.php:150
#: usr/local/www/system_advanced_network.php:185
+#: usr/local/www/system_advanced_sysctl.php:150
msgid "Miscellaneous"
msgstr ""
@@ -27394,12 +33363,15 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:233
#: usr/local/www/system_advanced_notifications.php:164
#: usr/local/www/system_advanced_misc.php:236
-#: usr/local/www/system_advanced_firewall.php:233
+#: usr/local/www/system_advanced_misc.php:255
+#: usr/local/www/system_advanced_misc.php:259
+#: usr/local/www/system_advanced_firewall.php:262
#: usr/local/www/system_advanced_admin.php:278
+#: usr/local/www/system_advanced_misc.php:306
+#: usr/local/www/system_advanced_firewall.php:262
#: usr/local/www/system_advanced_notifications.php:164
-#: usr/local/www/system_advanced_misc.php:255
-#: usr/local/www/system_advanced_sysctl.php:151
#: usr/local/www/system_advanced_network.php:186
+#: usr/local/www/system_advanced_sysctl.php:151
msgid "System Tunables"
msgstr ""
@@ -27412,12 +33384,15 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:234
#: usr/local/www/system_advanced_notifications.php:165
#: usr/local/www/system_advanced_misc.php:237
-#: usr/local/www/system_advanced_firewall.php:234
+#: usr/local/www/system_advanced_misc.php:256
+#: usr/local/www/system_advanced_misc.php:260
+#: usr/local/www/system_advanced_firewall.php:263
#: usr/local/www/system_advanced_admin.php:279
+#: usr/local/www/system_advanced_misc.php:307
+#: usr/local/www/system_advanced_firewall.php:263
#: usr/local/www/system_advanced_notifications.php:165
-#: usr/local/www/system_advanced_misc.php:256
-#: usr/local/www/system_advanced_sysctl.php:152
#: usr/local/www/system_advanced_network.php:187
+#: usr/local/www/system_advanced_sysctl.php:152
msgid "Notifications"
msgstr ""
@@ -27442,8 +33417,10 @@ msgid "a Certificate before SSL can be enabled."
msgstr ""
#: usr/local/www/system_advanced_admin.php:324
-#: usr/local/www/system_advanced_admin.php:324
#: usr/local/www/services_captiveportal.php:872
+#: usr/local/www/services_captiveportal.php:874
+#: usr/local/www/system_advanced_admin.php:324
+#: usr/local/www/services_captiveportal.php:890
msgid "SSL Certificate"
msgstr ""
@@ -27605,7 +33582,6 @@ msgid "Disable HTTP_REFERER enforcement check"
msgstr ""
#: usr/local/www/system_advanced_admin.php:447
-#: usr/local/www/system_advanced_admin.php:447
msgid ""
"When this is unchecked, access to the webConfigurator is protected against "
"HTTP_REFERER redirection attempts. Check this box to disable this protection "
@@ -27737,43 +33713,50 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:78
#: usr/local/www/system_advanced_firewall.php:77
-#: usr/local/www/system_advanced_firewall.php:77
+#: usr/local/www/system_advanced_firewall.php:88
+#: usr/local/www/system_advanced_firewall.php:88
msgid "The Firewall Maximum States value must be an integer."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:81
#: usr/local/www/system_advanced_firewall.php:83
-#: usr/local/www/system_advanced_firewall.php:83
+#: usr/local/www/system_advanced_firewall.php:94
+#: usr/local/www/system_advanced_firewall.php:94
msgid "The Firewall Maximum Table Entries value must be an integer."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:84
#: usr/local/www/system_advanced_firewall.php:86
-#: usr/local/www/system_advanced_firewall.php:86
+#: usr/local/www/system_advanced_firewall.php:97
+#: usr/local/www/system_advanced_firewall.php:97
msgid "The TCP idle timeout must be an integer."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:87
#: usr/local/www/system_advanced_firewall.php:89
-#: usr/local/www/system_advanced_firewall.php:89
+#: usr/local/www/system_advanced_firewall.php:100
+#: usr/local/www/system_advanced_firewall.php:100
msgid "The Reflection timeout must be an integer."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:178
#: usr/local/www/system_advanced_firewall.php:192
-#: usr/local/www/system_advanced_firewall.php:192
+#: usr/local/www/system_advanced_firewall.php:221
+#: usr/local/www/system_advanced_firewall.php:221
msgid "Advanced: Firewall and NAT"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:190
#: usr/local/www/system_advanced_firewall.php:204
-#: usr/local/www/system_advanced_firewall.php:204
+#: usr/local/www/system_advanced_firewall.php:233
+#: usr/local/www/system_advanced_firewall.php:233
msgid "as the name says, it's the normal optimization algorithm"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:191
#: usr/local/www/system_advanced_firewall.php:205
-#: usr/local/www/system_advanced_firewall.php:205
+#: usr/local/www/system_advanced_firewall.php:234
+#: usr/local/www/system_advanced_firewall.php:234
msgid ""
"used for high latency links, such as satellite links. Expires idle "
"connections later than default"
@@ -27795,25 +33778,29 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:239
#: usr/local/www/system_advanced_firewall.php:253
-#: usr/local/www/system_advanced_firewall.php:253
+#: usr/local/www/system_advanced_firewall.php:282
+#: usr/local/www/system_advanced_firewall.php:281
msgid "Firewall Advanced"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:242
#: usr/local/www/system_advanced_firewall.php:256
-#: usr/local/www/system_advanced_firewall.php:256
+#: usr/local/www/system_advanced_firewall.php:285
+#: usr/local/www/system_advanced_firewall.php:284
msgid "IP Do-Not-Fragment compatibility"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:245
#: usr/local/www/system_advanced_firewall.php:259
-#: usr/local/www/system_advanced_firewall.php:259
+#: usr/local/www/system_advanced_firewall.php:288
+#: usr/local/www/system_advanced_firewall.php:287
msgid "Clear invalid DF bits instead of dropping the packets"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:246
#: usr/local/www/system_advanced_firewall.php:260
-#: usr/local/www/system_advanced_firewall.php:260
+#: usr/local/www/system_advanced_firewall.php:289
+#: usr/local/www/system_advanced_firewall.php:288
msgid ""
"This allows for communications with hosts that generate fragmented packets "
"with the don't fragment (DF) bit set. Linux NFS is known to do this. This "
@@ -27823,20 +33810,23 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:253
#: usr/local/www/system_advanced_firewall.php:267
-#: usr/local/www/system_advanced_firewall.php:267
+#: usr/local/www/system_advanced_firewall.php:296
+#: usr/local/www/system_advanced_firewall.php:295
msgid "IP Random id generation"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:256
#: usr/local/www/system_advanced_firewall.php:270
-#: usr/local/www/system_advanced_firewall.php:270
+#: usr/local/www/system_advanced_firewall.php:299
+#: usr/local/www/system_advanced_firewall.php:298
msgid ""
"Insert a stronger id into IP header of packets passing through the filter."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:257
#: usr/local/www/system_advanced_firewall.php:271
-#: usr/local/www/system_advanced_firewall.php:271
+#: usr/local/www/system_advanced_firewall.php:300
+#: usr/local/www/system_advanced_firewall.php:299
msgid ""
"Replaces the IP identification field of packets with random values to "
"compensate for operating systems that use predictable values. This option "
@@ -27846,86 +33836,100 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:264
#: usr/local/www/system_advanced_firewall.php:278
-#: usr/local/www/system_advanced_firewall.php:278
+#: usr/local/www/system_advanced_firewall.php:307
+#: usr/local/www/system_advanced_firewall.php:306
msgid "Firewall Optimization Options"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:267
#: usr/local/www/system_advanced_firewall.php:281
-#: usr/local/www/system_advanced_firewall.php:281
+#: usr/local/www/system_advanced_firewall.php:310
+#: usr/local/www/system_advanced_firewall.php:309
msgid "normal"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:268
#: usr/local/www/system_advanced_firewall.php:282
-#: usr/local/www/system_advanced_firewall.php:282
+#: usr/local/www/system_advanced_firewall.php:311
+#: usr/local/www/system_advanced_firewall.php:310
msgid "high-latency"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:269
#: usr/local/www/system_advanced_firewall.php:283
-#: usr/local/www/system_advanced_firewall.php:283
+#: usr/local/www/system_advanced_firewall.php:312
+#: usr/local/www/system_advanced_firewall.php:311
msgid "aggressive"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:270
#: usr/local/www/system_advanced_firewall.php:284
-#: usr/local/www/system_advanced_firewall.php:284
+#: usr/local/www/system_advanced_firewall.php:313
+#: usr/local/www/system_advanced_firewall.php:312
msgid "conservative"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:278
#: usr/local/www/system_advanced_firewall.php:292
-#: usr/local/www/system_advanced_firewall.php:292
+#: usr/local/www/system_advanced_firewall.php:321
+#: usr/local/www/system_advanced_firewall.php:322
msgid "Select the type of state table optimization to use"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:282
#: usr/local/www/system_advanced_firewall.php:296
-#: usr/local/www/system_advanced_firewall.php:296
+#: usr/local/www/system_advanced_firewall.php:325
+#: usr/local/www/system_advanced_firewall.php:326
msgid "Disable Firewall"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:285
#: usr/local/www/system_advanced_firewall.php:299
-#: usr/local/www/system_advanced_firewall.php:299
+#: usr/local/www/system_advanced_firewall.php:328
+#: usr/local/www/system_advanced_firewall.php:329
msgid "Disable all packet filtering."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:287
#: usr/local/www/system_advanced_firewall.php:301
-#: usr/local/www/system_advanced_firewall.php:301
+#: usr/local/www/system_advanced_firewall.php:330
+#: usr/local/www/system_advanced_firewall.php:331
#, php-format
msgid "Note: This converts %s into a routing only platform!"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:288
#: usr/local/www/system_advanced_firewall.php:302
-#: usr/local/www/system_advanced_firewall.php:302
+#: usr/local/www/system_advanced_firewall.php:331
+#: usr/local/www/system_advanced_firewall.php:332
msgid "Note: This will also turn off NAT!"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:289
#: usr/local/www/system_advanced_firewall.php:303
-#: usr/local/www/system_advanced_firewall.php:303
+#: usr/local/www/system_advanced_firewall.php:332
+#: usr/local/www/system_advanced_firewall.php:333
msgid "If you only want to disable NAT, and not firewall rules, visit the"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:289
#: usr/local/www/system_advanced_firewall.php:303
-#: usr/local/www/system_advanced_firewall.php:303
+#: usr/local/www/system_advanced_firewall.php:332
+#: usr/local/www/system_advanced_firewall.php:333
msgid "Outbound NAT"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:294
#: usr/local/www/system_advanced_firewall.php:308
-#: usr/local/www/system_advanced_firewall.php:308
+#: usr/local/www/system_advanced_firewall.php:337
+#: usr/local/www/system_advanced_firewall.php:338
msgid "Disable Firewall Scrub"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:297
#: usr/local/www/system_advanced_firewall.php:311
-#: usr/local/www/system_advanced_firewall.php:311
+#: usr/local/www/system_advanced_firewall.php:340
+#: usr/local/www/system_advanced_firewall.php:341
msgid ""
"Disables the PF scrubbing option which can sometimes interfere with NFS and "
"PPTP traffic."
@@ -27933,32 +33937,37 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:302
#: usr/local/www/system_advanced_firewall.php:316
-#: usr/local/www/system_advanced_firewall.php:316
+#: usr/local/www/system_advanced_firewall.php:360
+#: usr/local/www/system_advanced_firewall.php:361
msgid "Firewall Maximum States"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:306
#: usr/local/www/system_advanced_firewall.php:320
-#: usr/local/www/system_advanced_firewall.php:320
+#: usr/local/www/system_advanced_firewall.php:364
+#: usr/local/www/system_advanced_firewall.php:365
msgid "Maximum number of connections to hold in the firewall state table."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:308
#: usr/local/www/system_advanced_firewall.php:322
-#: usr/local/www/system_advanced_firewall.php:322
+#: usr/local/www/system_advanced_firewall.php:366
+#: usr/local/www/system_advanced_firewall.php:367
msgid ""
"Note: Leave this blank for the default. On your system the default size is:"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:312
#: usr/local/www/system_advanced_firewall.php:342
-#: usr/local/www/system_advanced_firewall.php:342
+#: usr/local/www/system_advanced_firewall.php:386
+#: usr/local/www/system_advanced_firewall.php:387
msgid "Firewall Maximum Table Entries"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:316
#: usr/local/www/system_advanced_firewall.php:346
-#: usr/local/www/system_advanced_firewall.php:346
+#: usr/local/www/system_advanced_firewall.php:390
+#: usr/local/www/system_advanced_firewall.php:391
msgid ""
"Maximum number of table entries for systems such as aliases, sshlockout, "
"snort, etc, combined."
@@ -27967,34 +33976,41 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:319
#: usr/local/www/system_advanced_firewall.php:334
#: usr/local/www/system_advanced_firewall.php:349
-#: usr/local/www/system_advanced_firewall.php:334
-#: usr/local/www/system_advanced_firewall.php:349
+#: usr/local/www/system_advanced_firewall.php:378
+#: usr/local/www/system_advanced_firewall.php:393
+#: usr/local/www/system_advanced_firewall.php:379
+#: usr/local/www/system_advanced_firewall.php:394
msgid "Note: Leave this blank for the default."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:321
#: usr/local/www/system_advanced_firewall.php:336
#: usr/local/www/system_advanced_firewall.php:351
-#: usr/local/www/system_advanced_firewall.php:336
-#: usr/local/www/system_advanced_firewall.php:351
+#: usr/local/www/system_advanced_firewall.php:380
+#: usr/local/www/system_advanced_firewall.php:395
+#: usr/local/www/system_advanced_firewall.php:381
+#: usr/local/www/system_advanced_firewall.php:396
msgid "On your system the default size is:"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:327
#: usr/local/www/system_advanced_firewall.php:357
-#: usr/local/www/system_advanced_firewall.php:357
+#: usr/local/www/system_advanced_firewall.php:401
+#: usr/local/www/system_advanced_firewall.php:402
msgid "Static route filtering"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:330
#: usr/local/www/system_advanced_firewall.php:360
-#: usr/local/www/system_advanced_firewall.php:360
+#: usr/local/www/system_advanced_firewall.php:404
+#: usr/local/www/system_advanced_firewall.php:405
msgid "Bypass firewall rules for traffic on the same interface"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:332
#: usr/local/www/system_advanced_firewall.php:362
-#: usr/local/www/system_advanced_firewall.php:362
+#: usr/local/www/system_advanced_firewall.php:406
+#: usr/local/www/system_advanced_firewall.php:407
msgid ""
"This option only applies if you have defined one or more static routes. If "
"it is enabled, traffic that enters and leaves through the same interface "
@@ -28004,25 +34020,29 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:342
#: usr/local/www/system_advanced_firewall.php:372
-#: usr/local/www/system_advanced_firewall.php:372
+#: usr/local/www/system_advanced_firewall.php:416
+#: usr/local/www/system_advanced_firewall.php:417
msgid "Disable all auto-added VPN rules."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:344
#: usr/local/www/system_advanced_firewall.php:374
-#: usr/local/www/system_advanced_firewall.php:374
+#: usr/local/www/system_advanced_firewall.php:418
+#: usr/local/www/system_advanced_firewall.php:419
msgid "Note: This disables automatically added rules for IPsec, PPTP."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:352
#: usr/local/www/system_advanced_firewall.php:382
-#: usr/local/www/system_advanced_firewall.php:382
+#: usr/local/www/system_advanced_firewall.php:426
+#: usr/local/www/system_advanced_firewall.php:427
msgid "Disable reply-to on WAN rules"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:354
#: usr/local/www/system_advanced_firewall.php:384
-#: usr/local/www/system_advanced_firewall.php:384
+#: usr/local/www/system_advanced_firewall.php:428
+#: usr/local/www/system_advanced_firewall.php:429
msgid ""
"With Multi-WAN you generally want to ensure traffic leaves the same "
"interface it arrives on, hence reply-to is added automatically by default. "
@@ -28032,7 +34052,8 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:364
#: usr/local/www/system_advanced_firewall.php:404
-#: usr/local/www/system_advanced_firewall.php:404
+#: usr/local/www/system_advanced_firewall.php:466
+#: usr/local/www/system_advanced_firewall.php:467
msgid "Network Address Translation"
msgstr ""
@@ -28050,7 +34071,8 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:374
#: usr/local/www/system_advanced_firewall.php:425
-#: usr/local/www/system_advanced_firewall.php:425
+#: usr/local/www/system_advanced_firewall.php:487
+#: usr/local/www/system_advanced_firewall.php:488
msgid "Reflection Timeout"
msgstr ""
@@ -28074,7 +34096,8 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:391
#: usr/local/www/system_advanced_firewall.php:448
-#: usr/local/www/system_advanced_firewall.php:448
+#: usr/local/www/system_advanced_firewall.php:510
+#: usr/local/www/system_advanced_firewall.php:511
msgid ""
"Automatically create outbound NAT rules which assist inbound NAT rules that "
"direct traffic back out to the same subnet it originated from."
@@ -28088,37 +34111,47 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:397
#: usr/local/www/system_advanced_firewall.php:456
-#: usr/local/www/system_advanced_firewall.php:456
+#: usr/local/www/system_advanced_firewall.php:518
+#: usr/local/www/system_advanced_firewall.php:519
msgid "TFTP Proxy"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:407
#: usr/local/www/system_advanced_firewall.php:466
-#: usr/local/www/system_advanced_firewall.php:466
+#: usr/local/www/system_advanced_firewall.php:528
+#: usr/local/www/system_advanced_firewall.php:529
msgid "Choose the interfaces where you want TFTP proxy helper to be enabled."
msgstr ""
#: usr/local/www/system_advanced_misc.php:179
#: usr/local/www/system_advanced_misc.php:199
#: usr/local/www/system_advanced_misc.php:218
+#: usr/local/www/system_advanced_misc.php:222
+#: usr/local/www/system_advanced_misc.php:254
msgid "Advanced: Miscellaneous"
msgstr ""
#: usr/local/www/system_advanced_misc.php:229
#: usr/local/www/system_advanced_misc.php:255
#: usr/local/www/system_advanced_misc.php:274
+#: usr/local/www/system_advanced_misc.php:278
+#: usr/local/www/system_advanced_misc.php:325
msgid "Proxy support"
msgstr ""
#: usr/local/www/system_advanced_misc.php:232
#: usr/local/www/system_advanced_misc.php:258
#: usr/local/www/system_advanced_misc.php:277
+#: usr/local/www/system_advanced_misc.php:281
+#: usr/local/www/system_advanced_misc.php:328
msgid "Proxy URL"
msgstr ""
#: usr/local/www/system_advanced_misc.php:236
#: usr/local/www/system_advanced_misc.php:262
#: usr/local/www/system_advanced_misc.php:281
+#: usr/local/www/system_advanced_misc.php:285
+#: usr/local/www/system_advanced_misc.php:332
#, php-format
msgid "Proxy url for allowing %s to use this proxy to connect outside."
msgstr ""
@@ -28126,12 +34159,16 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:240
#: usr/local/www/system_advanced_misc.php:266
#: usr/local/www/system_advanced_misc.php:285
+#: usr/local/www/system_advanced_misc.php:289
+#: usr/local/www/system_advanced_misc.php:336
msgid "Proxy Port"
msgstr ""
#: usr/local/www/system_advanced_misc.php:244
#: usr/local/www/system_advanced_misc.php:270
#: usr/local/www/system_advanced_misc.php:289
+#: usr/local/www/system_advanced_misc.php:293
+#: usr/local/www/system_advanced_misc.php:340
#, php-format
msgid ""
"Proxy port to use when %s connects to the proxy URL configured above. "
@@ -28141,12 +34178,16 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:248
#: usr/local/www/system_advanced_misc.php:274
#: usr/local/www/system_advanced_misc.php:293
+#: usr/local/www/system_advanced_misc.php:297
+#: usr/local/www/system_advanced_misc.php:344
msgid "Proxy Username"
msgstr ""
#: usr/local/www/system_advanced_misc.php:252
#: usr/local/www/system_advanced_misc.php:278
#: usr/local/www/system_advanced_misc.php:297
+#: usr/local/www/system_advanced_misc.php:301
+#: usr/local/www/system_advanced_misc.php:348
#, php-format
msgid "Proxy username for allowing %s to use this proxy to connect outside"
msgstr ""
@@ -28154,12 +34195,16 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:256
#: usr/local/www/system_advanced_misc.php:282
#: usr/local/www/system_advanced_misc.php:301
+#: usr/local/www/system_advanced_misc.php:305
+#: usr/local/www/system_advanced_misc.php:352
msgid "Proxy Pass"
msgstr ""
#: usr/local/www/system_advanced_misc.php:260
#: usr/local/www/system_advanced_misc.php:286
#: usr/local/www/system_advanced_misc.php:305
+#: usr/local/www/system_advanced_misc.php:309
+#: usr/local/www/system_advanced_misc.php:356
#, php-format
msgid "Proxy password for allowing %s to use this proxy to connect outside"
msgstr ""
@@ -28173,12 +34218,20 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:309
#: usr/local/www/system_advanced_misc.php:312
#: usr/local/www/system_advanced_misc.php:333
+#: usr/local/www/system_advanced_misc.php:313
+#: usr/local/www/system_advanced_misc.php:316
+#: usr/local/www/system_advanced_misc.php:337
+#: usr/local/www/system_advanced_misc.php:360
+#: usr/local/www/system_advanced_misc.php:363
+#: usr/local/www/system_advanced_misc.php:384
msgid "Load Balancing"
msgstr ""
#: usr/local/www/system_advanced_misc.php:270
#: usr/local/www/system_advanced_misc.php:296
#: usr/local/www/system_advanced_misc.php:315
+#: usr/local/www/system_advanced_misc.php:319
+#: usr/local/www/system_advanced_misc.php:366
msgid "Use sticky connections"
msgstr ""
@@ -28195,12 +34248,16 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:285
#: usr/local/www/system_advanced_misc.php:317
#: usr/local/www/system_advanced_misc.php:336
+#: usr/local/www/system_advanced_misc.php:340
+#: usr/local/www/system_advanced_misc.php:387
msgid "Allow default gateway switching"
msgstr ""
#: usr/local/www/system_advanced_misc.php:286
#: usr/local/www/system_advanced_misc.php:318
#: usr/local/www/system_advanced_misc.php:337
+#: usr/local/www/system_advanced_misc.php:341
+#: usr/local/www/system_advanced_misc.php:388
msgid ""
"If the link where the default gateway resides fails switch the default "
"gateway to another available one."
@@ -28209,18 +34266,24 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:294
#: usr/local/www/system_advanced_misc.php:326
#: usr/local/www/system_advanced_misc.php:345
+#: usr/local/www/system_advanced_misc.php:349
+#: usr/local/www/system_advanced_misc.php:396
msgid "Power savings"
msgstr ""
#: usr/local/www/system_advanced_misc.php:297
#: usr/local/www/system_advanced_misc.php:329
#: usr/local/www/system_advanced_misc.php:348
+#: usr/local/www/system_advanced_misc.php:352
+#: usr/local/www/system_advanced_misc.php:399
msgid "PowerD"
msgstr ""
#: usr/local/www/system_advanced_misc.php:300
#: usr/local/www/system_advanced_misc.php:332
#: usr/local/www/system_advanced_misc.php:351
+#: usr/local/www/system_advanced_misc.php:355
+#: usr/local/www/system_advanced_misc.php:402
msgid "Use PowerD"
msgstr ""
@@ -28272,24 +34335,32 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:340
#: usr/local/www/system_advanced_misc.php:383
#: usr/local/www/system_advanced_misc.php:432
+#: usr/local/www/system_advanced_misc.php:444
+#: usr/local/www/system_advanced_misc.php:491
msgid "IP Security"
msgstr ""
#: usr/local/www/system_advanced_misc.php:343
#: usr/local/www/system_advanced_misc.php:386
#: usr/local/www/system_advanced_misc.php:435
+#: usr/local/www/system_advanced_misc.php:447
+#: usr/local/www/system_advanced_misc.php:494
msgid "Security Associations"
msgstr ""
#: usr/local/www/system_advanced_misc.php:346
#: usr/local/www/system_advanced_misc.php:389
#: usr/local/www/system_advanced_misc.php:438
+#: usr/local/www/system_advanced_misc.php:450
+#: usr/local/www/system_advanced_misc.php:497
msgid "Prefer older IPsec SAs"
msgstr ""
#: usr/local/www/system_advanced_misc.php:348
#: usr/local/www/system_advanced_misc.php:391
#: usr/local/www/system_advanced_misc.php:440
+#: usr/local/www/system_advanced_misc.php:452
+#: usr/local/www/system_advanced_misc.php:499
msgid ""
"By default, if several SAs match, the newest one is preferred if it's at "
"least 30 seconds old. Select this option to always prefer old SAs over new "
@@ -28299,18 +34370,24 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:354
#: usr/local/www/system_advanced_misc.php:397
#: usr/local/www/system_advanced_misc.php:446
+#: usr/local/www/system_advanced_misc.php:458
+#: usr/local/www/system_advanced_misc.php:505
msgid "IPsec Debug"
msgstr ""
#: usr/local/www/system_advanced_misc.php:357
#: usr/local/www/system_advanced_misc.php:400
#: usr/local/www/system_advanced_misc.php:449
+#: usr/local/www/system_advanced_misc.php:461
+#: usr/local/www/system_advanced_misc.php:508
msgid "Start racoon in debug mode"
msgstr ""
#: usr/local/www/system_advanced_misc.php:359
#: usr/local/www/system_advanced_misc.php:402
#: usr/local/www/system_advanced_misc.php:451
+#: usr/local/www/system_advanced_misc.php:463
+#: usr/local/www/system_advanced_misc.php:510
msgid ""
"Launches racoon in debug mode so that more verbose logs will be generated to "
"aid in troubleshooting."
@@ -28319,24 +34396,32 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:361
#: usr/local/www/system_advanced_misc.php:404
#: usr/local/www/system_advanced_misc.php:453
+#: usr/local/www/system_advanced_misc.php:465
+#: usr/local/www/system_advanced_misc.php:512
msgid "NOTE: Changing this setting will restart racoon."
msgstr ""
#: usr/local/www/system_advanced_misc.php:365
#: usr/local/www/system_advanced_misc.php:408
#: usr/local/www/system_advanced_misc.php:457
+#: usr/local/www/system_advanced_misc.php:469
+#: usr/local/www/system_advanced_misc.php:516
msgid "Maximum MSS"
msgstr ""
#: usr/local/www/system_advanced_misc.php:368
#: usr/local/www/system_advanced_misc.php:411
#: usr/local/www/system_advanced_misc.php:460
+#: usr/local/www/system_advanced_misc.php:472
+#: usr/local/www/system_advanced_misc.php:519
msgid "Enable MSS clamping on VPN traffic"
msgstr ""
#: usr/local/www/system_advanced_misc.php:372
#: usr/local/www/system_advanced_misc.php:415
#: usr/local/www/system_advanced_misc.php:464
+#: usr/local/www/system_advanced_misc.php:476
+#: usr/local/www/system_advanced_misc.php:523
msgid ""
"Enable MSS clamping on TCP flows over VPN. This helps overcome problems with "
"PMTUD on IPsec VPN links. If left blank, the default value is 1400 bytes. "
@@ -28345,12 +34430,16 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:383
#: usr/local/www/system_advanced_misc.php:426
#: usr/local/www/system_advanced_misc.php:475
+#: usr/local/www/system_advanced_misc.php:487
+#: usr/local/www/system_advanced_misc.php:534
msgid "Schedule States"
msgstr ""
#: usr/local/www/system_advanced_misc.php:387
#: usr/local/www/system_advanced_misc.php:430
#: usr/local/www/system_advanced_misc.php:479
+#: usr/local/www/system_advanced_misc.php:491
+#: usr/local/www/system_advanced_misc.php:538
msgid ""
"By default schedules clear the states of existing connections when the "
"expiration time has come. This option overrides that behavior by not "
@@ -28360,12 +34449,16 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:395
#: usr/local/www/system_advanced_misc.php:438
#: usr/local/www/system_advanced_misc.php:487
+#: usr/local/www/system_advanced_misc.php:499
+#: usr/local/www/system_advanced_misc.php:546
msgid "Gateway Monitoring"
msgstr ""
#: usr/local/www/system_advanced_misc.php:402
#: usr/local/www/system_advanced_misc.php:445
#: usr/local/www/system_advanced_misc.php:494
+#: usr/local/www/system_advanced_misc.php:506
+#: usr/local/www/system_advanced_misc.php:553
msgid ""
"By default the monitoring process will flush states for a gateway that goes "
"down. This option overrides that behavior by not clearing states for "
@@ -28375,24 +34468,32 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:411
#: usr/local/www/system_advanced_misc.php:454
#: usr/local/www/system_advanced_misc.php:503
+#: usr/local/www/system_advanced_misc.php:515
+#: usr/local/www/system_advanced_misc.php:636
msgid "Hardware Settings"
msgstr ""
#: usr/local/www/system_advanced_misc.php:414
#: usr/local/www/system_advanced_misc.php:457
#: usr/local/www/system_advanced_misc.php:506
+#: usr/local/www/system_advanced_misc.php:518
+#: usr/local/www/system_advanced_misc.php:639
msgid "Hard disk standby time "
msgstr ""
#: usr/local/www/system_advanced_misc.php:421
#: usr/local/www/system_advanced_misc.php:464
#: usr/local/www/system_advanced_misc.php:513
+#: usr/local/www/system_advanced_misc.php:525
+#: usr/local/www/system_advanced_misc.php:646
msgid "Always on"
msgstr ""
#: usr/local/www/system_advanced_misc.php:430
#: usr/local/www/system_advanced_misc.php:473
#: usr/local/www/system_advanced_misc.php:522
+#: usr/local/www/system_advanced_misc.php:534
+#: usr/local/www/system_advanced_misc.php:655
msgid ""
"Puts the hard disk into standby mode when the selected amount of time after "
"the last access has elapsed."
@@ -28401,6 +34502,8 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:431
#: usr/local/www/system_advanced_misc.php:474
#: usr/local/www/system_advanced_misc.php:523
+#: usr/local/www/system_advanced_misc.php:535
+#: usr/local/www/system_advanced_misc.php:656
msgid "Do not set this for CF cards."
msgstr ""
@@ -28427,22 +34530,21 @@ msgid "Allow IPv6"
msgstr ""
#: usr/local/www/system_advanced_network.php:212
-#: usr/local/www/system_advanced_network.php:212
msgid "All IPv6 will be blocked unless this box is checked."
msgstr ""
#: usr/local/www/system_advanced_network.php:217
-#: usr/local/www/system_advanced_network.php:217
+#: usr/local/www/system_advanced_network.php:218
msgid "IPv6 over IPv4 Tunneling"
msgstr ""
#: usr/local/www/system_advanced_network.php:220
-#: usr/local/www/system_advanced_network.php:220
+#: usr/local/www/system_advanced_network.php:221
msgid "Enable IPv4 NAT encapsulation of IPv6 packets"
msgstr ""
#: usr/local/www/system_advanced_network.php:221
-#: usr/local/www/system_advanced_network.php:221
+#: usr/local/www/system_advanced_network.php:222
msgid ""
"This provides an RFC 2893 compatibility mechanism that can be used to "
"tunneling IPv6 packets over IPv4 routing infrastructures. If enabled, don't "
@@ -28450,22 +34552,22 @@ msgid ""
msgstr ""
#: usr/local/www/system_advanced_network.php:234
-#: usr/local/www/system_advanced_network.php:234
+#: usr/local/www/system_advanced_network.php:235
msgid "Network Interfaces"
msgstr ""
#: usr/local/www/system_advanced_network.php:237
-#: usr/local/www/system_advanced_network.php:237
+#: usr/local/www/system_advanced_network.php:238
msgid "Device polling"
msgstr ""
#: usr/local/www/system_advanced_network.php:240
-#: usr/local/www/system_advanced_network.php:240
+#: usr/local/www/system_advanced_network.php:241
msgid "Enable device polling"
msgstr ""
#: usr/local/www/system_advanced_network.php:241
-#: usr/local/www/system_advanced_network.php:241
+#: usr/local/www/system_advanced_network.php:242
#, php-format
msgid ""
"Device polling is a technique that lets the system periodically poll network "
@@ -28476,17 +34578,17 @@ msgid ""
msgstr ""
#: usr/local/www/system_advanced_network.php:245
-#: usr/local/www/system_advanced_network.php:245
+#: usr/local/www/system_advanced_network.php:246
msgid "Hardware Checksum Offloading"
msgstr ""
#: usr/local/www/system_advanced_network.php:248
-#: usr/local/www/system_advanced_network.php:248
+#: usr/local/www/system_advanced_network.php:249
msgid "Disable hardware checksum offload"
msgstr ""
#: usr/local/www/system_advanced_network.php:249
-#: usr/local/www/system_advanced_network.php:249
+#: usr/local/www/system_advanced_network.php:250
msgid ""
"Checking this option will disable hardware checksum offloading. Checksum "
"offloading is broken in some hardware, particularly some Realtek cards. "
@@ -28495,17 +34597,17 @@ msgid ""
msgstr ""
#: usr/local/www/system_advanced_network.php:253
-#: usr/local/www/system_advanced_network.php:253
+#: usr/local/www/system_advanced_network.php:254
msgid "Hardware TCP Segmentation Offloading"
msgstr ""
#: usr/local/www/system_advanced_network.php:256
-#: usr/local/www/system_advanced_network.php:256
+#: usr/local/www/system_advanced_network.php:257
msgid "Disable hardware TCP segmentation offload"
msgstr ""
#: usr/local/www/system_advanced_network.php:257
-#: usr/local/www/system_advanced_network.php:257
+#: usr/local/www/system_advanced_network.php:258
msgid ""
"Checking this option will disable hardware TCP segmentation offloading (TSO, "
"TSO4, TSO6). This offloading is broken in some hardware drivers, and may "
@@ -28513,17 +34615,17 @@ msgid ""
msgstr ""
#: usr/local/www/system_advanced_network.php:261
-#: usr/local/www/system_advanced_network.php:261
+#: usr/local/www/system_advanced_network.php:262
msgid "Hardware Large Receive Offloading"
msgstr ""
#: usr/local/www/system_advanced_network.php:264
-#: usr/local/www/system_advanced_network.php:264
+#: usr/local/www/system_advanced_network.php:265
msgid "Disable hardware large receive offload"
msgstr ""
#: usr/local/www/system_advanced_network.php:265
-#: usr/local/www/system_advanced_network.php:265
+#: usr/local/www/system_advanced_network.php:266
msgid ""
"Checking this option will disable hardware large receive offloading (LRO). "
"This offloading is broken in some hardware drivers, and may impact "
@@ -28531,17 +34633,17 @@ msgid ""
msgstr ""
#: usr/local/www/system_advanced_network.php:269
-#: usr/local/www/system_advanced_network.php:269
+#: usr/local/www/system_advanced_network.php:270
msgid "ARP Handling"
msgstr ""
#: usr/local/www/system_advanced_network.php:272
-#: usr/local/www/system_advanced_network.php:272
+#: usr/local/www/system_advanced_network.php:273
msgid "Suppress ARP messages"
msgstr ""
#: usr/local/www/system_advanced_network.php:273
-#: usr/local/www/system_advanced_network.php:273
+#: usr/local/www/system_advanced_network.php:274
msgid ""
"This option will suppress ARP log messages when multiple interfaces reside "
"on the same broadcast domain"
@@ -28724,6 +34826,7 @@ msgstr ""
#: usr/local/www/system_authservers.php:83
#: usr/local/www/system_authservers.php:84
+#: usr/local/www/system_authservers.php:84
msgid "deleted"
msgstr ""
@@ -28752,25 +34855,45 @@ msgstr ""
#: usr/local/www/system_certmanager.php:594
#: usr/local/www/system_certmanager.php:967
#: usr/local/www/system_usermanager.php:703
-#: usr/local/www/system_certmanager.php:192
-#: usr/local/www/system_certmanager.php:204
-#: usr/local/www/system_certmanager.php:222
-#: usr/local/www/system_certmanager.php:394
-#: usr/local/www/system_certmanager.php:594
-#: usr/local/www/system_certmanager.php:967
-#: usr/local/www/system_usermanager.php:189
-#: usr/local/www/system_usermanager.php:703
#: usr/local/www/system_crlmanager.php:192
#: usr/local/www/system_crlmanager.php:199
#: usr/local/www/system_crlmanager.php:319
#: usr/local/www/system_crlmanager.php:404
-#: usr/local/www/system_camanager.php:165
-#: usr/local/www/system_camanager.php:177
-#: usr/local/www/system_camanager.php:192
-#: usr/local/www/system_camanager.php:369
#: usr/local/www/system_authservers.php:161
#: usr/local/www/system_authservers.php:184
#: usr/local/www/system_authservers.php:443
+#: usr/local/www/system_camanager.php:167
+#: usr/local/www/system_camanager.php:179
+#: usr/local/www/system_camanager.php:194
+#: usr/local/www/system_camanager.php:376
+#: usr/local/www/system_certmanager.php:195
+#: usr/local/www/system_certmanager.php:207
+#: usr/local/www/system_certmanager.php:225
+#: usr/local/www/system_certmanager.php:403
+#: usr/local/www/system_certmanager.php:603
+#: usr/local/www/system_certmanager.php:1009
+#: usr/local/www/system_authservers.php:162
+#: usr/local/www/system_authservers.php:185
+#: usr/local/www/system_authservers.php:450
+#: usr/local/www/system_camanager.php:167
+#: usr/local/www/system_camanager.php:179
+#: usr/local/www/system_camanager.php:194
+#: usr/local/www/system_camanager.php:376
+#: usr/local/www/system_certmanager.php:195
+#: usr/local/www/system_certmanager.php:207
+#: usr/local/www/system_certmanager.php:225
+#: usr/local/www/system_certmanager.php:403
+#: usr/local/www/system_certmanager.php:604
+#: usr/local/www/system_certmanager.php:1013
+#: usr/local/www/system_crlmanager.php:192
+#: usr/local/www/system_crlmanager.php:199
+#: usr/local/www/system_crlmanager.php:319
+#: usr/local/www/system_crlmanager.php:404
+#: usr/local/www/system_authservers.php:162
+#: usr/local/www/system_authservers.php:185
+#: usr/local/www/system_authservers.php:450
+#: usr/local/www/system_usermanager.php:189
+#: usr/local/www/system_usermanager.php:703
msgid "Descriptive name"
msgstr ""
@@ -28778,6 +34901,10 @@ msgstr ""
#: usr/local/www/system_authservers.php:484
#: usr/local/www/system_authservers.php:164
#: usr/local/www/system_authservers.php:489
+#: usr/local/www/system_authservers.php:165
+#: usr/local/www/system_authservers.php:496
+#: usr/local/www/system_authservers.php:165
+#: usr/local/www/system_authservers.php:496
msgid "Port value"
msgstr ""
@@ -28785,6 +34912,10 @@ msgstr ""
#: usr/local/www/system_authservers.php:490
#: usr/local/www/system_authservers.php:165
#: usr/local/www/system_authservers.php:495
+#: usr/local/www/system_authservers.php:166
+#: usr/local/www/system_authservers.php:502
+#: usr/local/www/system_authservers.php:166
+#: usr/local/www/system_authservers.php:502
msgid "Transport"
msgstr ""
@@ -28792,21 +34923,31 @@ msgstr ""
#: usr/local/www/system_authservers.php:526
#: usr/local/www/system_authservers.php:166
#: usr/local/www/system_authservers.php:531
+#: usr/local/www/system_authservers.php:167
+#: usr/local/www/system_authservers.php:538
+#: usr/local/www/system_authservers.php:167
+#: usr/local/www/system_authservers.php:538
msgid "Protocol version"
msgstr ""
#: usr/local/www/system_authservers.php:166
#: usr/local/www/system_authservers.php:167
+#: usr/local/www/system_authservers.php:168
+#: usr/local/www/system_authservers.php:168
msgid "Search level"
msgstr ""
#: usr/local/www/system_authservers.php:167
#: usr/local/www/system_authservers.php:168
+#: usr/local/www/system_authservers.php:169
+#: usr/local/www/system_authservers.php:169
msgid "User naming Attribute"
msgstr ""
#: usr/local/www/system_authservers.php:168
#: usr/local/www/system_authservers.php:169
+#: usr/local/www/system_authservers.php:170
+#: usr/local/www/system_authservers.php:170
msgid "Group naming Attribute"
msgstr ""
@@ -28814,21 +34955,31 @@ msgstr ""
#: usr/local/www/system_authservers.php:665
#: usr/local/www/system_authservers.php:170
#: usr/local/www/system_authservers.php:670
+#: usr/local/www/system_authservers.php:171
+#: usr/local/www/system_authservers.php:677
+#: usr/local/www/system_authservers.php:171
+#: usr/local/www/system_authservers.php:677
msgid "Group member attribute"
msgstr ""
#: usr/local/www/system_authservers.php:170
#: usr/local/www/system_authservers.php:171
+#: usr/local/www/system_authservers.php:172
+#: usr/local/www/system_authservers.php:172
msgid "Authentication container"
msgstr ""
#: usr/local/www/system_authservers.php:175
#: usr/local/www/system_authservers.php:176
+#: usr/local/www/system_authservers.php:177
+#: usr/local/www/system_authservers.php:177
msgid "Bind user DN"
msgstr ""
#: usr/local/www/system_authservers.php:176
#: usr/local/www/system_authservers.php:177
+#: usr/local/www/system_authservers.php:178
+#: usr/local/www/system_authservers.php:178
msgid "Bind Password"
msgstr ""
@@ -28836,6 +34987,10 @@ msgstr ""
#: usr/local/www/system_authservers.php:707
#: usr/local/www/system_authservers.php:192
#: usr/local/www/system_authservers.php:712
+#: usr/local/www/system_authservers.php:193
+#: usr/local/www/system_authservers.php:719
+#: usr/local/www/system_authservers.php:193
+#: usr/local/www/system_authservers.php:719
msgid "Authentication port value"
msgstr ""
@@ -28843,6 +34998,10 @@ msgstr ""
#: usr/local/www/system_authservers.php:713
#: usr/local/www/system_authservers.php:198
#: usr/local/www/system_authservers.php:718
+#: usr/local/www/system_authservers.php:199
+#: usr/local/www/system_authservers.php:725
+#: usr/local/www/system_authservers.php:199
+#: usr/local/www/system_authservers.php:725
msgid "Accounting port value"
msgstr ""
@@ -28850,38 +35009,54 @@ msgstr ""
#: usr/local/www/system_authservers.php:686
#: usr/local/www/system_authservers.php:203
#: usr/local/www/system_authservers.php:691
+#: usr/local/www/system_authservers.php:204
+#: usr/local/www/system_authservers.php:698
+#: usr/local/www/system_authservers.php:204
+#: usr/local/www/system_authservers.php:698
msgid "Shared Secret"
msgstr ""
#: usr/local/www/system_authservers.php:209
#: usr/local/www/system_authservers.php:210
+#: usr/local/www/system_authservers.php:211
+#: usr/local/www/system_authservers.php:211
msgid "The host name contains invalid characters."
msgstr ""
#: usr/local/www/system_authservers.php:212
#: usr/local/www/system_authservers.php:213
+#: usr/local/www/system_authservers.php:214
+#: usr/local/www/system_authservers.php:214
msgid "An authentication server with the same name already exists."
msgstr ""
#: usr/local/www/system_authservers.php:382
#: usr/local/www/system_authservers.php:383
+#: usr/local/www/system_authservers.php:390
+#: usr/local/www/system_authservers.php:390
msgid "Please fill the required values."
msgstr ""
#: usr/local/www/system_authservers.php:388
#: usr/local/www/system_authservers.php:389
+#: usr/local/www/system_authservers.php:396
+#: usr/local/www/system_authservers.php:396
msgid "Please fill the bind username/password."
msgstr ""
#: usr/local/www/system_authservers.php:406
#: usr/local/www/system_usermanager_settings.php:103
-#: usr/local/www/system_usermanager_settings.php:103
#: usr/local/www/system_authservers.php:411
+#: usr/local/www/system_authservers.php:418
+#: usr/local/www/system_authservers.php:418
+#: usr/local/www/system_usermanager_settings.php:104
msgid "Popup blocker detected. Action aborted."
msgstr ""
#: usr/local/www/system_authservers.php:475
#: usr/local/www/system_authservers.php:480
+#: usr/local/www/system_authservers.php:487
+#: usr/local/www/system_authservers.php:487
msgid "LDAP Server Settings"
msgstr ""
@@ -28889,6 +35064,10 @@ msgstr ""
#: usr/local/www/system_authservers.php:680
#: usr/local/www/system_authservers.php:483
#: usr/local/www/system_authservers.php:685
+#: usr/local/www/system_authservers.php:490
+#: usr/local/www/system_authservers.php:692
+#: usr/local/www/system_authservers.php:490
+#: usr/local/www/system_authservers.php:692
msgid "Hostname or IP address"
msgstr ""
@@ -28900,46 +35079,68 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:879
#: usr/local/www/vpn_openvpn_client.php:652
#: usr/local/www/system_authservers.php:510
+#: usr/local/www/vpn_openvpn_client.php:671
+#: usr/local/www/system_authservers.php:517
+#: usr/local/www/vpn_openvpn_server.php:906
+#: usr/local/www/vpn_openvpn_client.php:671
+#: usr/local/www/system_authservers.php:517
+#: usr/local/www/vpn_openvpn_server.php:906
msgid "Peer Certificate Authority"
msgstr ""
#: usr/local/www/system_authservers.php:518
#: usr/local/www/system_authservers.php:523
+#: usr/local/www/system_authservers.php:530
+#: usr/local/www/system_authservers.php:530
msgid "This option is used if 'SSL Encrypted' option is choosen."
msgstr ""
#: usr/local/www/system_authservers.php:519
#: usr/local/www/system_authservers.php:524
+#: usr/local/www/system_authservers.php:531
+#: usr/local/www/system_authservers.php:531
msgid "It must match with the CA in the AD otherwise problems will arise."
msgstr ""
#: usr/local/www/system_authservers.php:541
#: usr/local/www/system_authservers.php:546
+#: usr/local/www/system_authservers.php:553
+#: usr/local/www/system_authservers.php:553
msgid "Search scope"
msgstr ""
#: usr/local/www/system_authservers.php:545
#: usr/local/www/system_authservers.php:550
+#: usr/local/www/system_authservers.php:557
+#: usr/local/www/system_authservers.php:557
msgid "Level:"
msgstr ""
#: usr/local/www/system_authservers.php:560
#: usr/local/www/system_authservers.php:565
+#: usr/local/www/system_authservers.php:572
+#: usr/local/www/system_authservers.php:572
msgid "Base DN:"
msgstr ""
#: usr/local/www/system_authservers.php:570
#: usr/local/www/system_authservers.php:575
+#: usr/local/www/system_authservers.php:582
+#: usr/local/www/system_authservers.php:582
msgid "Authentication containers"
msgstr ""
#: usr/local/www/system_authservers.php:574
#: usr/local/www/system_authservers.php:579
+#: usr/local/www/system_authservers.php:586
+#: usr/local/www/system_authservers.php:586
msgid "Containers:"
msgstr ""
#: usr/local/www/system_authservers.php:578
#: usr/local/www/system_authservers.php:583
+#: usr/local/www/system_authservers.php:590
+#: usr/local/www/system_authservers.php:590
msgid ""
"Note: Semi-Colon separated. This will be prepended to the search base dn "
"above or you can specify full container path."
@@ -28947,21 +35148,29 @@ msgstr ""
#: usr/local/www/system_authservers.php:579
#: usr/local/www/system_authservers.php:584
+#: usr/local/www/system_authservers.php:591
+#: usr/local/www/system_authservers.php:591
msgid "Example: CN=Users;DC=example"
msgstr ""
#: usr/local/www/system_authservers.php:580
#: usr/local/www/system_authservers.php:585
+#: usr/local/www/system_authservers.php:592
+#: usr/local/www/system_authservers.php:592
msgid "Example: CN=Users,DC=example,DC=com;OU=OtherUsers,DC=example,DC=com "
msgstr ""
#: usr/local/www/system_authservers.php:587
#: usr/local/www/system_authservers.php:592
+#: usr/local/www/system_authservers.php:599
+#: usr/local/www/system_authservers.php:599
msgid "Extended Query"
msgstr ""
#: usr/local/www/system_authservers.php:597
#: usr/local/www/system_authservers.php:602
+#: usr/local/www/system_authservers.php:609
+#: usr/local/www/system_authservers.php:609
msgid ""
"Example: CN=Groupname,OU=MyGroups,DC=example,DC=com;OU=OtherUsers,DC=example,"
"DC=com "
@@ -28969,51 +35178,71 @@ msgstr ""
#: usr/local/www/system_authservers.php:604
#: usr/local/www/system_authservers.php:609
+#: usr/local/www/system_authservers.php:616
+#: usr/local/www/system_authservers.php:616
msgid "Bind credentials"
msgstr ""
#: usr/local/www/system_authservers.php:612
#: usr/local/www/system_authservers.php:617
+#: usr/local/www/system_authservers.php:624
+#: usr/local/www/system_authservers.php:624
msgid "Use anonymous binds to resolve distinguished names"
msgstr ""
#: usr/local/www/system_authservers.php:621
#: usr/local/www/system_authservers.php:626
+#: usr/local/www/system_authservers.php:633
+#: usr/local/www/system_authservers.php:633
msgid "User DN:"
msgstr ""
#: usr/local/www/system_authservers.php:637
#: usr/local/www/system_authservers.php:642
+#: usr/local/www/system_authservers.php:649
+#: usr/local/www/system_authservers.php:649
msgid "Initial Template"
msgstr ""
#: usr/local/www/system_authservers.php:653
#: usr/local/www/system_authservers.php:658
+#: usr/local/www/system_authservers.php:665
+#: usr/local/www/system_authservers.php:665
msgid "User naming attribute"
msgstr ""
#: usr/local/www/system_authservers.php:659
#: usr/local/www/system_authservers.php:664
+#: usr/local/www/system_authservers.php:671
+#: usr/local/www/system_authservers.php:671
msgid "Group naming attribute"
msgstr ""
#: usr/local/www/system_authservers.php:677
#: usr/local/www/system_authservers.php:682
+#: usr/local/www/system_authservers.php:689
+#: usr/local/www/system_authservers.php:689
msgid "Radius Server Settings"
msgstr ""
#: usr/local/www/system_authservers.php:692
#: usr/local/www/system_authservers.php:697
+#: usr/local/www/system_authservers.php:704
+#: usr/local/www/system_authservers.php:704
msgid "Services offered"
msgstr ""
#: usr/local/www/system_authservers.php:737
#: usr/local/www/system_authservers.php:743
+#: usr/local/www/system_authservers.php:759
+#: usr/local/www/system_authservers.php:759
msgid "Server Name"
msgstr ""
#: usr/local/www/system_authservers.php:739
#: usr/local/www/system_authservers.php:745
+#: usr/local/www/system_authservers.php:761
+#: usr/local/www/system_authservers.php:761 usr/local/www/diag_dns.php:154
msgid "Host Name"
msgstr ""
@@ -29022,11 +35251,17 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1621
#: usr/local/www/vpn_openvpn_server.php:1662
#: usr/local/www/system_authservers.php:764
+#: usr/local/www/system_authservers.php:780
+#: usr/local/www/vpn_openvpn_server.php:1714
+#: usr/local/www/system_authservers.php:797
+#: usr/local/www/vpn_openvpn_server.php:1714
msgid "edit server"
msgstr ""
#: usr/local/www/system_authservers.php:759
#: usr/local/www/system_authservers.php:767
+#: usr/local/www/system_authservers.php:783
+#: usr/local/www/system_authservers.php:800
msgid "Do you really want to delete this Server?"
msgstr ""
@@ -29035,6 +35270,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1625
#: usr/local/www/vpn_openvpn_server.php:1666
#: usr/local/www/system_authservers.php:768
+#: usr/local/www/system_authservers.php:784
+#: usr/local/www/vpn_openvpn_server.php:1718
+#: usr/local/www/system_authservers.php:801
+#: usr/local/www/vpn_openvpn_server.php:1718
msgid "delete server"
msgstr ""
@@ -29043,11 +35282,17 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1638
#: usr/local/www/vpn_openvpn_server.php:1679
#: usr/local/www/system_authservers.php:782
+#: usr/local/www/system_authservers.php:798
+#: usr/local/www/vpn_openvpn_server.php:1731
+#: usr/local/www/system_authservers.php:770
+#: usr/local/www/vpn_openvpn_server.php:1731
msgid "add server"
msgstr ""
#: usr/local/www/system_authservers.php:779
#: usr/local/www/system_authservers.php:789
+#: usr/local/www/system_authservers.php:805
+#: usr/local/www/system_authservers.php:777
msgid "Additional authentication servers can be added here."
msgstr ""
@@ -29063,11 +35308,13 @@ msgstr ""
msgid "Create an intermediate Certificate Authority"
msgstr ""
-#: usr/local/www/system_camanager.php:50 usr/local/www/system_camanager.php:50
+#: usr/local/www/system_camanager.php:50 usr/local/www/system_camanager.php:51
+#: usr/local/www/system_camanager.php:51
msgid "Certificate Authority Manager"
msgstr ""
-#: usr/local/www/system_camanager.php:95 usr/local/www/system_camanager.php:95
+#: usr/local/www/system_camanager.php:95 usr/local/www/system_camanager.php:96
+#: usr/local/www/system_camanager.php:96
#, php-format
msgid "Certificate Authority %s and its CRLs (if any) successfully deleted"
msgstr ""
@@ -29078,15 +35325,20 @@ msgstr ""
#: usr/local/www/system_certmanager.php:511
#: usr/local/www/system_certmanager.php:193
#: usr/local/www/system_certmanager.php:610
-#: usr/local/www/system_certmanager.php:193
-#: usr/local/www/system_certmanager.php:610
-#: usr/local/www/system_camanager.php:166
-#: usr/local/www/system_camanager.php:402
+#: usr/local/www/system_camanager.php:168
+#: usr/local/www/system_camanager.php:409
+#: usr/local/www/system_certmanager.php:196
+#: usr/local/www/system_certmanager.php:619
+#: usr/local/www/system_camanager.php:168
+#: usr/local/www/system_camanager.php:409
+#: usr/local/www/system_certmanager.php:196
+#: usr/local/www/system_certmanager.php:620
msgid "Certificate data"
msgstr ""
#: usr/local/www/system_camanager.php:170
-#: usr/local/www/system_camanager.php:170
+#: usr/local/www/system_camanager.php:172
+#: usr/local/www/system_camanager.php:172
msgid "Encrypted private keys are not yet supported."
msgstr ""
@@ -29105,15 +35357,22 @@ msgstr ""
#: usr/local/www/system_certmanager.php:820
#: usr/local/www/system_usermanager.php:723
#: usr/local/www/system_camanager.php:454
-#: usr/local/www/system_certmanager.php:206
-#: usr/local/www/system_certmanager.php:223
-#: usr/local/www/system_certmanager.php:665
-#: usr/local/www/system_certmanager.php:820
+#: usr/local/www/system_camanager.php:180
+#: usr/local/www/system_camanager.php:196
+#: usr/local/www/system_camanager.php:461
+#: usr/local/www/system_certmanager.php:209
+#: usr/local/www/system_certmanager.php:226
+#: usr/local/www/system_certmanager.php:674
+#: usr/local/www/system_certmanager.php:845
+#: usr/local/www/system_camanager.php:180
+#: usr/local/www/system_camanager.php:196
+#: usr/local/www/system_camanager.php:461
+#: usr/local/www/system_certmanager.php:209
+#: usr/local/www/system_certmanager.php:226
+#: usr/local/www/system_certmanager.php:675
+#: usr/local/www/system_certmanager.php:849
#: usr/local/www/system_usermanager.php:191
#: usr/local/www/system_usermanager.php:723
-#: usr/local/www/system_camanager.php:178
-#: usr/local/www/system_camanager.php:194
-#: usr/local/www/system_camanager.php:454
msgid "Key length"
msgstr ""
@@ -29133,16 +35392,26 @@ msgstr ""
#: usr/local/www/system_camanager.php:470
#: usr/local/www/vpn_ipsec_phase2.php:645
#: usr/local/www/vpn_ipsec_phase1.php:771
-#: usr/local/www/system_certmanager.php:208
-#: usr/local/www/system_certmanager.php:698
-#: usr/local/www/system_usermanager.php:192
-#: usr/local/www/system_usermanager.php:737
#: usr/local/www/system_crlmanager.php:367
-#: usr/local/www/system_camanager.php:179
-#: usr/local/www/system_camanager.php:195
-#: usr/local/www/system_camanager.php:470
#: usr/local/www/vpn_ipsec_phase2.php:741
#: usr/local/www/vpn_ipsec_phase1.php:768
+#: usr/local/www/system_camanager.php:181
+#: usr/local/www/system_camanager.php:197
+#: usr/local/www/system_camanager.php:493
+#: usr/local/www/system_certmanager.php:211
+#: usr/local/www/system_certmanager.php:723
+#: usr/local/www/vpn_ipsec_phase1.php:789
+#: usr/local/www/vpn_ipsec_phase2.php:762
+#: usr/local/www/system_camanager.php:181
+#: usr/local/www/system_camanager.php:197
+#: usr/local/www/system_camanager.php:493
+#: usr/local/www/system_certmanager.php:211
+#: usr/local/www/system_certmanager.php:724
+#: usr/local/www/system_crlmanager.php:367
+#: usr/local/www/vpn_ipsec_phase1.php:789
+#: usr/local/www/system_usermanager.php:192
+#: usr/local/www/system_usermanager.php:737
+#: usr/local/www/vpn_ipsec_phase2.php:762
msgid "Lifetime"
msgstr ""
@@ -29152,10 +35421,14 @@ msgstr ""
#: usr/local/www/system_certmanager.php:195
#: usr/local/www/system_certmanager.php:209
#: usr/local/www/system_certmanager.php:224
-#: usr/local/www/system_certmanager.php:209
-#: usr/local/www/system_certmanager.php:224
-#: usr/local/www/system_camanager.php:180
-#: usr/local/www/system_camanager.php:196
+#: usr/local/www/system_camanager.php:182
+#: usr/local/www/system_camanager.php:198
+#: usr/local/www/system_certmanager.php:212
+#: usr/local/www/system_certmanager.php:227
+#: usr/local/www/system_camanager.php:182
+#: usr/local/www/system_camanager.php:198
+#: usr/local/www/system_certmanager.php:212
+#: usr/local/www/system_certmanager.php:227
msgid "Distinguished name Country Code"
msgstr ""
@@ -29165,10 +35438,14 @@ msgstr ""
#: usr/local/www/system_certmanager.php:196
#: usr/local/www/system_certmanager.php:210
#: usr/local/www/system_certmanager.php:225
-#: usr/local/www/system_certmanager.php:210
-#: usr/local/www/system_certmanager.php:225
-#: usr/local/www/system_camanager.php:181
-#: usr/local/www/system_camanager.php:197
+#: usr/local/www/system_camanager.php:183
+#: usr/local/www/system_camanager.php:199
+#: usr/local/www/system_certmanager.php:213
+#: usr/local/www/system_certmanager.php:228
+#: usr/local/www/system_camanager.php:183
+#: usr/local/www/system_camanager.php:199
+#: usr/local/www/system_certmanager.php:213
+#: usr/local/www/system_certmanager.php:228
msgid "Distinguished name State or Province"
msgstr ""
@@ -29178,10 +35455,14 @@ msgstr ""
#: usr/local/www/system_certmanager.php:197
#: usr/local/www/system_certmanager.php:211
#: usr/local/www/system_certmanager.php:226
-#: usr/local/www/system_certmanager.php:211
-#: usr/local/www/system_certmanager.php:226
-#: usr/local/www/system_camanager.php:182
-#: usr/local/www/system_camanager.php:198
+#: usr/local/www/system_camanager.php:184
+#: usr/local/www/system_camanager.php:200
+#: usr/local/www/system_certmanager.php:214
+#: usr/local/www/system_certmanager.php:229
+#: usr/local/www/system_camanager.php:184
+#: usr/local/www/system_camanager.php:200
+#: usr/local/www/system_certmanager.php:214
+#: usr/local/www/system_certmanager.php:229
msgid "Distinguished name City"
msgstr ""
@@ -29191,10 +35472,14 @@ msgstr ""
#: usr/local/www/system_certmanager.php:198
#: usr/local/www/system_certmanager.php:212
#: usr/local/www/system_certmanager.php:227
-#: usr/local/www/system_certmanager.php:212
-#: usr/local/www/system_certmanager.php:227
-#: usr/local/www/system_camanager.php:183
-#: usr/local/www/system_camanager.php:199
+#: usr/local/www/system_camanager.php:185
+#: usr/local/www/system_camanager.php:201
+#: usr/local/www/system_certmanager.php:215
+#: usr/local/www/system_certmanager.php:230
+#: usr/local/www/system_camanager.php:185
+#: usr/local/www/system_camanager.php:201
+#: usr/local/www/system_certmanager.php:215
+#: usr/local/www/system_certmanager.php:230
msgid "Distinguished name Organization"
msgstr ""
@@ -29204,10 +35489,14 @@ msgstr ""
#: usr/local/www/system_certmanager.php:199
#: usr/local/www/system_certmanager.php:213
#: usr/local/www/system_certmanager.php:228
-#: usr/local/www/system_certmanager.php:213
-#: usr/local/www/system_certmanager.php:228
-#: usr/local/www/system_camanager.php:184
-#: usr/local/www/system_camanager.php:200
+#: usr/local/www/system_camanager.php:186
+#: usr/local/www/system_camanager.php:202
+#: usr/local/www/system_certmanager.php:216
+#: usr/local/www/system_certmanager.php:231
+#: usr/local/www/system_camanager.php:186
+#: usr/local/www/system_camanager.php:202
+#: usr/local/www/system_certmanager.php:216
+#: usr/local/www/system_certmanager.php:231
msgid "Distinguished name Email Address"
msgstr ""
@@ -29217,18 +35506,24 @@ msgstr ""
#: usr/local/www/system_certmanager.php:200
#: usr/local/www/system_certmanager.php:214
#: usr/local/www/system_certmanager.php:229
-#: usr/local/www/system_certmanager.php:214
-#: usr/local/www/system_certmanager.php:229
-#: usr/local/www/system_camanager.php:185
-#: usr/local/www/system_camanager.php:201
+#: usr/local/www/system_camanager.php:187
+#: usr/local/www/system_camanager.php:203
+#: usr/local/www/system_certmanager.php:217
+#: usr/local/www/system_certmanager.php:232
+#: usr/local/www/system_camanager.php:187
+#: usr/local/www/system_camanager.php:203
+#: usr/local/www/system_certmanager.php:217
+#: usr/local/www/system_certmanager.php:232
msgid "Distinguished name Common Name"
msgstr ""
#: usr/local/www/system_camanager.php:193
#: usr/local/www/system_camanager.php:436
#: usr/local/www/system_camanager.php:437
-#: usr/local/www/system_camanager.php:193
-#: usr/local/www/system_camanager.php:437
+#: usr/local/www/system_camanager.php:195
+#: usr/local/www/system_camanager.php:444
+#: usr/local/www/system_camanager.php:195
+#: usr/local/www/system_camanager.php:444
msgid "Signing Certificate Authority"
msgstr ""
@@ -29236,9 +35531,12 @@ msgstr ""
#: usr/local/www/system_certmanager.php:458
#: usr/local/www/system_crlmanager.php:283
#: usr/local/www/system_certmanager.php:557
-#: usr/local/www/system_certmanager.php:557
#: usr/local/www/system_crlmanager.php:284
-#: usr/local/www/system_camanager.php:348
+#: usr/local/www/system_camanager.php:355
+#: usr/local/www/system_certmanager.php:566
+#: usr/local/www/system_camanager.php:355
+#: usr/local/www/system_certmanager.php:567
+#: usr/local/www/system_crlmanager.php:284
msgid "CAs"
msgstr ""
@@ -29249,11 +35547,16 @@ msgstr ""
#: usr/local/www/system_crlmanager.php:489
#: usr/local/www/system_certmanager.php:558
#: usr/local/www/system_camanager.php:569
-#: usr/local/www/system_certmanager.php:558
#: usr/local/www/system_crlmanager.php:285
#: usr/local/www/system_crlmanager.php:522
-#: usr/local/www/system_camanager.php:349
-#: usr/local/www/system_camanager.php:569
+#: usr/local/www/system_camanager.php:356
+#: usr/local/www/system_camanager.php:593
+#: usr/local/www/system_certmanager.php:567
+#: usr/local/www/system_camanager.php:356
+#: usr/local/www/system_camanager.php:593
+#: usr/local/www/system_certmanager.php:568
+#: usr/local/www/system_crlmanager.php:285
+#: usr/local/www/system_crlmanager.php:522
msgid "Certificates"
msgstr ""
@@ -29261,9 +35564,12 @@ msgstr ""
#: usr/local/www/system_certmanager.php:460
#: usr/local/www/system_crlmanager.php:285
#: usr/local/www/system_certmanager.php:559
-#: usr/local/www/system_certmanager.php:559
#: usr/local/www/system_crlmanager.php:286
-#: usr/local/www/system_camanager.php:350
+#: usr/local/www/system_camanager.php:357
+#: usr/local/www/system_certmanager.php:568
+#: usr/local/www/system_camanager.php:357
+#: usr/local/www/system_certmanager.php:569
+#: usr/local/www/system_crlmanager.php:286
msgid "Certificate Revocation"
msgstr ""
@@ -29271,29 +35577,36 @@ msgstr ""
#: usr/local/www/system_certmanager.php:475
#: usr/local/www/system_crlmanager.php:300
#: usr/local/www/system_certmanager.php:574
-#: usr/local/www/system_certmanager.php:574
#: usr/local/www/system_crlmanager.php:301
-#: usr/local/www/system_camanager.php:376
+#: usr/local/www/system_camanager.php:383
+#: usr/local/www/system_certmanager.php:583
+#: usr/local/www/system_camanager.php:383
+#: usr/local/www/system_certmanager.php:584
+#: usr/local/www/system_crlmanager.php:301
msgid "Method"
msgstr ""
#: usr/local/www/system_camanager.php:398
-#: usr/local/www/system_camanager.php:398
+#: usr/local/www/system_camanager.php:405
+#: usr/local/www/system_camanager.php:405
msgid "Existing Certificate Authority"
msgstr ""
#: usr/local/www/system_camanager.php:410
-#: usr/local/www/system_camanager.php:410
+#: usr/local/www/system_camanager.php:417
+#: usr/local/www/system_camanager.php:417
msgid "Certificate Private Key"
msgstr ""
#: usr/local/www/system_camanager.php:410
-#: usr/local/www/system_camanager.php:410
+#: usr/local/www/system_camanager.php:417
+#: usr/local/www/system_camanager.php:417
msgid "(optional)"
msgstr ""
#: usr/local/www/system_camanager.php:414
-#: usr/local/www/system_camanager.php:414
+#: usr/local/www/system_camanager.php:421
+#: usr/local/www/system_camanager.php:421
msgid ""
"Paste the private key for the above certificate here. This is optional in "
"most cases, but required if you need to generate a Certificate Revocation "
@@ -29303,12 +35616,14 @@ msgstr ""
#: usr/local/www/system_camanager.php:420
#: usr/local/www/system_crlmanager.php:374
#: usr/local/www/system_crlmanager.php:375
+#: usr/local/www/system_crlmanager.php:375
msgid "Serial"
msgstr ""
#: usr/local/www/system_camanager.php:433
#: usr/local/www/system_camanager.php:434
-#: usr/local/www/system_camanager.php:434
+#: usr/local/www/system_camanager.php:441
+#: usr/local/www/system_camanager.php:441
msgid "Internal Certificate Authority"
msgstr ""
@@ -29317,9 +35632,12 @@ msgstr ""
#: usr/local/www/system_crlmanager.php:369
#: usr/local/www/system_certmanager.php:701
#: usr/local/www/system_camanager.php:473
-#: usr/local/www/system_certmanager.php:701
#: usr/local/www/system_crlmanager.php:370
-#: usr/local/www/system_camanager.php:473
+#: usr/local/www/system_camanager.php:496
+#: usr/local/www/system_certmanager.php:726
+#: usr/local/www/system_camanager.php:496
+#: usr/local/www/system_certmanager.php:727
+#: usr/local/www/system_crlmanager.php:370
msgid "days"
msgstr ""
@@ -29329,9 +35647,12 @@ msgstr ""
#: usr/local/www/system_certmanager.php:709
#: usr/local/www/system_certmanager.php:842
#: usr/local/www/system_camanager.php:481
-#: usr/local/www/system_certmanager.php:709
-#: usr/local/www/system_certmanager.php:842
-#: usr/local/www/system_camanager.php:481
+#: usr/local/www/system_camanager.php:504
+#: usr/local/www/system_certmanager.php:734
+#: usr/local/www/system_certmanager.php:883
+#: usr/local/www/system_camanager.php:504
+#: usr/local/www/system_certmanager.php:735
+#: usr/local/www/system_certmanager.php:887
msgid "Country Code"
msgstr ""
@@ -29341,9 +35662,12 @@ msgstr ""
#: usr/local/www/system_certmanager.php:715
#: usr/local/www/system_certmanager.php:856
#: usr/local/www/system_camanager.php:495
-#: usr/local/www/system_certmanager.php:715
-#: usr/local/www/system_certmanager.php:856
-#: usr/local/www/system_camanager.php:495
+#: usr/local/www/system_camanager.php:519
+#: usr/local/www/system_certmanager.php:740
+#: usr/local/www/system_certmanager.php:898
+#: usr/local/www/system_camanager.php:519
+#: usr/local/www/system_certmanager.php:741
+#: usr/local/www/system_certmanager.php:902
msgid "State or Province"
msgstr ""
@@ -29357,11 +35681,16 @@ msgstr ""
#: usr/local/www/system_camanager.php:519
#: usr/local/www/system_camanager.php:529
#: usr/local/www/system_camanager.php:539
-#: usr/local/www/system_camanager.php:499
-#: usr/local/www/system_camanager.php:509
-#: usr/local/www/system_camanager.php:519
-#: usr/local/www/system_camanager.php:529
-#: usr/local/www/system_camanager.php:539
+#: usr/local/www/system_camanager.php:523
+#: usr/local/www/system_camanager.php:533
+#: usr/local/www/system_camanager.php:543
+#: usr/local/www/system_camanager.php:553
+#: usr/local/www/system_camanager.php:563
+#: usr/local/www/system_camanager.php:523
+#: usr/local/www/system_camanager.php:533
+#: usr/local/www/system_camanager.php:543
+#: usr/local/www/system_camanager.php:553
+#: usr/local/www/system_camanager.php:563
msgid "ex:"
msgstr ""
@@ -29369,8 +35698,10 @@ msgstr ""
#: usr/local/www/system_certmanager.php:696
#: usr/local/www/system_certmanager.php:862
#: usr/local/www/system_camanager.php:501
-#: usr/local/www/system_certmanager.php:862
-#: usr/local/www/system_camanager.php:501
+#: usr/local/www/system_camanager.php:525
+#: usr/local/www/system_certmanager.php:904
+#: usr/local/www/system_camanager.php:525
+#: usr/local/www/system_certmanager.php:908
msgid "Texas"
msgstr ""
@@ -29380,9 +35711,12 @@ msgstr ""
#: usr/local/www/system_certmanager.php:721
#: usr/local/www/system_certmanager.php:866
#: usr/local/www/system_camanager.php:505
-#: usr/local/www/system_certmanager.php:721
-#: usr/local/www/system_certmanager.php:866
-#: usr/local/www/system_camanager.php:505
+#: usr/local/www/system_camanager.php:529
+#: usr/local/www/system_certmanager.php:746
+#: usr/local/www/system_certmanager.php:908
+#: usr/local/www/system_camanager.php:529
+#: usr/local/www/system_certmanager.php:747
+#: usr/local/www/system_certmanager.php:912
msgid "City"
msgstr ""
@@ -29390,8 +35724,10 @@ msgstr ""
#: usr/local/www/system_certmanager.php:706
#: usr/local/www/system_certmanager.php:872
#: usr/local/www/system_camanager.php:511
-#: usr/local/www/system_certmanager.php:872
-#: usr/local/www/system_camanager.php:511
+#: usr/local/www/system_camanager.php:535
+#: usr/local/www/system_certmanager.php:914
+#: usr/local/www/system_camanager.php:535
+#: usr/local/www/system_certmanager.php:918
msgid "Austin"
msgstr ""
@@ -29401,9 +35737,12 @@ msgstr ""
#: usr/local/www/system_certmanager.php:727
#: usr/local/www/system_certmanager.php:876
#: usr/local/www/system_camanager.php:515
-#: usr/local/www/system_certmanager.php:727
-#: usr/local/www/system_certmanager.php:876
-#: usr/local/www/system_camanager.php:515
+#: usr/local/www/system_camanager.php:539
+#: usr/local/www/system_certmanager.php:752
+#: usr/local/www/system_certmanager.php:918
+#: usr/local/www/system_camanager.php:539
+#: usr/local/www/system_certmanager.php:753
+#: usr/local/www/system_certmanager.php:922
msgid "Organization"
msgstr ""
@@ -29411,20 +35750,24 @@ msgstr ""
#: usr/local/www/system_certmanager.php:716
#: usr/local/www/system_certmanager.php:882
#: usr/local/www/system_camanager.php:521
-#: usr/local/www/system_certmanager.php:882
-#: usr/local/www/system_camanager.php:521
+#: usr/local/www/system_camanager.php:545
+#: usr/local/www/system_certmanager.php:924
+#: usr/local/www/system_camanager.php:545
+#: usr/local/www/system_certmanager.php:928
msgid "My Company Inc."
msgstr ""
#: usr/local/www/system_camanager.php:530
#: usr/local/www/system_camanager.php:531
-#: usr/local/www/system_camanager.php:531
+#: usr/local/www/system_camanager.php:555
+#: usr/local/www/system_camanager.php:555
msgid "admin@mycompany.com"
msgstr ""
#: usr/local/www/system_camanager.php:540
#: usr/local/www/system_camanager.php:541
-#: usr/local/www/system_camanager.php:541
+#: usr/local/www/system_camanager.php:565
+#: usr/local/www/system_camanager.php:565
msgid "internal-ca"
msgstr ""
@@ -29432,7 +35775,9 @@ msgstr ""
#: usr/local/www/system_crlmanager.php:488
#: usr/local/www/system_camanager.php:567
#: usr/local/www/system_crlmanager.php:521
-#: usr/local/www/system_camanager.php:567
+#: usr/local/www/system_camanager.php:591
+#: usr/local/www/system_camanager.php:591
+#: usr/local/www/system_crlmanager.php:521
msgid "Internal"
msgstr ""
@@ -29440,8 +35785,10 @@ msgstr ""
#: usr/local/www/system_certmanager.php:855
#: usr/local/www/system_certmanager.php:1021
#: usr/local/www/system_camanager.php:568
-#: usr/local/www/system_certmanager.php:1021
-#: usr/local/www/system_camanager.php:568
+#: usr/local/www/system_camanager.php:592
+#: usr/local/www/system_certmanager.php:1063
+#: usr/local/www/system_camanager.php:592
+#: usr/local/www/system_certmanager.php:1067
msgid "Issuer"
msgstr ""
@@ -29449,8 +35796,10 @@ msgstr ""
#: usr/local/www/system_certmanager.php:856
#: usr/local/www/system_certmanager.php:1022
#: usr/local/www/system_camanager.php:570
-#: usr/local/www/system_certmanager.php:1022
-#: usr/local/www/system_camanager.php:570
+#: usr/local/www/system_camanager.php:594
+#: usr/local/www/system_certmanager.php:1064
+#: usr/local/www/system_camanager.php:594
+#: usr/local/www/system_certmanager.php:1068
msgid "Distinguished Name"
msgstr ""
@@ -29458,8 +35807,10 @@ msgstr ""
#: usr/local/www/system_certmanager.php:869
#: usr/local/www/system_certmanager.php:1036
#: usr/local/www/system_camanager.php:580
-#: usr/local/www/system_certmanager.php:1036
-#: usr/local/www/system_camanager.php:580
+#: usr/local/www/system_camanager.php:605
+#: usr/local/www/system_certmanager.php:1079
+#: usr/local/www/system_camanager.php:605
+#: usr/local/www/system_certmanager.php:1083
msgid "self-signed"
msgstr ""
@@ -29467,32 +35818,38 @@ msgstr ""
#: usr/local/www/system_certmanager.php:871
#: usr/local/www/system_certmanager.php:1038
#: usr/local/www/system_camanager.php:582
-#: usr/local/www/system_certmanager.php:1038
-#: usr/local/www/system_camanager.php:582
+#: usr/local/www/system_camanager.php:607
+#: usr/local/www/system_certmanager.php:1081
+#: usr/local/www/system_camanager.php:607
+#: usr/local/www/system_certmanager.php:1085
msgid "external"
msgstr ""
#: usr/local/www/system_camanager.php:626
#: usr/local/www/system_camanager.php:627
-#: usr/local/www/system_camanager.php:627
+#: usr/local/www/system_camanager.php:665
+#: usr/local/www/system_camanager.php:665
msgid "edit CA"
msgstr ""
#: usr/local/www/system_camanager.php:629
#: usr/local/www/system_camanager.php:630
-#: usr/local/www/system_camanager.php:630
+#: usr/local/www/system_camanager.php:668
+#: usr/local/www/system_camanager.php:668
msgid "export CA cert"
msgstr ""
#: usr/local/www/system_camanager.php:633
#: usr/local/www/system_camanager.php:634
-#: usr/local/www/system_camanager.php:634
+#: usr/local/www/system_camanager.php:672
+#: usr/local/www/system_camanager.php:672
msgid "export CA private key"
msgstr ""
#: usr/local/www/system_camanager.php:636
#: usr/local/www/system_camanager.php:637
-#: usr/local/www/system_camanager.php:637
+#: usr/local/www/system_camanager.php:675
+#: usr/local/www/system_camanager.php:675
msgid ""
"Do you really want to delete this Certificate Authority and its CRLs, and "
"unreference any associated certificates?"
@@ -29500,7 +35857,8 @@ msgstr ""
#: usr/local/www/system_camanager.php:637
#: usr/local/www/system_camanager.php:638
-#: usr/local/www/system_camanager.php:638
+#: usr/local/www/system_camanager.php:676
+#: usr/local/www/system_camanager.php:676
msgid "delete ca"
msgstr ""
@@ -29509,7 +35867,10 @@ msgstr ""
#: usr/local/www/system_certmanager.php:1132
#: usr/local/www/system_camanager.php:650
#: usr/local/www/system_certmanager.php:1135
-#: usr/local/www/system_camanager.php:650
+#: usr/local/www/system_camanager.php:688
+#: usr/local/www/system_certmanager.php:1191
+#: usr/local/www/system_camanager.php:688
+#: usr/local/www/system_certmanager.php:1195
msgid "add or import ca"
msgstr ""
@@ -29518,13 +35879,17 @@ msgstr ""
#: usr/local/www/system_certmanager.php:1132
#: usr/local/www/system_camanager.php:650
#: usr/local/www/system_certmanager.php:1135
-#: usr/local/www/system_camanager.php:650
+#: usr/local/www/system_camanager.php:688
+#: usr/local/www/system_certmanager.php:1191
+#: usr/local/www/system_camanager.php:688
+#: usr/local/www/system_certmanager.php:1195
msgid "add ca"
msgstr ""
#: usr/local/www/system_camanager.php:656
#: usr/local/www/system_camanager.php:657
-#: usr/local/www/system_camanager.php:657
+#: usr/local/www/system_camanager.php:695
+#: usr/local/www/system_camanager.php:695
msgid "Additional trusted Certificate Authorities can be added here."
msgstr ""
@@ -29545,26 +35910,30 @@ msgstr ""
#: usr/local/www/system_certmanager.php:51
#: usr/local/www/system_certmanager.php:56
-#: usr/local/www/system_certmanager.php:56
+#: usr/local/www/system_certmanager.php:57
+#: usr/local/www/system_certmanager.php:57
msgid "Certificate Manager"
msgstr ""
#: usr/local/www/system_certmanager.php:57
#: usr/local/www/system_certmanager.php:62
-#: usr/local/www/system_certmanager.php:62
+#: usr/local/www/system_certmanager.php:63
+#: usr/local/www/system_certmanager.php:63
msgid "Choose an existing certificate"
msgstr ""
#: usr/local/www/system_certmanager.php:96
#: usr/local/www/system_certmanager.php:101
-#: usr/local/www/system_certmanager.php:101
+#: usr/local/www/system_certmanager.php:102
+#: usr/local/www/system_certmanager.php:102
#, php-format
msgid "Certificate %s successfully deleted"
msgstr ""
#: usr/local/www/system_certmanager.php:166
#: usr/local/www/system_certmanager.php:194
-#: usr/local/www/system_certmanager.php:194
+#: usr/local/www/system_certmanager.php:197
+#: usr/local/www/system_certmanager.php:197
msgid "Key data"
msgstr ""
@@ -29575,8 +35944,10 @@ msgstr ""
#: usr/local/www/system_certmanager.php:205
#: usr/local/www/system_certmanager.php:648
#: usr/local/www/system_usermanager.php:709
-#: usr/local/www/system_certmanager.php:205
-#: usr/local/www/system_certmanager.php:648
+#: usr/local/www/system_certmanager.php:208
+#: usr/local/www/system_certmanager.php:657
+#: usr/local/www/system_certmanager.php:208
+#: usr/local/www/system_certmanager.php:658
#: usr/local/www/system_usermanager.php:190
#: usr/local/www/system_usermanager.php:709
msgid "Certificate authority"
@@ -29584,7 +35955,8 @@ msgstr ""
#: usr/local/www/system_certmanager.php:205
#: usr/local/www/system_certmanager.php:234
-#: usr/local/www/system_certmanager.php:234
+#: usr/local/www/system_certmanager.php:237
+#: usr/local/www/system_certmanager.php:237
msgid "Existing Certificate Choice"
msgstr ""
@@ -29594,9 +35966,12 @@ msgstr ""
#: usr/local/www/system_certmanager.php:387
#: usr/local/www/system_certmanager.php:962
#: usr/local/www/system_certmanager.php:1006
-#: usr/local/www/system_certmanager.php:387
-#: usr/local/www/system_certmanager.php:962
-#: usr/local/www/system_certmanager.php:1006
+#: usr/local/www/system_certmanager.php:396
+#: usr/local/www/system_certmanager.php:1004
+#: usr/local/www/system_certmanager.php:1048
+#: usr/local/www/system_certmanager.php:396
+#: usr/local/www/system_certmanager.php:1008
+#: usr/local/www/system_certmanager.php:1052
msgid "Update"
msgstr ""
@@ -29604,51 +35979,59 @@ msgstr ""
#: usr/local/www/system_certmanager.php:822
#: usr/local/www/system_certmanager.php:395
#: usr/local/www/system_certmanager.php:988
-#: usr/local/www/system_certmanager.php:395
-#: usr/local/www/system_certmanager.php:988
+#: usr/local/www/system_certmanager.php:404
+#: usr/local/www/system_certmanager.php:1030
+#: usr/local/www/system_certmanager.php:404
msgid "Final Certificate data"
msgstr ""
#: usr/local/www/system_certmanager.php:328
#: usr/local/www/system_certmanager.php:415
-#: usr/local/www/system_certmanager.php:415
+#: usr/local/www/system_certmanager.php:424
+#: usr/local/www/system_certmanager.php:424
#, php-format
msgid "The certificate modulus does not match the signing request modulus."
msgstr ""
#: usr/local/www/system_certmanager.php:507
#: usr/local/www/system_certmanager.php:606
-#: usr/local/www/system_certmanager.php:606
+#: usr/local/www/system_certmanager.php:615
+#: usr/local/www/system_certmanager.php:616
msgid "Import Certificate"
msgstr ""
#: usr/local/www/system_certmanager.php:519
#: usr/local/www/system_certmanager.php:618
-#: usr/local/www/system_certmanager.php:618
+#: usr/local/www/system_certmanager.php:627
+#: usr/local/www/system_certmanager.php:628
msgid "Private key data"
msgstr ""
#: usr/local/www/system_certmanager.php:523
#: usr/local/www/system_certmanager.php:622
-#: usr/local/www/system_certmanager.php:622
+#: usr/local/www/system_certmanager.php:631
+#: usr/local/www/system_certmanager.php:632
msgid "Paste a private key in X.509 PEM format here."
msgstr ""
#: usr/local/www/system_certmanager.php:533
#: usr/local/www/system_certmanager.php:632
-#: usr/local/www/system_certmanager.php:632
+#: usr/local/www/system_certmanager.php:641
+#: usr/local/www/system_certmanager.php:642
msgid "Internal Certificate"
msgstr ""
#: usr/local/www/system_certmanager.php:540
#: usr/local/www/system_certmanager.php:639
-#: usr/local/www/system_certmanager.php:639
+#: usr/local/www/system_certmanager.php:648
+#: usr/local/www/system_certmanager.php:649
msgid "No internal Certificate Authorities have been defined. You must"
msgstr ""
#: usr/local/www/system_certmanager.php:542
#: usr/local/www/system_certmanager.php:641
-#: usr/local/www/system_certmanager.php:641
+#: usr/local/www/system_certmanager.php:650
+#: usr/local/www/system_certmanager.php:651
msgid "an internal CA before creating an internal certificate."
msgstr ""
@@ -29656,8 +36039,10 @@ msgstr ""
#: usr/local/www/system_certmanager.php:726
#: usr/local/www/system_certmanager.php:739
#: usr/local/www/system_certmanager.php:892
-#: usr/local/www/system_certmanager.php:739
-#: usr/local/www/system_certmanager.php:892
+#: usr/local/www/system_certmanager.php:764
+#: usr/local/www/system_certmanager.php:934
+#: usr/local/www/system_certmanager.php:765
+#: usr/local/www/system_certmanager.php:938
msgid "webadmin@mycompany.com"
msgstr ""
@@ -29665,44 +36050,51 @@ msgstr ""
#: usr/local/www/system_certmanager.php:736
#: usr/local/www/system_certmanager.php:753
#: usr/local/www/system_certmanager.php:902
-#: usr/local/www/system_certmanager.php:753
-#: usr/local/www/system_certmanager.php:902
+#: usr/local/www/system_certmanager.php:778
+#: usr/local/www/system_certmanager.php:944
+#: usr/local/www/system_certmanager.php:779
+#: usr/local/www/system_certmanager.php:948
msgid "www.example.com"
msgstr ""
#: usr/local/www/system_certmanager.php:653
#: usr/local/www/system_certmanager.php:817
-#: usr/local/www/system_certmanager.php:817
+#: usr/local/www/system_certmanager.php:842
+#: usr/local/www/system_certmanager.php:846
msgid "External Signing Request"
msgstr ""
#: usr/local/www/system_certmanager.php:749
#: usr/local/www/system_certmanager.php:915
-#: usr/local/www/system_certmanager.php:915
+#: usr/local/www/system_certmanager.php:957
+#: usr/local/www/system_certmanager.php:961
msgid "Choose an Existing Certificate"
msgstr ""
#: usr/local/www/system_certmanager.php:752
#: usr/local/www/system_certmanager.php:918
-#: usr/local/www/system_certmanager.php:918
+#: usr/local/www/system_certmanager.php:960
+#: usr/local/www/system_certmanager.php:964
msgid "Existing Certificates"
msgstr ""
#: usr/local/www/system_certmanager.php:810
#: usr/local/www/system_certmanager.php:976
-#: usr/local/www/system_certmanager.php:976
+#: usr/local/www/system_certmanager.php:1018
+#: usr/local/www/system_certmanager.php:1022
msgid "Complete Signing Request"
msgstr ""
#: usr/local/www/system_certmanager.php:814
#: usr/local/www/system_certmanager.php:980
-#: usr/local/www/system_certmanager.php:980
+#: usr/local/www/system_certmanager.php:1022
msgid "Signing Request data"
msgstr ""
#: usr/local/www/system_certmanager.php:818
#: usr/local/www/system_certmanager.php:984
-#: usr/local/www/system_certmanager.php:984
+#: usr/local/www/system_certmanager.php:1026
+#: usr/local/www/system_certmanager.php:1030
msgid ""
"Copy the certificate signing data from here and forward it to your "
"certificate authority for signing."
@@ -29710,21 +36102,25 @@ msgstr ""
#: usr/local/www/system_certmanager.php:826
#: usr/local/www/system_certmanager.php:992
-#: usr/local/www/system_certmanager.php:992
+#: usr/local/www/system_certmanager.php:1034
+#: usr/local/www/system_certmanager.php:1038
msgid "Paste the certificate received from your certificate authority here."
msgstr ""
#: usr/local/www/system_certmanager.php:857
#: usr/local/www/system_crlmanager.php:490
#: usr/local/www/system_certmanager.php:1023
-#: usr/local/www/system_certmanager.php:1023
+#: usr/local/www/system_crlmanager.php:523
+#: usr/local/www/system_certmanager.php:1065
+#: usr/local/www/system_certmanager.php:1069
#: usr/local/www/system_crlmanager.php:523
msgid "In Use"
msgstr ""
#: usr/local/www/system_certmanager.php:877
#: usr/local/www/system_certmanager.php:1044
-#: usr/local/www/system_certmanager.php:1044
+#: usr/local/www/system_certmanager.php:1087
+#: usr/local/www/system_certmanager.php:1091
msgid "external - signature pending"
msgstr ""
@@ -29733,6 +36129,8 @@ msgstr ""
#: usr/local/www/system_certmanager.php:1103
#: usr/local/www/system_usermanager.php:656
#: usr/local/www/system_certmanager.php:1106
+#: usr/local/www/system_certmanager.php:1162
+#: usr/local/www/system_certmanager.php:1166
#: usr/local/www/system_usermanager.php:656
msgid "export cert"
msgstr ""
@@ -29741,20 +36139,27 @@ msgstr ""
#: usr/local/www/system_certmanager.php:929
#: usr/local/www/system_certmanager.php:1103
#: usr/local/www/system_certmanager.php:1106
-#: usr/local/www/system_certmanager.php:1106
#: usr/local/www/system_certmanager.php:1109
+#: usr/local/www/system_certmanager.php:1162
+#: usr/local/www/system_certmanager.php:1165
+#: usr/local/www/system_certmanager.php:1166
+#: usr/local/www/system_certmanager.php:1169
msgid "export ca"
msgstr ""
#: usr/local/www/system_certmanager.php:929
#: usr/local/www/system_certmanager.php:1106
#: usr/local/www/system_certmanager.php:1109
+#: usr/local/www/system_certmanager.php:1165
+#: usr/local/www/system_certmanager.php:1169
msgid "export key"
msgstr ""
#: usr/local/www/system_certmanager.php:932
#: usr/local/www/system_certmanager.php:1112
#: usr/local/www/system_certmanager.php:1115
+#: usr/local/www/system_certmanager.php:1171
+#: usr/local/www/system_certmanager.php:1175
msgid "Do you really want to delete this Certificate?"
msgstr ""
@@ -29763,6 +36168,8 @@ msgstr ""
#: usr/local/www/system_certmanager.php:1113
#: usr/local/www/system_usermanager.php:659
#: usr/local/www/system_certmanager.php:1116
+#: usr/local/www/system_certmanager.php:1172
+#: usr/local/www/system_certmanager.php:1176
#: usr/local/www/system_usermanager.php:659
msgid "delete cert"
msgstr ""
@@ -29770,12 +36177,16 @@ msgstr ""
#: usr/local/www/system_certmanager.php:939
#: usr/local/www/system_certmanager.php:1119
#: usr/local/www/system_certmanager.php:1122
+#: usr/local/www/system_certmanager.php:1178
+#: usr/local/www/system_certmanager.php:1182
msgid "update csr"
msgstr ""
#: usr/local/www/system_certmanager.php:958
#: usr/local/www/system_certmanager.php:1138
#: usr/local/www/system_certmanager.php:1141
+#: usr/local/www/system_certmanager.php:1197
+#: usr/local/www/system_certmanager.php:1201
msgid "Note: You can only delete a certificate if it is not currently in use."
msgstr ""
@@ -29842,6 +36253,7 @@ msgstr ""
#: usr/local/www/system_crlmanager.php:194
#: usr/local/www/system_crlmanager.php:193
+#: usr/local/www/system_crlmanager.php:193
msgid "Certificate Revocation List data"
msgstr ""
@@ -29856,94 +36268,119 @@ msgstr ""
#: usr/local/www/system_crlmanager.php:325
#: usr/local/www/vpn_openvpn_server.php:288
#: usr/local/www/vpn_openvpn_client.php:220
+#: usr/local/www/vpn_openvpn_client.php:238
+#: usr/local/www/vpn_openvpn_server.php:309
+#: usr/local/www/vpn_openvpn_client.php:238
+#: usr/local/www/system_crlmanager.php:200
+#: usr/local/www/system_crlmanager.php:325
#: usr/local/www/vpn_ipsec_phase1.php:166
+#: usr/local/www/vpn_openvpn_server.php:309
msgid "Certificate Authority"
msgstr ""
#: usr/local/www/system_crlmanager.php:345
#: usr/local/www/system_crlmanager.php:346
+#: usr/local/www/system_crlmanager.php:346
msgid "Existing Certificate Revocation List"
msgstr ""
#: usr/local/www/system_crlmanager.php:349
#: usr/local/www/system_crlmanager.php:350
#: usr/local/www/system_crlmanager.php:410
+#: usr/local/www/system_crlmanager.php:350
+#: usr/local/www/system_crlmanager.php:410
msgid "CRL data"
msgstr ""
#: usr/local/www/system_crlmanager.php:353
#: usr/local/www/system_crlmanager.php:354
#: usr/local/www/system_crlmanager.php:414
+#: usr/local/www/system_crlmanager.php:354
+#: usr/local/www/system_crlmanager.php:414
msgid "Paste a Certificate Revocation List in X.509 CRL format here."
msgstr ""
#: usr/local/www/system_crlmanager.php:363
#: usr/local/www/system_crlmanager.php:364
+#: usr/local/www/system_crlmanager.php:364
msgid "Internal Certificate Revocation List"
msgstr ""
#: usr/local/www/system_crlmanager.php:370
#: usr/local/www/system_crlmanager.php:371
+#: usr/local/www/system_crlmanager.php:371
msgid "Default: 9999"
msgstr ""
#: usr/local/www/system_crlmanager.php:378
#: usr/local/www/system_crlmanager.php:379
+#: usr/local/www/system_crlmanager.php:379
msgid "Default: 0"
msgstr ""
#: usr/local/www/system_crlmanager.php:401
#: usr/local/www/system_crlmanager.php:434
+#: usr/local/www/system_crlmanager.php:434
msgid "Currently Revoked Certificates for CRL"
msgstr ""
#: usr/local/www/system_crlmanager.php:405
#: usr/local/www/system_crlmanager.php:438
+#: usr/local/www/system_crlmanager.php:438
msgid "Certificate Name"
msgstr ""
#: usr/local/www/system_crlmanager.php:406
#: usr/local/www/system_crlmanager.php:439
+#: usr/local/www/system_crlmanager.php:439
msgid "Revocation Reason"
msgstr ""
#: usr/local/www/system_crlmanager.php:407
#: usr/local/www/system_crlmanager.php:440
+#: usr/local/www/system_crlmanager.php:440
msgid "Revoked At"
msgstr ""
#: usr/local/www/system_crlmanager.php:416
#: usr/local/www/system_crlmanager.php:449
+#: usr/local/www/system_crlmanager.php:449
msgid "No Certificates Found for this CRL."
msgstr ""
#: usr/local/www/system_crlmanager.php:435
#: usr/local/www/system_crlmanager.php:468
+#: usr/local/www/system_crlmanager.php:468
msgid "Do you really want to delete this Certificate from the CRL?"
msgstr ""
#: usr/local/www/system_crlmanager.php:436
#: usr/local/www/system_crlmanager.php:469
+#: usr/local/www/system_crlmanager.php:469
msgid "Delete this certificate from the CRL "
msgstr ""
#: usr/local/www/system_crlmanager.php:453
#: usr/local/www/system_crlmanager.php:486
+#: usr/local/www/system_crlmanager.php:486
msgid "No Certificates Found for this CA."
msgstr ""
#: usr/local/www/system_crlmanager.php:460
#: usr/local/www/system_crlmanager.php:493
+#: usr/local/www/system_crlmanager.php:493
msgid "Choose a Certificate to Revoke"
msgstr ""
#: usr/local/www/system_crlmanager.php:465
#: usr/local/www/system_crlmanager.php:498
+#: usr/local/www/system_crlmanager.php:498
msgid "Reason"
msgstr ""
#: usr/local/www/system_crlmanager.php:527
#: usr/local/www/system_crlmanager.php:560
+#: usr/local/www/system_crlmanager.php:568
#, php-format
msgid "Add or Import CRL for %s"
msgstr ""
@@ -29952,48 +36389,59 @@ msgstr ""
#: usr/local/www/system_crlmanager.php:531
#: usr/local/www/system_crlmanager.php:560
#: usr/local/www/system_crlmanager.php:564
+#: usr/local/www/system_crlmanager.php:568
+#: usr/local/www/system_crlmanager.php:572
msgid "add crl"
msgstr ""
#: usr/local/www/system_crlmanager.php:531
#: usr/local/www/system_crlmanager.php:564
+#: usr/local/www/system_crlmanager.php:572
#, php-format
msgid "Import CRL for %s"
msgstr ""
#: usr/local/www/system_crlmanager.php:552
#: usr/local/www/system_crlmanager.php:585
+#: usr/local/www/system_crlmanager.php:593
msgid "Export CRL"
msgstr ""
#: usr/local/www/system_crlmanager.php:557
#: usr/local/www/system_crlmanager.php:590
#: usr/local/www/system_crlmanager.php:594
+#: usr/local/www/system_crlmanager.php:598
+#: usr/local/www/system_crlmanager.php:602
msgid "Edit CRL"
msgstr ""
#: usr/local/www/system_crlmanager.php:561
#: usr/local/www/system_crlmanager.php:598
+#: usr/local/www/system_crlmanager.php:606
msgid "Do you really want to delete this Certificate Revocation List?"
msgstr ""
#: usr/local/www/system_crlmanager.php:562
#: usr/local/www/system_crlmanager.php:599
+#: usr/local/www/system_crlmanager.php:607
msgid "Delete CRL"
msgstr ""
#: usr/local/www/system_crlmanager.php:582
#: usr/local/www/system_crlmanager.php:619
+#: usr/local/www/system_crlmanager.php:531
msgid "Additional Certificate Revocation Lists can be added here."
msgstr ""
#: usr/local/www/system_gateway_groups.php:75
#: usr/local/www/system_gateway_groups.php:76
+#: usr/local/www/system_gateway_groups.php:85
msgid "removed gateway group"
msgstr ""
#: usr/local/www/system_gateway_groups.php:101
#: usr/local/www/system_gateway_groups.php:102
+#: usr/local/www/system_gateway_groups.php:111
#, php-format
msgid ""
"The gateway configuration has been changed.%sYou must apply the changes in "
@@ -30002,11 +36450,13 @@ msgstr ""
#: usr/local/www/system_gateway_groups.php:165
#: usr/local/www/system_gateway_groups.php:166
+#: usr/local/www/system_gateway_groups.php:187
msgid "Do you really want to delete this gateway group?"
msgstr ""
#: usr/local/www/system_gateway_groups.php:195
#: usr/local/www/system_gateway_groups.php:196
+#: usr/local/www/system_gateway_groups.php:205
msgid ""
"Remember to use these Gateway Groups in firewall rules in order to enable "
"load balancing, failover, or policy-based routing. Without rules directing "
@@ -30047,21 +36497,22 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:106
#: usr/local/www/system_gateway_groups_edit.php:91
#: usr/local/www/system_gateways_edit.php:107
-#: usr/local/www/system_gateway_groups_edit.php:91
#: usr/local/www/system_gateways_edit.php:108
+#: usr/local/www/system_gateways_edit.php:108
+#: usr/local/www/system_gateway_groups_edit.php:91
msgid "The gateway name must not contain invalid characters."
msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:99
#: usr/local/www/system_gateway_groups_edit.php:102
-#: usr/local/www/system_gateway_groups_edit.php:102
+#: usr/local/www/system_gateway_groups_edit.php:105
#, php-format
msgid "A gateway group with this name \"%s\" already exists."
msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:115
#: usr/local/www/system_gateway_groups_edit.php:119
-#: usr/local/www/system_gateway_groups_edit.php:119
+#: usr/local/www/system_gateway_groups_edit.php:122
#, php-format
msgid ""
"A gateway group cannot have the same name with a gateway \"%s\" please "
@@ -30070,7 +36521,7 @@ msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:119
#: usr/local/www/system_gateway_groups_edit.php:123
-#: usr/local/www/system_gateway_groups_edit.php:123
+#: usr/local/www/system_gateway_groups_edit.php:126
msgid "No gateway(s) have been selected to be used in this group"
msgstr ""
@@ -30083,6 +36534,8 @@ msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:146
#: usr/local/www/system_gateways_edit.php:425
#: usr/local/www/system_gateways_edit.php:456
+#: usr/local/www/system_gateways_edit.php:425
+#: usr/local/www/system_gateways_edit.php:458
msgid "Edit gateway"
msgstr ""
@@ -30095,54 +36548,63 @@ msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:164
#: usr/local/www/system_gateway_groups_edit.php:175
#: usr/local/www/system_gateway_groups_edit.php:234
+#: usr/local/www/system_gateway_groups_edit.php:238
msgid "Gateway Priority"
msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:185
#: usr/local/www/system_gateway_groups_edit.php:208
#: usr/local/www/system_gateway_groups_edit.php:268
+#: usr/local/www/system_gateway_groups_edit.php:272
msgid "Never"
msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:186
#: usr/local/www/system_gateway_groups_edit.php:209
#: usr/local/www/system_gateway_groups_edit.php:269
+#: usr/local/www/system_gateway_groups_edit.php:273
msgid "Tier 1"
msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:187
#: usr/local/www/system_gateway_groups_edit.php:210
#: usr/local/www/system_gateway_groups_edit.php:270
+#: usr/local/www/system_gateway_groups_edit.php:274
msgid "Tier 2"
msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:188
#: usr/local/www/system_gateway_groups_edit.php:211
#: usr/local/www/system_gateway_groups_edit.php:271
+#: usr/local/www/system_gateway_groups_edit.php:275
msgid "Tier 3"
msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:189
#: usr/local/www/system_gateway_groups_edit.php:212
#: usr/local/www/system_gateway_groups_edit.php:272
+#: usr/local/www/system_gateway_groups_edit.php:276
msgid "Tier 4"
msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:190
#: usr/local/www/system_gateway_groups_edit.php:213
#: usr/local/www/system_gateway_groups_edit.php:273
+#: usr/local/www/system_gateway_groups_edit.php:277
msgid "Tier 5"
msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:195
#: usr/local/www/system_gateway_groups_edit.php:247
#: usr/local/www/system_gateway_groups_edit.php:307
+#: usr/local/www/system_gateway_groups_edit.php:311
msgid "Link Priority"
msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:196
#: usr/local/www/system_gateway_groups_edit.php:248
#: usr/local/www/system_gateway_groups_edit.php:308
+#: usr/local/www/system_gateway_groups_edit.php:312
msgid ""
"The priority selected here defines in what order failover and balancing of "
"links will be done. Multiple links of the same priority will balance "
@@ -30154,12 +36616,14 @@ msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:205
#: usr/local/www/system_gateway_groups_edit.php:260
#: usr/local/www/system_gateway_groups_edit.php:320
+#: usr/local/www/system_gateway_groups_edit.php:322
msgid "Trigger Level"
msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:216
#: usr/local/www/system_gateway_groups_edit.php:271
#: usr/local/www/system_gateway_groups_edit.php:331
+#: usr/local/www/system_gateway_groups_edit.php:333
msgid "When to trigger exclusion of a member"
msgstr ""
@@ -30171,6 +36635,8 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:398
#: usr/local/www/system_gateways_edit.php:419
#: usr/local/www/system_gateways_edit.php:525
+#: usr/local/www/system_gateways_edit.php:529
+#: usr/local/www/system_gateways_edit.php:531
#: usr/local/www/system_gateways.php:155
msgid "Monitor IP"
msgstr ""
@@ -30182,12 +36648,15 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:110
#: usr/local/www/system_gateways_edit.php:111
#: usr/local/www/system_gateways_edit.php:112
+#: usr/local/www/system_gateways_edit.php:112
msgid "A valid gateway IP address must be specified."
msgstr ""
#: usr/local/www/system_gateways_edit.php:118
#: usr/local/www/system_gateways_edit.php:119
#: usr/local/www/system_gateways_edit.php:120
+#: usr/local/www/system_gateways_edit.php:133
+#: usr/local/www/system_gateways_edit.php:133
msgid "You can not use a IPv6 Gateway Address on a IPv4 only interface."
msgstr ""
@@ -30197,6 +36666,8 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:136
#: usr/local/www/system_gateways_edit.php:124
#: usr/local/www/system_gateways_edit.php:137
+#: usr/local/www/system_gateways_edit.php:124
+#: usr/local/www/system_gateways_edit.php:137
#, php-format
msgid ""
"The gateway address %1$s does not lie within the chosen interface's subnet "
@@ -30206,12 +36677,15 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:129
#: usr/local/www/system_gateways_edit.php:132
#: usr/local/www/system_gateways_edit.php:133
+#: usr/local/www/system_gateways_edit.php:120
+#: usr/local/www/system_gateways_edit.php:120
msgid "You can not use a IPv4 Gateway Address on a IPv6 only interface."
msgstr ""
#: usr/local/www/system_gateways_edit.php:139
#: usr/local/www/system_gateways_edit.php:143
#: usr/local/www/system_gateways_edit.php:144
+#: usr/local/www/system_gateways_edit.php:144
msgid ""
"Dynamic gateway values cannot be specified for interfaces with a static IPv4 "
"configuration."
@@ -30220,6 +36694,7 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:143
#: usr/local/www/system_gateways_edit.php:147
#: usr/local/www/system_gateways_edit.php:148
+#: usr/local/www/system_gateways_edit.php:148
msgid ""
"Dynamic gateway values cannot be specified for interfaces with a static IPv6 "
"configuration."
@@ -30228,18 +36703,21 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:147
#: usr/local/www/system_gateways_edit.php:151
#: usr/local/www/system_gateways_edit.php:152
+#: usr/local/www/system_gateways_edit.php:152
msgid "A valid monitor IP address must be specified."
msgstr ""
#: usr/local/www/system_gateways_edit.php:160
#: usr/local/www/system_gateways_edit.php:168
#: usr/local/www/system_gateways_edit.php:178
+#: usr/local/www/system_gateways_edit.php:178
msgid "Changing name on a gateway is not allowed."
msgstr ""
#: usr/local/www/system_gateways_edit.php:165
#: usr/local/www/system_gateways_edit.php:173
#: usr/local/www/system_gateways_edit.php:183
+#: usr/local/www/system_gateways_edit.php:183
#, php-format
msgid "The gateway name \"%s\" already exists."
msgstr ""
@@ -30247,6 +36725,7 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:171
#: usr/local/www/system_gateways_edit.php:179
#: usr/local/www/system_gateways_edit.php:189
+#: usr/local/www/system_gateways_edit.php:189
#, php-format
msgid "The gateway IP address \"%s\" already exists."
msgstr ""
@@ -30254,6 +36733,7 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:177
#: usr/local/www/system_gateways_edit.php:185
#: usr/local/www/system_gateways_edit.php:195
+#: usr/local/www/system_gateways_edit.php:195
#, php-format
msgid ""
"The monitor IP address \"%s\" is already in use. You must choose a different "
@@ -30298,24 +36778,32 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:363
#: usr/local/www/system_gateways_edit.php:369
#: usr/local/www/system_gateways_edit.php:475
+#: usr/local/www/system_gateways_edit.php:474
+#: usr/local/www/system_gateways_edit.php:476
msgid "Use BGPD"
msgstr ""
#: usr/local/www/system_gateways_edit.php:367
#: usr/local/www/system_gateways_edit.php:373
#: usr/local/www/system_gateways_edit.php:479
+#: usr/local/www/system_gateways_edit.php:478
+#: usr/local/www/system_gateways_edit.php:480
msgid "Choose which interface this gateway applies to."
msgstr ""
#: usr/local/www/system_gateways_edit.php:373
#: usr/local/www/system_gateways_edit.php:394
#: usr/local/www/system_gateways_edit.php:500
+#: usr/local/www/system_gateways_edit.php:502
+#: usr/local/www/system_gateways_edit.php:504
msgid "Gateway name"
msgstr ""
#: usr/local/www/system_gateways_edit.php:379
#: usr/local/www/system_gateways_edit.php:400
#: usr/local/www/system_gateways_edit.php:506
+#: usr/local/www/system_gateways_edit.php:509
+#: usr/local/www/system_gateways_edit.php:511
msgid "Gateway IP address"
msgstr ""
@@ -30325,12 +36813,18 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:406
#: usr/local/www/system_gateways_edit.php:509
#: usr/local/www/system_gateways_edit.php:512
+#: usr/local/www/system_gateways_edit.php:513
+#: usr/local/www/system_gateways_edit.php:516
+#: usr/local/www/system_gateways_edit.php:515
+#: usr/local/www/system_gateways_edit.php:518
msgid "Default Gateway"
msgstr ""
#: usr/local/www/system_gateways_edit.php:386
#: usr/local/www/system_gateways_edit.php:407
#: usr/local/www/system_gateways_edit.php:513
+#: usr/local/www/system_gateways_edit.php:517
+#: usr/local/www/system_gateways_edit.php:519
msgid "This will select the above gateway as the default gateway"
msgstr ""
@@ -30340,24 +36834,34 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:414
#: usr/local/www/system_gateways_edit.php:517
#: usr/local/www/system_gateways_edit.php:520
+#: usr/local/www/system_gateways_edit.php:521
+#: usr/local/www/system_gateways_edit.php:524
+#: usr/local/www/system_gateways_edit.php:523
+#: usr/local/www/system_gateways_edit.php:526
msgid "Disable Gateway Monitoring"
msgstr ""
#: usr/local/www/system_gateways_edit.php:394
#: usr/local/www/system_gateways_edit.php:415
#: usr/local/www/system_gateways_edit.php:521
+#: usr/local/www/system_gateways_edit.php:525
+#: usr/local/www/system_gateways_edit.php:527
msgid "This will consider this gateway as always being up"
msgstr ""
#: usr/local/www/system_gateways_edit.php:407
#: usr/local/www/system_gateways_edit.php:428
#: usr/local/www/system_gateways_edit.php:534
+#: usr/local/www/system_gateways_edit.php:538
+#: usr/local/www/system_gateways_edit.php:540
msgid "Alternative monitor IP"
msgstr ""
#: usr/local/www/system_gateways_edit.php:408
#: usr/local/www/system_gateways_edit.php:429
#: usr/local/www/system_gateways_edit.php:535
+#: usr/local/www/system_gateways_edit.php:539
+#: usr/local/www/system_gateways_edit.php:541
msgid ""
"Enter an alternative address here to be used to monitor the link. This is "
"used for the quality RRD graphs as well as the load balancer entries. Use "
@@ -30367,12 +36871,16 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:436
#: usr/local/www/system_gateways_edit.php:457
#: usr/local/www/system_gateways_edit.php:563
+#: usr/local/www/system_gateways_edit.php:567
+#: usr/local/www/system_gateways_edit.php:569
msgid "Weight for this gateway when used in a Gateway Group."
msgstr ""
#: usr/local/www/system_gateways_edit.php:440
#: usr/local/www/system_gateways_edit.php:461
#: usr/local/www/system_gateways_edit.php:567
+#: usr/local/www/system_gateways_edit.php:571
+#: usr/local/www/system_gateways_edit.php:573
msgid "Latency thresholds"
msgstr ""
@@ -30386,6 +36894,8 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:452
#: usr/local/www/system_gateways_edit.php:473
#: usr/local/www/system_gateways_edit.php:579
+#: usr/local/www/system_gateways_edit.php:583
+#: usr/local/www/system_gateways_edit.php:585
msgid "Packet Loss thresholds"
msgstr ""
@@ -30399,6 +36909,8 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:464
#: usr/local/www/system_gateways_edit.php:496
#: usr/local/www/system_gateways_edit.php:602
+#: usr/local/www/system_gateways_edit.php:606
+#: usr/local/www/system_gateways_edit.php:608
msgid "Down"
msgstr ""
@@ -30410,6 +36922,8 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:472
#: usr/local/www/system_gateways_edit.php:485
#: usr/local/www/system_gateways_edit.php:591
+#: usr/local/www/system_gateways_edit.php:595
+#: usr/local/www/system_gateways_edit.php:597
msgid "Frequency Probe"
msgstr ""
@@ -30464,6 +36978,7 @@ msgstr ""
#: usr/local/www/system_groupmanager.php:269
#: usr/local/www/system_groupmanager.php:404
+#: usr/local/www/system_groupmanager.php:405
#: usr/local/www/system_groupmanager.php:269
#: usr/local/www/system_groupmanager.php:405
msgid "Group name"
@@ -30504,9 +37019,9 @@ msgstr ""
#: usr/local/www/system_usermanager.php:563
#: usr/local/www/system_groupmanager_addprivs.php:194
#: usr/local/www/system_groupmanager.php:334
-#: usr/local/www/system_usermanager.php:563
#: usr/local/www/system_usermanager_addprivs.php:193
#: usr/local/www/system_groupmanager_addprivs.php:194
+#: usr/local/www/system_usermanager.php:563
msgid "Hold down CTRL (pc)/COMMAND (mac) key to select multiple items"
msgstr ""
@@ -30525,21 +37040,25 @@ msgstr ""
#: usr/local/www/system_groupmanager.php:406
#: usr/local/www/system_groupmanager.php:407
+#: usr/local/www/system_groupmanager.php:407
msgid "Member Count"
msgstr ""
#: usr/local/www/system_groupmanager.php:447
#: usr/local/www/system_groupmanager.php:450
+#: usr/local/www/system_groupmanager.php:468
msgid "Do you really want to delete this group?"
msgstr ""
#: usr/local/www/system_groupmanager.php:448
#: usr/local/www/system_groupmanager.php:451
+#: usr/local/www/system_groupmanager.php:469
msgid "delete group"
msgstr ""
#: usr/local/www/system_groupmanager.php:460
#: usr/local/www/system_groupmanager.php:465
+#: usr/local/www/system_groupmanager.php:415
msgid "add group"
msgstr ""
@@ -30578,7 +37097,7 @@ msgstr ""
#: usr/local/www/system_usermanager_addprivs.php:199
#: usr/local/www/system_groupmanager_addprivs.php:216
#: usr/local/www/system_usermanager_addprivs.php:199
-#: usr/local/www/system_groupmanager_addprivs.php:216
+#: usr/local/www/system_groupmanager_addprivs.php:218
msgid "Select a privilege from the list above for a description"
msgstr ""
@@ -30592,12 +37111,16 @@ msgstr ""
#: usr/local/www/system_usermanager.php:699
#: usr/local/www/vpn_openvpn_server.php:287
#: usr/local/www/vpn_openvpn_client.php:214
-#: usr/local/www/system_usermanager.php:157
-#: usr/local/www/system_usermanager.php:690
-#: usr/local/www/system_usermanager.php:699
#: usr/local/www/vpn_openvpn_server.php:288
#: usr/local/www/vpn_openvpn_client.php:220
+#: usr/local/www/vpn_openvpn_client.php:238
+#: usr/local/www/vpn_openvpn_server.php:309
+#: usr/local/www/vpn_openvpn_client.php:238
#: usr/local/www/vpn_ipsec_phase1.php:166
+#: usr/local/www/system_usermanager.php:157
+#: usr/local/www/system_usermanager.php:690
+#: usr/local/www/system_usermanager.php:699
+#: usr/local/www/vpn_openvpn_server.php:309
msgid "Certificate"
msgstr ""
@@ -30631,8 +37154,10 @@ msgstr ""
#: usr/local/www/system_usermanager.php:489
#: usr/local/www/system_usermanager_passwordmg.php:109
#: usr/local/www/system_usermanager.php:487
-#: usr/local/www/system_usermanager.php:487
#: usr/local/www/system_usermanager_passwordmg.php:110
+#: usr/local/www/system_usermanager_passwordmg.php:115
+#: usr/local/www/system_usermanager_passwordmg.php:115
+#: usr/local/www/system_usermanager.php:487
msgid "(confirmation)"
msgstr ""
@@ -30640,6 +37165,7 @@ msgstr ""
#: usr/local/www/system_usermanager.php:788
#: usr/local/www/system_usermanager.php:491
#: usr/local/www/system_usermanager.php:786
+#: usr/local/www/system_usermanager.php:787
#: usr/local/www/system_usermanager.php:491
#: usr/local/www/system_usermanager.php:787
msgid "Full name"
@@ -30773,12 +37299,14 @@ msgstr ""
#: usr/local/www/system_usermanager.php:828
#: usr/local/www/system_usermanager.php:826
#: usr/local/www/system_usermanager.php:829
+#: usr/local/www/system_usermanager.php:852
msgid "Do you really want to delete this User?"
msgstr ""
#: usr/local/www/system_usermanager.php:849
#: usr/local/www/system_usermanager.php:847
#: usr/local/www/system_usermanager.php:852
+#: usr/local/www/system_usermanager.php:805
msgid ""
"Additional users can be added here. User permissions for accessing the "
"webConfigurator can be assigned directly or inherited from group "
@@ -30790,6 +37318,7 @@ msgstr ""
#: usr/local/www/system_usermanager.php:854
#: usr/local/www/system_usermanager.php:852
#: usr/local/www/system_usermanager.php:857
+#: usr/local/www/system_usermanager.php:810
msgid ""
"Accounts created here are also used for other parts of the system such as "
"OpenVPN, IPsec, and Captive Portal."
@@ -30807,11 +37336,15 @@ msgstr ""
#: usr/local/www/system_usermanager_passwordmg.php:86
#: usr/local/www/system_usermanager_passwordmg.php:87
+#: usr/local/www/system_usermanager_passwordmg.php:92
+#: usr/local/www/system_usermanager_passwordmg.php:92
msgid "Sorry, you cannot change the password for a non-local user."
msgstr ""
#: usr/local/www/system_usermanager_passwordmg.php:112
#: usr/local/www/system_usermanager_passwordmg.php:113
+#: usr/local/www/system_usermanager_passwordmg.php:118
+#: usr/local/www/system_usermanager_passwordmg.php:118
msgid "Select a new password"
msgstr ""
@@ -30833,24 +37366,24 @@ msgid ""
msgstr ""
#: usr/local/www/system_usermanager_settings.php:131
-#: usr/local/www/system_usermanager_settings.php:131
+#: usr/local/www/system_usermanager_settings.php:134
msgid "Session Timeout"
msgstr ""
#: usr/local/www/system_usermanager_settings.php:135
-#: usr/local/www/system_usermanager_settings.php:135
+#: usr/local/www/system_usermanager_settings.php:138
msgid ""
"Time in minutes to expire idle management sessions. The default is 4 hours "
"(240 minutes)."
msgstr ""
#: usr/local/www/system_usermanager_settings.php:136
-#: usr/local/www/system_usermanager_settings.php:136
+#: usr/local/www/system_usermanager_settings.php:139
msgid "Enter 0 to never expire sessions. NOTE: This is a security risk!"
msgstr ""
#: usr/local/www/system_usermanager_settings.php:162
-#: usr/local/www/system_usermanager_settings.php:162
+#: usr/local/www/system_usermanager_settings.php:165
msgid "Save and Test"
msgstr ""
@@ -30862,8 +37395,8 @@ msgstr ""
#: usr/local/www/system_usermanager_settings_ldapacpicker.php:98
#: usr/local/www/system_usermanager_settings_test.php:119
-#: usr/local/www/system_usermanager_settings_test.php:119
#: usr/local/www/system_usermanager_settings_ldapacpicker.php:98
+#: usr/local/www/system_usermanager_settings_test.php:119
msgid "Close"
msgstr ""
@@ -30911,35 +37444,35 @@ msgstr ""
msgid "failed"
msgstr ""
-#: usr/local/www/upload_progress.php:44 usr/local/www/upload_progress.php:44
+#: usr/local/www/upload_progress.php:44
msgid "Sorry, we could not find an uploadid code."
msgstr ""
-#: usr/local/www/upload_progress.php:86 usr/local/www/upload_progress.php:86
+#: usr/local/www/upload_progress.php:86
msgid "Uploading Files"
msgstr ""
-#: usr/local/www/upload_progress.php:86 usr/local/www/upload_progress.php:86
+#: usr/local/www/upload_progress.php:86
msgid "Please wait"
msgstr ""
-#: usr/local/www/upload_progress.php:95 usr/local/www/upload_progress.php:95
+#: usr/local/www/upload_progress.php:95
msgid "Uploading file"
msgstr ""
-#: usr/local/www/upload_progress.php:123 usr/local/www/upload_progress.php:123
+#: usr/local/www/upload_progress.php:123
msgid "Uploaded"
msgstr ""
-#: usr/local/www/upload_progress.php:133 usr/local/www/upload_progress.php:133
+#: usr/local/www/upload_progress.php:133
msgid "File Size"
msgstr ""
-#: usr/local/www/upload_progress.php:145 usr/local/www/upload_progress.php:145
+#: usr/local/www/upload_progress.php:145
msgid "Completed"
msgstr ""
-#: usr/local/www/upload_progress.php:155 usr/local/www/upload_progress.php:155
+#: usr/local/www/upload_progress.php:155
msgid "Estimated"
msgstr ""
@@ -30949,16 +37482,24 @@ msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:347 usr/local/www/vpn_ipsec_keys.php:104
#: usr/local/www/vpn_ipsec_keys_edit.php:69
#: usr/local/www/vpn_ipsec_keys_edit.php:135 usr/local/www/interfaces.php:2486
-#: usr/local/www/vpn_ipsec_phase1.php:160
#: usr/local/www/vpn_ipsec_phase1.php:674
+#: usr/local/www/vpn_ipsec_phase1.php:695 usr/local/www/interfaces.php:2516
+#: usr/local/www/vpn_ipsec_keys_edit.php:69
+#: usr/local/www/vpn_ipsec_keys_edit.php:135
+#: usr/local/www/vpn_ipsec_phase1.php:160
+#: usr/local/www/vpn_ipsec_phase1.php:695
+#: usr/local/www/vpn_ipsec_mobile.php:347 usr/local/www/vpn_ipsec_keys.php:104
+#: usr/local/www/interfaces.php:2562
msgid "Pre-Shared Key"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:171
#: usr/local/www/vpn_ipsec_phase1.php:564
#: usr/local/www/vpn_ipsec_phase1.php:577
-#: usr/local/www/vpn_ipsec_phase1.php:171
#: usr/local/www/vpn_ipsec_phase1.php:576
+#: usr/local/www/vpn_ipsec_phase1.php:597
+#: usr/local/www/vpn_ipsec_phase1.php:171
+#: usr/local/www/vpn_ipsec_phase1.php:597
msgid "Remote gateway"
msgstr ""
@@ -30968,125 +37509,149 @@ msgid "The P1 lifetime must be an integer."
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:180
-#: usr/local/www/vpn_ipsec_phase1.php:180
+#: usr/local/www/vpn_ipsec_phase1.php:181
+#: usr/local/www/vpn_ipsec_phase1.php:181
msgid "A valid remote gateway address or host name must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:188
-#: usr/local/www/vpn_ipsec_phase1.php:188
+#: usr/local/www/vpn_ipsec_phase1.php:194
+#: usr/local/www/vpn_ipsec_phase1.php:194
#, php-format
msgid "The remote gateway \"%1$s\" is already used by phase1 \"%2$s\"."
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:201
-#: usr/local/www/vpn_ipsec_phase1.php:201
+#: usr/local/www/vpn_ipsec_phase1.php:222
+#: usr/local/www/vpn_ipsec_phase1.php:222
msgid "Please enter an address for 'My Identifier'"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:204
-#: usr/local/www/vpn_ipsec_phase1.php:204
+#: usr/local/www/vpn_ipsec_phase1.php:225
+#: usr/local/www/vpn_ipsec_phase1.php:225
msgid "Please enter a keyid tag for 'My Identifier'"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:207
-#: usr/local/www/vpn_ipsec_phase1.php:207
+#: usr/local/www/vpn_ipsec_phase1.php:228
+#: usr/local/www/vpn_ipsec_phase1.php:228
msgid "Please enter a fully qualified domain name for 'My Identifier'"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:210
-#: usr/local/www/vpn_ipsec_phase1.php:210
+#: usr/local/www/vpn_ipsec_phase1.php:231
+#: usr/local/www/vpn_ipsec_phase1.php:231
msgid "Please enter a user and fully qualified domain name for 'My Identifier'"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:213
-#: usr/local/www/vpn_ipsec_phase1.php:213
+#: usr/local/www/vpn_ipsec_phase1.php:234
+#: usr/local/www/vpn_ipsec_phase1.php:234
msgid "Please enter a dynamic domain name for 'My Identifier'"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:216
-#: usr/local/www/vpn_ipsec_phase1.php:216
+#: usr/local/www/vpn_ipsec_phase1.php:237
+#: usr/local/www/vpn_ipsec_phase1.php:237
msgid "A valid IP address for 'My identifier' must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:219
-#: usr/local/www/vpn_ipsec_phase1.php:219
+#: usr/local/www/vpn_ipsec_phase1.php:240
+#: usr/local/www/vpn_ipsec_phase1.php:240
msgid "A valid domain name for 'My identifier' must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:223
-#: usr/local/www/vpn_ipsec_phase1.php:223
+#: usr/local/www/vpn_ipsec_phase1.php:244
+#: usr/local/www/vpn_ipsec_phase1.php:244
msgid "A valid FQDN for 'My identifier' must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:228
-#: usr/local/www/vpn_ipsec_phase1.php:228
+#: usr/local/www/vpn_ipsec_phase1.php:249
+#: usr/local/www/vpn_ipsec_phase1.php:249
msgid ""
"A valid User FQDN in the form of user@my.domain.com for 'My identifier' must "
"be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:233
-#: usr/local/www/vpn_ipsec_phase1.php:233
+#: usr/local/www/vpn_ipsec_phase1.php:254
+#: usr/local/www/vpn_ipsec_phase1.php:254
msgid "A valid Dynamic DNS address for 'My identifier' must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:243
-#: usr/local/www/vpn_ipsec_phase1.php:243
+#: usr/local/www/vpn_ipsec_phase1.php:264
+#: usr/local/www/vpn_ipsec_phase1.php:264
msgid "Please enter an address for 'Peer Identifier'"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:246
-#: usr/local/www/vpn_ipsec_phase1.php:246
+#: usr/local/www/vpn_ipsec_phase1.php:267
+#: usr/local/www/vpn_ipsec_phase1.php:267
msgid "Please enter a keyid tag for 'Peer Identifier'"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:249
-#: usr/local/www/vpn_ipsec_phase1.php:249
+#: usr/local/www/vpn_ipsec_phase1.php:270
+#: usr/local/www/vpn_ipsec_phase1.php:270
msgid "Please enter a fully qualified domain name for 'Peer Identifier'"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:252
-#: usr/local/www/vpn_ipsec_phase1.php:252
+#: usr/local/www/vpn_ipsec_phase1.php:273
+#: usr/local/www/vpn_ipsec_phase1.php:273
msgid ""
"Please enter a user and fully qualified domain name for 'Peer Identifier'"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:255
-#: usr/local/www/vpn_ipsec_phase1.php:255
+#: usr/local/www/vpn_ipsec_phase1.php:276
+#: usr/local/www/vpn_ipsec_phase1.php:276
msgid "A valid IP address for 'Peer identifier' must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:258
-#: usr/local/www/vpn_ipsec_phase1.php:258
+#: usr/local/www/vpn_ipsec_phase1.php:279
+#: usr/local/www/vpn_ipsec_phase1.php:279
msgid "A valid domain name for 'Peer identifier' must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:262
-#: usr/local/www/vpn_ipsec_phase1.php:262
+#: usr/local/www/vpn_ipsec_phase1.php:283
+#: usr/local/www/vpn_ipsec_phase1.php:283
msgid "A valid FQDN for 'Peer identifier' must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:267
-#: usr/local/www/vpn_ipsec_phase1.php:267
+#: usr/local/www/vpn_ipsec_phase1.php:288
+#: usr/local/www/vpn_ipsec_phase1.php:288
msgid ""
"A valid User FQDN in the form of user@my.domain.com for 'Peer identifier' "
"must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:273
-#: usr/local/www/vpn_ipsec_phase1.php:273
+#: usr/local/www/vpn_ipsec_phase1.php:294
+#: usr/local/www/vpn_ipsec_phase1.php:294
msgid "A numeric value must be specified for DPD delay."
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:276
-#: usr/local/www/vpn_ipsec_phase1.php:276
+#: usr/local/www/vpn_ipsec_phase1.php:297
+#: usr/local/www/vpn_ipsec_phase1.php:297
msgid "A numeric value must be specified for DPD retries."
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:358
#: usr/local/www/vpn_ipsec_phase1.php:360
-#: usr/local/www/vpn_ipsec_phase1.php:358
-#: usr/local/www/vpn_ipsec_phase1.php:360
+#: usr/local/www/vpn_ipsec_phase1.php:379
+#: usr/local/www/vpn_ipsec_phase1.php:381
+#: usr/local/www/vpn_ipsec_phase1.php:379
+#: usr/local/www/vpn_ipsec_phase1.php:381
msgid "Edit Phase 1"
msgstr ""
@@ -31100,45 +37665,66 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:692
#: usr/local/www/vpn_openvpn_client.php:396
#: usr/local/www/vpn_ipsec_phase1.php:508
+#: usr/local/www/vpn_openvpn_client.php:414
+#: usr/local/www/vpn_ipsec_phase1.php:529
+#: usr/local/www/vpn_openvpn_server.php:718
+#: usr/local/www/vpn_openvpn_client.php:414
+#: usr/local/www/vpn_openvpn_csc.php:310
+#: usr/local/www/vpn_ipsec_phase1.php:529
+#: usr/local/www/vpn_openvpn_server.php:718
msgid "General information"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:515
#: usr/local/www/vpn_ipsec_phase1.php:514
+#: usr/local/www/vpn_ipsec_phase1.php:535
+#: usr/local/www/vpn_ipsec_phase1.php:535
msgid "Disable this phase1 entry"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:517
#: usr/local/www/vpn_ipsec_phase1.php:516
+#: usr/local/www/vpn_ipsec_phase1.php:537
+#: usr/local/www/vpn_ipsec_phase1.php:537
msgid ""
"Set this option to disable this phase1 without removing it from the list"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:523
#: usr/local/www/vpn_ipsec_phase1.php:522
+#: usr/local/www/vpn_ipsec_phase1.php:543
+#: usr/local/www/vpn_ipsec_phase1.php:543
msgid "Internet Protocol"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:534
#: usr/local/www/vpn_ipsec_phase1.php:533
+#: usr/local/www/vpn_ipsec_phase1.php:554
+#: usr/local/www/vpn_ipsec_phase1.php:554
msgid "Select the Internet Protocol family from this dropdown"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:557
#: usr/local/www/vpn_ipsec_phase1.php:570
#: usr/local/www/vpn_ipsec_phase1.php:569
+#: usr/local/www/vpn_ipsec_phase1.php:590
+#: usr/local/www/vpn_ipsec_phase1.php:590
msgid "Select the interface for the local endpoint of this phase1 entry"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:568
#: usr/local/www/vpn_ipsec_phase1.php:581
#: usr/local/www/vpn_ipsec_phase1.php:580
+#: usr/local/www/vpn_ipsec_phase1.php:601
+#: usr/local/www/vpn_ipsec_phase1.php:601
msgid "Enter the public IP address or host name of the remote gateway"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:590
#: usr/local/www/vpn_ipsec_phase1.php:603
#: usr/local/www/vpn_ipsec_phase1.php:602
+#: usr/local/www/vpn_ipsec_phase1.php:623
+#: usr/local/www/vpn_ipsec_phase1.php:623
msgid "Phase 1 proposal (Authentication)"
msgstr ""
@@ -31148,6 +37734,10 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:607
#: usr/local/www/vpn_openvpn_client.php:537
#: usr/local/www/vpn_ipsec_phase1.php:606
+#: usr/local/www/vpn_openvpn_client.php:556
+#: usr/local/www/vpn_ipsec_phase1.php:627
+#: usr/local/www/vpn_openvpn_client.php:556
+#: usr/local/www/vpn_ipsec_phase1.php:627
msgid "Authentication method"
msgstr ""
@@ -31160,36 +37750,52 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:621
#: usr/local/www/vpn_ipsec_phase1.php:747
#: usr/local/www/vpn_ipsec_phase1.php:763
+#: usr/local/www/vpn_ipsec_phase1.php:642
+#: usr/local/www/vpn_ipsec_phase1.php:768
+#: usr/local/www/vpn_ipsec_phase1.php:784
+#: usr/local/www/vpn_ipsec_phase1.php:642
+#: usr/local/www/vpn_ipsec_phase1.php:768
+#: usr/local/www/vpn_ipsec_phase1.php:784
msgid "Must match the setting chosen on the remote side"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:614
#: usr/local/www/vpn_ipsec_phase1.php:627
#: usr/local/www/vpn_ipsec_phase1.php:626
+#: usr/local/www/vpn_ipsec_phase1.php:647
+#: usr/local/www/vpn_ipsec_phase1.php:647
msgid "Negotiation mode"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:625
#: usr/local/www/vpn_ipsec_phase1.php:638
#: usr/local/www/vpn_ipsec_phase1.php:637
+#: usr/local/www/vpn_ipsec_phase1.php:658
+#: usr/local/www/vpn_ipsec_phase1.php:658
msgid "Aggressive is more flexible, but less secure"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:629
#: usr/local/www/vpn_ipsec_phase1.php:642
#: usr/local/www/vpn_ipsec_phase1.php:641
+#: usr/local/www/vpn_ipsec_phase1.php:662
+#: usr/local/www/vpn_ipsec_phase1.php:662
msgid "My identifier"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:642
#: usr/local/www/vpn_ipsec_phase1.php:655
#: usr/local/www/vpn_ipsec_phase1.php:654
+#: usr/local/www/vpn_ipsec_phase1.php:675
+#: usr/local/www/vpn_ipsec_phase1.php:675
msgid "Peer identifier"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:657
#: usr/local/www/vpn_ipsec_phase1.php:670
#: usr/local/www/vpn_ipsec_phase1.php:669
+#: usr/local/www/vpn_ipsec_phase1.php:690
+#: usr/local/www/vpn_ipsec_phase1.php:690
msgid ""
"NOTE: This is known as the \"group\" setting on some VPN client "
"implementations"
@@ -31203,12 +37809,16 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:673
#: usr/local/www/vpn_ipsec_phase1.php:686
#: usr/local/www/vpn_ipsec_phase1.php:685
+#: usr/local/www/vpn_ipsec_phase1.php:706
+#: usr/local/www/vpn_ipsec_phase1.php:706
msgid "Policy Generation"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:684
#: usr/local/www/vpn_ipsec_phase1.php:697
#: usr/local/www/vpn_ipsec_phase1.php:696
+#: usr/local/www/vpn_ipsec_phase1.php:717
+#: usr/local/www/vpn_ipsec_phase1.php:717
msgid ""
"When working as a responder (as with mobile clients), this controls how "
"policies are generated based on SA proposals."
@@ -31217,12 +37827,16 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:689
#: usr/local/www/vpn_ipsec_phase1.php:702
#: usr/local/www/vpn_ipsec_phase1.php:701
+#: usr/local/www/vpn_ipsec_phase1.php:722
+#: usr/local/www/vpn_ipsec_phase1.php:722
msgid "Proposal Checking"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:700
#: usr/local/www/vpn_ipsec_phase1.php:713
#: usr/local/www/vpn_ipsec_phase1.php:712
+#: usr/local/www/vpn_ipsec_phase1.php:733
+#: usr/local/www/vpn_ipsec_phase1.php:733
msgid ""
"Specifies the action of lifetime length, key length, and PFS of the phase 2 "
"selection on the responder side, and the action of lifetime check in phase 1."
@@ -31237,18 +37851,28 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:999
#: usr/local/www/vpn_openvpn_client.php:729
#: usr/local/www/vpn_ipsec_phase1.php:717
+#: usr/local/www/vpn_openvpn_client.php:748
+#: usr/local/www/vpn_ipsec_phase1.php:738
+#: usr/local/www/vpn_openvpn_server.php:1026
+#: usr/local/www/vpn_openvpn_client.php:748
+#: usr/local/www/vpn_ipsec_phase1.php:738
+#: usr/local/www/vpn_openvpn_server.php:1026
msgid "Encryption algorithm"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:724
#: usr/local/www/vpn_ipsec_phase1.php:737
#: usr/local/www/vpn_ipsec_phase1.php:736
+#: usr/local/www/vpn_ipsec_phase1.php:757
+#: usr/local/www/vpn_ipsec_phase1.php:757
msgid "Hash algorithm"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:740
#: usr/local/www/vpn_ipsec_phase1.php:753
#: usr/local/www/vpn_ipsec_phase1.php:752
+#: usr/local/www/vpn_ipsec_phase1.php:773
+#: usr/local/www/vpn_ipsec_phase1.php:773
msgid "DH key group"
msgstr ""
@@ -31262,24 +37886,32 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:765
#: usr/local/www/vpn_ipsec_phase1.php:778
#: usr/local/www/vpn_ipsec_phase1.php:775
+#: usr/local/www/vpn_ipsec_phase1.php:796
+#: usr/local/www/vpn_ipsec_phase1.php:796
msgid "My Certificate"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:779
#: usr/local/www/vpn_ipsec_phase1.php:792
#: usr/local/www/vpn_ipsec_phase1.php:789
+#: usr/local/www/vpn_ipsec_phase1.php:810
+#: usr/local/www/vpn_ipsec_phase1.php:810
msgid "Select a certificate previously configured in the Certificate Manager"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:784
#: usr/local/www/vpn_ipsec_phase1.php:797
#: usr/local/www/vpn_ipsec_phase1.php:794
+#: usr/local/www/vpn_ipsec_phase1.php:815
+#: usr/local/www/vpn_ipsec_phase1.php:815
msgid "My Certificate Authority"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:798
#: usr/local/www/vpn_ipsec_phase1.php:811
#: usr/local/www/vpn_ipsec_phase1.php:808
+#: usr/local/www/vpn_ipsec_phase1.php:829
+#: usr/local/www/vpn_ipsec_phase1.php:829
msgid ""
"Select a certificate authority previously configured in the Certificate "
"Manager"
@@ -31288,18 +37920,24 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:809
#: usr/local/www/vpn_ipsec_phase1.php:822
#: usr/local/www/vpn_ipsec_phase1.php:819
+#: usr/local/www/vpn_ipsec_phase1.php:840
+#: usr/local/www/vpn_ipsec_phase1.php:840
msgid "NAT Traversal"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:814
#: usr/local/www/vpn_ipsec_phase1.php:827
#: usr/local/www/vpn_ipsec_phase1.php:824
+#: usr/local/www/vpn_ipsec_phase1.php:845
+#: usr/local/www/vpn_ipsec_phase1.php:845
msgid "Force"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:818
#: usr/local/www/vpn_ipsec_phase1.php:831
#: usr/local/www/vpn_ipsec_phase1.php:828
+#: usr/local/www/vpn_ipsec_phase1.php:849
+#: usr/local/www/vpn_ipsec_phase1.php:849
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 "
@@ -31309,72 +37947,92 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:824
#: usr/local/www/vpn_ipsec_phase1.php:837
#: usr/local/www/vpn_ipsec_phase1.php:834
+#: usr/local/www/vpn_ipsec_phase1.php:855
+#: usr/local/www/vpn_ipsec_phase1.php:855
msgid "Dead Peer Detection"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:827
#: usr/local/www/vpn_ipsec_phase1.php:840
#: usr/local/www/vpn_ipsec_phase1.php:837
+#: usr/local/www/vpn_ipsec_phase1.php:858
+#: usr/local/www/vpn_ipsec_phase1.php:858
msgid "Enable DPD"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:833
#: usr/local/www/vpn_ipsec_phase1.php:846
#: usr/local/www/vpn_ipsec_phase1.php:843
+#: usr/local/www/vpn_ipsec_phase1.php:864
+#: usr/local/www/vpn_ipsec_phase1.php:864
msgid "Delay between requesting peer acknowledgement"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:837
#: usr/local/www/vpn_ipsec_phase1.php:850
#: usr/local/www/vpn_ipsec_phase1.php:847
+#: usr/local/www/vpn_ipsec_phase1.php:868
+#: usr/local/www/vpn_ipsec_phase1.php:868
msgid "retries"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:839
#: usr/local/www/vpn_ipsec_phase1.php:852
#: usr/local/www/vpn_ipsec_phase1.php:849
+#: usr/local/www/vpn_ipsec_phase1.php:870
+#: usr/local/www/vpn_ipsec_phase1.php:870
msgid "Number of consecutive failures allowed before disconnect"
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:109
#: usr/local/www/vpn_ipsec_phase2.php:111
+#: usr/local/www/vpn_ipsec_phase2.php:111
msgid "A valid ikeid must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:113
#: usr/local/www/vpn_ipsec_phase2.php:115
+#: usr/local/www/vpn_ipsec_phase2.php:115
msgid "Local network type"
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:113
#: usr/local/www/vpn_ipsec_phase2.php:115
+#: usr/local/www/vpn_ipsec_phase2.php:115
msgid "P2 Hash Algorithms"
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:116
#: usr/local/www/vpn_ipsec_phase2.php:118
+#: usr/local/www/vpn_ipsec_phase2.php:118
msgid "Remote network type"
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:126
#: usr/local/www/vpn_ipsec_phase2.php:128
+#: usr/local/www/vpn_ipsec_phase2.php:128
msgid "A valid local network bit count must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:129
#: usr/local/www/vpn_ipsec_phase2.php:131
+#: usr/local/www/vpn_ipsec_phase2.php:131
msgid "A valid local network IP address must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:136
#: usr/local/www/vpn_ipsec_phase2.php:146
#: usr/local/www/vpn_ipsec_phase2.php:170
+#: usr/local/www/vpn_ipsec_phase2.php:178
+#: usr/local/www/vpn_ipsec_phase2.php:178
msgid "A valid remote network bit count must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:139
#: usr/local/www/vpn_ipsec_phase2.php:149
#: usr/local/www/vpn_ipsec_phase2.php:173
+#: usr/local/www/vpn_ipsec_phase2.php:181
+#: usr/local/www/vpn_ipsec_phase2.php:181
msgid "A valid remote network IP address must be specified."
msgstr ""
@@ -31384,6 +38042,10 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:172
#: usr/local/www/vpn_ipsec_phase2.php:192
#: usr/local/www/vpn_ipsec_phase2.php:196
+#: usr/local/www/vpn_ipsec_phase2.php:206
+#: usr/local/www/vpn_ipsec_phase2.php:210
+#: usr/local/www/vpn_ipsec_phase2.php:206
+#: usr/local/www/vpn_ipsec_phase2.php:210
msgid "Phase2 with this Local Network is already defined for mobile clients."
msgstr ""
@@ -31393,6 +38055,10 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:203
#: usr/local/www/vpn_ipsec_phase2.php:223
#: usr/local/www/vpn_ipsec_phase2.php:227
+#: usr/local/www/vpn_ipsec_phase2.php:237
+#: usr/local/www/vpn_ipsec_phase2.php:241
+#: usr/local/www/vpn_ipsec_phase2.php:237
+#: usr/local/www/vpn_ipsec_phase2.php:241
msgid ""
"Phase2 with this Local/Remote networks combination is already defined for "
"this Phase1."
@@ -31401,12 +38067,16 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:204
#: usr/local/www/vpn_ipsec_phase2.php:216
#: usr/local/www/vpn_ipsec_phase2.php:240
+#: usr/local/www/vpn_ipsec_phase2.php:254
+#: usr/local/www/vpn_ipsec_phase2.php:254
msgid "At least one encryption algorithm must be selected."
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:207
#: usr/local/www/vpn_ipsec_phase2.php:220
#: usr/local/www/vpn_ipsec_phase2.php:244
+#: usr/local/www/vpn_ipsec_phase2.php:258
+#: usr/local/www/vpn_ipsec_phase2.php:258
msgid "The P2 lifetime must be an integer."
msgstr ""
@@ -31416,18 +38086,26 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:270
#: usr/local/www/vpn_ipsec_phase2.php:294
#: usr/local/www/vpn_ipsec_phase2.php:296
+#: usr/local/www/vpn_ipsec_phase2.php:316
+#: usr/local/www/vpn_ipsec_phase2.php:318
+#: usr/local/www/vpn_ipsec_phase2.php:316
+#: usr/local/www/vpn_ipsec_phase2.php:318
msgid "Edit Phase 2"
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:396
#: usr/local/www/vpn_ipsec_phase2.php:422
#: usr/local/www/vpn_ipsec_phase2.php:488
+#: usr/local/www/vpn_ipsec_phase2.php:510
+#: usr/local/www/vpn_ipsec_phase2.php:510
msgid "Disable this phase2 entry"
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:398
#: usr/local/www/vpn_ipsec_phase2.php:424
#: usr/local/www/vpn_ipsec_phase2.php:490
+#: usr/local/www/vpn_ipsec_phase2.php:512
+#: usr/local/www/vpn_ipsec_phase2.php:512
msgid ""
"Set this option to disable this phase2 entry without removing it from the "
"list"
@@ -31437,6 +38115,10 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:459
#: usr/local/www/vpn_ipsec_phase2.php:525
#: usr/local/www/vpn_ipsec_phase2.php:561
+#: usr/local/www/vpn_ipsec_phase2.php:547
+#: usr/local/www/vpn_ipsec_phase2.php:582
+#: usr/local/www/vpn_ipsec_phase2.php:547
+#: usr/local/www/vpn_ipsec_phase2.php:582
#, php-format
msgid "%s subnet"
msgstr ""
@@ -31444,24 +38126,32 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:512
#: usr/local/www/vpn_ipsec_phase2.php:538
#: usr/local/www/vpn_ipsec_phase2.php:640
+#: usr/local/www/vpn_ipsec_phase2.php:661
+#: usr/local/www/vpn_ipsec_phase2.php:661
msgid "Phase 2 proposal (SA/Key Exchange)"
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:527
#: usr/local/www/vpn_ipsec_phase2.php:553
#: usr/local/www/vpn_ipsec_phase2.php:655
+#: usr/local/www/vpn_ipsec_phase2.php:676
+#: usr/local/www/vpn_ipsec_phase2.php:676
msgid "ESP is encryption, AH is authentication only"
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:532
#: usr/local/www/vpn_ipsec_phase2.php:558
#: usr/local/www/vpn_ipsec_phase2.php:660
+#: usr/local/www/vpn_ipsec_phase2.php:681
+#: usr/local/www/vpn_ipsec_phase2.php:681
msgid "Encryption algorithms"
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:574
#: usr/local/www/vpn_ipsec_phase2.php:600
#: usr/local/www/vpn_ipsec_phase2.php:702
+#: usr/local/www/vpn_ipsec_phase2.php:723
+#: usr/local/www/vpn_ipsec_phase2.php:723
msgid ""
"Hint: use 3DES for best compatibility or if you have a hardware crypto "
"accelerator card. Blowfish is usually the fastest in software encryption"
@@ -31470,24 +38160,32 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:580
#: usr/local/www/vpn_ipsec_phase2.php:606
#: usr/local/www/vpn_ipsec_phase2.php:708
+#: usr/local/www/vpn_ipsec_phase2.php:729
+#: usr/local/www/vpn_ipsec_phase2.php:729
msgid "Hash algorithms"
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:590
#: usr/local/www/vpn_ipsec_phase2.php:616
#: usr/local/www/vpn_ipsec_phase2.php:718
+#: usr/local/www/vpn_ipsec_phase2.php:739
+#: usr/local/www/vpn_ipsec_phase2.php:739
msgid "PFS key group"
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:614
#: usr/local/www/vpn_ipsec_phase2.php:640
#: usr/local/www/vpn_ipsec_phase2.php:736
+#: usr/local/www/vpn_ipsec_phase2.php:757
+#: usr/local/www/vpn_ipsec_phase2.php:757
msgid "Set globally in mobile client options"
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:632
#: usr/local/www/vpn_ipsec_phase2.php:658
#: usr/local/www/vpn_ipsec_phase2.php:754
+#: usr/local/www/vpn_ipsec_phase2.php:775
+#: usr/local/www/vpn_ipsec_phase2.php:775
msgid "Automatically ping host"
msgstr ""
@@ -31496,38 +38194,47 @@ msgid "Enable l2tp server"
msgstr ""
#: usr/local/www/vpn_l2tp.php:325 usr/local/www/vpn_l2tp.php:326
+#: usr/local/www/vpn_l2tp.php:329 usr/local/www/vpn_l2tp.php:329
msgid ""
"Enter the IP address the L2TP server should give to clients for use as their "
"\"gateway\""
msgstr ""
#: usr/local/www/vpn_l2tp.php:337 usr/local/www/vpn_l2tp.php:338
+#: usr/local/www/vpn_l2tp.php:341 usr/local/www/vpn_l2tp.php:341
msgid "Specify the starting address for the client IP address subnet."
msgstr ""
#: usr/local/www/vpn_l2tp.php:341 usr/local/www/vpn_pppoe_edit.php:390
-#: usr/local/www/vpn_pppoe_edit.php:391
+#: usr/local/www/vpn_pppoe_edit.php:391 usr/local/www/vpn_pppoe_edit.php:394
+#: usr/local/www/vpn_pppoe_edit.php:394
msgid "Subnet netmask"
msgstr ""
#: usr/local/www/vpn_l2tp.php:354 usr/local/www/vpn_pppoe_edit.php:403
#: usr/local/www/vpn_pppoe_edit.php:404 usr/local/www/vpn_l2tp.php:355
+#: usr/local/www/vpn_l2tp.php:358 usr/local/www/vpn_pppoe_edit.php:407
+#: usr/local/www/vpn_l2tp.php:358 usr/local/www/vpn_pppoe_edit.php:407
msgid "is"
msgstr ""
#: usr/local/www/vpn_l2tp.php:358 usr/local/www/vpn_l2tp.php:359
+#: usr/local/www/vpn_l2tp.php:362 usr/local/www/vpn_l2tp.php:362
msgid "Number of L2TP users"
msgstr ""
#: usr/local/www/vpn_l2tp.php:371 usr/local/www/vpn_l2tp.php:372
+#: usr/local/www/vpn_l2tp.php:375 usr/local/www/vpn_l2tp.php:375
msgid "is ten L2TP clients"
msgstr ""
#: usr/local/www/vpn_l2tp.php:375 usr/local/www/vpn_l2tp.php:376
+#: usr/local/www/vpn_l2tp.php:379 usr/local/www/vpn_l2tp.php:379
msgid "Secret"
msgstr ""
#: usr/local/www/vpn_l2tp.php:379 usr/local/www/vpn_l2tp.php:380
+#: usr/local/www/vpn_l2tp.php:383 usr/local/www/vpn_l2tp.php:383
msgid ""
"Specify optional secret shared between peers. Required on some devices/"
"setups."
@@ -31538,33 +38245,41 @@ msgid "Encryption type"
msgstr ""
#: usr/local/www/vpn_l2tp.php:386 usr/local/www/vpn_l2tp.php:387
+#: usr/local/www/vpn_l2tp.php:390 usr/local/www/vpn_l2tp.php:390
msgid "CHAP"
msgstr ""
#: usr/local/www/vpn_l2tp.php:387 usr/local/www/services_captiveportal.php:607
#: usr/local/www/services_captiveportal.php:605 usr/local/www/vpn_l2tp.php:388
+#: usr/local/www/vpn_l2tp.php:391 usr/local/www/services_captiveportal.php:606
+#: usr/local/www/vpn_l2tp.php:391 usr/local/www/services_captiveportal.php:622
msgid "PAP"
msgstr ""
#: usr/local/www/vpn_l2tp.php:390 usr/local/www/vpn_l2tp.php:391
+#: usr/local/www/vpn_l2tp.php:394 usr/local/www/vpn_l2tp.php:394
msgid "Specifies which protocol to use for authentication."
msgstr ""
#: usr/local/www/vpn_l2tp.php:394 usr/local/www/vpn_l2tp.php:395
+#: usr/local/www/vpn_l2tp.php:398 usr/local/www/vpn_l2tp.php:398
msgid "L2TP DNS Servers"
msgstr ""
#: usr/local/www/vpn_l2tp.php:400 usr/local/www/vpn_l2tp.php:401
+#: usr/local/www/vpn_l2tp.php:404 usr/local/www/vpn_l2tp.php:404
msgid "primary and secondary DNS servers assigned to L2TP clients"
msgstr ""
#: usr/local/www/vpn_l2tp.php:414 usr/local/www/vpn_l2tp.php:415
+#: usr/local/www/vpn_l2tp.php:418 usr/local/www/vpn_l2tp.php:418
msgid ""
"When set, all users will be authenticated using the RADIUS server specified "
"below. The local user database will not be used."
msgstr ""
#: usr/local/www/vpn_l2tp.php:418 usr/local/www/vpn_l2tp.php:419
+#: usr/local/www/vpn_l2tp.php:422 usr/local/www/vpn_l2tp.php:422
msgid "Sends accounting packets to the RADIUS server."
msgstr ""
@@ -31573,10 +38288,12 @@ msgid "RADIUS server"
msgstr ""
#: usr/local/www/vpn_l2tp.php:425 usr/local/www/vpn_l2tp.php:426
+#: usr/local/www/vpn_l2tp.php:429 usr/local/www/vpn_l2tp.php:429
msgid "Enter the IP address of the RADIUS server."
msgstr ""
#: usr/local/www/vpn_l2tp.php:432 usr/local/www/vpn_l2tp.php:433
+#: usr/local/www/vpn_l2tp.php:436 usr/local/www/vpn_l2tp.php:436
msgid ""
"Enter the shared secret that will be used to authenticate to the RADIUS "
"server."
@@ -31587,24 +38304,29 @@ msgid "RADIUS issued IP's"
msgstr ""
#: usr/local/www/vpn_l2tp.php:439 usr/local/www/vpn_l2tp.php:440
+#: usr/local/www/vpn_l2tp.php:443 usr/local/www/vpn_l2tp.php:443
msgid "Issue IP Addresses via RADIUS server."
msgstr ""
#: usr/local/www/vpn_l2tp.php:452 usr/local/www/vpn_l2tp.php:453
+#: usr/local/www/vpn_l2tp.php:456 usr/local/www/vpn_l2tp.php:456
msgid ""
"Don't forget to add a firewall rule to permit traffic from L2TP clients!"
msgstr ""
#: usr/local/www/vpn_l2tp_users.php:86 usr/local/www/vpn_l2tp_users.php:87
+#: usr/local/www/vpn_l2tp_users.php:87
msgid "The l2tp user list has been modified"
msgstr ""
#: usr/local/www/vpn_l2tp_users.php:86 usr/local/www/vpn_l2tp_users.php:87
+#: usr/local/www/vpn_l2tp_users.php:87
msgid "Warning: this will terminate all current l2tp sessions!"
msgstr ""
#: usr/local/www/vpn_l2tp_users_edit.php:164
#: usr/local/www/vpn_l2tp_users_edit.php:165
+#: usr/local/www/vpn_l2tp_users_edit.php:165
msgid "If you want to change the users password, enter it here twice."
msgstr ""
@@ -31616,13 +38338,19 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:371
#: usr/local/www/vpn_openvpn_csc.php:293
#: usr/local/www/vpn_openvpn_server.php:675
-#: usr/local/www/vpn_openvpn_client.php:40
#: usr/local/www/vpn_openvpn_client.php:379
+#: usr/local/www/vpn_openvpn_client.php:397
+#: usr/local/www/vpn_openvpn_server.php:701
+#: usr/local/www/vpn_openvpn_client.php:40
+#: usr/local/www/vpn_openvpn_client.php:397
+#: usr/local/www/vpn_openvpn_csc.php:293
+#: usr/local/www/vpn_openvpn_server.php:701
msgid "Client"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:82
#: usr/local/www/vpn_openvpn_client.php:86
+#: usr/local/www/vpn_openvpn_client.php:86
msgid "Client successfully deleted"
msgstr ""
@@ -31632,12 +38360,18 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:165
#: usr/local/www/vpn_openvpn_server.php:233
#: usr/local/www/vpn_openvpn_client.php:171
+#: usr/local/www/vpn_openvpn_client.php:182
+#: usr/local/www/vpn_openvpn_server.php:254
+#: usr/local/www/vpn_openvpn_client.php:182
+#: usr/local/www/vpn_openvpn_server.php:254
msgid "The specified 'Local port' is in use. Please select another value"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:183
#: usr/local/www/vpn_openvpn_client.php:184
#: usr/local/www/vpn_openvpn_client.php:190
+#: usr/local/www/vpn_openvpn_client.php:201
+#: usr/local/www/vpn_openvpn_client.php:201
msgid "User name and password are required for proxy with authentication."
msgstr ""
@@ -31647,6 +38381,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:204
#: usr/local/www/vpn_openvpn_server.php:241
#: usr/local/www/vpn_openvpn_client.php:210
+#: usr/local/www/vpn_openvpn_client.php:228
+#: usr/local/www/vpn_openvpn_server.php:262
+#: usr/local/www/vpn_openvpn_client.php:228
+#: usr/local/www/vpn_openvpn_server.php:262
msgid "The field 'Shared Key' does not appear to be valid"
msgstr ""
@@ -31656,6 +38394,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:209
#: usr/local/www/vpn_openvpn_server.php:246
#: usr/local/www/vpn_openvpn_client.php:215
+#: usr/local/www/vpn_openvpn_client.php:233
+#: usr/local/www/vpn_openvpn_server.php:267
+#: usr/local/www/vpn_openvpn_client.php:233
+#: usr/local/www/vpn_openvpn_server.php:267
msgid "The field 'TLS Authentication Key' does not appear to be valid"
msgstr ""
@@ -31665,6 +38407,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:218
#: usr/local/www/vpn_openvpn_server.php:292
#: usr/local/www/vpn_openvpn_client.php:224
+#: usr/local/www/vpn_openvpn_client.php:242
+#: usr/local/www/vpn_openvpn_server.php:313
+#: usr/local/www/vpn_openvpn_client.php:242
+#: usr/local/www/vpn_openvpn_server.php:313
msgid "Shared key"
msgstr ""
@@ -31676,18 +38422,27 @@ msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:294
#: usr/local/www/vpn_openvpn_server.php:676
#: usr/local/www/vpn_openvpn_client.php:380
+#: usr/local/www/vpn_openvpn_client.php:398
+#: usr/local/www/vpn_openvpn_server.php:702
+#: usr/local/www/vpn_openvpn_client.php:398
+#: usr/local/www/vpn_openvpn_csc.php:294
+#: usr/local/www/vpn_openvpn_server.php:702
msgid "Client Specific Overrides"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:397
#: usr/local/www/vpn_openvpn_client.php:402
#: usr/local/www/vpn_openvpn_client.php:410
+#: usr/local/www/vpn_openvpn_client.php:428
+#: usr/local/www/vpn_openvpn_client.php:428
msgid "Disable this client"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:402
#: usr/local/www/vpn_openvpn_client.php:407
#: usr/local/www/vpn_openvpn_client.php:415
+#: usr/local/www/vpn_openvpn_client.php:433
+#: usr/local/www/vpn_openvpn_client.php:433
msgid ""
"Set this option to disable this client without removing it from the list"
msgstr ""
@@ -31698,12 +38453,18 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:411
#: usr/local/www/vpn_openvpn_server.php:715
#: usr/local/www/vpn_openvpn_client.php:419
+#: usr/local/www/vpn_openvpn_client.php:437
+#: usr/local/www/vpn_openvpn_server.php:741
+#: usr/local/www/vpn_openvpn_client.php:437
+#: usr/local/www/vpn_openvpn_server.php:741
msgid "Server Mode"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:436
#: usr/local/www/vpn_openvpn_client.php:441
#: usr/local/www/vpn_openvpn_client.php:449
+#: usr/local/www/vpn_openvpn_client.php:467
+#: usr/local/www/vpn_openvpn_client.php:467
msgid "Device mode"
msgstr ""
@@ -31713,12 +38474,18 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:481
#: usr/local/www/vpn_openvpn_server.php:817
#: usr/local/www/vpn_openvpn_client.php:499
+#: usr/local/www/vpn_openvpn_client.php:518
+#: usr/local/www/vpn_openvpn_server.php:844
+#: usr/local/www/vpn_openvpn_client.php:518
+#: usr/local/www/vpn_openvpn_server.php:844
msgid "Local port"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:480
#: usr/local/www/vpn_openvpn_client.php:485
#: usr/local/www/vpn_openvpn_client.php:503
+#: usr/local/www/vpn_openvpn_client.php:522
+#: usr/local/www/vpn_openvpn_client.php:522
msgid ""
"Set this option if you would like to bind to a specific port. Leave this "
"blank or enter 0 for a random dynamic port."
@@ -31727,60 +38494,80 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:484
#: usr/local/www/vpn_openvpn_client.php:489
#: usr/local/www/vpn_openvpn_client.php:507
+#: usr/local/www/vpn_openvpn_client.php:526
+#: usr/local/www/vpn_openvpn_client.php:526
msgid "Server host or address"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:490
#: usr/local/www/vpn_openvpn_client.php:495
#: usr/local/www/vpn_openvpn_client.php:513
+#: usr/local/www/vpn_openvpn_client.php:532
+#: usr/local/www/vpn_openvpn_client.php:532
msgid "Server port"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:496
#: usr/local/www/vpn_openvpn_client.php:501
#: usr/local/www/vpn_openvpn_client.php:519
+#: usr/local/www/vpn_openvpn_client.php:538
+#: usr/local/www/vpn_openvpn_client.php:538
msgid "Proxy host or address"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:502
#: usr/local/www/vpn_openvpn_client.php:507
#: usr/local/www/vpn_openvpn_client.php:525
+#: usr/local/www/vpn_openvpn_client.php:544
+#: usr/local/www/vpn_openvpn_client.php:544
msgid "Proxy port"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:508
#: usr/local/www/vpn_openvpn_client.php:513
#: usr/local/www/vpn_openvpn_client.php:531
+#: usr/local/www/vpn_openvpn_client.php:550
+#: usr/local/www/vpn_openvpn_client.php:550
msgid "Proxy authentication extra options"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:520
#: usr/local/www/vpn_openvpn_client.php:525
#: usr/local/www/vpn_openvpn_client.php:543
+#: usr/local/www/vpn_openvpn_client.php:562
+#: usr/local/www/vpn_openvpn_client.php:562
msgid "basic"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:521
#: usr/local/www/vpn_openvpn_client.php:526
#: usr/local/www/vpn_openvpn_client.php:544
+#: usr/local/www/vpn_openvpn_client.php:563
+#: usr/local/www/vpn_openvpn_client.php:563
msgid "ntlm"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:552
#: usr/local/www/vpn_openvpn_client.php:557
#: usr/local/www/vpn_openvpn_client.php:575
+#: usr/local/www/vpn_openvpn_client.php:594
+#: usr/local/www/vpn_openvpn_client.php:594
msgid "Server host name resolution"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:562
#: usr/local/www/vpn_openvpn_client.php:567
#: usr/local/www/vpn_openvpn_client.php:585
+#: usr/local/www/vpn_openvpn_client.php:604
+#: usr/local/www/vpn_openvpn_client.php:604
msgid "Infinitely resolve server"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:567
#: usr/local/www/vpn_openvpn_client.php:572
#: usr/local/www/vpn_openvpn_client.php:590
+#: usr/local/www/vpn_openvpn_client.php:609
+#: usr/local/www/vpn_openvpn_client.php:609
msgid ""
"Continuously attempt to resolve the server host name. Useful when "
"communicating with a server that is not permanently connected to the Internet"
@@ -31792,6 +38579,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:589
#: usr/local/www/vpn_openvpn_server.php:834
#: usr/local/www/vpn_openvpn_client.php:607
+#: usr/local/www/vpn_openvpn_client.php:626
+#: usr/local/www/vpn_openvpn_server.php:861
+#: usr/local/www/vpn_openvpn_client.php:626
+#: usr/local/www/vpn_openvpn_server.php:861
msgid "Cryptographic Settings"
msgstr ""
@@ -31801,6 +38592,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:592
#: usr/local/www/vpn_openvpn_server.php:837
#: usr/local/www/vpn_openvpn_client.php:610
+#: usr/local/www/vpn_openvpn_client.php:629
+#: usr/local/www/vpn_openvpn_server.php:864
+#: usr/local/www/vpn_openvpn_client.php:629
+#: usr/local/www/vpn_openvpn_server.php:864
msgid "TLS Authentication"
msgstr ""
@@ -31810,6 +38605,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:602
#: usr/local/www/vpn_openvpn_server.php:847
#: usr/local/www/vpn_openvpn_client.php:620
+#: usr/local/www/vpn_openvpn_client.php:639
+#: usr/local/www/vpn_openvpn_server.php:874
+#: usr/local/www/vpn_openvpn_client.php:639
+#: usr/local/www/vpn_openvpn_server.php:874
msgid "Enable authentication of TLS packets"
msgstr ""
@@ -31819,6 +38618,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:616
#: usr/local/www/vpn_openvpn_server.php:861
#: usr/local/www/vpn_openvpn_client.php:634
+#: usr/local/www/vpn_openvpn_client.php:653
+#: usr/local/www/vpn_openvpn_server.php:888
+#: usr/local/www/vpn_openvpn_client.php:653
+#: usr/local/www/vpn_openvpn_server.php:888
msgid "Automatically generate a shared TLS authentication key"
msgstr ""
@@ -31834,12 +38637,22 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:992
#: usr/local/www/vpn_openvpn_client.php:645
#: usr/local/www/vpn_openvpn_client.php:722
+#: usr/local/www/vpn_openvpn_client.php:664
+#: usr/local/www/vpn_openvpn_client.php:741
+#: usr/local/www/vpn_openvpn_server.php:899
+#: usr/local/www/vpn_openvpn_server.php:1019
+#: usr/local/www/vpn_openvpn_client.php:664
+#: usr/local/www/vpn_openvpn_client.php:741
+#: usr/local/www/vpn_openvpn_server.php:899
+#: usr/local/www/vpn_openvpn_server.php:1019
msgid "Paste your shared key here"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:648
#: usr/local/www/vpn_openvpn_client.php:653
#: usr/local/www/vpn_openvpn_client.php:671
+#: usr/local/www/vpn_openvpn_client.php:690
+#: usr/local/www/vpn_openvpn_client.php:690
msgid "Client Certificate"
msgstr ""
@@ -31849,6 +38662,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:682
#: usr/local/www/vpn_openvpn_server.php:970
#: usr/local/www/vpn_openvpn_client.php:700
+#: usr/local/www/vpn_openvpn_client.php:719
+#: usr/local/www/vpn_openvpn_server.php:997
+#: usr/local/www/vpn_openvpn_client.php:719
+#: usr/local/www/vpn_openvpn_server.php:997
msgid "Shared Key"
msgstr ""
@@ -31858,6 +38675,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:693
#: usr/local/www/vpn_openvpn_server.php:981
#: usr/local/www/vpn_openvpn_client.php:711
+#: usr/local/www/vpn_openvpn_client.php:730
+#: usr/local/www/vpn_openvpn_server.php:1008
+#: usr/local/www/vpn_openvpn_client.php:730
+#: usr/local/www/vpn_openvpn_server.php:1008
msgid "Automatically generate a shared key"
msgstr ""
@@ -31867,6 +38688,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:729
#: usr/local/www/vpn_openvpn_server.php:1017
#: usr/local/www/vpn_openvpn_client.php:747
+#: usr/local/www/vpn_openvpn_client.php:766
+#: usr/local/www/vpn_openvpn_server.php:1044
+#: usr/local/www/vpn_openvpn_client.php:766
+#: usr/local/www/vpn_openvpn_server.php:1044
msgid "Hardware Crypto"
msgstr ""
@@ -31878,6 +38703,11 @@ msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:373
#: usr/local/www/vpn_openvpn_server.php:1081
#: usr/local/www/vpn_openvpn_client.php:768
+#: usr/local/www/vpn_openvpn_client.php:787
+#: usr/local/www/vpn_openvpn_server.php:1108
+#: usr/local/www/vpn_openvpn_client.php:787
+#: usr/local/www/vpn_openvpn_csc.php:373
+#: usr/local/www/vpn_openvpn_server.php:1108
msgid "Tunnel Settings"
msgstr ""
@@ -31888,6 +38718,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:753
#: usr/local/www/vpn_openvpn_csc.php:376
#: usr/local/www/vpn_openvpn_server.php:1633
+#: usr/local/www/vpn_openvpn_server.php:1685
+#: usr/local/www/vpn_openvpn_csc.php:376
+#: usr/local/www/vpn_openvpn_server.php:1685
msgid "Tunnel Network"
msgstr ""
@@ -31896,6 +38729,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:757
#: usr/local/www/vpn_openvpn_csc.php:380
#: usr/local/www/vpn_openvpn_client.php:775
+#: usr/local/www/vpn_openvpn_client.php:794
+#: usr/local/www/vpn_openvpn_client.php:794
+#: usr/local/www/vpn_openvpn_csc.php:380
msgid ""
"This is the virtual network used for private communications between this "
"client and the server expressed using CIDR (eg. 10.0.8.0/24). The first "
@@ -31916,12 +38752,16 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:776
#: usr/local/www/vpn_openvpn_client.php:781
#: usr/local/www/vpn_openvpn_client.php:827
+#: usr/local/www/vpn_openvpn_client.php:846
+#: usr/local/www/vpn_openvpn_client.php:846
msgid "Limit outgoing bandwidth"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:780
#: usr/local/www/vpn_openvpn_client.php:785
#: usr/local/www/vpn_openvpn_client.php:831
+#: usr/local/www/vpn_openvpn_client.php:850
+#: usr/local/www/vpn_openvpn_client.php:850
msgid ""
"Maximum outgoing bandwidth for this tunnel. Leave empty for no limit. The "
"input value has to be something between 100 bytes/sec and 100 Mbytes/sec "
@@ -31934,6 +38774,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:802
#: usr/local/www/vpn_openvpn_server.php:1271
#: usr/local/www/vpn_openvpn_client.php:848
+#: usr/local/www/vpn_openvpn_client.php:867
+#: usr/local/www/vpn_openvpn_server.php:1298
+#: usr/local/www/vpn_openvpn_client.php:867
+#: usr/local/www/vpn_openvpn_server.php:1298
msgid "Compress tunnel packets using the LZO algorithm"
msgstr ""
@@ -31943,6 +38787,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:810
#: usr/local/www/vpn_openvpn_server.php:1279
#: usr/local/www/vpn_openvpn_client.php:856
+#: usr/local/www/vpn_openvpn_client.php:875
+#: usr/local/www/vpn_openvpn_server.php:1306
+#: usr/local/www/vpn_openvpn_client.php:875
+#: usr/local/www/vpn_openvpn_server.php:1306
msgid "Type-of-Service"
msgstr ""
@@ -31952,6 +38800,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:820
#: usr/local/www/vpn_openvpn_server.php:1289
#: usr/local/www/vpn_openvpn_client.php:866
+#: usr/local/www/vpn_openvpn_client.php:885
+#: usr/local/www/vpn_openvpn_server.php:1316
+#: usr/local/www/vpn_openvpn_client.php:885
+#: usr/local/www/vpn_openvpn_server.php:1316
msgid ""
"Set the TOS IP header value of tunnel packets to match the encapsulated "
"packet value"
@@ -31963,12 +38815,18 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:831
#: usr/local/www/vpn_openvpn_server.php:1593
#: usr/local/www/vpn_openvpn_client.php:880
+#: usr/local/www/vpn_openvpn_client.php:899
+#: usr/local/www/vpn_openvpn_server.php:1645
+#: usr/local/www/vpn_openvpn_client.php:899
+#: usr/local/www/vpn_openvpn_server.php:1645
msgid "Advanced configuration"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:835
#: usr/local/www/vpn_openvpn_client.php:840
#: usr/local/www/vpn_openvpn_client.php:889
+#: usr/local/www/vpn_openvpn_client.php:908
+#: usr/local/www/vpn_openvpn_client.php:908
msgid ""
"Enter any additional options you would like to add to the OpenVPN client "
"configuration here, separated by a semicolon"
@@ -31983,24 +38841,32 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:891
#: usr/local/www/vpn_openvpn_client.php:896
#: usr/local/www/vpn_openvpn_client.php:949
+#: usr/local/www/vpn_openvpn_client.php:968
+#: usr/local/www/vpn_openvpn_client.php:968
msgid "edit client"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:895
#: usr/local/www/vpn_openvpn_client.php:900
#: usr/local/www/vpn_openvpn_client.php:953
+#: usr/local/www/vpn_openvpn_client.php:972
+#: usr/local/www/vpn_openvpn_client.php:972
msgid "delete client"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:908
#: usr/local/www/vpn_openvpn_client.php:913
#: usr/local/www/vpn_openvpn_client.php:966
+#: usr/local/www/vpn_openvpn_client.php:985
+#: usr/local/www/vpn_openvpn_client.php:985
msgid "add client"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:915
#: usr/local/www/vpn_openvpn_client.php:920
#: usr/local/www/vpn_openvpn_client.php:973
+#: usr/local/www/vpn_openvpn_client.php:992
+#: usr/local/www/vpn_openvpn_client.php:992
msgid "Additional OpenVPN clients can be added here."
msgstr ""
@@ -32009,6 +38875,7 @@ msgid "Client Specific Override"
msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:67 usr/local/www/vpn_openvpn_csc.php:66
+#: usr/local/www/vpn_openvpn_csc.php:66
msgid "Client Specific Override successfully deleted"
msgstr ""
@@ -32017,6 +38884,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:249
#: usr/local/www/vpn_openvpn_csc.php:130
#: usr/local/www/vpn_openvpn_server.php:250
+#: usr/local/www/vpn_openvpn_server.php:271
+#: usr/local/www/vpn_openvpn_csc.php:130
+#: usr/local/www/vpn_openvpn_server.php:271
msgid "The field 'DNS Server #1' must contain a valid IP address"
msgstr ""
@@ -32025,6 +38895,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:251
#: usr/local/www/vpn_openvpn_csc.php:132
#: usr/local/www/vpn_openvpn_server.php:252
+#: usr/local/www/vpn_openvpn_server.php:273
+#: usr/local/www/vpn_openvpn_csc.php:132
+#: usr/local/www/vpn_openvpn_server.php:273
msgid "The field 'DNS Server #2' must contain a valid IP address"
msgstr ""
@@ -32033,6 +38906,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:253
#: usr/local/www/vpn_openvpn_csc.php:134
#: usr/local/www/vpn_openvpn_server.php:254
+#: usr/local/www/vpn_openvpn_server.php:275
+#: usr/local/www/vpn_openvpn_csc.php:134
+#: usr/local/www/vpn_openvpn_server.php:275
msgid "The field 'DNS Server #3' must contain a valid IP address"
msgstr ""
@@ -32041,6 +38917,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:255
#: usr/local/www/vpn_openvpn_csc.php:136
#: usr/local/www/vpn_openvpn_server.php:256
+#: usr/local/www/vpn_openvpn_server.php:277
+#: usr/local/www/vpn_openvpn_csc.php:136
+#: usr/local/www/vpn_openvpn_server.php:277
msgid "The field 'DNS Server #4' must contain a valid IP address"
msgstr ""
@@ -32049,6 +38928,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:260
#: usr/local/www/vpn_openvpn_csc.php:141
#: usr/local/www/vpn_openvpn_server.php:261
+#: usr/local/www/vpn_openvpn_server.php:282
+#: usr/local/www/vpn_openvpn_csc.php:141
+#: usr/local/www/vpn_openvpn_server.php:282
msgid "The field 'NTP Server #1' must contain a valid IP address"
msgstr ""
@@ -32057,6 +38939,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:262
#: usr/local/www/vpn_openvpn_csc.php:143
#: usr/local/www/vpn_openvpn_server.php:263
+#: usr/local/www/vpn_openvpn_server.php:284
+#: usr/local/www/vpn_openvpn_csc.php:143
+#: usr/local/www/vpn_openvpn_server.php:284
msgid "The field 'NTP Server #2' must contain a valid IP address"
msgstr ""
@@ -32065,6 +38950,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:264
#: usr/local/www/vpn_openvpn_csc.php:145
#: usr/local/www/vpn_openvpn_server.php:265
+#: usr/local/www/vpn_openvpn_server.php:286
+#: usr/local/www/vpn_openvpn_csc.php:145
+#: usr/local/www/vpn_openvpn_server.php:286
msgid "The field 'NTP Server #3' must contain a valid IP address"
msgstr ""
@@ -32073,6 +38961,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:266
#: usr/local/www/vpn_openvpn_csc.php:147
#: usr/local/www/vpn_openvpn_server.php:267
+#: usr/local/www/vpn_openvpn_server.php:288
+#: usr/local/www/vpn_openvpn_csc.php:147
+#: usr/local/www/vpn_openvpn_server.php:288
msgid "The field 'NTP Server #4' must contain a valid IP address"
msgstr ""
@@ -32081,6 +38972,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:272
#: usr/local/www/vpn_openvpn_csc.php:153
#: usr/local/www/vpn_openvpn_server.php:273
+#: usr/local/www/vpn_openvpn_server.php:294
+#: usr/local/www/vpn_openvpn_csc.php:153
+#: usr/local/www/vpn_openvpn_server.php:294
msgid "The field 'WINS Server #1' must contain a valid IP address"
msgstr ""
@@ -32089,6 +38983,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:274
#: usr/local/www/vpn_openvpn_csc.php:155
#: usr/local/www/vpn_openvpn_server.php:275
+#: usr/local/www/vpn_openvpn_server.php:296
+#: usr/local/www/vpn_openvpn_csc.php:155
+#: usr/local/www/vpn_openvpn_server.php:296
msgid "The field 'WINS Server #2' must contain a valid IP address"
msgstr ""
@@ -32097,38 +38994,48 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:278
#: usr/local/www/vpn_openvpn_csc.php:159
#: usr/local/www/vpn_openvpn_server.php:279
+#: usr/local/www/vpn_openvpn_server.php:300
+#: usr/local/www/vpn_openvpn_csc.php:159
+#: usr/local/www/vpn_openvpn_server.php:300
msgid ""
"The field 'NetBIOS Data Distribution Server #1' must contain a valid IP "
"address"
msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:325 usr/local/www/vpn_openvpn_csc.php:324
+#: usr/local/www/vpn_openvpn_csc.php:324
msgid "Disable this override"
msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:330 usr/local/www/vpn_openvpn_csc.php:329
+#: usr/local/www/vpn_openvpn_csc.php:329
msgid ""
"Set this option to disable this client-specific override without removing it "
"from the list"
msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:334 usr/local/www/vpn_openvpn_csc.php:333
+#: usr/local/www/vpn_openvpn_csc.php:333
msgid "Common name"
msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:338 usr/local/www/vpn_openvpn_csc.php:337
+#: usr/local/www/vpn_openvpn_csc.php:337
msgid "Enter the client's X.509 common name here"
msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:350 usr/local/www/vpn_openvpn_csc.php:349
+#: usr/local/www/vpn_openvpn_csc.php:349
msgid "Connection blocking"
msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:360 usr/local/www/vpn_openvpn_csc.php:359
+#: usr/local/www/vpn_openvpn_csc.php:359
msgid "Block this client connection based on its common name"
msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:365 usr/local/www/vpn_openvpn_csc.php:364
+#: usr/local/www/vpn_openvpn_csc.php:364
msgid ""
"Don't use this option to permanently disable a client due to a compromised "
"key or password. Use a CRL (certificate revocation list) instead"
@@ -32139,6 +39046,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1153
#: usr/local/www/vpn_openvpn_csc.php:390
#: usr/local/www/vpn_openvpn_server.php:1181
+#: usr/local/www/vpn_openvpn_server.php:1208
+#: usr/local/www/vpn_openvpn_csc.php:390
+#: usr/local/www/vpn_openvpn_server.php:1208
msgid "Redirect Gateway"
msgstr ""
@@ -32147,6 +39057,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1163
#: usr/local/www/vpn_openvpn_csc.php:400
#: usr/local/www/vpn_openvpn_server.php:1191
+#: usr/local/www/vpn_openvpn_server.php:1218
+#: usr/local/www/vpn_openvpn_csc.php:400
+#: usr/local/www/vpn_openvpn_server.php:1218
msgid "Force all client generated traffic through the tunnel"
msgstr ""
@@ -32155,14 +39068,19 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1297
#: usr/local/www/vpn_openvpn_csc.php:411
#: usr/local/www/vpn_openvpn_server.php:1339
+#: usr/local/www/vpn_openvpn_server.php:1366
+#: usr/local/www/vpn_openvpn_csc.php:411
+#: usr/local/www/vpn_openvpn_server.php:1366
msgid "Client Settings"
msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:415 usr/local/www/vpn_openvpn_csc.php:414
+#: usr/local/www/vpn_openvpn_csc.php:414
msgid "Server Definitions"
msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:425 usr/local/www/vpn_openvpn_csc.php:424
+#: usr/local/www/vpn_openvpn_csc.php:424
msgid "Prevent this client from receiving any server-defined client settings"
msgstr ""
@@ -32171,6 +39089,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1413
#: usr/local/www/vpn_openvpn_csc.php:509
#: usr/local/www/vpn_openvpn_server.php:1455
+#: usr/local/www/vpn_openvpn_server.php:1507
+#: usr/local/www/vpn_openvpn_csc.php:509
+#: usr/local/www/vpn_openvpn_server.php:1507
msgid "NTP Servers"
msgstr ""
@@ -32179,6 +39100,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1423
#: usr/local/www/vpn_openvpn_csc.php:519
#: usr/local/www/vpn_openvpn_server.php:1465
+#: usr/local/www/vpn_openvpn_server.php:1517
+#: usr/local/www/vpn_openvpn_csc.php:519
+#: usr/local/www/vpn_openvpn_server.php:1517
msgid "Provide a NTP server list to clients"
msgstr ""
@@ -32187,6 +39111,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1449
#: usr/local/www/vpn_openvpn_csc.php:545
#: usr/local/www/vpn_openvpn_server.php:1491
+#: usr/local/www/vpn_openvpn_server.php:1543
+#: usr/local/www/vpn_openvpn_csc.php:545
+#: usr/local/www/vpn_openvpn_server.php:1543
msgid "NetBIOS Options"
msgstr ""
@@ -32195,6 +39122,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1459
#: usr/local/www/vpn_openvpn_csc.php:555
#: usr/local/www/vpn_openvpn_server.php:1501
+#: usr/local/www/vpn_openvpn_server.php:1553
+#: usr/local/www/vpn_openvpn_csc.php:555
+#: usr/local/www/vpn_openvpn_server.php:1553
msgid "Enable NetBIOS over TCP/IP"
msgstr ""
@@ -32209,6 +39139,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1471
#: usr/local/www/vpn_openvpn_csc.php:567
#: usr/local/www/vpn_openvpn_server.php:1513
+#: usr/local/www/vpn_openvpn_server.php:1565
+#: usr/local/www/vpn_openvpn_csc.php:567
+#: usr/local/www/vpn_openvpn_server.php:1565
msgid "Node Type"
msgstr ""
@@ -32217,6 +39150,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1484
#: usr/local/www/vpn_openvpn_csc.php:580
#: usr/local/www/vpn_openvpn_server.php:1526
+#: usr/local/www/vpn_openvpn_server.php:1578
+#: usr/local/www/vpn_openvpn_csc.php:580
+#: usr/local/www/vpn_openvpn_server.php:1578
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 "
@@ -32228,6 +39164,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1498
#: usr/local/www/vpn_openvpn_csc.php:594
#: usr/local/www/vpn_openvpn_server.php:1540
+#: usr/local/www/vpn_openvpn_server.php:1592
+#: usr/local/www/vpn_openvpn_csc.php:594
+#: usr/local/www/vpn_openvpn_server.php:1592
msgid ""
"A NetBIOS Scope\tID provides an extended naming service for\tNetBIOS over "
"TCP/IP. The NetBIOS scope ID isolates NetBIOS traffic on a single network to "
@@ -32235,6 +39174,7 @@ msgid ""
msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:648 usr/local/www/vpn_openvpn_csc.php:647
+#: usr/local/www/vpn_openvpn_csc.php:647
msgid ""
"Enter any additional options you would like to add for this client specific "
"override, separated by a semicolon"
@@ -32245,37 +39185,48 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1561
#: usr/local/www/vpn_openvpn_csc.php:648
#: usr/local/www/vpn_openvpn_server.php:1603
+#: usr/local/www/vpn_openvpn_server.php:1655
+#: usr/local/www/vpn_openvpn_csc.php:648
+#: usr/local/www/vpn_openvpn_server.php:1655
msgid "EXAMPLE: push \"route 10.0.0.0 255.255.255.0\""
msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:696 usr/local/www/vpn_openvpn_csc.php:695
+#: usr/local/www/vpn_openvpn_csc.php:695
msgid "edit csc"
msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:699 usr/local/www/vpn_openvpn_csc.php:698
+#: usr/local/www/vpn_openvpn_csc.php:698
msgid "Do you really want to delete this csc?"
msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:700 usr/local/www/vpn_openvpn_csc.php:699
+#: usr/local/www/vpn_openvpn_csc.php:699
msgid "delete csc"
msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:711 usr/local/www/vpn_openvpn_csc.php:710
+#: usr/local/www/vpn_openvpn_csc.php:710
msgid "add csc"
msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:718 usr/local/www/vpn_openvpn_csc.php:717
+#: usr/local/www/vpn_openvpn_csc.php:717
msgid "Additional OpenVPN client specific overrides can be added here."
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:86
#: usr/local/www/vpn_openvpn_server.php:87
+#: usr/local/www/vpn_openvpn_server.php:87
msgid "Server successfully deleted"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:210
#: usr/local/www/vpn_openvpn_server.php:215
#: usr/local/www/vpn_openvpn_server.php:216
+#: usr/local/www/vpn_openvpn_server.php:228
+#: usr/local/www/vpn_openvpn_server.php:228
msgid ""
"You must select a Backend for Authentication if the server mode requires "
"User Auth."
@@ -32284,24 +39235,32 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:277
#: usr/local/www/vpn_openvpn_server.php:282
#: usr/local/www/vpn_openvpn_server.php:283
+#: usr/local/www/vpn_openvpn_server.php:304
+#: usr/local/www/vpn_openvpn_server.php:304
msgid "The field 'Concurrent connections' must be numeric."
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:290
#: usr/local/www/vpn_openvpn_server.php:296
#: usr/local/www/vpn_openvpn_server.php:297
+#: usr/local/www/vpn_openvpn_server.php:318
+#: usr/local/www/vpn_openvpn_server.php:318
msgid "Tunnel network"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:615
#: usr/local/www/vpn_openvpn_server.php:688
#: usr/local/www/vpn_openvpn_server.php:706
+#: usr/local/www/vpn_openvpn_server.php:732
+#: usr/local/www/vpn_openvpn_server.php:732
msgid "Disable this server"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:620
#: usr/local/www/vpn_openvpn_server.php:693
#: usr/local/www/vpn_openvpn_server.php:711
+#: usr/local/www/vpn_openvpn_server.php:737
+#: usr/local/www/vpn_openvpn_server.php:737
msgid ""
"Set this option to disable this server without removing it from the list"
msgstr ""
@@ -32309,42 +39268,56 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:639
#: usr/local/www/vpn_openvpn_server.php:712
#: usr/local/www/vpn_openvpn_server.php:730
+#: usr/local/www/vpn_openvpn_server.php:756
+#: usr/local/www/vpn_openvpn_server.php:756
msgid "Backend for authentication"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:671
#: usr/local/www/vpn_openvpn_server.php:744
#: usr/local/www/vpn_openvpn_server.php:762
+#: usr/local/www/vpn_openvpn_server.php:788
+#: usr/local/www/vpn_openvpn_server.php:788
msgid "Device Mode"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:797
#: usr/local/www/vpn_openvpn_server.php:870
#: usr/local/www/vpn_openvpn_server.php:898
+#: usr/local/www/vpn_openvpn_server.php:925
+#: usr/local/www/vpn_openvpn_server.php:925
msgid "Peer Certificate Revocation List"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:822
#: usr/local/www/vpn_openvpn_server.php:895
#: usr/local/www/vpn_openvpn_server.php:923
+#: usr/local/www/vpn_openvpn_server.php:950
+#: usr/local/www/vpn_openvpn_server.php:950
msgid "Server Certificate"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:851
#: usr/local/www/vpn_openvpn_server.php:924
#: usr/local/www/vpn_openvpn_server.php:952
+#: usr/local/www/vpn_openvpn_server.php:979
+#: usr/local/www/vpn_openvpn_server.php:979
msgid "DH Parameters Length"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:934
#: usr/local/www/vpn_openvpn_server.php:1007
#: usr/local/www/vpn_openvpn_server.php:1035
+#: usr/local/www/vpn_openvpn_server.php:1062
+#: usr/local/www/vpn_openvpn_server.php:1062
msgid "Certificate Depth"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:952
#: usr/local/www/vpn_openvpn_server.php:1025
#: usr/local/www/vpn_openvpn_server.php:1053
+#: usr/local/www/vpn_openvpn_server.php:1080
+#: usr/local/www/vpn_openvpn_server.php:1080
msgid ""
"When a certificate-based client logs in, do not accept certificates below "
"this depth. Useful for denying certificates made with intermediate CAs "
@@ -32354,12 +39327,16 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:959
#: usr/local/www/vpn_openvpn_server.php:1032
#: usr/local/www/vpn_openvpn_server.php:1060
+#: usr/local/www/vpn_openvpn_server.php:1087
+#: usr/local/www/vpn_openvpn_server.php:1087
msgid "Strict User/CN Matching"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:969
#: usr/local/www/vpn_openvpn_server.php:1042
#: usr/local/www/vpn_openvpn_server.php:1070
+#: usr/local/www/vpn_openvpn_server.php:1097
+#: usr/local/www/vpn_openvpn_server.php:1097
msgid ""
"When authenticating users, enforce a match between the common name of the "
"client certificate and the username given at login."
@@ -32369,12 +39346,18 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1056
#: usr/local/www/vpn_openvpn_server.php:1084
#: usr/local/www/vpn_openvpn_client.php:771
+#: usr/local/www/vpn_openvpn_client.php:790
+#: usr/local/www/vpn_openvpn_server.php:1111
+#: usr/local/www/vpn_openvpn_client.php:790
+#: usr/local/www/vpn_openvpn_server.php:1111
msgid "IPv4 Tunnel Network"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:987
#: usr/local/www/vpn_openvpn_server.php:1060
#: usr/local/www/vpn_openvpn_server.php:1088
+#: usr/local/www/vpn_openvpn_server.php:1115
+#: usr/local/www/vpn_openvpn_server.php:1115
msgid ""
"This is the IPv4 virtual network used for private communications between "
"this server and client hosts expressed using CIDR (eg. 10.0.8.0/24). The "
@@ -32387,6 +39370,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1070
#: usr/local/www/vpn_openvpn_server.php:1098
#: usr/local/www/vpn_openvpn_client.php:785
+#: usr/local/www/vpn_openvpn_client.php:804
+#: usr/local/www/vpn_openvpn_server.php:1125
+#: usr/local/www/vpn_openvpn_client.php:804
+#: usr/local/www/vpn_openvpn_server.php:1125
msgid "IPv6 Tunnel Network"
msgstr ""
@@ -32445,12 +39432,16 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1069
#: usr/local/www/vpn_openvpn_server.php:1211
#: usr/local/www/vpn_openvpn_server.php:1253
+#: usr/local/www/vpn_openvpn_server.php:1280
+#: usr/local/www/vpn_openvpn_server.php:1280
msgid "Concurrent connections"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1073
#: usr/local/www/vpn_openvpn_server.php:1215
#: usr/local/www/vpn_openvpn_server.php:1257
+#: usr/local/www/vpn_openvpn_server.php:1284
+#: usr/local/www/vpn_openvpn_server.php:1284
msgid ""
"Specify the maximum number of clients allowed to concurrently connect to "
"this server"
@@ -32459,24 +39450,32 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1113
#: usr/local/www/vpn_openvpn_server.php:1255
#: usr/local/www/vpn_openvpn_server.php:1297
+#: usr/local/www/vpn_openvpn_server.php:1324
+#: usr/local/www/vpn_openvpn_server.php:1324
msgid "Inter-client communication"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1123
#: usr/local/www/vpn_openvpn_server.php:1265
#: usr/local/www/vpn_openvpn_server.php:1307
+#: usr/local/www/vpn_openvpn_server.php:1334
+#: usr/local/www/vpn_openvpn_server.php:1334
msgid "Allow communication between clients connected to this server"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1131
#: usr/local/www/vpn_openvpn_server.php:1273
#: usr/local/www/vpn_openvpn_server.php:1315
+#: usr/local/www/vpn_openvpn_server.php:1342
+#: usr/local/www/vpn_openvpn_server.php:1342
msgid "Duplicate Connections"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1141
#: usr/local/www/vpn_openvpn_server.php:1283
#: usr/local/www/vpn_openvpn_server.php:1325
+#: usr/local/www/vpn_openvpn_server.php:1352
+#: usr/local/www/vpn_openvpn_server.php:1352
msgid ""
"Allow multiple concurrent connections from clients using the same Common "
"Name.<br/>NOTE: This is not generally recommended, but may be needed for "
@@ -32486,12 +39485,16 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1158
#: usr/local/www/vpn_openvpn_server.php:1300
#: usr/local/www/vpn_openvpn_server.php:1342
+#: usr/local/www/vpn_openvpn_server.php:1369
+#: usr/local/www/vpn_openvpn_server.php:1369
msgid "Dynamic IP"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1168
#: usr/local/www/vpn_openvpn_server.php:1310
#: usr/local/www/vpn_openvpn_server.php:1352
+#: usr/local/www/vpn_openvpn_server.php:1379
+#: usr/local/www/vpn_openvpn_server.php:1379
msgid ""
"Allow connected clients to retain their connections if their IP address "
"changes"
@@ -32500,12 +39503,16 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1176
#: usr/local/www/vpn_openvpn_server.php:1318
#: usr/local/www/vpn_openvpn_server.php:1360
+#: usr/local/www/vpn_openvpn_server.php:1387
+#: usr/local/www/vpn_openvpn_server.php:1387
msgid "Address Pool"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1186
#: usr/local/www/vpn_openvpn_server.php:1328
#: usr/local/www/vpn_openvpn_server.php:1370
+#: usr/local/www/vpn_openvpn_server.php:1397
+#: usr/local/www/vpn_openvpn_server.php:1397
msgid "Provide a virtual adapter IP address to clients (see Tunnel Network)"
msgstr ""
@@ -32513,6 +39520,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1464
#: usr/local/www/vpn_openvpn_csc.php:560
#: usr/local/www/vpn_openvpn_server.php:1506
+#: usr/local/www/vpn_openvpn_server.php:1558
+#: usr/local/www/vpn_openvpn_csc.php:560
+#: usr/local/www/vpn_openvpn_server.php:1558
msgid ""
"If this option is not set, all NetBIOS-over-TCP/IP options (including WINS) "
"will be disabled"
@@ -32521,12 +39531,16 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1352
#: usr/local/www/vpn_openvpn_server.php:1494
#: usr/local/www/vpn_openvpn_server.php:1536
+#: usr/local/www/vpn_openvpn_server.php:1588
+#: usr/local/www/vpn_openvpn_server.php:1588
msgid "Scope ID"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1418
#: usr/local/www/vpn_openvpn_server.php:1560
#: usr/local/www/vpn_openvpn_server.php:1602
+#: usr/local/www/vpn_openvpn_server.php:1654
+#: usr/local/www/vpn_openvpn_server.php:1654
msgid ""
"Enter any additional options you would like to add to the OpenVPN server "
"configuration here, separated by a semicolon"
@@ -32535,18 +39549,24 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1449
#: usr/local/www/vpn_openvpn_server.php:1591
#: usr/local/www/vpn_openvpn_server.php:1632
+#: usr/local/www/vpn_openvpn_server.php:1684
+#: usr/local/www/vpn_openvpn_server.php:1684
msgid "Protocol / Port"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1482
#: usr/local/www/vpn_openvpn_server.php:1624
#: usr/local/www/vpn_openvpn_server.php:1665
+#: usr/local/www/vpn_openvpn_server.php:1717
+#: usr/local/www/vpn_openvpn_server.php:1717
msgid "Do you really want to delete this server?"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1503
#: usr/local/www/vpn_openvpn_server.php:1645
#: usr/local/www/vpn_openvpn_server.php:1686
+#: usr/local/www/vpn_openvpn_server.php:1738
+#: usr/local/www/vpn_openvpn_server.php:1738
msgid "Additional OpenVPN servers can be added here."
msgstr ""
@@ -32565,71 +39585,87 @@ msgid "Incorrect ip address specified for username %s"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:355 usr/local/www/vpn_pppoe_edit.php:356
+#: usr/local/www/vpn_pppoe_edit.php:359 usr/local/www/vpn_pppoe_edit.php:359
msgid "PPPoE server configuration"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:368 usr/local/www/vpn_pppoe_edit.php:369
+#: usr/local/www/vpn_pppoe_edit.php:372 usr/local/www/vpn_pppoe_edit.php:372
msgid "Enable PPPoE server"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:403 usr/local/www/vpn_pppoe_edit.php:404
+#: usr/local/www/vpn_pppoe_edit.php:407 usr/local/www/vpn_pppoe_edit.php:407
msgid "Hint"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:407 usr/local/www/vpn_pppoe_edit.php:408
+#: usr/local/www/vpn_pppoe_edit.php:411 usr/local/www/vpn_pppoe_edit.php:411
msgid "No. PPPoE users"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:420 usr/local/www/vpn_pppoe_edit.php:421
+#: usr/local/www/vpn_pppoe_edit.php:424 usr/local/www/vpn_pppoe_edit.php:424
msgid "Hint: 10 is ten PPPoE clients"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:428 usr/local/www/vpn_pppoe_edit.php:429
+#: usr/local/www/vpn_pppoe_edit.php:432 usr/local/www/vpn_pppoe_edit.php:432
msgid ""
"Enter the IP address the PPPoE server should give to clients for use as "
"their \"gateway\""
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:440 usr/local/www/vpn_pppoe_edit.php:441
+#: usr/local/www/vpn_pppoe_edit.php:444 usr/local/www/vpn_pppoe_edit.php:444
msgid "Specify the starting address for the client IP address subnet"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:457 usr/local/www/vpn_pppoe_edit.php:458
+#: usr/local/www/vpn_pppoe_edit.php:461 usr/local/www/vpn_pppoe_edit.php:461
msgid ""
"If entered they will be given to all PPPoE clients, else LAN DNS and one WAN "
"DNS will go to all clients"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:474 usr/local/www/vpn_pppoe_edit.php:475
+#: usr/local/www/vpn_pppoe_edit.php:478 usr/local/www/vpn_pppoe_edit.php:478
msgid "Use Backup RADIUS Server"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:475 usr/local/www/vpn_pppoe_edit.php:476
+#: usr/local/www/vpn_pppoe_edit.php:479 usr/local/www/vpn_pppoe_edit.php:479
msgid ""
"When set, if primary server fails all requests will be sent via backup server"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:478 usr/local/www/vpn_pppoe_edit.php:479
+#: usr/local/www/vpn_pppoe_edit.php:482 usr/local/www/vpn_pppoe_edit.php:482
msgid "NAS IP Address"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:481 usr/local/www/vpn_pppoe_edit.php:482
+#: usr/local/www/vpn_pppoe_edit.php:485 usr/local/www/vpn_pppoe_edit.php:485
msgid "RADIUS server NAS IP Address"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:488 usr/local/www/vpn_pppoe_edit.php:489
+#: usr/local/www/vpn_pppoe_edit.php:492 usr/local/www/vpn_pppoe_edit.php:492
msgid "RADIUS accounting update period in seconds"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:495 usr/local/www/vpn_pppoe_edit.php:496
+#: usr/local/www/vpn_pppoe_edit.php:499 usr/local/www/vpn_pppoe_edit.php:499
msgid "Issue IP Addresses via RADIUS server"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:498 usr/local/www/vpn_pppoe_edit.php:499
+#: usr/local/www/vpn_pppoe_edit.php:502 usr/local/www/vpn_pppoe_edit.php:502
msgid "RADIUS server Primary"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:503 usr/local/www/vpn_pppoe_edit.php:504
+#: usr/local/www/vpn_pppoe_edit.php:507 usr/local/www/vpn_pppoe_edit.php:507
msgid ""
"Enter the IP address, authentication port and accounting port (optional) of "
"the RADIUS server."
@@ -32637,32 +39673,40 @@ msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:504 usr/local/www/vpn_pppoe_edit.php:520
#: usr/local/www/vpn_pppoe_edit.php:505 usr/local/www/vpn_pppoe_edit.php:521
+#: usr/local/www/vpn_pppoe_edit.php:508 usr/local/www/vpn_pppoe_edit.php:524
+#: usr/local/www/vpn_pppoe_edit.php:508 usr/local/www/vpn_pppoe_edit.php:524
msgid "standard port 1812 and 1813 accounting"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:507 usr/local/www/vpn_pppoe_edit.php:508
+#: usr/local/www/vpn_pppoe_edit.php:511 usr/local/www/vpn_pppoe_edit.php:511
msgid "RADIUS primary shared secret"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:514 usr/local/www/vpn_pppoe_edit.php:515
+#: usr/local/www/vpn_pppoe_edit.php:518 usr/local/www/vpn_pppoe_edit.php:518
msgid "RADIUS server Secondary"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:519 usr/local/www/vpn_pppoe_edit.php:520
+#: usr/local/www/vpn_pppoe_edit.php:523 usr/local/www/vpn_pppoe_edit.php:523
msgid ""
"Enter the IP address, authentication port and accounting port (optional) of "
"the backup RADIUS server."
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:523 usr/local/www/vpn_pppoe_edit.php:524
+#: usr/local/www/vpn_pppoe_edit.php:527 usr/local/www/vpn_pppoe_edit.php:527
msgid "RADIUS secondary shared secret"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:531 usr/local/www/vpn_pppoe_edit.php:532
+#: usr/local/www/vpn_pppoe_edit.php:535 usr/local/www/vpn_pppoe_edit.php:535
msgid "User (s)"
msgstr ""
#: usr/local/www/vpn_pppoe_edit.php:596 usr/local/www/vpn_pppoe_edit.php:597
+#: usr/local/www/vpn_pppoe_edit.php:600 usr/local/www/vpn_pppoe_edit.php:600
msgid ""
"don't forget to add a firewall rule to permit traffic from PPPoE clients"
msgstr ""
@@ -32712,10 +39756,10 @@ msgstr ""
#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:588
#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:459
#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:551
-#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:293
-#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:372
#: usr/local/www/wizards/traffic_shaper_wizard.inc:443
#: usr/local/www/wizards/traffic_shaper_wizard.inc:516
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:293
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:372
msgid ""
"Address must be a valid IP address or Firewall Alias. Please correct this "
"value to continue."
@@ -32737,10 +39781,10 @@ msgstr ""
#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:603
#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:539
#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:568
-#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:358
-#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:392
#: usr/local/www/wizards/traffic_shaper_wizard.inc:503
#: usr/local/www/wizards/traffic_shaper_wizard.inc:534
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:358
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:392
msgid "Only percentage bandwidth specification is allowed."
msgstr ""
@@ -32760,10 +39804,10 @@ msgstr ""
#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1156
#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:722
#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:1106
-#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:542
-#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:930
#: usr/local/www/wizards/traffic_shaper_wizard.inc:693
#: usr/local/www/wizards/traffic_shaper_wizard.inc:1042
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:542
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:930
msgid ""
"Custom Bandwidths are greater than 30%. Please lower them for the wizard to "
"continue."
@@ -32777,8 +39821,8 @@ msgstr ""
#: usr/local/www/wizards/traffic_shaper_wizard.inc:1344
#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1464
#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:1408
-#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1205
#: usr/local/www/wizards/traffic_shaper_wizard.inc:1344
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1205
msgid "Penalty Box"
msgstr ""
@@ -32788,17 +39832,13 @@ msgstr ""
#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1225
#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1484
#: usr/local/www/wizards/traffic_shaper_wizard.inc:1364
-#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1484
-#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:1427
-#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1225
-#: usr/local/www/wizards/traffic_shaper_wizard.inc:1364
msgid "VOIP Adapter"
msgstr ""
#: usr/local/www/wizards/openvpn_wizard.inc:602
#: usr/local/www/wizards/openvpn_wizard.inc:618
#: usr/local/www/wizards/openvpn_wizard.inc:602
-#: usr/local/www/wizards/openvpn_wizard.inc:618
+#: usr/local/www/wizards/openvpn_wizard.inc:619
#, php-format
msgid "OpenVPN %s wizard"
msgstr ""
@@ -32883,6 +39923,8 @@ msgstr ""
#: usr/local/www/widgets/widgets/system_information.widget.php:162
#: usr/local/www/widgets/widgets/system_information.widget.php:153
#: usr/local/www/widgets/widgets/system_information.widget.php:159
+#: usr/local/www/widgets/widgets/system_information.widget.php:160
+#: usr/local/www/widgets/widgets/system_information.widget.php:158
msgid "Current date/time"
msgstr ""
@@ -32924,18 +39966,21 @@ msgstr ""
#: usr/local/www/firewall_nat_npt_edit.php:156
#: usr/local/www/firewall_nat_npt_edit.php:161
#: usr/local/www/firewall_nat_npt_edit.php:160
+#: usr/local/www/firewall_nat_npt_edit.php:160
msgid "Edit NAT NPt entry"
msgstr ""
#: usr/local/www/firewall_nat_npt_edit.php:206
#: usr/local/www/firewall_nat_npt_edit.php:211
#: usr/local/www/firewall_nat_npt_edit.php:210
+#: usr/local/www/firewall_nat_npt_edit.php:210
msgid "Internal IPv6 Prefix"
msgstr ""
#: usr/local/www/firewall_nat_npt_edit.php:228
#: usr/local/www/firewall_nat_npt_edit.php:233
#: usr/local/www/firewall_nat_npt_edit.php:232
+#: usr/local/www/firewall_nat_npt_edit.php:232
msgid ""
"Enter the internal (LAN) ULA IPv6 Prefix for the Network Prefix translation. "
"The prefix size specified for the internal IPv6 prefix will be applied to "
@@ -32946,17 +39991,20 @@ msgstr ""
#: usr/local/www/firewall_nat_npt_edit.php:234
#: usr/local/www/firewall_nat_npt_edit.php:239
#: usr/local/www/firewall_nat_npt_edit.php:238
+#: usr/local/www/firewall_nat_npt_edit.php:238
msgid "Destination IPv6 Prefix"
msgstr ""
#: usr/local/www/firewall_nat_npt_edit.php:258
#: usr/local/www/firewall_nat_npt_edit.php:263
#: usr/local/www/firewall_nat_npt_edit.php:262
+#: usr/local/www/firewall_nat_npt_edit.php:262
msgid "Enter the Global Unicast routable IPv6 prefix here"
msgstr ""
#: usr/local/www/services_dhcpv6.php:74
#: usr/local/www/services_router_advertisements.php:74
+#: usr/local/www/services_router_advertisements.php:74
#: usr/local/www/services_dhcpv6.php:74
msgid ""
"The DHCPv6 Server can only be enabled on interfaces configured with static "
@@ -32964,53 +40012,65 @@ msgid ""
msgstr ""
#: usr/local/www/services_dhcpv6.php:184 usr/local/www/services_dhcpv6.php:196
-#: usr/local/www/services_dhcpv6.php:181
+#: usr/local/www/services_dhcpv6.php:181 usr/local/www/services_dhcpv6.php:175
+#: usr/local/www/services_dhcpv6.php:175
msgid "A valid prefix range must be specified."
msgstr ""
#: usr/local/www/services_dhcpv6.php:190 usr/local/www/services_dhcpv6.php:202
-#: usr/local/www/services_dhcpv6.php:187
+#: usr/local/www/services_dhcpv6.php:187 usr/local/www/services_dhcpv6.php:181
+#: usr/local/www/services_dhcpv6.php:181
msgid "A valid IPv6 address must be specified for the gateway."
msgstr ""
#: usr/local/www/services_dhcpv6.php:192 usr/local/www/services_dhcpv6.php:204
#: usr/local/www/services_router_advertisements.php:154
-#: usr/local/www/services_dhcpv6.php:189
+#: usr/local/www/services_dhcpv6.php:189 usr/local/www/services_dhcpv6.php:183
+#: usr/local/www/services_router_advertisements.php:149
+#: usr/local/www/services_dhcpv6.php:183
msgid ""
"A valid IPv6 address must be specified for the primary/secondary DNS servers."
msgstr ""
#: usr/local/www/services_dhcpv6.php:201 usr/local/www/services_dhcpv6.php:223
-#: usr/local/www/services_dhcpv6.php:208
+#: usr/local/www/services_dhcpv6.php:208 usr/local/www/services_dhcpv6.php:202
+#: usr/local/www/services_dhcpv6.php:202
msgid ""
"A valid IPv6 address must be specified for the primary/secondary NTP servers."
msgstr ""
#: usr/local/www/services_dhcpv6.php:205 usr/local/www/services_dhcpv6.php:227
-#: usr/local/www/services_dhcpv6.php:212
+#: usr/local/www/services_dhcpv6.php:212 usr/local/www/services_dhcpv6.php:206
+#: usr/local/www/services_dhcpv6.php:206
msgid "A valid IPv6 address or hostname must be specified for the TFTP server."
msgstr ""
#: usr/local/www/services_dhcpv6.php:207 usr/local/www/services_dhcpv6.php:229
-#: usr/local/www/services_dhcpv6.php:214
+#: usr/local/www/services_dhcpv6.php:214 usr/local/www/services_dhcpv6.php:208
+#: usr/local/www/services_dhcpv6.php:208
msgid "A valid IPv6 address must be specified for the network boot server."
msgstr ""
#: usr/local/www/services_dhcpv6.php:214 usr/local/www/services_dhcpv6.php:236
-#: usr/local/www/services_dhcpv6.php:221
+#: usr/local/www/services_dhcpv6.php:221 usr/local/www/services_dhcpv6.php:215
+#: usr/local/www/services_dhcpv6.php:215
#, php-format
msgid "The subnet range cannot overlap with virtual IPv6 address %s."
msgstr ""
#: usr/local/www/services_dhcpv6.php:359 usr/local/www/services_dhcpv6.php:386
-#: usr/local/www/services_dhcpv6.php:367
+#: usr/local/www/services_dhcpv6.php:367 usr/local/www/services_dhcpv6.php:362
+#: usr/local/www/services_dhcpv6.php:362
msgid "DHCPv6 server"
msgstr ""
#: usr/local/www/services_dhcpv6.php:497 usr/local/www/services_dhcpv6.php:524
#: usr/local/www/services_router_advertisements.php:261
#: usr/local/www/services_router_advertisements.php:270
-#: usr/local/www/services_dhcpv6.php:503
+#: usr/local/www/services_dhcpv6.php:503 usr/local/www/services_dhcpv6.php:514
+#: usr/local/www/services_router_advertisements.php:256
+#: usr/local/www/services_router_advertisements.php:265
+#: usr/local/www/services_dhcpv6.php:514
msgid "Router Advertisements"
msgstr ""
@@ -33024,13 +40084,15 @@ msgid ""
msgstr ""
#: usr/local/www/services_dhcpv6.php:510 usr/local/www/services_dhcpv6.php:584
-#: usr/local/www/services_dhcpv6.php:515
+#: usr/local/www/services_dhcpv6.php:515 usr/local/www/services_dhcpv6.php:526
+#: usr/local/www/services_dhcpv6.php:526
#, php-format
msgid "Enable DHCPv6 server on %s interface"
msgstr ""
#: usr/local/www/services_dhcpv6.php:576 usr/local/www/services_dhcpv6.php:649
-#: usr/local/www/services_dhcpv6.php:580
+#: usr/local/www/services_dhcpv6.php:580 usr/local/www/services_dhcpv6.php:597
+#: usr/local/www/services_dhcpv6.php:597
msgid "Prefix Delegation Range"
msgstr ""
@@ -33053,6 +40115,12 @@ msgstr ""
#: usr/local/www/status_dhcpv6_leases.php:406
#: usr/local/www/status_dhcpv6_leases.php:484
#: usr/local/www/services_dhcpv6.php:829
+#: usr/local/www/status_dhcpv6_leases.php:409
+#: usr/local/www/status_dhcpv6_leases.php:487
+#: usr/local/www/services_dhcpv6.php:850
+#: usr/local/www/status_dhcpv6_leases.php:409
+#: usr/local/www/status_dhcpv6_leases.php:487
+#: usr/local/www/services_dhcpv6.php:850
msgid "DUID"
msgstr ""
@@ -33060,38 +40128,48 @@ msgstr ""
#: usr/local/www/services_dhcpv6_edit.php:189
#: usr/local/www/services_dhcpv6_edit.php:108
#: usr/local/www/services_dhcpv6_edit.php:192
-#: usr/local/www/services_dhcpv6_edit.php:108
#: usr/local/www/services_dhcpv6_edit.php:191
+#: usr/local/www/services_dhcpv6_edit.php:111
+#: usr/local/www/services_dhcpv6_edit.php:194
+#: usr/local/www/services_dhcpv6_edit.php:111
+#: usr/local/www/services_dhcpv6_edit.php:194
msgid "DUID Identifier"
msgstr ""
#: usr/local/www/services_dhcpv6_edit.php:126
#: usr/local/www/services_dhcpv6_edit.php:128
-#: usr/local/www/services_dhcpv6_edit.php:128
+#: usr/local/www/services_dhcpv6_edit.php:131
+#: usr/local/www/services_dhcpv6_edit.php:131
msgid "A valid DUID Identifier must be specified."
msgstr ""
#: usr/local/www/services_dhcpv6_edit.php:135
#: usr/local/www/services_dhcpv6_edit.php:137
-#: usr/local/www/services_dhcpv6_edit.php:137
+#: usr/local/www/services_dhcpv6_edit.php:140
+#: usr/local/www/services_dhcpv6_edit.php:140
msgid "This Hostname, IP or DUID Identifier already exists."
msgstr ""
#: usr/local/www/services_dhcpv6_edit.php:172
#: usr/local/www/services_dhcpv6_edit.php:175
-#: usr/local/www/services_dhcpv6_edit.php:175
+#: usr/local/www/services_dhcpv6_edit.php:178
+#: usr/local/www/services_dhcpv6_edit.php:178
msgid "DHCPv6"
msgstr ""
#: usr/local/www/services_dhcpv6_edit.php:186
#: usr/local/www/services_dhcpv6_edit.php:189
#: usr/local/www/services_dhcpv6_edit.php:188
+#: usr/local/www/services_dhcpv6_edit.php:191
+#: usr/local/www/services_dhcpv6_edit.php:191
msgid "Static DHCPv6 Mapping"
msgstr ""
#: usr/local/www/services_dhcpv6_edit.php:193
#: usr/local/www/services_dhcpv6_edit.php:196
#: usr/local/www/services_dhcpv6_edit.php:195
+#: usr/local/www/services_dhcpv6_edit.php:198
+#: usr/local/www/services_dhcpv6_edit.php:198
msgid "Enter a DUID Identifier in the following format: "
msgstr ""
@@ -33109,22 +40187,26 @@ msgstr ""
#: usr/local/www/services_dhcpv6_relay.php:145
#: usr/local/www/services_dhcpv6_relay.php:146
+#: usr/local/www/services_dhcpv6_relay.php:146
msgid "DHCPv6 Relay configuration"
msgstr ""
#: usr/local/www/services_dhcpv6_relay.php:151
#: usr/local/www/services_dhcpv6_relay.php:152
+#: usr/local/www/services_dhcpv6_relay.php:152
#, php-format
msgid "Enable DHCPv6 relay on interface"
msgstr ""
#: usr/local/www/services_dhcpv6_relay.php:169
#: usr/local/www/services_dhcpv6_relay.php:170
+#: usr/local/www/services_dhcpv6_relay.php:170
msgid "Interfaces without an IPv6 address will not be shown."
msgstr ""
#: usr/local/www/services_dhcpv6_relay.php:177
#: usr/local/www/services_dhcpv6_relay.php:178
+#: usr/local/www/services_dhcpv6_relay.php:178
#, php-format
msgid ""
"If this is checked, the DHCPv6 relay will append the circuit ID (%s "
@@ -33133,6 +40215,7 @@ msgstr ""
#: usr/local/www/services_dhcpv6_relay.php:184
#: usr/local/www/services_dhcpv6_relay.php:185
+#: usr/local/www/services_dhcpv6_relay.php:185
msgid ""
"This is the IPv6 address of the server to which DHCPv6 requests are relayed. "
"You can enter multiple server IPv6 addresses, separated by commas. Select "
@@ -33151,18 +40234,25 @@ msgstr ""
#: usr/local/www/status_dhcpv6_leases.php:482
#: usr/local/www/status_dhcpv6_leases.php:405
#: usr/local/www/status_dhcpv6_leases.php:483
+#: usr/local/www/status_dhcpv6_leases.php:408
+#: usr/local/www/status_dhcpv6_leases.php:486
+#: usr/local/www/status_dhcpv6_leases.php:408
+#: usr/local/www/status_dhcpv6_leases.php:486
msgid "IAID"
msgstr ""
#: usr/local/www/status_dhcpv6_leases.php:362
#: usr/local/www/status_dhcpv6_leases.php:406
#: usr/local/www/status_dhcpv6_leases.php:407
+#: usr/local/www/status_dhcpv6_leases.php:410
+#: usr/local/www/status_dhcpv6_leases.php:410
msgid "Hostname/MAC"
msgstr ""
#: usr/local/www/diag_logs_wireless.php:88
#: usr/local/www/diag_logs_wireless.php:99
#: usr/local/www/diag_logs_wireless.php:100
+#: usr/local/www/diag_logs_wireless.php:100
#, php-format
msgid "Wireless (hostapd) log entries"
msgstr ""
@@ -33179,6 +40269,7 @@ msgstr ""
#: usr/local/www/services_captiveportal_zones.php:47
#: usr/local/www/services_captiveportal_zones.php:48
+#: usr/local/www/services_captiveportal_zones.php:48
msgid "The CaptivePortal entry list has been changed"
msgstr ""
@@ -33186,31 +40277,39 @@ msgstr ""
#: usr/local/www/services_captiveportal_zones.php:101
#: usr/local/www/services_captiveportal_zones.php:61
#: usr/local/www/services_captiveportal_zones.php:102
+#: usr/local/www/services_captiveportal_zones.php:61
+#: usr/local/www/services_captiveportal_zones.php:102
msgid "add a new captiveportal instance"
msgstr ""
#: usr/local/www/services_captiveportal_zones.php:88
#: usr/local/www/services_captiveportal_zones.php:89
+#: usr/local/www/services_captiveportal_zones.php:89
msgid "edit captiveportal instance"
msgstr ""
#: usr/local/www/services_captiveportal_zones.php:89
#: usr/local/www/services_captiveportal_zones.php:90
+#: usr/local/www/services_captiveportal_zones.php:90
msgid "delete captiveportal instance"
msgstr ""
#: usr/local/www/services_captiveportal_zones_edit.php:48
#: usr/local/www/services_captiveportal_zones_edit.php:45
+#: usr/local/www/services_captiveportal_zones_edit.php:45
msgid "Edit Zones"
msgstr ""
#: usr/local/www/services_captiveportal_zones_edit.php:67
#: usr/local/www/services_captiveportal_zones_edit.php:69
+#: usr/local/www/services_captiveportal_zones_edit.php:69
msgid "already exists"
msgstr ""
#: usr/local/www/services_captiveportal_zones_edit.php:96
#: usr/local/www/services_captiveportal_zones_edit.php:98
+#: usr/local/www/services_captiveportal_zones_edit.php:94
+#: usr/local/www/services_captiveportal_zones_edit.php:94
msgid "Edit Captiveportal Zones"
msgstr ""
@@ -33234,7 +40333,6 @@ msgid "Do you really want to delete this backup?"
msgstr ""
#: usr/local/www/system_firmware_restorefullbackup.php:174
-#: usr/local/www/system_firmware_restorefullbackup.php:174
msgid "<center>Could not locate any previous backups.</center>"
msgstr ""
@@ -33250,84 +40348,102 @@ msgstr ""
#: usr/local/www/diag_dump_states_sources.php:145
#: usr/local/www/diag_dump_states_sources.php:144
+#: usr/local/www/diag_dump_states_sources.php:144
msgid "Source -> Destination"
msgstr ""
#: usr/local/www/diag_dump_states_sources.php:146
#: usr/local/www/diag_dump_states_sources.php:145
+#: usr/local/www/diag_dump_states_sources.php:145
msgid "# States"
msgstr ""
#: usr/local/www/diag_dump_states_sources.php:147
#: usr/local/www/diag_dump_states_sources.php:146
+#: usr/local/www/diag_dump_states_sources.php:146
msgid "# Connections"
msgstr ""
#: usr/local/www/diag_dump_states_sources.php:180
#: usr/local/www/diag_dump_states_sources.php:179
+#: usr/local/www/diag_dump_states_sources.php:179
msgid "Remove all source tracking entries from"
msgstr ""
#: usr/local/www/diag_dump_states_sources.php:190
#: usr/local/www/diag_dump_states_sources.php:189
+#: usr/local/www/diag_dump_states_sources.php:189
msgid "No source tracking entries were found."
msgstr ""
-#: etc/inc/system.inc:418 etc/inc/system.inc:418
+#: etc/inc/system.inc:418 etc/inc/system.inc:425 etc/inc/system.inc:425
#, php-format
msgid "Not adding default route because OLSR dynamic gateway is enabled."
msgstr ""
#: etc/inc/priv.defs.inc:118 etc/inc/priv.defs.inc:124
+#: etc/inc/priv.defs.inc:124
msgid "WebCfg - Diagnostics: Logs: Gateways page"
msgstr ""
#: etc/inc/priv.defs.inc:119 etc/inc/priv.defs.inc:125
+#: etc/inc/priv.defs.inc:125
msgid "Allow access to the 'Diagnostics: Logs: System: Gateways' page."
msgstr ""
#: etc/inc/priv.defs.inc:124 etc/inc/priv.defs.inc:130
+#: etc/inc/priv.defs.inc:130
msgid "WebCfg - Diagnostics: Logs: Resolver page"
msgstr ""
#: etc/inc/priv.defs.inc:125 etc/inc/priv.defs.inc:131
+#: etc/inc/priv.defs.inc:131
msgid "Allow access to the 'Diagnostics: Logs: System: Resolver' page."
msgstr ""
#: etc/inc/priv.defs.inc:130 etc/inc/priv.defs.inc:136
+#: etc/inc/priv.defs.inc:136
msgid "WebCfg - Diagnostics: Logs: Wireless page"
msgstr ""
#: etc/inc/priv.defs.inc:131 etc/inc/priv.defs.inc:137
+#: etc/inc/priv.defs.inc:137
msgid "Allow access to the 'Diagnostics: Logs: System: Wireless' page."
msgstr ""
#: etc/inc/priv.defs.inc:148 etc/inc/priv.defs.inc:154
+#: etc/inc/priv.defs.inc:154
msgid "WebCfg - Status: System logs: NTP page"
msgstr ""
#: etc/inc/priv.defs.inc:149 etc/inc/priv.defs.inc:155
+#: etc/inc/priv.defs.inc:155
msgid "Allow access to the 'Status: System logs: NTP' page."
msgstr ""
#: etc/inc/pfsense-utils.inc:2377 etc/inc/pfsense-utils.inc:2468
+#: etc/inc/pfsense-utils.inc:2521 etc/inc/pfsense-utils.inc:2528
msgid "English"
msgstr ""
#: etc/inc/pfsense-utils.inc:2378 etc/inc/pfsense-utils.inc:2469
+#: etc/inc/pfsense-utils.inc:2522 etc/inc/pfsense-utils.inc:2529
msgid "Portuguese (Brazil)"
msgstr ""
#: etc/inc/interfaces.inc:251 etc/inc/interfaces.inc:250
+#: etc/inc/interfaces.inc:248 etc/inc/interfaces.inc:248
msgid "interface_vlan_configure called with if undefined."
msgstr ""
#: etc/inc/interfaces.inc:292 etc/inc/interfaces.inc:291
+#: etc/inc/interfaces.inc:289 etc/inc/interfaces.inc:289
#, php-format
msgid "interface_qinq_configure called with if undefined.%s"
msgstr ""
#: etc/inc/interfaces.inc:377 etc/inc/interfaces.inc:376
+#: etc/inc/interfaces.inc:380 etc/inc/interfaces.inc:380
#, php-format
msgid "interface_qinq2_configure called with if undefined.%s"
msgstr ""
@@ -33344,6 +40460,7 @@ msgid "Could not bring wanif up in interface_carpdev_dhcp_configure()"
msgstr ""
#: etc/inc/interfaces.inc:3500 etc/inc/interfaces.inc:3360
+#: etc/inc/interfaces.inc:3453 etc/inc/interfaces.inc:3580
#, php-format
msgid ""
"Error: cannot open dhclient_%s.conf in interface_dhcp_configure() for "
@@ -33351,6 +40468,7 @@ msgid ""
msgstr ""
#: etc/inc/services.inc:1085 etc/inc/services.inc:1217
+#: etc/inc/services.inc:1211 etc/inc/services.inc:1218
msgid "Started IGMP proxy service."
msgstr ""
@@ -33372,9 +40490,7 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:231 usr/local/www/fbegin.inc:157
#: usr/local/www/fbegin.inc:191 usr/local/www/diag_logs_relayd.php:76
#: usr/local/www/diag_logs_auth.php:75 usr/local/www/diag_logs_ipsec.php:112
-#: usr/local/www/diag_logs_vpn.php:135 usr/local/www/diag_logs_ppp.php:79
-#: usr/local/www/diag_logs_resolver.php:88 usr/local/www/diag_logs_ntpd.php:54
-#: usr/local/www/diag_logs_ntpd.php:75 usr/local/www/diag_logs.php:86
+#: usr/local/www/diag_logs_resolver.php:88 usr/local/www/diag_logs_ntpd.php:75
#: usr/local/www/status_ntpd.php:109 usr/local/www/diag_logs_dhcp.php:80
#: usr/local/www/diag_logs_wireless.php:77
#: usr/local/www/diag_logs_filter_summary.php:194
@@ -33382,6 +40498,23 @@ msgstr ""
#: usr/local/www/diag_logs_openvpn.php:79
#: usr/local/www/diag_logs_filter_dynamic.php:108
#: usr/local/www/diag_logs_filter.php:100
+#: usr/local/www/diag_logs_filter_dynamic.php:106
+#: usr/local/www/diag_logs_ppp.php:77 usr/local/www/fbegin.inc:149
+#: usr/local/www/fbegin.inc:182 usr/local/www/diag_logs_auth.php:75
+#: usr/local/www/diag_logs_settings.php:231
+#: usr/local/www/diag_logs_filter.php:130
+#: usr/local/www/diag_logs_routing.php:75 usr/local/www/diag_logs_dhcp.php:80
+#: usr/local/www/services_ntpd.php:76 usr/local/www/diag_logs.php:86
+#: usr/local/www/diag_logs_filter_dynamic.php:106
+#: usr/local/www/diag_logs_ntpd.php:54 usr/local/www/diag_logs_ntpd.php:75
+#: usr/local/www/diag_logs_openvpn.php:79 usr/local/www/diag_logs_ppp.php:77
+#: usr/local/www/status_ntpd.php:115 usr/local/www/diag_logs_gateways.php:88
+#: usr/local/www/fbegin.inc:149 usr/local/www/fbegin.inc:182
+#: usr/local/www/diag_logs_relayd.php:76 usr/local/www/diag_logs_vpn.php:135
+#: usr/local/www/diag_logs_ipsec.php:112
+#: usr/local/www/diag_logs_wireless.php:77
+#: usr/local/www/diag_logs_resolver.php:88
+#: usr/local/www/diag_logs_filter_summary.php:194
msgid "NTP"
msgstr ""
@@ -33390,9 +40523,13 @@ msgstr ""
#: usr/local/www/diag_logs.php:95 usr/local/www/diag_logs_wireless.php:84
#: usr/local/www/diag_logs_gateways.php:96
#: usr/local/www/diag_logs_routing.php:83
-#: usr/local/www/diag_logs_resolver.php:97 usr/local/www/diag_logs.php:65
-#: usr/local/www/diag_logs.php:95 usr/local/www/diag_logs_wireless.php:85
+#: usr/local/www/diag_logs_resolver.php:97
+#: usr/local/www/diag_logs_wireless.php:85
#: usr/local/www/diag_logs_gateways.php:97
+#: usr/local/www/diag_logs_routing.php:83 usr/local/www/diag_logs.php:65
+#: usr/local/www/diag_logs.php:95 usr/local/www/diag_logs_gateways.php:97
+#: usr/local/www/diag_logs_wireless.php:85
+#: usr/local/www/diag_logs_resolver.php:97
msgid "General"
msgstr ""
@@ -33402,43 +40539,50 @@ msgstr ""
#: usr/local/www/diag_logs_wireless.php:87
#: usr/local/www/diag_logs_gateways.php:99
#: usr/local/www/diag_logs_routing.php:86
-#: usr/local/www/diag_logs_resolver.php:66
-#: usr/local/www/diag_logs_resolver.php:100 usr/local/www/diag_logs.php:98
+#: usr/local/www/diag_logs_resolver.php:100
#: usr/local/www/diag_logs_wireless.php:88
#: usr/local/www/diag_logs_gateways.php:100
+#: usr/local/www/diag_logs_routing.php:86 usr/local/www/diag_logs.php:98
+#: usr/local/www/diag_logs_gateways.php:100
+#: usr/local/www/diag_logs_wireless.php:88
+#: usr/local/www/diag_logs_resolver.php:66
+#: usr/local/www/diag_logs_resolver.php:100
msgid "Resolver"
msgstr ""
#: usr/local/www/diag_logs_routing.php:97
#: usr/local/www/diag_logs_routing.php:98
+#: usr/local/www/diag_logs_routing.php:98
#, php-format
msgid "Routing daemon log entries"
msgstr ""
#: usr/local/www/system_routes_edit.php:158
-#: usr/local/www/system_routes_edit.php:158
+#: usr/local/www/system_routes_edit.php:169
msgid "A route to these destination networks already exists"
msgstr ""
#: usr/local/www/system_routes_edit.php:302
#: usr/local/www/system_routes_edit.php:303
+#: usr/local/www/system_routes_edit.php:326
msgid "Disable this static route"
msgstr ""
#: usr/local/www/system_routes_edit.php:303
#: usr/local/www/system_routes_edit.php:304
+#: usr/local/www/system_routes_edit.php:327
msgid ""
"Set this option to disable this static route without removing it from the "
"list."
msgstr ""
#: usr/local/www/pkg_mgr.php:185 usr/local/www/pkg_mgr_installed.php:178
-#: usr/local/www/pkg_mgr.php:185 usr/local/www/pkg_mgr_installed.php:178
+#: usr/local/www/pkg_mgr_installed.php:180 usr/local/www/pkg_mgr.php:188
msgid "Package info"
msgstr ""
#: usr/local/www/pkg_mgr.php:189 usr/local/www/pkg_mgr_installed.php:182
-#: usr/local/www/pkg_mgr.php:189 usr/local/www/pkg_mgr_installed.php:182
+#: usr/local/www/pkg_mgr_installed.php:184 usr/local/www/pkg_mgr.php:192
msgid "No package info, check the forum"
msgstr ""
@@ -33446,89 +40590,76 @@ msgstr ""
msgid "Click on package name to access it's website."
msgstr ""
-#: usr/local/www/pkg_mgr.php:217 usr/local/www/pkg_mgr.php:217
+#: usr/local/www/pkg_mgr.php:217 usr/local/www/pkg_mgr.php:220
msgid "Click "
msgstr ""
#: usr/local/www/pkg_mgr.php:232 usr/local/www/pkg_mgr_installed.php:199
-#: usr/local/www/pkg_mgr.php:232 usr/local/www/pkg_mgr_installed.php:199
+#: usr/local/www/pkg_mgr_installed.php:201 usr/local/www/pkg_mgr.php:235
msgid "Click package info for more details about "
msgstr ""
#: usr/local/www/pkg_mgr.php:237 usr/local/www/pkg_mgr.php:240
+#: usr/local/www/pkg_mgr.php:243
msgid "Do you really want to install "
msgstr ""
#: usr/local/www/pkg_mgr.php:237 usr/local/www/pkg_mgr.php:240
+#: usr/local/www/pkg_mgr.php:243
msgid "Install "
msgstr ""
#: usr/local/www/services_unbound_acls.php:57
-#: usr/local/www/services_unbound_acls.php:57
msgid "Access List successfully deleted"
msgstr ""
#: usr/local/www/services_unbound_acls.php:173
-#: usr/local/www/services_unbound_acls.php:173
msgid ""
"The settings for the DNS Resolver have changed. You must apply the "
"configuration to take affect."
msgstr ""
#: usr/local/www/services_unbound_acls.php:181
-#: usr/local/www/services_unbound_acls.php:181
msgid "General Settings"
msgstr ""
#: usr/local/www/services_unbound_acls.php:182
#: usr/local/www/services_unbound.php:137
#: usr/local/www/services_unbound_advanced.php:124
-#: usr/local/www/services_unbound_acls.php:182
-#: usr/local/www/services_unbound.php:137
-#: usr/local/www/services_unbound_advanced.php:124
msgid "Advanced settings"
msgstr ""
#: usr/local/www/services_unbound_acls.php:183
#: usr/local/www/services_unbound.php:138
#: usr/local/www/services_unbound_advanced.php:125
-#: usr/local/www/services_unbound_acls.php:183
-#: usr/local/www/services_unbound.php:138
-#: usr/local/www/services_unbound_advanced.php:125
msgid "Access Lists"
msgstr ""
#: usr/local/www/services_unbound_acls.php:200
-#: usr/local/www/services_unbound_acls.php:200
#, php-format
msgid "%s Access List"
msgstr ""
#: usr/local/www/services_unbound_acls.php:203
-#: usr/local/www/services_unbound_acls.php:203
msgid "Access List name"
msgstr ""
#: usr/local/www/services_unbound_acls.php:207
-#: usr/local/www/services_unbound_acls.php:207
msgid "Provide an Access List name."
msgstr ""
#: usr/local/www/services_unbound_acls.php:222
-#: usr/local/www/services_unbound_acls.php:222
msgid ""
"Choose what to do with DNS requests that match the criteria specified below."
msgstr ""
#: usr/local/www/services_unbound_acls.php:223
-#: usr/local/www/services_unbound_acls.php:223
msgid ""
"<b>Deny:</b> This action stops queries from hosts within the netblock "
"defined below."
msgstr ""
#: usr/local/www/services_unbound_acls.php:224
-#: usr/local/www/services_unbound_acls.php:224
msgid ""
"<b>Refuse:</b> This action also stops queries from hosts within the netblock "
"defined below, but sends a DNS rcode REFUSED error message back to the "
@@ -33536,14 +40667,12 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound_acls.php:225
-#: usr/local/www/services_unbound_acls.php:225
msgid ""
"<b>Allow:</b> This action allows queries from hosts within the netblock "
"defined below."
msgstr ""
#: usr/local/www/services_unbound_acls.php:226
-#: usr/local/www/services_unbound_acls.php:226
msgid ""
"<b>Allow Snoop:</b> This action allows recursive and nonrecursive access "
"from hosts within the netblock defined below. Used for cache snooping and "
@@ -33551,42 +40680,36 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound_acls.php:231
-#: usr/local/www/services_unbound_acls.php:231
msgid "Networks"
msgstr ""
#: usr/local/www/services_unbound_acls.php:317
-#: usr/local/www/services_unbound_acls.php:317
msgid "Access List Name"
msgstr ""
#: usr/local/www/services_unbound_acls.php:340
-#: usr/local/www/services_unbound_acls.php:340
msgid "edit access list"
msgstr ""
#: usr/local/www/services_unbound_acls.php:343
-#: usr/local/www/services_unbound_acls.php:343
msgid "Do you really want to delete this access list?"
msgstr ""
#: usr/local/www/services_unbound_acls.php:344
-#: usr/local/www/services_unbound_acls.php:344
msgid "delete access list"
msgstr ""
#: usr/local/www/services_unbound_acls.php:357
-#: usr/local/www/services_unbound_acls.php:357
msgid "Add new Access List"
msgstr ""
#: usr/local/www/services_unbound_acls.php:364
-#: usr/local/www/services_unbound_acls.php:364
msgid "Access Lists to control access to the DNS Resolver can be defined here."
msgstr ""
#: usr/local/www/diag_logs_settings.php:86
#: usr/local/www/diag_logs_settings.php:87
+#: usr/local/www/diag_logs_settings.php:87
msgid ""
"A valid IP address/hosname or IP/hostname:port must be specified for remote "
"syslog server #1."
@@ -33594,6 +40717,7 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:89
#: usr/local/www/diag_logs_settings.php:90
+#: usr/local/www/diag_logs_settings.php:90
msgid ""
"A valid IP address/hosname or IP/hostname:port must be specified for remote "
"syslog server #2."
@@ -33601,6 +40725,7 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:92
#: usr/local/www/diag_logs_settings.php:93
+#: usr/local/www/diag_logs_settings.php:93
msgid ""
"A valid IP address/hosname or IP/hostname:port must be specified for remote "
"syslog server #3."
@@ -33608,11 +40733,13 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:234
#: usr/local/www/diag_logs_settings.php:241
+#: usr/local/www/diag_logs_settings.php:241
msgid "General Logging Options"
msgstr ""
#: usr/local/www/diag_logs_settings.php:245
#: usr/local/www/diag_logs_settings.php:252
+#: usr/local/www/diag_logs_settings.php:252
msgid ""
"Hint: 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."
@@ -33620,6 +40747,7 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:251
#: usr/local/www/diag_logs_settings.php:258
+#: usr/local/www/diag_logs_settings.php:258
msgid ""
"Hint: packets that are blocked by the implicit default block rule will not "
"be logged if you uncheck this option. Per-rule logging options are still "
@@ -33628,6 +40756,7 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:259
#: usr/local/www/diag_logs_settings.php:266
+#: usr/local/www/diag_logs_settings.php:266
msgid ""
"Hint: If this is checked, filter logs are shown as generated by the packet "
"filter, without any formatting. This will reveal more detailed information, "
@@ -33636,41 +40765,49 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:265
#: usr/local/www/diag_logs_settings.php:285
+#: usr/local/www/diag_logs_settings.php:285
msgid "Disable writing log files to the local disk"
msgstr ""
#: usr/local/www/diag_logs_settings.php:274
#: usr/local/www/diag_logs_settings.php:294
+#: usr/local/www/diag_logs_settings.php:294
msgid "Remote Logging Options"
msgstr ""
#: usr/local/www/diag_logs_settings.php:277
#: usr/local/www/diag_logs_settings.php:297
+#: usr/local/www/diag_logs_settings.php:297
msgid "Enable Remote Logging"
msgstr ""
#: usr/local/www/diag_logs_settings.php:279
#: usr/local/www/diag_logs_settings.php:299
+#: usr/local/www/diag_logs_settings.php:299
msgid "Send log messages to remote syslog server"
msgstr ""
#: usr/local/www/diag_logs_settings.php:282
#: usr/local/www/diag_logs_settings.php:302
+#: usr/local/www/diag_logs_settings.php:302
msgid "Remote Syslog Servers"
msgstr ""
#: usr/local/www/diag_logs_settings.php:299
#: usr/local/www/diag_logs_settings.php:319
+#: usr/local/www/diag_logs_settings.php:319
msgid "IP addresses of remote syslog servers, or an IP:port."
msgstr ""
#: usr/local/www/diag_logs_settings.php:304
#: usr/local/www/diag_logs_settings.php:324
+#: usr/local/www/diag_logs_settings.php:324
msgid "Remote Syslog Contents"
msgstr ""
#: usr/local/www/diag_logs_settings.php:334
#: usr/local/www/diag_logs_settings.php:354
+#: usr/local/www/diag_logs_settings.php:354
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 "
@@ -33679,6 +40816,7 @@ msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:229
#: usr/local/www/system_gateway_groups_edit.php:289
+#: usr/local/www/system_gateway_groups_edit.php:293
msgid "Interface Address"
msgstr ""
@@ -33691,58 +40829,68 @@ msgstr ""
#: usr/local/www/services_dyndns_edit.php:102
#: usr/local/www/services_dyndns_edit.php:322
-#: usr/local/www/services_dyndns_edit.php:102
-#: usr/local/www/services_dyndns_edit.php:322
+#: usr/local/www/services_dyndns_edit.php:326
+#: usr/local/www/services_dyndns_edit.php:103
+#: usr/local/www/services_dyndns_edit.php:334
msgid "Update URL"
msgstr ""
#: usr/local/www/services_dyndns_edit.php:254
-#: usr/local/www/services_dyndns_edit.php:254
+#: usr/local/www/services_dyndns_edit.php:258
+#: usr/local/www/services_dyndns_edit.php:260
msgid "Interface to send update from"
msgstr ""
#: usr/local/www/services_dyndns_edit.php:262
-#: usr/local/www/services_dyndns_edit.php:262
+#: usr/local/www/services_dyndns_edit.php:266
+#: usr/local/www/services_dyndns_edit.php:268
msgid "Note: This is almost always the same as the Interface to Monitor."
msgstr ""
#: usr/local/www/services_dyndns_edit.php:299
-#: usr/local/www/services_dyndns_edit.php:299
+#: usr/local/www/services_dyndns_edit.php:303
+#: usr/local/www/services_dyndns_edit.php:311
msgid ""
"Username is required for all types except Namecheap, FreeDNS and Custom "
"Entries."
msgstr ""
#: usr/local/www/services_dyndns_edit.php:300
-#: usr/local/www/services_dyndns_edit.php:300
+#: usr/local/www/services_dyndns_edit.php:304
+#: usr/local/www/services_dyndns_edit.php:312
msgid "Route 53: Enter your Access Key ID."
msgstr ""
#: usr/local/www/services_dyndns_edit.php:301
-#: usr/local/www/services_dyndns_edit.php:301
+#: usr/local/www/services_dyndns_edit.php:305
+#: usr/local/www/services_dyndns_edit.php:313
msgid ""
"For Custom Entries, Username and Password represent HTTP Authentication "
"username and passwords."
msgstr ""
#: usr/local/www/services_dyndns_edit.php:310
-#: usr/local/www/services_dyndns_edit.php:310
+#: usr/local/www/services_dyndns_edit.php:314
+#: usr/local/www/services_dyndns_edit.php:322
msgid "Route 53: Enter your Secret Access Key."
msgstr ""
#: usr/local/www/services_dyndns_edit.php:315
-#: usr/local/www/services_dyndns_edit.php:315
+#: usr/local/www/services_dyndns_edit.php:319
+#: usr/local/www/services_dyndns_edit.php:327
msgid "Zone ID"
msgstr ""
#: usr/local/www/services_dyndns_edit.php:318
-#: usr/local/www/services_dyndns_edit.php:318
+#: usr/local/www/services_dyndns_edit.php:322
+#: usr/local/www/services_dyndns_edit.php:330
msgid ""
"Enter Zone ID that you received when you created your domain in Route 53."
msgstr ""
#: usr/local/www/services_dyndns_edit.php:325
-#: usr/local/www/services_dyndns_edit.php:325
+#: usr/local/www/services_dyndns_edit.php:329
+#: usr/local/www/services_dyndns_edit.php:337
msgid ""
"This is the only field required by for Custom Dynamic DNS, and is only used "
"by Custom Entries."
@@ -33750,54 +40898,64 @@ msgstr ""
#: usr/local/www/services_dyndns_edit.php:327
#: usr/local/www/services_dyndns_edit.php:338
-#: usr/local/www/services_dyndns_edit.php:327
-#: usr/local/www/services_dyndns_edit.php:338
+#: usr/local/www/services_dyndns_edit.php:331
+#: usr/local/www/services_dyndns_edit.php:342
+#: usr/local/www/services_dyndns_edit.php:339
+#: usr/local/www/services_dyndns_edit.php:350
msgid ""
"If you need the new IP to be included in the request, put %IP% in its place."
msgstr ""
#: usr/local/www/services_dyndns_edit.php:331
-#: usr/local/www/services_dyndns_edit.php:331
+#: usr/local/www/services_dyndns_edit.php:335
+#: usr/local/www/services_dyndns_edit.php:343
msgid "Result Match"
msgstr ""
#: usr/local/www/services_dyndns_edit.php:334
-#: usr/local/www/services_dyndns_edit.php:334
+#: usr/local/www/services_dyndns_edit.php:338
+#: usr/local/www/services_dyndns_edit.php:346
msgid "This field is only used by Custom Dynamic DNS Entries."
msgstr ""
#: usr/local/www/services_dyndns_edit.php:336
-#: usr/local/www/services_dyndns_edit.php:336
+#: usr/local/www/services_dyndns_edit.php:340
+#: usr/local/www/services_dyndns_edit.php:348
msgid ""
"This field should be identical to what your DDNS Provider will return if the "
"update succeeds, leave it blank to disable checking of returned results."
msgstr ""
#: usr/local/www/services_dyndns_edit.php:340
-#: usr/local/www/services_dyndns_edit.php:340
+#: usr/local/www/services_dyndns_edit.php:344
+#: usr/local/www/services_dyndns_edit.php:352
msgid ""
"If you need to include multiple possible values, sperate them with a |. If "
"your provider includes a |, escape it with \\|"
msgstr ""
#: usr/local/www/services_dyndns_edit.php:342
-#: usr/local/www/services_dyndns_edit.php:342
+#: usr/local/www/services_dyndns_edit.php:346
+#: usr/local/www/services_dyndns_edit.php:354
msgid ""
"Tabs (\\t), newlines (\\n) and carriage returns (\\r) at the beginning or "
"end of the returned results are removed before comparison."
msgstr ""
#: usr/local/www/services_dyndns_edit.php:351
-#: usr/local/www/services_dyndns_edit.php:351
+#: usr/local/www/services_dyndns_edit.php:355
+#: usr/local/www/services_dyndns_edit.php:363
msgid "Choose TTL for your dns record."
msgstr ""
#: usr/local/www/services_dyndns_edit.php:370
-#: usr/local/www/services_dyndns_edit.php:370
+#: usr/local/www/services_dyndns_edit.php:374
+#: usr/local/www/services_dyndns_edit.php:382
msgid "Save & Force Update"
msgstr ""
#: usr/local/www/fbegin.inc:102 usr/local/www/fbegin.inc:111
+#: usr/local/www/fbegin.inc:103 usr/local/www/fbegin.inc:103
msgid "High Avail. Sync"
msgstr ""
@@ -33819,6 +40977,7 @@ msgstr ""
#: usr/local/www/services_dnsmasq_edit.php:232
#: usr/local/www/services_dnsmasq_edit.php:233
+#: usr/local/www/services_dnsmasq_edit.php:233
msgid "Enter additional names for this host."
msgstr ""
@@ -33832,66 +40991,79 @@ msgstr ""
#: usr/local/www/status_interfaces.php:196
#: usr/local/www/status_interfaces.php:199
+#: usr/local/www/status_interfaces.php:199
msgid "Cell Signal (RSSI)"
msgstr ""
#: usr/local/www/status_interfaces.php:203
#: usr/local/www/status_interfaces.php:206
+#: usr/local/www/status_interfaces.php:206
msgid "Cell Mode"
msgstr ""
#: usr/local/www/status_interfaces.php:210
#: usr/local/www/status_interfaces.php:213
+#: usr/local/www/status_interfaces.php:213
msgid "Cell SIM State"
msgstr ""
#: usr/local/www/status_interfaces.php:217
#: usr/local/www/status_interfaces.php:220
+#: usr/local/www/status_interfaces.php:220
msgid "Cell Service"
msgstr ""
#: usr/local/www/status_interfaces.php:224
#: usr/local/www/status_interfaces.php:227
+#: usr/local/www/status_interfaces.php:227
msgid "Cell Upstream"
msgstr ""
#: usr/local/www/status_interfaces.php:231
#: usr/local/www/status_interfaces.php:234
+#: usr/local/www/status_interfaces.php:234
msgid "Cell Downstream"
msgstr ""
#: usr/local/www/status_interfaces.php:238
#: usr/local/www/status_interfaces.php:241
+#: usr/local/www/status_interfaces.php:241
msgid "Cell Current Up"
msgstr ""
#: usr/local/www/status_interfaces.php:245
#: usr/local/www/status_interfaces.php:248
+#: usr/local/www/status_interfaces.php:248
msgid "Cell Current Down"
msgstr ""
#: usr/local/www/status_interfaces.php:289
#: usr/local/www/status_interfaces.php:292
+#: usr/local/www/status_interfaces.php:292
msgid "IPv6 Link Local"
msgstr ""
#: usr/local/www/status_interfaces.php:339
#: usr/local/www/status_interfaces.php:342
+#: usr/local/www/status_interfaces.php:342
msgid "LAGG Protocol"
msgstr ""
#: usr/local/www/status_interfaces.php:346
#: usr/local/www/status_interfaces.php:349
+#: usr/local/www/status_interfaces.php:349
msgid "LAGG Ports"
msgstr ""
-#: usr/local/www/diag_defaults.php:51 usr/local/www/diag_defaults.php:51
+#: usr/local/www/diag_defaults.php:51 usr/local/www/diag_defaults.php:61
+#: usr/local/www/diag_defaults.php:61
msgid ""
"The system has been reset to factory defaults and is now rebooting. This may "
"take a few minutes, depending on your hardware."
msgstr ""
#: usr/local/www/carp_status.php:196 usr/local/www/carp_status.php:189
+#: usr/local/www/carp_status.php:189
msgid "You can configure high availability sync settings"
msgstr ""
@@ -33917,16 +41089,19 @@ msgstr ""
#: usr/local/www/load_balancer_setting.php:132
#: usr/local/www/load_balancer_setting.php:131
+#: usr/local/www/load_balancer_setting.php:131
msgid "Relayd global settings"
msgstr ""
#: usr/local/www/load_balancer_setting.php:135
#: usr/local/www/load_balancer_setting.php:134
+#: usr/local/www/load_balancer_setting.php:134
msgid "timeout"
msgstr ""
#: usr/local/www/load_balancer_setting.php:139
#: usr/local/www/load_balancer_setting.php:138
+#: usr/local/www/load_balancer_setting.php:138
msgid ""
"Set the global timeout in milliseconds for checks. Leave blank to use the "
"default value of 1000 ms "
@@ -33934,11 +41109,13 @@ msgstr ""
#: usr/local/www/load_balancer_setting.php:143
#: usr/local/www/load_balancer_setting.php:142
+#: usr/local/www/load_balancer_setting.php:142
msgid "interval"
msgstr ""
#: usr/local/www/load_balancer_setting.php:147
#: usr/local/www/load_balancer_setting.php:146
+#: usr/local/www/load_balancer_setting.php:146
msgid ""
"Set the interval in seconds at which the member of a pool will be checked. "
"Leave blank to use the default interval of 10 seconds"
@@ -33946,11 +41123,13 @@ msgstr ""
#: usr/local/www/load_balancer_setting.php:151
#: usr/local/www/load_balancer_setting.php:150
+#: usr/local/www/load_balancer_setting.php:150
msgid "prefork"
msgstr ""
#: usr/local/www/load_balancer_setting.php:155
#: usr/local/www/load_balancer_setting.php:154
+#: usr/local/www/load_balancer_setting.php:154
msgid ""
"Number of processes used by relayd. Leave blank to use the default value of "
"5 processes"
@@ -33962,46 +41141,57 @@ msgid "A valid Destination Server IP address must be specified."
msgstr ""
#: usr/local/www/diag_ipsec.php:65 usr/local/www/diag_ipsec.php:66
+#: usr/local/www/diag_ipsec.php:68 usr/local/www/diag_ipsec.php:68
msgid "Disconnected user"
msgstr ""
#: usr/local/www/diag_ipsec.php:192 usr/local/www/diag_ipsec.php:193
+#: usr/local/www/diag_ipsec.php:194 usr/local/www/diag_ipsec.php:194
msgid "Mobile User"
msgstr ""
#: usr/local/www/diag_ipsec.php:193 usr/local/www/diag_ipsec.php:194
+#: usr/local/www/diag_ipsec.php:195 usr/local/www/diag_ipsec.php:195
msgid "Login Time"
msgstr ""
#: usr/local/www/diag_ipsec.php:195 usr/local/www/diag_ipsec.php:196
+#: usr/local/www/diag_ipsec.php:197 usr/local/www/diag_ipsec.php:197
msgid "Remote"
msgstr ""
#: usr/local/www/diag_ipsec.php:223 usr/local/www/diag_ipsec.php:224
+#: usr/local/www/diag_ipsec.php:225 usr/local/www/diag_ipsec.php:225
msgid "You can configure IPsec"
msgstr ""
#: usr/local/www/system_certmanager.php:207
#: usr/local/www/system_certmanager.php:681
-#: usr/local/www/system_certmanager.php:207
-#: usr/local/www/system_certmanager.php:681
+#: usr/local/www/system_certmanager.php:210
+#: usr/local/www/system_certmanager.php:706
+#: usr/local/www/system_certmanager.php:210
+#: usr/local/www/system_certmanager.php:707
msgid "Certificate Type"
msgstr ""
#: usr/local/www/system_certmanager.php:694
-#: usr/local/www/system_certmanager.php:694
+#: usr/local/www/system_certmanager.php:719
+#: usr/local/www/system_certmanager.php:720
msgid ""
"Type of certificate to generate. Used for placing restrictions on the usage "
"of the generated certificate."
msgstr ""
#: usr/local/www/system_certmanager.php:757
-#: usr/local/www/system_certmanager.php:757
+#: usr/local/www/system_certmanager.php:782
+#: usr/local/www/system_certmanager.php:783
msgid "Alternative Names"
msgstr ""
#: usr/local/www/system_certmanager.php:1109
#: usr/local/www/system_certmanager.php:1112
+#: usr/local/www/system_certmanager.php:1168
+#: usr/local/www/system_certmanager.php:1172
msgid "export cert+key in .p12"
msgstr ""
@@ -34013,11 +41203,17 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:237
#: usr/local/www/firewall_rules_edit.php:222
#: usr/local/www/firewall_rules_edit.php:236
+#: usr/local/www/firewall_rules_edit.php:219
+#: usr/local/www/firewall_rules_edit.php:233
+#: usr/local/www/firewall_rules_edit.php:225
+#: usr/local/www/firewall_rules_edit.php:239
msgid "You can not assign a gateway to a rule that applies to IPv4 and IPv6"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:249
#: usr/local/www/firewall_rules_edit.php:248
+#: usr/local/www/firewall_rules_edit.php:245
+#: usr/local/www/firewall_rules_edit.php:251
msgid ""
"You can not assign a protocol other then ICMP, TCP, UDP or TCP/UDP to a rule "
"that applies to IPv4 and IPv6"
@@ -34025,65 +41221,63 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:253
#: usr/local/www/firewall_rules_edit.php:252
+#: usr/local/www/firewall_rules_edit.php:249
+#: usr/local/www/firewall_rules_edit.php:255
msgid "You can not assign a ICMP type to a rule that applies to IPv4 and IPv6"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:416
#: usr/local/www/firewall_rules_edit.php:415
+#: usr/local/www/firewall_rules_edit.php:418
+#: usr/local/www/firewall_rules_edit.php:424
msgid "You can not use a IPv4 or IPv6 address in combined IPv4 + IPv6 rules."
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1285
-#: usr/local/www/firewall_rules_edit.php:1285
+#: usr/local/www/firewall_rules_edit.php:1300
+#: usr/local/www/firewall_rules_edit.php:1307
msgid "802.1p"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1308
-#: usr/local/www/firewall_rules_edit.php:1308
+#: usr/local/www/firewall_rules_edit.php:1323
+#: usr/local/www/firewall_rules_edit.php:1330
msgid "Choose 802.1p priority to match on"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:1312
-#: usr/local/www/firewall_rules_edit.php:1312
+#: usr/local/www/firewall_rules_edit.php:1327
+#: usr/local/www/firewall_rules_edit.php:1334
msgid "Choose 802.1p priority to apply"
msgstr ""
#: usr/local/www/services_unbound.php:102
#: usr/local/www/services_unbound_advanced.php:88
-#: usr/local/www/services_unbound.php:102
-#: usr/local/www/services_unbound_advanced.php:88
msgid "DNS Resolver"
msgstr ""
#: usr/local/www/services_unbound.php:129
-#: usr/local/www/services_unbound.php:129
msgid "The configuration for the DNS Resolver, has been changed"
msgstr ""
#: usr/local/www/services_unbound.php:136
#: usr/local/www/services_unbound_advanced.php:123
-#: usr/local/www/services_unbound.php:136
-#: usr/local/www/services_unbound_advanced.php:123
msgid "General settings"
msgstr ""
#: usr/local/www/services_unbound.php:147
-#: usr/local/www/services_unbound.php:147
msgid "General DNS Resolver Options"
msgstr ""
#: usr/local/www/services_unbound.php:153
-#: usr/local/www/services_unbound.php:153
msgid "Enable DNS Resolver"
msgstr ""
#: usr/local/www/services_unbound.php:157
-#: usr/local/www/services_unbound.php:157
msgid "Network interfaces"
msgstr ""
#: usr/local/www/services_unbound.php:172
-#: usr/local/www/services_unbound.php:172
msgid ""
"The DNS Resolver Server will listen on the selected interfaces. To add an "
"interface click inside the interface box and select the interface from the "
@@ -34091,12 +41285,10 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound.php:177
-#: usr/local/www/services_unbound.php:177
msgid "Outgoing interfaces"
msgstr ""
#: usr/local/www/services_unbound.php:192
-#: usr/local/www/services_unbound.php:192
msgid ""
"Utilize different network interface(s) that the DNS Resolver will use to "
"send queries to authoritative servers and receive their replies. By default "
@@ -34104,32 +41296,26 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound.php:197
-#: usr/local/www/services_unbound.php:197
msgid "DNSSEC"
msgstr ""
#: usr/local/www/services_unbound.php:200
-#: usr/local/www/services_unbound.php:200
msgid "Enable DNSSEC Support"
msgstr ""
#: usr/local/www/services_unbound.php:204
-#: usr/local/www/services_unbound.php:204
msgid "Forwarding"
msgstr ""
#: usr/local/www/services_unbound.php:207
-#: usr/local/www/services_unbound.php:207
msgid "Enable Forwarding Mode"
msgstr ""
#: usr/local/www/services_unbound.php:214
-#: usr/local/www/services_unbound.php:214
msgid "Register DHCP leases in the DNS Resolver"
msgstr ""
#: usr/local/www/services_unbound.php:215
-#: usr/local/www/services_unbound.php:215
#, php-format
msgid ""
"If this option is set, then machines that specify their hostname when "
@@ -34139,12 +41325,10 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound.php:226
-#: usr/local/www/services_unbound.php:226
msgid "Register DHCP static mappings in the DNS Resolver"
msgstr ""
#: usr/local/www/services_unbound.php:227
-#: usr/local/www/services_unbound.php:227
#, php-format
msgid ""
"If this option is set, then DHCP static mappings will be registered in the "
@@ -34153,7 +41337,6 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound.php:254
-#: usr/local/www/services_unbound.php:254
#, php-format
msgid ""
"If the DNS Resolver is enabled, the DHCP service (if enabled) will "
@@ -34165,42 +41348,34 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound_advanced.php:116
-#: usr/local/www/services_unbound_advanced.php:116
msgid "The configuration of the DNS Resolver, has been changed"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:134
-#: usr/local/www/services_unbound_advanced.php:134
msgid "Advanced Resolver Options"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:137
-#: usr/local/www/services_unbound_advanced.php:137
msgid "Hide Identity"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:140
-#: usr/local/www/services_unbound_advanced.php:140
msgid "If enabled, id.server and hostname.bind queries are refused."
msgstr ""
#: usr/local/www/services_unbound_advanced.php:144
-#: usr/local/www/services_unbound_advanced.php:144
msgid "Hide Version"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:147
-#: usr/local/www/services_unbound_advanced.php:147
msgid "If enabled, version.server and version.bind queries are refused."
msgstr ""
#: usr/local/www/services_unbound_advanced.php:151
-#: usr/local/www/services_unbound_advanced.php:151
msgid "Prefetch Support"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:154
-#: usr/local/www/services_unbound_advanced.php:154
msgid ""
"Message cache elements are prefetched before they expire to help keep the "
"cache up to date. When enabled, this option can cause an increase of around "
@@ -34209,12 +41384,10 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound_advanced.php:158
-#: usr/local/www/services_unbound_advanced.php:158
msgid "Prefetch DNS Key Support"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:161
-#: usr/local/www/services_unbound_advanced.php:161
#, php-format
msgid ""
"DNSKEY's are fetched earlier in the validation process when a %sDelegation "
@@ -34223,22 +41396,18 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound_advanced.php:165
-#: usr/local/www/services_unbound_advanced.php:165
msgid "Harden Glue"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:168
-#: usr/local/www/services_unbound_advanced.php:168
msgid "Only trust glue if it is within the servers authority."
msgstr ""
#: usr/local/www/services_unbound_advanced.php:172
-#: usr/local/www/services_unbound_advanced.php:172
msgid "Harden DNSSEC data"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:175
-#: usr/local/www/services_unbound_advanced.php:175
msgid ""
"DNSSEC data is required for trust-anchored zones. If such data is absent, "
"the zone becomes bogus. If this is disabled and no DNSSEC data is received, "
@@ -34246,12 +41415,10 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound_advanced.php:179
-#: usr/local/www/services_unbound_advanced.php:179
msgid "Message Cache Size"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:190
-#: usr/local/www/services_unbound_advanced.php:190
msgid ""
"Size of the message cache. The message cache stores DNS rcodes and "
"validation statuses. The RRSet cache will automatically be set to twice this "
@@ -34260,12 +41427,10 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound_advanced.php:194
-#: usr/local/www/services_unbound_advanced.php:194
msgid "Outgoing TCP Buffers"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:204
-#: usr/local/www/services_unbound_advanced.php:204
msgid ""
"The number of outgoing TCP buffers to allocate per thread. The default value "
"is 10. If 0 is selected then no TCP queries, to authoritative servers, are "
@@ -34273,24 +41438,20 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound_advanced.php:208
-#: usr/local/www/services_unbound_advanced.php:208
msgid "Incoming TCP Buffers"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:218
-#: usr/local/www/services_unbound_advanced.php:218
msgid ""
"The number of incoming TCP buffers to allocate per thread. The default value "
"is 10. If 0 is selected then no TCP queries, from clients, are accepted."
msgstr ""
#: usr/local/www/services_unbound_advanced.php:222
-#: usr/local/www/services_unbound_advanced.php:222
msgid "EDNS Buffer Size"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:229
-#: usr/local/www/services_unbound_advanced.php:229
msgid ""
"Number of bytes size to advertise as the EDNS reassembly buffer size. This "
"is the value that is used in UDP datagrams sent to peers. RFC recommendation "
@@ -34301,12 +41462,10 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound_advanced.php:233
-#: usr/local/www/services_unbound_advanced.php:233
msgid "Number of queries per thread"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:240
-#: usr/local/www/services_unbound_advanced.php:240
msgid ""
"The number of queries that every thread will service simultaneously. If more "
"queries arrive that need to be serviced, and no queries can be jostled, then "
@@ -34314,12 +41473,10 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound_advanced.php:244
-#: usr/local/www/services_unbound_advanced.php:244
msgid "Jostle Timeout"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:252
-#: usr/local/www/services_unbound_advanced.php:252
msgid ""
"This timeout is used for when the server is very busy. This protects against "
"denial of service by slow queries or high query rates. The default value is "
@@ -34327,12 +41484,10 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound_advanced.php:256
-#: usr/local/www/services_unbound_advanced.php:256
msgid "Maximum TTL for RRsets and messages"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:259
-#: usr/local/www/services_unbound_advanced.php:259
msgid ""
"Configure a maximum Time to live for RRsets and messages in the cache. The "
"default is 86400 seconds (1 day). When the internal TTL expires the cache "
@@ -34341,12 +41496,10 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound_advanced.php:263
-#: usr/local/www/services_unbound_advanced.php:263
msgid "Minimum TTL for RRsets and messages"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:266
-#: usr/local/www/services_unbound_advanced.php:266
msgid ""
"Configure a minimum Time to live for RRsets and messages in the cache. The "
"default is 0 seconds. If the minimum value kicks in, the data is cached for "
@@ -34357,46 +41510,38 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound_advanced.php:270
-#: usr/local/www/services_unbound_advanced.php:270
msgid "TTL for Host cache entries"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:279
-#: usr/local/www/services_unbound_advanced.php:279
msgid ""
"Time to live for entries in the host cache. The host cache contains "
"roundtrip timing and EDNS support information. The default is 15 minutes."
msgstr ""
#: usr/local/www/services_unbound_advanced.php:283
-#: usr/local/www/services_unbound_advanced.php:283
msgid "TTL for lame delegation"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:292
-#: usr/local/www/services_unbound_advanced.php:292
msgid ""
"Time to live for when a delegation is considered to be lame. The default is "
"15 minutes."
msgstr ""
#: usr/local/www/services_unbound_advanced.php:296
-#: usr/local/www/services_unbound_advanced.php:296
msgid "Number of Hosts to cache"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:305
-#: usr/local/www/services_unbound_advanced.php:305
msgid "Number of hosts for which information is cached. The default is 10,000."
msgstr ""
#: usr/local/www/services_unbound_advanced.php:309
-#: usr/local/www/services_unbound_advanced.php:309
msgid "Unwanted Reply Threshold"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:319
-#: usr/local/www/services_unbound_advanced.php:319
msgid ""
"If enabled, a total number of unwanted replies is kept track of in every "
"thread. When it reaches the threshold, a defensive action is taken and a "
@@ -34406,46 +41551,50 @@ msgid ""
msgstr ""
#: usr/local/www/services_unbound_advanced.php:323
-#: usr/local/www/services_unbound_advanced.php:323
msgid "Log level verbosity"
msgstr ""
#: usr/local/www/services_unbound_advanced.php:333
-#: usr/local/www/services_unbound_advanced.php:333
msgid "Select the log verbosity."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:80
-#: usr/local/www/system_advanced_firewall.php:80
+#: usr/local/www/system_advanced_firewall.php:91
+#: usr/local/www/system_advanced_firewall.php:91
msgid "The Firewall Maximum Tables value must be an integer."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:326
-#: usr/local/www/system_advanced_firewall.php:326
+#: usr/local/www/system_advanced_firewall.php:370
+#: usr/local/www/system_advanced_firewall.php:371
msgid "Firewall Maximum Tables"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:330
-#: usr/local/www/system_advanced_firewall.php:330
+#: usr/local/www/system_advanced_firewall.php:374
+#: usr/local/www/system_advanced_firewall.php:375
msgid ""
"Maximum number of tables for systems such as aliases, sshlockout, snort, "
"etc, combined."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:331
-#: usr/local/www/system_advanced_firewall.php:331
+#: usr/local/www/system_advanced_firewall.php:375
+#: usr/local/www/system_advanced_firewall.php:376
msgid ""
"This is the actual number of tables, not the number of entries inside the "
"tables (see below)"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:393
-#: usr/local/www/system_advanced_firewall.php:393
+#: usr/local/www/system_advanced_firewall.php:437
+#: usr/local/www/system_advanced_firewall.php:438
msgid "Disable Negate rule on policy routing rules"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:395
-#: usr/local/www/system_advanced_firewall.php:395
+#: usr/local/www/system_advanced_firewall.php:439
+#: usr/local/www/system_advanced_firewall.php:440
msgid ""
"With Multi-WAN you generally want to ensure traffic reaches directly "
"connected networks and VPN networks when using policy routing. You can "
@@ -34454,26 +41603,34 @@ msgid ""
msgstr ""
#: usr/local/www/system_advanced_firewall.php:407
-#: usr/local/www/system_advanced_firewall.php:407
+#: usr/local/www/system_advanced_firewall.php:469
+#: usr/local/www/system_advanced_firewall.php:470
msgid "NAT Reflection mode for port forwards"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:411
#: usr/local/www/firewall_nat_edit.php:794
-#: usr/local/www/system_advanced_firewall.php:411
#: usr/local/www/firewall_nat_edit.php:793
+#: usr/local/www/firewall_nat_edit.php:788
+#: usr/local/www/system_advanced_firewall.php:473
+#: usr/local/www/firewall_nat_edit.php:800
+#: usr/local/www/system_advanced_firewall.php:474
msgid "Enable (NAT + Proxy)"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:412
#: usr/local/www/firewall_nat_edit.php:795
-#: usr/local/www/system_advanced_firewall.php:412
#: usr/local/www/firewall_nat_edit.php:794
+#: usr/local/www/firewall_nat_edit.php:789
+#: usr/local/www/system_advanced_firewall.php:474
+#: usr/local/www/firewall_nat_edit.php:801
+#: usr/local/www/system_advanced_firewall.php:475
msgid "Enable (Pure NAT)"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:415
-#: usr/local/www/system_advanced_firewall.php:415
+#: usr/local/www/system_advanced_firewall.php:477
+#: usr/local/www/system_advanced_firewall.php:478
msgid ""
"When enabled, this automatically creates additional NAT redirect rules for "
"access to port forwards on your external IP addresses from within your "
@@ -34481,7 +41638,8 @@ msgid ""
msgstr ""
#: usr/local/www/system_advanced_firewall.php:417
-#: usr/local/www/system_advanced_firewall.php:417
+#: usr/local/www/system_advanced_firewall.php:479
+#: usr/local/www/system_advanced_firewall.php:480
msgid ""
"The NAT + proxy mode uses a helper program to send packets to the target of "
"the port forward. It is useful in setups where the interface and/or gateway "
@@ -34492,7 +41650,8 @@ msgid ""
msgstr ""
#: usr/local/www/system_advanced_firewall.php:419
-#: usr/local/www/system_advanced_firewall.php:419
+#: usr/local/www/system_advanced_firewall.php:481
+#: usr/local/www/system_advanced_firewall.php:482
msgid ""
"The pure NAT mode uses a set of NAT rules to direct packets to the target of "
"the port forward. It has better scalability, but it must be possible to "
@@ -34504,30 +41663,36 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:421
#: usr/local/www/system_advanced_firewall.php:441
-#: usr/local/www/system_advanced_firewall.php:421
-#: usr/local/www/system_advanced_firewall.php:441
+#: usr/local/www/system_advanced_firewall.php:483
+#: usr/local/www/system_advanced_firewall.php:503
+#: usr/local/www/system_advanced_firewall.php:484
+#: usr/local/www/system_advanced_firewall.php:504
msgid ""
"Individual rules may be configured to override this system setting on a per-"
"rule basis."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:428
-#: usr/local/www/system_advanced_firewall.php:428
+#: usr/local/www/system_advanced_firewall.php:490
+#: usr/local/www/system_advanced_firewall.php:491
msgid "Enter value for Reflection timeout in seconds."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:430
-#: usr/local/www/system_advanced_firewall.php:430
+#: usr/local/www/system_advanced_firewall.php:492
+#: usr/local/www/system_advanced_firewall.php:493
msgid "Note: Only applies to Reflection on port forwards in NAT + proxy mode."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:434
-#: usr/local/www/system_advanced_firewall.php:434
+#: usr/local/www/system_advanced_firewall.php:496
+#: usr/local/www/system_advanced_firewall.php:497
msgid "Enable NAT Reflection for 1:1 NAT"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:437
-#: usr/local/www/system_advanced_firewall.php:437
+#: usr/local/www/system_advanced_firewall.php:499
+#: usr/local/www/system_advanced_firewall.php:500
msgid ""
"Enables the automatic creation of additional NAT redirect rules for access "
"to 1:1 mappings of your external IP addresses from within your internal "
@@ -34535,7 +41700,8 @@ msgid ""
msgstr ""
#: usr/local/www/system_advanced_firewall.php:439
-#: usr/local/www/system_advanced_firewall.php:439
+#: usr/local/www/system_advanced_firewall.php:501
+#: usr/local/www/system_advanced_firewall.php:502
msgid ""
"Note: Reflection on 1:1 mappings is only for the inbound component of the "
"1:1 mappings. This functions the same as the pure NAT mode for port "
@@ -34543,19 +41709,22 @@ msgid ""
msgstr ""
#: usr/local/www/system_advanced_firewall.php:445
-#: usr/local/www/system_advanced_firewall.php:445
+#: usr/local/www/system_advanced_firewall.php:507
+#: usr/local/www/system_advanced_firewall.php:508
msgid "Enable automatic outbound NAT for Reflection"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:450
-#: usr/local/www/system_advanced_firewall.php:450
+#: usr/local/www/system_advanced_firewall.php:512
+#: usr/local/www/system_advanced_firewall.php:513
msgid ""
"Required for full functionality of the pure NAT mode of NAT Reflection for "
"port forwards or NAT Reflection for 1:1 NAT."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:452
-#: usr/local/www/system_advanced_firewall.php:452
+#: usr/local/www/system_advanced_firewall.php:514
+#: usr/local/www/system_advanced_firewall.php:515
msgid ""
"Note: This only works for assigned interfaces. Other interfaces require "
"manually creating the outbound NAT rules that direct the reply packets back "
@@ -34563,12 +41732,14 @@ msgid ""
msgstr ""
#: usr/local/www/diag_logs_ntpd.php:85 usr/local/www/diag_logs_ntpd.php:86
+#: usr/local/www/diag_logs_ntpd.php:86
#, php-format
msgid "Last %s NTP log entries"
msgstr ""
#: usr/local/www/firewall_aliases_edit.php:468
#: usr/local/www/firewall_aliases_edit.php:470
+#: usr/local/www/firewall_aliases_edit.php:492
msgid ""
"Enter as many hosts as you would like. Hosts must be specified by their IP "
"address or fully qualified domain name (FQDN). FQDN hostnames are "
@@ -34578,6 +41749,7 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:590
#: usr/local/www/firewall_aliases_edit.php:593
+#: usr/local/www/firewall_aliases_edit.php:624
msgid ""
"The name of the alias may only consist of the characters \"a-z, A-Z, 0-9 and "
"_\"."
@@ -34589,24 +41761,26 @@ msgid "Disable password login for Secure Shell (RSA/DSA key only)"
msgstr ""
#: usr/local/www/pkg_mgr_installed.php:113 usr/local/www/diag_confbak.php:154
-#: usr/local/www/pkg_mgr_installed.php:113 usr/local/www/diag_confbak.php:154
+#: usr/local/www/pkg_mgr_installed.php:115 usr/local/www/diag_confbak.php:154
msgid "Version"
msgstr ""
#: usr/local/www/pkg_mgr_installed.php:197
-#: usr/local/www/pkg_mgr_installed.php:197
+#: usr/local/www/pkg_mgr_installed.php:199
msgid "Click on "
msgstr ""
#: usr/local/www/pkg_mgr_installed.php:205
#: usr/local/www/pkg_mgr_installed.php:208
+#: usr/local/www/pkg_mgr_installed.php:210
msgid "Remove "
msgstr ""
#: usr/local/www/pkg_mgr_installed.php:209
#: usr/local/www/pkg_mgr_installed.php:212
-#: usr/local/www/pkg_mgr_installed.php:212
#: usr/local/www/pkg_mgr_installed.php:215
+#: usr/local/www/pkg_mgr_installed.php:214
+#: usr/local/www/pkg_mgr_installed.php:217
msgid "Reinstall "
msgstr ""
@@ -34631,54 +41805,67 @@ msgid "When this is checked, startup and shutdown sounds will no longer play."
msgstr ""
#: usr/local/www/status_rrd_graph.php:146
-#: usr/local/www/status_rrd_graph.php:146
+#: usr/local/www/status_rrd_graph.php:151
+#: usr/local/www/status_rrd_graph.php:151
msgid "Invalid start date/time:"
msgstr ""
#: usr/local/www/status_rrd_graph.php:159
-#: usr/local/www/status_rrd_graph.php:159
+#: usr/local/www/status_rrd_graph.php:164
+#: usr/local/www/status_rrd_graph.php:164
msgid "Invalid end date/time:"
msgstr ""
#: usr/local/www/status_rrd_graph.php:509
-#: usr/local/www/status_rrd_graph.php:509
+#: usr/local/www/status_rrd_graph.php:544
+#: usr/local/www/status_rrd_graph.php:544
msgid "Enter date and/or time. Current timezone:"
msgstr ""
#: usr/local/www/status_ntpd.php:109 usr/local/www/status_ntpd.php:125
+#: usr/local/www/status_ntpd.php:131
msgid "Ref ID"
msgstr ""
#: usr/local/www/status_ntpd.php:110 usr/local/www/status_ntpd.php:126
+#: usr/local/www/status_ntpd.php:132
msgid "Stratum"
msgstr ""
#: usr/local/www/status_ntpd.php:112 usr/local/www/status_ntpd.php:128
+#: usr/local/www/status_ntpd.php:134
msgid "When"
msgstr ""
#: usr/local/www/status_ntpd.php:113 usr/local/www/status_ntpd.php:129
+#: usr/local/www/status_ntpd.php:135
msgid "Poll"
msgstr ""
#: usr/local/www/status_ntpd.php:114 usr/local/www/status_ntpd.php:130
+#: usr/local/www/status_ntpd.php:136
msgid "Reach"
msgstr ""
#: usr/local/www/status_ntpd.php:116 usr/local/www/status_ntpd.php:132
+#: usr/local/www/status_ntpd.php:138
msgid "Offset"
msgstr ""
#: usr/local/www/status_ntpd.php:117 usr/local/www/status_ntpd.php:133
+#: usr/local/www/status_ntpd.php:139
msgid "Jitter"
msgstr ""
#: usr/local/www/firewall_rules.php:790 usr/local/www/firewall_rules.php:783
+#: usr/local/www/firewall_rules.php:784
msgid "No floating rules are currently defined."
msgstr ""
#: usr/local/www/system_advanced_misc.php:297
#: usr/local/www/system_advanced_misc.php:316
+#: usr/local/www/system_advanced_misc.php:320
+#: usr/local/www/system_advanced_misc.php:367
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 "
@@ -34691,6 +41878,8 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:308
#: usr/local/www/system_advanced_misc.php:327
+#: usr/local/www/system_advanced_misc.php:331
+#: usr/local/www/system_advanced_misc.php:378
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 "
@@ -34700,26 +41889,44 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:336
#: usr/local/www/system_advanced_misc.php:355
+#: usr/local/www/system_advanced_misc.php:359
+#: usr/local/www/system_advanced_misc.php:367
+#: usr/local/www/system_advanced_misc.php:406
+#: usr/local/www/system_advanced_misc.php:414
msgid "Hiadaptive"
msgstr ""
#: usr/local/www/system_advanced_misc.php:337
#: usr/local/www/system_advanced_misc.php:356
+#: usr/local/www/system_advanced_misc.php:360
+#: usr/local/www/system_advanced_misc.php:368
+#: usr/local/www/system_advanced_misc.php:407
+#: usr/local/www/system_advanced_misc.php:415
msgid "Adaptive"
msgstr ""
#: usr/local/www/system_advanced_misc.php:338
#: usr/local/www/system_advanced_misc.php:357
+#: usr/local/www/system_advanced_misc.php:361
+#: usr/local/www/system_advanced_misc.php:369
+#: usr/local/www/system_advanced_misc.php:408
+#: usr/local/www/system_advanced_misc.php:416
msgid "Minimum"
msgstr ""
#: usr/local/www/system_advanced_misc.php:339
#: usr/local/www/system_advanced_misc.php:358
+#: usr/local/www/system_advanced_misc.php:362
+#: usr/local/www/system_advanced_misc.php:370
+#: usr/local/www/system_advanced_misc.php:409
+#: usr/local/www/system_advanced_misc.php:417
msgid "Maximum"
msgstr ""
#: usr/local/www/system_advanced_misc.php:342
#: usr/local/www/system_advanced_misc.php:361
+#: usr/local/www/system_advanced_misc.php:373
+#: usr/local/www/system_advanced_misc.php:420
msgid ""
"The powerd utility monitors the system state and sets various power control "
"options accordingly. It offers four modes (maximum, minimum, adaptive and "
@@ -34740,10 +41947,13 @@ msgstr ""
#: usr/local/www/firewall_shaper_vinterface.php:228
#: usr/local/www/firewall_shaper_vinterface.php:205
#: usr/local/www/firewall_shaper_vinterface.php:230
+#: usr/local/www/firewall_shaper_vinterface.php:205
+#: usr/local/www/firewall_shaper_vinterface.php:230
msgid "You cannot name a child queue with the same name as a parent limiter"
msgstr ""
#: usr/local/www/diag_routes.php:72 usr/local/www/diag_routes.php:73
+#: usr/local/www/diag_routes.php:73
msgid ""
"By enabling name resolution, the query should take a bit longer. You can "
"stop it at any time by clicking the Stop button in your browser."
@@ -34751,11 +41961,14 @@ msgstr ""
#: usr/local/www/status_dhcpv6_leases.php:481
#: usr/local/www/status_dhcpv6_leases.php:482
+#: usr/local/www/status_dhcpv6_leases.php:485
+#: usr/local/www/status_dhcpv6_leases.php:485
msgid "IPv6 Prefix"
msgstr ""
#: usr/local/www/services_captiveportal.php:465
#: usr/local/www/services_captiveportal.php:463
+#: usr/local/www/services_captiveportal.php:481
msgid ""
"This setting limits the number of concurrent connections to the captive "
"portal HTTP(S) server. This does not set how many users can be logged in to "
@@ -34766,26 +41979,35 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:602
#: usr/local/www/services_captiveportal.php:600
+#: usr/local/www/services_captiveportal.php:601
+#: usr/local/www/services_captiveportal.php:617
msgid "Radius Protocol"
msgstr ""
#: usr/local/www/services_captiveportal.php:611
#: usr/local/www/services_captiveportal.php:609
+#: usr/local/www/services_captiveportal.php:610
+#: usr/local/www/services_captiveportal.php:626
msgid "CHAP_MD5"
msgstr ""
#: usr/local/www/services_captiveportal.php:615
#: usr/local/www/services_captiveportal.php:613
+#: usr/local/www/services_captiveportal.php:614
+#: usr/local/www/services_captiveportal.php:630
msgid "MSCHAPv1"
msgstr ""
#: usr/local/www/services_captiveportal.php:619
#: usr/local/www/services_captiveportal.php:617
+#: usr/local/www/services_captiveportal.php:618
+#: usr/local/www/services_captiveportal.php:634
msgid "MSCHAPv2"
msgstr ""
#: usr/local/www/system_gateways_edit.php:389
#: usr/local/www/system_gateways_edit.php:495
+#: usr/local/www/system_gateways_edit.php:497
msgid "Choose the Internet Protocol this gateway uses."
msgstr ""
@@ -34797,6 +42019,8 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:491
#: usr/local/www/system_gateways_edit.php:597
+#: usr/local/www/system_gateways_edit.php:601
+#: usr/local/www/system_gateways_edit.php:603
msgid ""
"NOTE: The quality graph is averaged over seconds, not intervals, so as the "
"frequency probe is increased the accuracy of the quality graph is decreased."
@@ -34820,12 +42044,17 @@ msgstr ""
#: usr/local/www/widgets/widgets/gateways.widget.php:81
#: usr/local/www/status_gateways.php:101 usr/local/www/status_gateways.php:109
#: usr/local/www/status_gateways.php:135
-#: usr/local/www/widgets/widgets/gateways.widget.php:73
-#: usr/local/www/widgets/widgets/gateways.widget.php:81
+#: usr/local/www/widgets/widgets/gateways.widget.php:94
+#: usr/local/www/widgets/widgets/gateways.widget.php:103
+#: usr/local/www/widgets/widgets/gateways.widget.php:95
+#: usr/local/www/widgets/widgets/gateways.widget.php:104
+#: usr/local/www/status_gateways.php:101 usr/local/www/status_gateways.php:109
+#: usr/local/www/status_gateways.php:135
msgid "Pending"
msgstr ""
#: usr/local/www/status_gateways.php:140 usr/local/www/status_gateways.php:141
+#: usr/local/www/status_gateways.php:141
msgid "Last check:"
msgstr ""
@@ -34841,52 +42070,69 @@ msgstr ""
#: usr/local/www/diag_dump_states.php:155
#: usr/local/www/diag_dump_states.php:154
+#: usr/local/www/diag_dump_states.php:143
msgid "Kill"
msgstr ""
-#: usr/local/www/services_dyndns.php:184 usr/local/www/services_dyndns.php:184
+#: usr/local/www/services_dyndns.php:184 usr/local/www/services_dyndns.php:180
msgid ""
"You can force an update for an IP address on the edit page for that service."
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:299
#: usr/local/www/vpn_openvpn_server.php:300
+#: usr/local/www/vpn_openvpn_server.php:321
+#: usr/local/www/vpn_openvpn_server.php:321
msgid ""
"Using a tunnel network and server bridge settings together is not allowed."
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:302
#: usr/local/www/vpn_openvpn_server.php:303
+#: usr/local/www/vpn_openvpn_server.php:324
+#: usr/local/www/vpn_openvpn_server.php:324
msgid "Server Bridge DHCP Start and End must both be empty, or defined."
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:304
#: usr/local/www/vpn_openvpn_server.php:305
+#: usr/local/www/vpn_openvpn_server.php:326
+#: usr/local/www/vpn_openvpn_server.php:326
msgid "Server Bridge DHCP Start must be an IPv4 address."
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:306
#: usr/local/www/vpn_openvpn_server.php:307
+#: usr/local/www/vpn_openvpn_server.php:328
+#: usr/local/www/vpn_openvpn_server.php:328
msgid "Server Bridge DHCP End must be an IPv4 address."
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:308
#: usr/local/www/vpn_openvpn_server.php:309
+#: usr/local/www/vpn_openvpn_server.php:330
+#: usr/local/www/vpn_openvpn_server.php:330
msgid "The Server Bridge DHCP range is invalid (start higher than end)."
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1084
#: usr/local/www/vpn_openvpn_server.php:1112
+#: usr/local/www/vpn_openvpn_server.php:1139
+#: usr/local/www/vpn_openvpn_server.php:1139
msgid "Bridge DHCP"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1094
#: usr/local/www/vpn_openvpn_server.php:1122
+#: usr/local/www/vpn_openvpn_server.php:1149
+#: usr/local/www/vpn_openvpn_server.php:1149
msgid "Allow clients on the bridge to obtain DHCP."
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1102
#: usr/local/www/vpn_openvpn_server.php:1130
+#: usr/local/www/vpn_openvpn_server.php:1157
+#: usr/local/www/vpn_openvpn_server.php:1157
msgid "Bridge Interface"
msgstr ""
@@ -34901,6 +42147,8 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1133
#: usr/local/www/vpn_openvpn_server.php:1161
+#: usr/local/www/vpn_openvpn_server.php:1188
+#: usr/local/www/vpn_openvpn_server.php:1188
msgid "Server Bridge DHCP Start"
msgstr ""
@@ -34914,16 +42162,27 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1146
#: usr/local/www/vpn_openvpn_server.php:1174
+#: usr/local/www/vpn_openvpn_server.php:1201
+#: usr/local/www/vpn_openvpn_server.php:1201
msgid "Server Bridge DHCP End"
msgstr ""
#: usr/local/www/services_dhcp.php:239 usr/local/www/services_dhcpv6.php:216
#: usr/local/www/services_router_advertisements.php:159
#: usr/local/www/services_dhcp.php:285 usr/local/www/services_dhcpv6.php:201
+#: usr/local/www/services_dhcp_edit.php:230
+#: usr/local/www/services_dhcp.php:266 usr/local/www/services_dhcpv6.php:195
+#: usr/local/www/services_router_advertisements.php:154
+#: usr/local/www/services_dhcp_edit.php:230
+#: usr/local/www/services_dhcp.php:286 usr/local/www/services_dhcpv6.php:195
msgid "A valid domain search list must be specified."
msgstr ""
#: usr/local/www/services_dhcp.php:685 usr/local/www/services_dhcp.php:861
+#: usr/local/www/services_dhcp_edit.php:427
+#: usr/local/www/services_dhcp.php:875
+#: usr/local/www/services_dhcp_edit.php:427
+#: usr/local/www/services_dhcp.php:895
msgid ""
"The DHCP server can optionally provide a domain search list. Use the "
"semicolon character as seperator "
@@ -34931,10 +42190,13 @@ msgstr ""
#: usr/local/www/services_dhcp.php:735 usr/local/www/services_dhcpv6.php:716
#: usr/local/www/services_dhcp.php:916 usr/local/www/services_dhcpv6.php:647
+#: usr/local/www/services_dhcp.php:930 usr/local/www/services_dhcpv6.php:664
+#: usr/local/www/services_dhcp.php:950 usr/local/www/services_dhcpv6.php:664
msgid "Time format change"
msgstr ""
#: usr/local/www/services_dhcp.php:744 usr/local/www/services_dhcp.php:925
+#: usr/local/www/services_dhcp.php:939 usr/local/www/services_dhcp.php:959
msgid "Change DHCP display lease time from UTC to local time."
msgstr ""
@@ -34965,12 +42227,14 @@ msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:173
#: usr/local/www/load_balancer_virtual_server_edit.php:171
+#: usr/local/www/load_balancer_virtual_server_edit.php:171
msgid ""
"You may also specify a host alias listed in Firewall -&gt; Aliases here."
msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:187
#: usr/local/www/load_balancer_virtual_server_edit.php:185
+#: usr/local/www/load_balancer_virtual_server_edit.php:185
msgid "If left blank, listening ports from the pool will be used."
msgstr ""
@@ -34978,20 +42242,26 @@ msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:216
#: usr/local/www/load_balancer_virtual_server_edit.php:186
#: usr/local/www/load_balancer_pool_edit.php:214
+#: usr/local/www/load_balancer_virtual_server_edit.php:186
+#: usr/local/www/load_balancer_pool_edit.php:214
msgid ""
"You may also specify a port alias listed in Firewall -&gt; Aliases here."
msgstr ""
-#: usr/local/www/system_hasync.php:96 usr/local/www/system_hasync.php:96
+#: usr/local/www/system_hasync.php:96 usr/local/www/system_hasync.php:97
+#: usr/local/www/system_hasync.php:97
msgid "High Availability Sync"
msgstr ""
#: usr/local/www/services_ntpd.php:86 usr/local/www/services_ntpd.php:92
+#: usr/local/www/services_ntpd.php:92
msgid "NTP Server Configuration"
msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:391
#: usr/local/www/interfaces_bridge_edit.php:392
+#: usr/local/www/interfaces_bridge_edit.php:393
+#: usr/local/www/interfaces_bridge_edit.php:393
msgid ""
"Set the Spanning Tree priority of interface to value. The default is 128. "
"The minimum is 0 and the maximum is 240. Increments of 16."
@@ -34999,21 +42269,25 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:172
#: usr/local/www/diag_packet_capture.php:219
+#: usr/local/www/diag_packet_capture.php:235
msgid "Select the protocol to capture, or Any."
msgstr ""
#: usr/local/www/diag_packet_capture.php:245
#: usr/local/www/diag_packet_capture.php:292
+#: usr/local/www/diag_packet_capture.php:310
msgid "View Capture"
msgstr ""
#: usr/local/www/system_camanager.php:420
-#: usr/local/www/system_camanager.php:420
+#: usr/local/www/system_camanager.php:427
+#: usr/local/www/system_camanager.php:427
msgid "Serial for next certificate"
msgstr ""
#: usr/local/www/system_camanager.php:423
-#: usr/local/www/system_camanager.php:423
+#: usr/local/www/system_camanager.php:430
+#: usr/local/www/system_camanager.php:430
msgid ""
"Enter a decimal number to be used as the serial number for the next "
"certificate to be created using this CA."
@@ -35022,17 +42296,26 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:140
#: usr/local/www/vpn_ipsec_phase2.php:141
#: usr/local/www/vpn_ipsec_phase2.php:163
+#: usr/local/www/vpn_ipsec_phase2.php:145
+#: usr/local/www/vpn_ipsec_phase2.php:171
+#: usr/local/www/vpn_ipsec_phase2.php:145
+#: usr/local/www/vpn_ipsec_phase2.php:171
msgid "Invalid Local Network."
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:140
#: usr/local/www/vpn_ipsec_phase2.php:141
#: usr/local/www/vpn_ipsec_phase2.php:163
+#: usr/local/www/vpn_ipsec_phase2.php:145
+#: usr/local/www/vpn_ipsec_phase2.php:171
+#: usr/local/www/vpn_ipsec_phase2.php:145
+#: usr/local/www/vpn_ipsec_phase2.php:171
msgid "has no subnet."
msgstr ""
#: usr/local/www/firewall_nat_edit.php:233
-#: usr/local/www/firewall_nat_edit.php:233
+#: usr/local/www/firewall_nat_edit.php:238
+#: usr/local/www/firewall_nat_edit.php:243
#, php-format
msgid ""
"A valid local port must be specified. It must be a port alias or integer "
@@ -35041,89 +42324,109 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:793
#: usr/local/www/firewall_nat_edit.php:792
+#: usr/local/www/firewall_nat_edit.php:787
+#: usr/local/www/firewall_nat_edit.php:799
msgid "Use system default"
msgstr ""
#: usr/local/www/interfaces.php:463 usr/local/www/interfaces.php:460
+#: usr/local/www/interfaces.php:448 usr/local/www/interfaces.php:453
msgid ""
"This interface is referenced by IPv4 VIPs. Please delete those before "
"setting the interface to 'none' configuration."
msgstr ""
#: usr/local/www/interfaces.php:516 usr/local/www/interfaces.php:513
+#: usr/local/www/interfaces.php:501 usr/local/www/interfaces.php:506
msgid ""
"This interface is referenced by IPv6 VIPs. Please delete those before "
"setting the interface to 'none' configuration."
msgstr ""
#: usr/local/www/interfaces.php:526 usr/local/www/interfaces.php:523
+#: usr/local/www/interfaces.php:511
#, php-format
msgid "You can only have one interface configured as %s or 6to4."
msgstr ""
#: usr/local/www/interfaces.php:536 usr/local/www/interfaces.php:533
+#: usr/local/www/interfaces.php:521
#, php-format
msgid "You can only have one interface configured as %s or 6rd."
msgstr ""
#: usr/local/www/interfaces.php:549 usr/local/www/interfaces.php:546
+#: usr/local/www/interfaces.php:534 usr/local/www/interfaces.php:541
msgid "You must enter a valid hexadecimal number for the IPv6 prefix ID."
msgstr ""
#: usr/local/www/interfaces.php:553 usr/local/www/interfaces.php:550
+#: usr/local/www/interfaces.php:538 usr/local/www/interfaces.php:545
msgid "You specified an IPv6 prefix ID that is out of range."
msgstr ""
#: usr/local/www/interfaces.php:1119 usr/local/www/interfaces.php:1107
+#: usr/local/www/interfaces.php:1121 usr/local/www/interfaces.php:1163
msgid "SLAAC"
msgstr ""
#: usr/local/www/interfaces.php:1119 usr/local/www/interfaces.php:1107
+#: usr/local/www/interfaces.php:1121 usr/local/www/interfaces.php:1163
msgid "6rd Tunnel"
msgstr ""
#: usr/local/www/interfaces.php:1119 usr/local/www/interfaces.php:1107
+#: usr/local/www/interfaces.php:1121 usr/local/www/interfaces.php:1163
msgid "6to4 Tunnel"
msgstr ""
#: usr/local/www/interfaces.php:1119 usr/local/www/interfaces.php:1107
+#: usr/local/www/interfaces.php:1121 usr/local/www/interfaces.php:1163
msgid "Track Interface"
msgstr ""
#: usr/local/www/interfaces.php:1411 usr/local/www/interfaces.php:1399
+#: usr/local/www/interfaces.php:1412 usr/local/www/interfaces.php:1455
msgid ""
"If you leave this field blank, the adapter's default MTU will be used. This "
"is typically 1500 bytes but can vary in some circumstances."
msgstr ""
#: usr/local/www/interfaces.php:1768 usr/local/www/interfaces.php:1756
+#: usr/local/www/interfaces.php:1774 usr/local/www/interfaces.php:1820
msgid "6RD Rapid Deployment"
msgstr ""
#: usr/local/www/interfaces.php:1771 usr/local/www/interfaces.php:1759
+#: usr/local/www/interfaces.php:1777 usr/local/www/interfaces.php:1823
msgid "6RD prefix"
msgstr ""
#: usr/local/www/interfaces.php:1775 usr/local/www/interfaces.php:1763
+#: usr/local/www/interfaces.php:1781 usr/local/www/interfaces.php:1827
msgid ""
"The value in this field is the 6RD IPv6 prefix assigned by your ISP. e.g. "
"'2001:db8::/32'"
msgstr ""
#: usr/local/www/interfaces.php:1779 usr/local/www/interfaces.php:1767
+#: usr/local/www/interfaces.php:1785 usr/local/www/interfaces.php:1831
msgid "6RD Border Relay"
msgstr ""
#: usr/local/www/interfaces.php:1783 usr/local/www/interfaces.php:1771
+#: usr/local/www/interfaces.php:1789 usr/local/www/interfaces.php:1835
msgid ""
"The value in this field is 6RD IPv4 gateway address assigned by your ISP"
msgstr ""
#: usr/local/www/interfaces.php:1787 usr/local/www/interfaces.php:1775
+#: usr/local/www/interfaces.php:1793 usr/local/www/interfaces.php:1839
msgid "6RD IPv4 Prefix length"
msgstr ""
#: usr/local/www/interfaces.php:1799 usr/local/www/interfaces.php:1787
+#: usr/local/www/interfaces.php:1805 usr/local/www/interfaces.php:1851
msgid ""
"The value in this field is the 6RD IPv4 prefix length. Normally specified by "
"the ISP. A value of 0 means we embed the entire IPv4 address in the 6RD "
@@ -35131,53 +42434,65 @@ msgid ""
msgstr ""
#: usr/local/www/interfaces.php:1809 usr/local/www/interfaces.php:1797
+#: usr/local/www/interfaces.php:1818 usr/local/www/interfaces.php:1864
msgid "Track IPv6 Interface"
msgstr ""
#: usr/local/www/interfaces.php:1812 usr/local/www/interfaces.php:1800
+#: usr/local/www/interfaces.php:1821 usr/local/www/interfaces.php:1867
msgid "IPv6 Interface"
msgstr ""
#: usr/local/www/interfaces.php:1838 usr/local/www/interfaces.php:1826
+#: usr/local/www/interfaces.php:1847 usr/local/www/interfaces.php:1893
msgid "This selects the dynamic IPv6 WAN interface to track for configuration"
msgstr ""
#: usr/local/www/interfaces.php:1842 usr/local/www/interfaces.php:1830
+#: usr/local/www/interfaces.php:1851 usr/local/www/interfaces.php:1897
msgid "IPv6 Prefix ID"
msgstr ""
#: usr/local/www/interfaces.php:1853 usr/local/www/interfaces.php:1841
+#: usr/local/www/interfaces.php:1862 usr/local/www/interfaces.php:1908
msgid ""
"The value in this field is the (Delegated) IPv6 prefix id. This determines "
"the configurable network ID based on the dynamic IPv6 connection"
msgstr ""
#: usr/local/www/interfaces.php:1855 usr/local/www/interfaces.php:1843
+#: usr/local/www/interfaces.php:1864 usr/local/www/interfaces.php:1910
#, php-format
msgid ""
"Enter a <b>hexadecimal</b> value between %x and %x here, or leave blank."
msgstr ""
#: usr/local/www/interfaces.php:2356 usr/local/www/interfaces.php:2344
+#: usr/local/www/interfaces.php:2374 usr/local/www/interfaces.php:2420
msgid ""
"Note: Only required in Access Point mode. If left blank in Ad-hoc or "
"Infrastructure mode, this interface will connect to any available SSID"
msgstr ""
#: usr/local/www/interfaces.php:2576 usr/local/www/interfaces.php:2564
+#: usr/local/www/interfaces.php:2594 usr/local/www/interfaces.php:2640
msgid "Secondary 802.1X Authentication Server IP Address"
msgstr ""
#: usr/local/www/interfaces.php:2583 usr/local/www/interfaces.php:2571
+#: usr/local/www/interfaces.php:2601 usr/local/www/interfaces.php:2647
msgid "Secondary 802.1X Authentication Server Port"
msgstr ""
#: usr/local/www/interfaces.php:2590 usr/local/www/interfaces.php:2578
+#: usr/local/www/interfaces.php:2608 usr/local/www/interfaces.php:2654
msgid "Secondary 802.1X Authentication Server Shared Secret"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:196
#: usr/local/www/vpn_openvpn_client.php:202
+#: usr/local/www/vpn_openvpn_client.php:220
+#: usr/local/www/vpn_openvpn_client.php:220
msgid "The bandwidth limit must be a positive numeric value."
msgstr ""
@@ -35214,6 +42529,8 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:153
#: usr/local/www/firewall_virtual_ip_edit.php:152
+#: usr/local/www/firewall_virtual_ip_edit.php:144
+#: usr/local/www/firewall_virtual_ip_edit.php:160
#, php-format
msgid ""
"VHID %s is already in use on interface %s. Pick a unique number on this "
@@ -35221,33 +42538,39 @@ msgid ""
msgstr ""
#: usr/local/www/services_snmp.php:391 usr/local/www/services_snmp.php:392
+#: usr/local/www/services_snmp.php:407 usr/local/www/services_snmp.php:407
msgid "Interface Binding"
msgstr ""
#: usr/local/www/services_snmp.php:396 usr/local/www/services_snmp.php:397
+#: usr/local/www/services_snmp.php:412 usr/local/www/services_snmp.php:412
msgid "Bind Interface"
msgstr ""
#: usr/local/www/widgets/widgets/smart_status.widget.php:36
-#: usr/local/www/widgets/widgets/smart_status.widget.php:36
+#: usr/local/www/widgets/widgets/smart_status.widget.php:37
msgid "Drive"
msgstr ""
#: usr/local/www/widgets/widgets/smart_status.widget.php:37
-#: usr/local/www/widgets/widgets/smart_status.widget.php:37
+#: usr/local/www/widgets/widgets/smart_status.widget.php:38
msgid "Ident"
msgstr ""
#: usr/local/www/system.php:418 usr/local/www/system.php:411
+#: usr/local/www/system.php:409
msgid "Language"
msgstr ""
#: usr/local/www/system.php:431 usr/local/www/system.php:424
+#: usr/local/www/system.php:422
msgid "Choose a language for the webConfigurator"
msgstr ""
#: usr/local/www/firewall_virtual_ip.php:118
#: usr/local/www/firewall_virtual_ip.php:115
+#: usr/local/www/firewall_virtual_ip.php:127
+#: usr/local/www/firewall_virtual_ip.php:127
msgid ""
"This entry cannot be deleted because it is still referenced by a CARP IP "
"with the description"
@@ -35255,6 +42578,8 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip.php:124
#: usr/local/www/firewall_virtual_ip.php:121
+#: usr/local/www/firewall_virtual_ip.php:132
+#: usr/local/www/firewall_virtual_ip.php:132
msgid ""
"This entry cannot be deleted because it is still referenced by an IP alias "
"entry with the description"
@@ -35262,12 +42587,14 @@ msgstr ""
#: usr/local/www/services_dhcpv6.php:531
#: usr/local/www/services_router_advertisements.php:277
+#: usr/local/www/services_router_advertisements.php:272
#, php-format
msgid "Select the Operating Mode for the Router Advertisement (RA) Daemon."
msgstr ""
#: usr/local/www/services_dhcpv6.php:532
#: usr/local/www/services_router_advertisements.php:278
+#: usr/local/www/services_router_advertisements.php:273
#, php-format
msgid ""
"Use \"Router Only\" to only advertise this router, \"Unmanaged\" for Router "
@@ -35278,6 +42605,7 @@ msgstr ""
#: usr/local/www/services_dhcpv6.php:533
#: usr/local/www/services_router_advertisements.php:279
+#: usr/local/www/services_router_advertisements.php:274
#, php-format
msgid ""
"It is not required to activate this DHCPv6 server when set to \"Managed\", "
@@ -35286,22 +42614,26 @@ msgstr ""
#: usr/local/www/services_dhcpv6.php:537
#: usr/local/www/services_router_advertisements.php:283
+#: usr/local/www/services_router_advertisements.php:278
msgid "Router Priority"
msgstr ""
#: usr/local/www/services_dhcpv6.php:544
#: usr/local/www/services_router_advertisements.php:290
+#: usr/local/www/services_router_advertisements.php:285
#, php-format
msgid "Select the Priority for the Router Advertisement (RA) Daemon."
msgstr ""
#: usr/local/www/services_dhcpv6.php:558
#: usr/local/www/services_router_advertisements.php:304
+#: usr/local/www/services_router_advertisements.php:299
msgid "RA Interface"
msgstr ""
#: usr/local/www/services_dhcpv6.php:566
#: usr/local/www/services_router_advertisements.php:312
+#: usr/local/www/services_router_advertisements.php:307
#, php-format
msgid "Select the Interface for the Router Advertisement (RA) Daemon."
msgstr ""
@@ -35311,6 +42643,7 @@ msgid "prefix delegation size"
msgstr ""
#: usr/local/www/services_dhcpv6.php:662 usr/local/www/services_dhcpv6.php:593
+#: usr/local/www/services_dhcpv6.php:610 usr/local/www/services_dhcpv6.php:610
msgid ""
"You can define a Prefix range here for DHCP Prefix Delegation. This allows "
"for \n"
@@ -35319,133 +42652,150 @@ msgid ""
msgstr ""
#: usr/local/www/services_dhcpv6.php:685 usr/local/www/services_dhcpv6.php:616
+#: usr/local/www/services_dhcpv6.php:633 usr/local/www/services_dhcpv6.php:633
msgid ""
"The DHCP server can optionally provide a domain search list. Use the "
"semicolon character as seperator"
msgstr ""
#: usr/local/www/services_dhcpv6.php:725 usr/local/www/services_dhcpv6.php:656
+#: usr/local/www/services_dhcpv6.php:673 usr/local/www/services_dhcpv6.php:673
msgid "Change DHCPv6 display lease time from UTC to local time."
msgstr ""
#: usr/local/www/services_dhcpv6.php:732 usr/local/www/services_dhcpv6.php:663
+#: usr/local/www/services_dhcpv6.php:680 usr/local/www/services_dhcpv6.php:680
msgid ""
"By default DHCPv6 leases are displayed in UTC time. By checking this \n"
"\t\t\t\t\t\tbox 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 ""
-#: etc/inc/priv.defs.inc:64
+#: etc/inc/priv.defs.inc:64 etc/inc/priv.defs.inc:64
msgid "WebCfg - Diagnostics: Sockets page"
msgstr ""
-#: etc/inc/priv.defs.inc:65
+#: etc/inc/priv.defs.inc:65 etc/inc/priv.defs.inc:65
msgid "Allow access to the 'Diagnostics: Sockets' page."
msgstr ""
-#: etc/inc/config.console.inc:263
+#: etc/inc/config.console.inc:263 etc/inc/config.console.inc:263
#, php-format
msgid ""
"%sEnter the Optional %s interface name or 'a' for auto-detection%s(or "
"nothing if finished):%s"
msgstr ""
-#: etc/inc/shaper.inc:2909
+#: etc/inc/shaper.inc:2909 etc/inc/shaper.inc:2910 etc/inc/shaper.inc:2915
#, php-format
msgid "Bandwidth for schedule %s must be an integer."
msgstr ""
-#: etc/inc/shaper.inc:2915
+#: etc/inc/shaper.inc:2915 etc/inc/shaper.inc:2916 etc/inc/shaper.inc:2921
msgid "You need to specify a schedule for every additional entry"
msgstr ""
-#: etc/inc/shaper.inc:2917
+#: etc/inc/shaper.inc:2917 etc/inc/shaper.inc:2918 etc/inc/shaper.inc:2923
msgid "If more than one bandwidth configured all schedules need to be selected"
msgstr ""
-#: etc/inc/shaper.inc:2919
+#: etc/inc/shaper.inc:2919 etc/inc/shaper.inc:2920 etc/inc/shaper.inc:2925
msgid "At least one bw specification is necessary"
msgstr ""
-#: etc/inc/shaper.inc:3200
+#: etc/inc/shaper.inc:3200 etc/inc/shaper.inc:3201 etc/inc/shaper.inc:3208
msgid "add another schedule"
msgstr ""
-#: etc/inc/functions.inc:94
+#: etc/inc/functions.inc:94 etc/inc/functions.inc:94
msgid "Acknowledge All Notices"
msgstr ""
-#: etc/inc/functions.inc:95
+#: etc/inc/functions.inc:95 etc/inc/functions.inc:95
msgid "Click to Acknowledge"
msgstr ""
-#: etc/inc/functions.inc:113
+#: etc/inc/functions.inc:113 etc/inc/functions.inc:113
msgid "unread notice"
msgstr ""
-#: etc/inc/functions.inc:115
+#: etc/inc/functions.inc:115 etc/inc/functions.inc:115
msgid "unread notices"
msgstr ""
-#: etc/inc/service-utils.inc:234
+#: etc/inc/service-utils.inc:234 etc/inc/service-utils.inc:233
+#: etc/inc/service-utils.inc:250
msgid "Router Advertisement Daemon"
msgstr ""
-#: etc/inc/service-utils.inc:313
+#: etc/inc/service-utils.inc:313 etc/inc/service-utils.inc:312
+#: etc/inc/service-utils.inc:329
msgid "RIP Daemon"
msgstr ""
#: etc/inc/service-utils.inc:413 etc/inc/service-utils.inc:422
+#: etc/inc/service-utils.inc:412 etc/inc/service-utils.inc:421
+#: etc/inc/service-utils.inc:429 etc/inc/service-utils.inc:439
#, php-format
msgid "%s Service is"
msgstr ""
-#: etc/inc/service-utils.inc:447
+#: etc/inc/service-utils.inc:447 etc/inc/service-utils.inc:446
+#: etc/inc/service-utils.inc:464
#, php-format
msgid "Restart %sService"
msgstr ""
-#: etc/inc/service-utils.inc:458
+#: etc/inc/service-utils.inc:458 etc/inc/service-utils.inc:457
+#: etc/inc/service-utils.inc:475
#, php-format
msgid "Stop %sService"
msgstr ""
-#: etc/inc/service-utils.inc:471
+#: etc/inc/service-utils.inc:471 etc/inc/service-utils.inc:470
+#: etc/inc/service-utils.inc:491
#, php-format
msgid "Start %sService"
msgstr ""
-#: etc/inc/filter.inc:2993
+#: etc/inc/filter.inc:2993 etc/inc/filter.inc:3079 etc/inc/filter.inc:3103
msgid "Removed 15 minute filter reload for Time Based Rules"
msgstr ""
-#: usr/local/www/pkg_mgr.php:193
+#: usr/local/www/pkg_mgr.php:193 usr/local/www/pkg_mgr.php:196
msgid "Click on package name to access its website."
msgstr ""
#: usr/local/www/diag_logs_settings.php:276
+#: usr/local/www/diag_logs_settings.php:276
msgid "Show the applied rule description below or in the firewall log rows."
msgstr ""
#: usr/local/www/diag_logs_settings.php:278
+#: usr/local/www/diag_logs_settings.php:278
msgid ""
"Displaying rule descriptions for all lines in the log might affect "
"performance with large rulessets."
msgstr ""
-#: usr/local/www/fbegin.inc:152
+#: usr/local/www/fbegin.inc:152 usr/local/www/fbegin.inc:144
+#: usr/local/www/fbegin.inc:144
msgid "DHCPv6 Server/RA"
msgstr ""
#: usr/local/www/fbegin.inc:232 usr/local/www/diag_sockets.php:44
+#: usr/local/www/fbegin.inc:224 usr/local/www/fbegin.inc:224
+#: usr/local/www/diag_sockets.php:44
msgid "Sockets"
msgstr ""
-#: usr/local/www/fbegin.inc:419
+#: usr/local/www/fbegin.inc:419 usr/local/www/fbegin.inc:411
+#: usr/local/www/fbegin.inc:411
msgid "Help for items on this page"
msgstr ""
#: usr/local/www/system_groupmanager.php:472
+#: usr/local/www/system_groupmanager.php:422
msgid ""
"Additional webConfigurator groups can be added here. \n"
"\t\t\t\t\t\t\t\t\tGroup permissions can be assigned which are inherited by "
@@ -35457,19 +42807,26 @@ msgid ""
msgstr ""
#: usr/local/www/services_dnsmasq_edit.php:216
+#: usr/local/www/services_dnsmasq_edit.php:216
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:134
msgid "or"
msgstr ""
#: usr/local/www/services_dhcpv6_edit.php:204
+#: usr/local/www/services_dhcpv6_edit.php:207
+#: usr/local/www/services_dhcpv6_edit.php:207
msgid "If an IPv6 address is entered, the address must be outside of the pool."
msgstr ""
#: usr/local/www/services_dhcpv6_edit.php:206
+#: usr/local/www/services_dhcpv6_edit.php:209
+#: usr/local/www/services_dhcpv6_edit.php:209
msgid ""
"If no IPv6 address is given, one will be dynamically allocated from the pool."
msgstr ""
#: usr/local/www/services_router_advertisements.php:118
+#: usr/local/www/services_router_advertisements.php:117
msgid ""
"Subnets are specified in CIDR format. Select the CIDR mask that pertains to "
"each entry. /128 specifies a single IPv6 host; /64 specifies a normal IPv6 "
@@ -35479,54 +42836,68 @@ msgid ""
msgstr ""
#: usr/local/www/services_router_advertisements.php:149
+#: usr/local/www/services_router_advertisements.php:144
#, php-format
msgid "An invalid subnet or alias was specified. [%s/%s]"
msgstr ""
#: usr/local/www/services_router_advertisements.php:194
+#: usr/local/www/services_router_advertisements.php:189
msgid "Router advertisements"
msgstr ""
#: usr/local/www/services_router_advertisements.php:318
+#: usr/local/www/services_router_advertisements.php:313
msgid "RA Subnet(s)"
msgstr ""
#: usr/local/www/services_router_advertisements.php:384
+#: usr/local/www/services_router_advertisements.php:379
msgid ""
"The RA server can optionally provide a domain search list. Use the semicolon "
"character as seperator"
msgstr ""
#: usr/local/www/services_router_advertisements.php:392
+#: usr/local/www/services_router_advertisements.php:387
msgid "Use same settings as DHCPv6 server"
msgstr ""
#: usr/local/www/vpn_ipsec.php:142 usr/local/www/vpn_ipsec_keys.php:94
#: usr/local/www/vpn_ipsec_phase2.php:475
-#: usr/local/www/vpn_ipsec_phase1.php:498
+#: usr/local/www/vpn_ipsec_phase1.php:498 usr/local/www/vpn_ipsec.php:148
+#: usr/local/www/vpn_ipsec_phase1.php:519
+#: usr/local/www/vpn_ipsec_phase2.php:497 usr/local/www/vpn_ipsec.php:148
+#: usr/local/www/vpn_ipsec_phase1.php:519 usr/local/www/vpn_ipsec_keys.php:94
+#: usr/local/www/vpn_ipsec_phase2.php:497
msgid "Pre-Shared Keys"
msgstr ""
#: usr/local/www/system_usermanager_settings_test.php:78
+#: usr/local/www/system_usermanager_settings_test.php:78
#, php-format
msgid "Testing %s LDAP settings... One moment please..."
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:149
+#: usr/local/www/vpn_ipsec_mobile.php:149
msgid "A valid split DNS domain list must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:505
+#: usr/local/www/vpn_ipsec_mobile.php:505
msgid "Split DNS"
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:514
+#: usr/local/www/vpn_ipsec_mobile.php:514
msgid ""
"Provide a list of split DNS domain names to clients. Enter a comma separated "
"list."
msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:515
+#: usr/local/www/vpn_ipsec_mobile.php:515
msgid ""
"NOTE: If left blank, and a default domain is set, it will be used for this "
"value."
@@ -35534,57 +42905,72 @@ msgstr ""
#: usr/local/www/firewall_shaper.php:131
#: usr/local/www/firewall_shaper_vinterface.php:146
+#: usr/local/www/firewall_shaper.php:131
+#: usr/local/www/firewall_shaper_vinterface.php:146
msgid "Unable to write config.xml (Access Denied?)"
msgstr ""
#: usr/local/www/firewall_rules_edit.php:455
+#: usr/local/www/firewall_rules_edit.php:458
+#: usr/local/www/firewall_rules_edit.php:464
msgid ""
"Please select a gateway, normaly the interface selected gateway, so the "
"limiters work correctly"
msgstr ""
-#: usr/local/www/vpn_ipsec_keys.php:136
+#: usr/local/www/vpn_ipsec_keys.php:136 usr/local/www/vpn_ipsec_keys.php:136
msgid "Do you really want to delete this Pre-Shared Key?"
msgstr ""
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:83
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:83
msgid "A valid domain must be specified after _msdcs."
msgstr ""
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:93
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:93
msgid "An interface IP address must be specified for the DNS query source."
msgstr ""
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:144
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:144
msgid "Source IP"
msgstr ""
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:147
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:147
msgid ""
"Source IP address for queries to the DNS server for the override domain."
msgstr ""
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:148
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:148
msgid "Leave blank unless your DNS server is accessed through a VPN tunnel."
msgstr ""
#: usr/local/www/system_crlmanager.php:401
+#: usr/local/www/system_crlmanager.php:401
msgid "Edit Imported Certificate Revocation List"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:206
+#: usr/local/www/system_advanced_firewall.php:235
+#: usr/local/www/system_advanced_firewall.php:235
msgid ""
"expires idle connections quicker. More efficient use of CPU and memory but "
"can drop legitimate idle connections"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:207
+#: usr/local/www/system_advanced_firewall.php:236
+#: usr/local/www/system_advanced_firewall.php:236
msgid ""
"tries to avoid dropping any legitimate idle connections at the expense of "
"increased memory usage and CPU utilization."
msgstr ""
-#: usr/local/www/vpn_pptp.php:297
+#: usr/local/www/vpn_pptp.php:297 usr/local/www/vpn_pptp.php:300
+#: usr/local/www/vpn_pptp.php:300
msgid ""
"PPTP is no longer considered a secure VPN technology because it relies upon "
"MS-CHAPv2 which has been compromised. If you continue to use PPTP be aware "
@@ -35594,47 +42980,65 @@ msgid ""
"+for+MS-CHAPv2/13807\">Read More</a>"
msgstr ""
-#: usr/local/www/status_ntpd.php:185
+#: usr/local/www/status_ntpd.php:185 usr/local/www/status_ntpd.php:191
msgid "Clock Latitude"
msgstr ""
-#: usr/local/www/status_ntpd.php:186
+#: usr/local/www/status_ntpd.php:186 usr/local/www/status_ntpd.php:192
msgid "Clock Longitude"
msgstr ""
#: usr/local/www/system_advanced_misc.php:77
+#: usr/local/www/system_advanced_misc.php:80
+#: usr/local/www/system_advanced_misc.php:84
msgid "AMD Geode LX Security Block"
msgstr ""
#: usr/local/www/system_advanced_misc.php:78
+#: usr/local/www/system_advanced_misc.php:81
+#: usr/local/www/system_advanced_misc.php:85
msgid "AES-NI CPU-based Acceleration"
msgstr ""
#: usr/local/www/system_advanced_misc.php:80
+#: usr/local/www/system_advanced_misc.php:83
+#: usr/local/www/system_advanced_misc.php:87
msgid "Intel Core* CPU on-die thermal sensor"
msgstr ""
#: usr/local/www/system_advanced_misc.php:81
+#: usr/local/www/system_advanced_misc.php:84
+#: usr/local/www/system_advanced_misc.php:88
msgid "AMD K8, K10 and K11 CPU on-die thermal sensor"
msgstr ""
#: usr/local/www/system_advanced_misc.php:92
+#: usr/local/www/system_advanced_misc.php:95
+#: usr/local/www/system_advanced_misc.php:99
msgid "Please select a valid Cryptographic Accelerator."
msgstr ""
#: usr/local/www/system_advanced_misc.php:95
+#: usr/local/www/system_advanced_misc.php:98
+#: usr/local/www/system_advanced_misc.php:102
msgid "Please select a valid Thermal Hardware Sensor."
msgstr ""
#: usr/local/www/system_advanced_misc.php:380
+#: usr/local/www/system_advanced_misc.php:392
+#: usr/local/www/system_advanced_misc.php:439
msgid "Cryptographic Hardware Acceleration"
msgstr ""
#: usr/local/www/system_advanced_misc.php:383
+#: usr/local/www/system_advanced_misc.php:395
+#: usr/local/www/system_advanced_misc.php:442
msgid "Cryptographic Hardware"
msgstr ""
#: usr/local/www/system_advanced_misc.php:392
+#: usr/local/www/system_advanced_misc.php:404
+#: usr/local/www/system_advanced_misc.php:451
msgid ""
"A cryptographic accelerator module will use hardware support to speed up "
"some cryptographic functions on systems which have the chip. Do not enable "
@@ -35646,6 +43050,8 @@ msgid ""
msgstr ""
#: usr/local/www/system_advanced_misc.php:400
+#: usr/local/www/system_advanced_misc.php:412
+#: usr/local/www/system_advanced_misc.php:459
msgid ""
"If you do not have a crypto chip in your system, this option will have no "
"effect. To unload the selected module, set this option to 'none' and then "
@@ -35654,14 +43060,22 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:408
#: usr/local/www/system_advanced_misc.php:411
+#: usr/local/www/system_advanced_misc.php:420
+#: usr/local/www/system_advanced_misc.php:423
+#: usr/local/www/system_advanced_misc.php:467
+#: usr/local/www/system_advanced_misc.php:470
msgid "Thermal Sensors"
msgstr ""
#: usr/local/www/system_advanced_misc.php:414
+#: usr/local/www/system_advanced_misc.php:426
+#: usr/local/www/system_advanced_misc.php:473
msgid "None/ACPI"
msgstr ""
#: usr/local/www/system_advanced_misc.php:420
+#: usr/local/www/system_advanced_misc.php:432
+#: usr/local/www/system_advanced_misc.php:479
msgid ""
"If you have a supported CPU, selecting a themal sensor will load the "
"appropriate driver to read its temperature. Setting this to 'None' will "
@@ -35670,6 +43084,8 @@ msgid ""
msgstr ""
#: usr/local/www/system_advanced_misc.php:424
+#: usr/local/www/system_advanced_misc.php:436
+#: usr/local/www/system_advanced_misc.php:483
msgid ""
"If you do not have a supported thermal sensor chip in your system, this "
"option will have no effect. To unload the selected module, set this option "
@@ -35677,10 +43093,14 @@ msgid ""
msgstr ""
#: usr/local/www/services_captiveportal.php:173
+#: usr/local/www/services_captiveportal.php:175
+#: usr/local/www/services_captiveportal.php:175
msgid "Certificate must be specified for HTTPS login."
msgstr ""
#: usr/local/www/services_captiveportal.php:863
+#: usr/local/www/services_captiveportal.php:865
+#: usr/local/www/services_captiveportal.php:881
msgid ""
"If enabled, the username and password will be transmitted over an HTTPS "
"connection to protect against eavesdroppers. A server name and certificate "
@@ -35688,101 +43108,124 @@ msgid ""
msgstr ""
#: usr/local/www/services_captiveportal.php:886
+#: usr/local/www/services_captiveportal.php:888
+#: usr/local/www/services_captiveportal.php:904
msgid "No Certificates defined."
msgstr ""
#: usr/local/www/system_gateways_edit.php:205
+#: usr/local/www/system_gateways_edit.php:205
msgid "The low latency threshold needs to be a numeric value."
msgstr ""
#: usr/local/www/system_gateways_edit.php:208
+#: usr/local/www/system_gateways_edit.php:208
msgid "The low latency threshold needs to be positive."
msgstr ""
#: usr/local/www/system_gateways_edit.php:215
+#: usr/local/www/system_gateways_edit.php:215
msgid "The high latency threshold needs to be a numeric value."
msgstr ""
#: usr/local/www/system_gateways_edit.php:218
+#: usr/local/www/system_gateways_edit.php:218
msgid "The high latency threshold needs to be positive."
msgstr ""
#: usr/local/www/system_gateways_edit.php:225
+#: usr/local/www/system_gateways_edit.php:225
msgid "The low Packet Loss threshold needs to be a numeric value."
msgstr ""
#: usr/local/www/system_gateways_edit.php:228
+#: usr/local/www/system_gateways_edit.php:228
msgid "The low Packet Loss threshold needs to be positive."
msgstr ""
#: usr/local/www/system_gateways_edit.php:231
+#: usr/local/www/system_gateways_edit.php:231
msgid "The low Packet Loss threshold needs to be less than 100."
msgstr ""
#: usr/local/www/system_gateways_edit.php:238
+#: usr/local/www/system_gateways_edit.php:238
msgid "The high Packet Loss threshold needs to be a numeric value."
msgstr ""
#: usr/local/www/system_gateways_edit.php:241
+#: usr/local/www/system_gateways_edit.php:241
msgid "The high Packet Loss threshold needs to be positive."
msgstr ""
#: usr/local/www/system_gateways_edit.php:244
+#: usr/local/www/system_gateways_edit.php:244
msgid "The high Packet Loss threshold needs to be 100 or less."
msgstr ""
#: usr/local/www/system_gateways_edit.php:252
+#: usr/local/www/system_gateways_edit.php:252
msgid ""
"The high latency threshold needs to be higher than the low latency threshold"
msgstr ""
#: usr/local/www/system_gateways_edit.php:275
+#: usr/local/www/system_gateways_edit.php:275
msgid ""
"The high Packet Loss threshold needs to be higher than the low Packet Loss "
"threshold"
msgstr ""
#: usr/local/www/system_gateways_edit.php:297
+#: usr/local/www/system_gateways_edit.php:297
msgid "The frequency probe interval needs to be a numeric value."
msgstr ""
#: usr/local/www/system_gateways_edit.php:300
+#: usr/local/www/system_gateways_edit.php:300
msgid "The frequency probe interval needs to be positive."
msgstr ""
#: usr/local/www/system_gateways_edit.php:307
+#: usr/local/www/system_gateways_edit.php:307
msgid "The down time setting needs to be a numeric value."
msgstr ""
#: usr/local/www/system_gateways_edit.php:310
+#: usr/local/www/system_gateways_edit.php:310
msgid "The down time setting needs to be positive."
msgstr ""
#: usr/local/www/system_gateways_edit.php:318
+#: usr/local/www/system_gateways_edit.php:318
msgid ""
"The Frequency Probe interval needs to be less than the down time setting."
msgstr ""
#: usr/local/www/system_gateways_edit.php:611
+#: usr/local/www/system_gateways_edit.php:615
+#: usr/local/www/system_gateways_edit.php:617
msgid ""
"NOTE: The Frequency Probe interval must be less than the Down time, "
"otherwise the gateway will seem to go down then come up again at the next "
"probe."
msgstr ""
-#: usr/local/www/shortcuts.inc:96
+#: usr/local/www/shortcuts.inc:96 usr/local/www/shortcuts.inc:96
msgid "Main page for this section"
msgstr ""
-#: usr/local/www/shortcuts.inc:120
+#: usr/local/www/shortcuts.inc:120 usr/local/www/shortcuts.inc:120
msgid "Status of items on this page"
msgstr ""
-#: usr/local/www/shortcuts.inc:127
+#: usr/local/www/shortcuts.inc:127 usr/local/www/shortcuts.inc:127
msgid "Log entries for items on this page"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1102
+#: usr/local/www/vpn_openvpn_server.php:1129
+#: usr/local/www/vpn_openvpn_server.php:1129
msgid ""
"This is the IPv6 virtual network used for private communications between "
"this server and client hosts expressed using CIDR (eg. fe80::/64). The first "
@@ -35792,6 +43235,8 @@ msgid ""
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1152
+#: usr/local/www/vpn_openvpn_server.php:1179
+#: usr/local/www/vpn_openvpn_server.php:1179
msgid ""
"The interface to which this tap instance will be bridged. This is not done "
"automatically. You must assign this interface and create the bridge "
@@ -35801,6 +43246,8 @@ msgid ""
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1165
+#: usr/local/www/vpn_openvpn_server.php:1192
+#: usr/local/www/vpn_openvpn_server.php:1192
msgid ""
"When using tap mode as a multi-point server, you may optionally supply a "
"DHCP range to use on the interface to which this tap instance is bridged. If "
@@ -35835,123 +43282,144 @@ msgid ""
"VPN"
msgstr ""
-#: usr/local/www/services_dhcp.php:293
+#: usr/local/www/services_dhcp.php:293 usr/local/www/services_dhcp.php:274
+#: usr/local/www/services_dhcp.php:294
msgid ""
"If you specify a mac allow list, it must contain only valid partial MAC "
"addresses."
msgstr ""
-#: usr/local/www/services_dhcp.php:295
+#: usr/local/www/services_dhcp.php:295 usr/local/www/services_dhcp.php:276
+#: usr/local/www/services_dhcp.php:296
msgid ""
"If you specify a mac deny list, it must contain only valid partial MAC "
"addresses."
msgstr ""
-#: usr/local/www/services_dhcp.php:699
+#: usr/local/www/services_dhcp.php:699 usr/local/www/services_dhcp.php:701
+#: usr/local/www/services_dhcp.php:721
msgid ""
"Editing Pool-Specific Options. To return to the Interface, click its tab "
"above."
msgstr ""
-#: usr/local/www/services_dhcp.php:775
+#: usr/local/www/services_dhcp.php:775 usr/local/www/services_dhcp.php:785
+#: usr/local/www/services_dhcp.php:805
msgid "Additional Pools"
msgstr ""
-#: usr/local/www/services_dhcp.php:777
+#: usr/local/www/services_dhcp.php:777 usr/local/www/services_dhcp.php:787
+#: usr/local/www/services_dhcp.php:807
msgid ""
"If you need additional pools of addresses inside of this subnet outside the "
"above Range, they may be specified here."
msgstr ""
-#: usr/local/www/services_dhcp.php:780
+#: usr/local/www/services_dhcp.php:780 usr/local/www/services_dhcp.php:790
+#: usr/local/www/services_dhcp.php:810
msgid "Pool Start"
msgstr ""
-#: usr/local/www/services_dhcp.php:781
+#: usr/local/www/services_dhcp.php:781 usr/local/www/services_dhcp.php:791
+#: usr/local/www/services_dhcp.php:811
msgid "Pool End"
msgstr ""
-#: usr/local/www/services_dhcp.php:805
+#: usr/local/www/services_dhcp.php:805 usr/local/www/services_dhcp.php:819
+#: usr/local/www/services_dhcp.php:839
msgid "Do you really want to delete this pool?"
msgstr ""
-#: usr/local/www/services_dhcp.php:958
+#: usr/local/www/services_dhcp.php:958 usr/local/www/services_dhcp.php:971
+#: usr/local/www/services_dhcp.php:991
msgid "MAC Address Control"
msgstr ""
-#: usr/local/www/services_dhcp.php:961
+#: usr/local/www/services_dhcp.php:961 usr/local/www/services_dhcp.php:974
+#: usr/local/www/services_dhcp.php:994
msgid "Show MAC Address Control"
msgstr ""
-#: usr/local/www/services_dhcp.php:965
+#: usr/local/www/services_dhcp.php:965 usr/local/www/services_dhcp.php:978
+#: usr/local/www/services_dhcp.php:998
msgid ""
"Enter a list of partial MAC addresses to allow, comma separated, no spaces, "
"such as "
msgstr ""
-#: usr/local/www/services_dhcp.php:967
+#: usr/local/www/services_dhcp.php:967 usr/local/www/services_dhcp.php:980
+#: usr/local/www/services_dhcp.php:1000
msgid ""
"Enter a list of partial MAC addresses to deny access, comma separated, no "
"spaces, such as "
msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:89
+#: usr/local/www/load_balancer_virtual_server_edit.php:89
msgid "You cannot use spaces or slashes in the 'name' field."
msgstr ""
-#: usr/local/www/guiconfig.inc:1009
+#: usr/local/www/guiconfig.inc:1009 usr/local/www/guiconfig.inc:1024
+#: usr/local/www/guiconfig.inc:1024
msgid "move mouse out this alias to hide"
msgstr ""
-#: usr/local/www/guiconfig.inc:1066
+#: usr/local/www/guiconfig.inc:1066 usr/local/www/guiconfig.inc:1081
+#: usr/local/www/guiconfig.inc:1081
msgid "edit this alias"
msgstr ""
#: usr/local/www/guiconfig.inc:1077 usr/local/www/guiconfig.inc:1089
+#: usr/local/www/guiconfig.inc:1092 usr/local/www/guiconfig.inc:1104
+#: usr/local/www/guiconfig.inc:1092 usr/local/www/guiconfig.inc:1104
msgid "loading..."
msgstr ""
#: usr/local/www/system_firmware_settings.php:175
+#: usr/local/www/system_firmware_settings.php:184
+#: usr/local/www/system_firmware_settings.php:186
msgid "Dashboard check"
msgstr ""
#: usr/local/www/system_firmware_settings.php:179
+#: usr/local/www/system_firmware_settings.php:188
+#: usr/local/www/system_firmware_settings.php:190
msgid "Disable the automatic dashboard auto-update check."
msgstr ""
-#: usr/local/www/services_ntpd.php:119
+#: usr/local/www/services_ntpd.php:119 usr/local/www/services_ntpd.php:119
msgid "Interfaces without an IP address will not be shown."
msgstr ""
-#: usr/local/www/services_ntpd.php:121
+#: usr/local/www/services_ntpd.php:121 usr/local/www/services_ntpd.php:121
msgid "Selecting no interfaces will listen on all interfaces with a wildcard."
msgstr ""
-#: usr/local/www/services_ntpd.php:122
+#: usr/local/www/services_ntpd.php:122 usr/local/www/services_ntpd.php:122
msgid ""
"Selecting all interfaces will explicitly listen on only the interfaces/IPs "
"specified."
msgstr ""
-#: usr/local/www/services_ntpd.php:140
+#: usr/local/www/services_ntpd.php:140 usr/local/www/services_ntpd.php:140
msgid "The GPS must provide NMEA format output!"
msgstr ""
-#: usr/local/www/services_ntpd.php:142
+#: usr/local/www/services_ntpd.php:142 usr/local/www/services_ntpd.php:142
msgid ""
"All serial ports are listed, be sure to pick only the port with the GPS "
"attached."
msgstr ""
-#: usr/local/www/services_ntpd.php:144
+#: usr/local/www/services_ntpd.php:144 usr/local/www/services_ntpd.php:144
msgid "It is best to configure at least 2 servers under"
msgstr ""
-#: usr/local/www/services_ntpd.php:144
+#: usr/local/www/services_ntpd.php:144 usr/local/www/services_ntpd.php:144
msgid "System > General"
msgstr ""
-#: usr/local/www/services_ntpd.php:144
+#: usr/local/www/services_ntpd.php:144 usr/local/www/services_ntpd.php:144
msgid ""
"to avoid loss of sync if the GPS data is not valid over time. Otherwise ntpd "
"may only use values from the unsynchronized local clock when providing time "
@@ -35959,101 +43427,133 @@ msgid ""
msgstr ""
#: usr/local/www/firewall_aliases.php:177
+#: usr/local/www/firewall_aliases.php:175
msgid "Ports"
msgstr ""
#: usr/local/www/firewall_aliases.php:178
+#: usr/local/www/firewall_aliases.php:176
msgid "Urls"
msgstr ""
#: usr/local/www/firewall_aliases.php:195
#: usr/local/www/firewall_aliases.php:272
+#: usr/local/www/firewall_aliases.php:195
+#: usr/local/www/firewall_aliases.php:274
msgid "Add a new alias"
msgstr ""
#: usr/local/www/firewall_aliases.php:255
+#: usr/local/www/firewall_aliases.php:256
msgid "Edit alias"
msgstr ""
#: usr/local/www/firewall_aliases.php:256
+#: usr/local/www/firewall_aliases.php:257
msgid "Delete alias"
msgstr ""
#: usr/local/www/services_captiveportal_zones_edit.php:64
+#: usr/local/www/services_captiveportal_zones_edit.php:64
msgid "The zone name can only contain letters, digits, and underscores (_)."
msgstr ""
#: usr/local/www/services_captiveportal_zones_edit.php:105
+#: usr/local/www/services_captiveportal_zones_edit.php:101
+#: usr/local/www/services_captiveportal_zones_edit.php:101
msgid "Zone name. Can only contain letters, digits, and underscores (_)."
msgstr ""
#: usr/local/www/diag_packet_capture.php:81
+#: usr/local/www/diag_packet_capture.php:81
msgid "Invalid interface."
msgstr ""
#: usr/local/www/diag_packet_capture.php:84
+#: usr/local/www/diag_packet_capture.php:84
msgid "Invalid address family."
msgstr ""
#: usr/local/www/diag_packet_capture.php:87
+#: usr/local/www/diag_packet_capture.php:87
msgid "Invalid protocol."
msgstr ""
#: usr/local/www/diag_packet_capture.php:92
+#: usr/local/www/diag_packet_capture.php:92
#, php-format
msgid "A valid IP address or CIDR block must be specified. [%s]"
msgstr ""
#: usr/local/www/diag_packet_capture.php:97
+#: usr/local/www/diag_packet_capture.php:97
msgid "Invalid value specified for port."
msgstr ""
#: usr/local/www/diag_packet_capture.php:104
+#: usr/local/www/diag_packet_capture.php:104
msgid "Invalid value specified for packet length."
msgstr ""
#: usr/local/www/diag_packet_capture.php:111
+#: usr/local/www/diag_packet_capture.php:111
msgid "Invalid value specified for packet count."
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:148
+#: usr/local/www/vpn_ipsec_phase2.php:152
+#: usr/local/www/vpn_ipsec_phase2.php:152
msgid "A valid nat local network bit count must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:150
+#: usr/local/www/vpn_ipsec_phase2.php:154
+#: usr/local/www/vpn_ipsec_phase2.php:154
msgid ""
"You cannot configure a network type address for NAT while only an address "
"type is selected for local source."
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:153
+#: usr/local/www/vpn_ipsec_phase2.php:157
+#: usr/local/www/vpn_ipsec_phase2.php:157
msgid "A valid nat local network IP address must be specified."
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:548
+#: usr/local/www/vpn_ipsec_phase2.php:569
+#: usr/local/www/vpn_ipsec_phase2.php:569
msgid ""
"In case you need NAT/BINAT on this network specify the address to be "
"translated"
msgstr ""
#: usr/local/www/vpn_ipsec_keys_edit.php:114
+#: usr/local/www/vpn_ipsec_keys_edit.php:114
msgid "VPN: IPsec: Edit Pre-Shared Key"
msgstr ""
#: usr/local/www/services_dhcp_edit.php:227
+#: usr/local/www/services_dhcp_edit.php:355
+#: usr/local/www/services_dhcp_edit.php:355
msgid "If an IPv4 address is entered, the address must be outside of the pool."
msgstr ""
#: usr/local/www/services_dhcp_edit.php:229
+#: usr/local/www/services_dhcp_edit.php:357
+#: usr/local/www/services_dhcp_edit.php:357
msgid ""
"If no IPv4 address is given, one will be dynamically allocated from the pool."
msgstr ""
-#: usr/local/www/interfaces.php:2460
+#: usr/local/www/interfaces.php:2460 usr/local/www/interfaces.php:2490
+#: usr/local/www/interfaces.php:2536
msgid "WPA Pre-Shared Key"
msgstr ""
#: usr/local/www/vpn_openvpn_client.php:789
+#: usr/local/www/vpn_openvpn_client.php:808
+#: usr/local/www/vpn_openvpn_client.php:808
msgid ""
"This is the IPv6 virtual network used for private communications between "
"this client and the server expressed using CIDR (eg. fe80::/64). The first "
@@ -36078,94 +43578,1595 @@ msgid ""
"clients"
msgstr ""
-#: usr/local/www/vpn_l2tp.php:301
+#: usr/local/www/vpn_l2tp.php:301 usr/local/www/vpn_l2tp.php:304
+#: usr/local/www/vpn_l2tp.php:304
msgid "Enable L2TP server"
msgstr ""
-#: usr/local/www/vpn_l2tp.php:322
+#: usr/local/www/vpn_l2tp.php:322 usr/local/www/vpn_l2tp.php:325
+#: usr/local/www/vpn_l2tp.php:325
msgid "Server Address"
msgstr ""
-#: usr/local/www/vpn_l2tp.php:334
+#: usr/local/www/vpn_l2tp.php:334 usr/local/www/vpn_l2tp.php:337
+#: usr/local/www/vpn_l2tp.php:337
msgid "Remote Address Range"
msgstr ""
-#: usr/local/www/vpn_l2tp.php:384
+#: usr/local/www/vpn_l2tp.php:384 usr/local/www/vpn_l2tp.php:387
+#: usr/local/www/vpn_l2tp.php:387
msgid "Authentication Type"
msgstr ""
-#: usr/local/www/vpn_l2tp.php:429
+#: usr/local/www/vpn_l2tp.php:429 usr/local/www/vpn_l2tp.php:432
+#: usr/local/www/vpn_l2tp.php:432
msgid "RADIUS Shared Secret"
msgstr ""
-#: usr/local/www/vpn_l2tp.php:436
+#: usr/local/www/vpn_l2tp.php:436 usr/local/www/vpn_l2tp.php:439
+#: usr/local/www/vpn_l2tp.php:439
msgid "RADIUS Issued IP's"
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:126
+#: usr/local/www/firewall_virtual_ip_edit.php:128
+#: usr/local/www/firewall_virtual_ip_edit.php:128
msgid "The /31 and /32 subnet mask are invalid for CARP IPs."
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:130
+#: usr/local/www/firewall_virtual_ip_edit.php:132
+#: usr/local/www/firewall_virtual_ip_edit.php:132
msgid "The /127 and /128 subnet mask are invalid for CARP IPs."
msgstr ""
-#: usr/local/www/interfaces_gif.php:137
+#: usr/local/www/interfaces_gif.php:137 usr/local/www/interfaces_gif.php:141
+#: usr/local/www/interfaces_gif.php:141
msgid ""
"If you are using a GIF tunnel to connect to a Hurricane Electric (he.net) "
"Tunnel Broker on a WAN with a dynamic IP, you may want to add a"
msgstr ""
-#: usr/local/www/interfaces_gif.php:137
+#: usr/local/www/interfaces_gif.php:137 usr/local/www/interfaces_gif.php:141
+#: usr/local/www/interfaces_gif.php:141
msgid "HE.net Tunnelbroker type DynDNS Entry"
msgstr ""
-#: usr/local/www/interfaces_gif.php:137
+#: usr/local/www/interfaces_gif.php:137 usr/local/www/interfaces_gif.php:141
+#: usr/local/www/interfaces_gif.php:141
msgid "to keep your tunnel functional when your IP changes."
msgstr ""
#: usr/local/www/widgets/widgets/system_information.widget.php:102
+#: usr/local/www/widgets/widgets/system_information.widget.php:103
+#: usr/local/www/widgets/widgets/system_information.widget.php:101
msgid "Obtaining update status"
msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:680
+#: usr/local/www/vpn_ipsec_phase1.php:701
+#: usr/local/www/vpn_ipsec_phase1.php:701
msgid "Input your Pre-Shared Key string"
msgstr ""
-#: usr/local/www/diag_nanobsd.php:179
+#: usr/local/www/diag_nanobsd.php:179 usr/local/www/diag_nanobsd.php:170
msgid "Media Read/Write Status"
msgstr ""
-#: usr/local/www/diag_nanobsd.php:192
+#: usr/local/www/diag_nanobsd.php:192 usr/local/www/diag_nanobsd.php:183
msgid "Read/Write"
msgstr ""
-#: usr/local/www/diag_nanobsd.php:194
+#: usr/local/www/diag_nanobsd.php:194 usr/local/www/diag_nanobsd.php:185
msgid "Switch to Read-Only"
msgstr ""
-#: usr/local/www/diag_nanobsd.php:196
+#: usr/local/www/diag_nanobsd.php:196 usr/local/www/diag_nanobsd.php:187
msgid "Read-Only"
msgstr ""
-#: usr/local/www/diag_nanobsd.php:198
+#: usr/local/www/diag_nanobsd.php:198 usr/local/www/diag_nanobsd.php:189
msgid "Switch to Read/Write"
msgstr ""
-#: usr/local/www/diag_nanobsd.php:201
+#: usr/local/www/diag_nanobsd.php:201 usr/local/www/diag_nanobsd.php:192
msgid ""
"NOTE: This setting is only temporary, and can be switched dynamically in the "
"background."
msgstr ""
-#: usr/local/www/diag_nanobsd.php:208
+#: usr/local/www/diag_nanobsd.php:208 usr/local/www/diag_nanobsd.php:199
msgid "Keep media mounted read/write at all times."
msgstr ""
-#: usr/local/www/services_dhcpv6.php:821
+#: usr/local/www/services_dhcpv6.php:821 usr/local/www/services_dhcpv6.php:838
+#: usr/local/www/services_dhcpv6.php:838
msgid "Status: DHCPv6 leases"
msgstr ""
#: usr/local/www/diag_logs_filter.php:181
+#: usr/local/www/diag_logs_filter.php:307
msgid "Rule"
msgstr ""
+
+#: usr/local/www/system_firmware.php:55 usr/local/www/system_firmware.php:55
+msgid "Standard Kernel"
+msgstr ""
+
+#: usr/local/www/system_firmware.php:56 usr/local/www/system_firmware.php:56
+msgid "Embedded Kernel"
+msgstr ""
+
+#: usr/local/www/vpn_l2tp.php:88 usr/local/www/vpn_pptp.php:96
+#: usr/local/www/vpn_l2tp.php:88 usr/local/www/vpn_pptp.php:96
+msgid ""
+"'Server address' parameter should NOT be set to any IP address currently in "
+"use on this firewall."
+msgstr ""
+
+#: usr/local/www/system_camanager.php:220
+#: usr/local/www/system_certmanager.php:299
+#: usr/local/www/system_certmanager.php:301
+#: usr/local/www/system_camanager.php:220
+#: usr/local/www/system_certmanager.php:299
+#: usr/local/www/system_certmanager.php:301
+msgid "Please select a valid Key Length."
+msgstr ""
+
+#: usr/local/www/system_camanager.php:222
+#: usr/local/www/system_certmanager.php:303
+#: usr/local/www/system_camanager.php:222
+#: usr/local/www/system_certmanager.php:303
+msgid "Please select a valid Digest Algorithm."
+msgstr ""
+
+#: usr/local/www/system_camanager.php:477
+#: usr/local/www/system_certmanager.php:690
+#: usr/local/www/system_certmanager.php:863
+#: usr/local/www/system_camanager.php:477
+#: usr/local/www/system_certmanager.php:691
+#: usr/local/www/system_certmanager.php:867
+msgid "Digest Algorithm"
+msgstr ""
+
+#: usr/local/www/system_camanager.php:489
+#: usr/local/www/system_certmanager.php:702
+#: usr/local/www/system_certmanager.php:875
+#: usr/local/www/system_camanager.php:489
+#: usr/local/www/system_certmanager.php:703
+#: usr/local/www/system_certmanager.php:879
+msgid ""
+"NOTE: It is recommended to use an algorithm stronger than SHA1 when possible."
+msgstr ""
+
+#: usr/local/www/system_camanager.php:653
+#: usr/local/www/system_certmanager.php:1127
+#: usr/local/www/system_camanager.php:653
+#: usr/local/www/system_certmanager.php:1131
+msgid "Valid From"
+msgstr ""
+
+#: usr/local/www/system_camanager.php:658
+#: usr/local/www/system_certmanager.php:1132
+#: usr/local/www/system_camanager.php:658
+#: usr/local/www/system_certmanager.php:1136
+msgid "Valid Until"
+msgstr ""
+
+#: usr/local/www/services_captiveportal_ip_edit.php:107
+#: usr/local/www/services_captiveportal_ip_edit.php:107
+msgid "A valid subnet mask must be specified"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:160
+#: usr/local/www/vpn_openvpn_server.php:213
+#: usr/local/www/vpn_openvpn_client.php:160
+#: usr/local/www/vpn_openvpn_server.php:213
+msgid ""
+"Protocol and IP address families do not match. You cannot select an IPv6 "
+"protocol and an IPv4 IP address."
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:162
+#: usr/local/www/vpn_openvpn_server.php:215
+#: usr/local/www/vpn_openvpn_client.php:162
+#: usr/local/www/vpn_openvpn_server.php:215
+msgid ""
+"Protocol and IP address families do not match. You cannot select an IPv4 "
+"protocol and an IPv6 IP address."
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:164
+#: usr/local/www/vpn_openvpn_server.php:217
+#: usr/local/www/vpn_openvpn_client.php:164
+#: usr/local/www/vpn_openvpn_server.php:217
+msgid ""
+"An IPv4 protocol was selected, but the selected interface has no IPv4 "
+"address."
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:166
+#: usr/local/www/vpn_openvpn_server.php:219
+#: usr/local/www/vpn_openvpn_client.php:166
+#: usr/local/www/vpn_openvpn_server.php:219
+msgid ""
+"An IPv6 protocol was selected, but the selected interface has no IPv6 "
+"address."
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:818
+#: usr/local/www/vpn_openvpn_server.php:1252
+#: usr/local/www/vpn_openvpn_client.php:818
+#: usr/local/www/vpn_openvpn_server.php:1252
+msgid "IPv4 Remote Network/s"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:822
+#: usr/local/www/vpn_openvpn_client.php:822
+msgid ""
+"These are the 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. Expressed as a comma-separated list of one or more CIDR ranges. If "
+"this is a site-to-site VPN, enter the remote LAN/s here. You may leave this "
+"blank to only communicate with other clients"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:832
+#: usr/local/www/vpn_openvpn_server.php:1266
+#: usr/local/www/vpn_openvpn_client.php:832
+#: usr/local/www/vpn_openvpn_server.php:1266
+msgid "IPv6 Remote Network/s"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:836
+#: usr/local/www/vpn_openvpn_client.php:836
+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 "
+"tables. Expressed as a comma-separated list of one or more IP/PREFIX. If "
+"this is a site-to-site VPN, enter the remote LAN/s here. You may leave this "
+"blank to only communicate with other clients"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:909
+#: usr/local/www/vpn_openvpn_client.php:909
+msgid "EXAMPLE:"
+msgstr ""
+
+#: usr/local/www/status_openvpn.php:201 usr/local/www/status_openvpn.php:211
+msgid "Show Routing Table"
+msgstr ""
+
+#: usr/local/www/status_openvpn.php:201 usr/local/www/status_openvpn.php:211
+msgid "Display OpenVPN's internal routing table for this server."
+msgstr ""
+
+#: usr/local/www/status_openvpn.php:207 usr/local/www/status_openvpn.php:217
+msgid "Routing Table"
+msgstr ""
+
+#: usr/local/www/status_openvpn.php:216 usr/local/www/status_openvpn.php:226
+msgid "Target Network"
+msgstr ""
+
+#: usr/local/www/status_openvpn.php:217 usr/local/www/status_openvpn.php:227
+msgid "Last Used"
+msgstr ""
+
+#: usr/local/www/status_openvpn.php:239 usr/local/www/status_openvpn.php:249
+msgid ""
+"An IP address followed by C indicates a host currently connected through the "
+"VPN."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:49 usr/local/www/diag_testport.php:114
+#: usr/local/www/fbegin.inc:218 usr/local/www/diag_testport.php:49
+#: usr/local/www/diag_testport.php:114 usr/local/www/fbegin.inc:218
+msgid "Test Port"
+msgstr ""
+
+#: usr/local/www/diag_testport.php:64 usr/local/www/diag_testport.php:64
+msgid "Please enter a valid IP or hostname."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:68 usr/local/www/diag_testport.php:68
+msgid "Please enter a valid port number."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:72 usr/local/www/diag_testport.php:72
+msgid "Please enter a valid source port number, or leave the field blank."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:76 usr/local/www/diag_testport.php:76
+msgid "You cannot connect to an IPv4 address using IPv6."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:79 usr/local/www/diag_testport.php:79
+msgid "You cannot connect to an IPv6 address using IPv4."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:106 usr/local/www/diag_testport.php:106
+msgid ""
+"This page allows you to perform a simple TCP connection test to determine if "
+"a host is up and accepting connections on a given port. This test does not "
+"function for UDP since there is no way to reliably determine if a UDP port "
+"accepts connections in this manner."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:108 usr/local/www/diag_testport.php:108
+msgid ""
+"No data is transmitted to the remote host during this test, it will only "
+"attempt to open a connection and optionally display the data sent back from "
+"the server."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:132 usr/local/www/diag_testport.php:132
+msgid "This should typically be left blank."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:136 usr/local/www/diag_testport.php:136
+msgid "Show Remote Text"
+msgstr ""
+
+#: usr/local/www/diag_testport.php:139 usr/local/www/diag_testport.php:139
+msgid ""
+"Shows the text given by the server when connecting to the port. Will take "
+"10+ seconds to display if checked."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:159 usr/local/www/diag_testport.php:161
+#: usr/local/www/diag_traceroute.php:104 usr/local/www/diag_ping.php:102
+msgid "IP Protocol"
+msgstr ""
+
+#: usr/local/www/diag_testport.php:166 usr/local/www/diag_testport.php:168
+msgid "IPv4"
+msgstr ""
+
+#: usr/local/www/diag_testport.php:169 usr/local/www/diag_testport.php:171
+msgid "IPv6"
+msgstr ""
+
+#: usr/local/www/diag_testport.php:173 usr/local/www/diag_testport.php:175
+msgid ""
+"If you force IPv4 or IPv6 and use a hostname that does not contain a result "
+"using that protocol, it will result in an error. For example if you force "
+"IPv4 and use a hostname that only returns an AAAA IPv6 IP address, it will "
+"not work."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:186 usr/local/www/diag_testport.php:188
+msgid "Port Test Results"
+msgstr ""
+
+#: usr/local/www/diag_testport.php:246 usr/local/www/diag_testport.php:248
+msgid ""
+"No output received, or connection failed. Try with \"Show Remote Text\" "
+"unchecked first."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:248 usr/local/www/diag_testport.php:250
+msgid "Connection failed (Refused/Timeout)"
+msgstr ""
+
+#: usr/local/www/firewall_rules_edit.php:1295
+#: usr/local/www/firewall_nat_edit.php:780
+#: usr/local/www/firewall_nat_out_edit.php:647
+#: usr/local/www/firewall_rules_edit.php:1302
+#: usr/local/www/firewall_nat_edit.php:792
+#: usr/local/www/firewall_nat_out_edit.php:659
+msgid ""
+"Hint: This prevents the rule on Master from automatically syncing to other "
+"CARP members. This does NOT prevent the rule from being overwritten on Slave."
+msgstr ""
+
+#: usr/local/www/interfaces_qinq.php:68 usr/local/www/interfaces_qinq.php:68
+msgid "QinQ interface does not exist"
+msgstr ""
+
+#: usr/local/www/interfaces_vlan_edit.php:84
+#: usr/local/www/interfaces_vlan_edit.php:84
+msgid "Interface supplied as parent is invalid"
+msgstr ""
+
+#: usr/local/www/system_firmware_settings.php:151
+#: usr/local/www/system_firmware_settings.php:153
+#, php-format
+msgid ""
+"Entries denoted by \"Current architecture\" match the architecture of your "
+"current installation, such as %s. Changing architectures during an upgrade "
+"is not recommended, and may require a manual reboot after the update "
+"completes."
+msgstr ""
+
+#: usr/local/www/interfaces_lagg_edit.php:95
+#: usr/local/www/interfaces_lagg_edit.php:98
+#: usr/local/www/interfaces_lagg_edit.php:95
+#: usr/local/www/interfaces_lagg_edit.php:98
+msgid "Interface supplied as member is invalid"
+msgstr ""
+
+#: usr/local/www/interfaces_lagg_edit.php:101
+#: usr/local/www/interfaces_lagg_edit.php:101
+msgid "Protocol supplied is invalid"
+msgstr ""
+
+#: usr/local/www/status_captiveportal_expire.php:58
+#: usr/local/www/status_captiveportal_expire.php:73
+#: usr/local/www/status_captiveportal_vouchers.php:112
+#: usr/local/www/status_captiveportal.php:110
+#: usr/local/www/status_captiveportal_test.php:75
+#: usr/local/www/status_captiveportal_voucher_rolls.php:79
+#: usr/local/www/status_captiveportal_expire.php:58
+#: usr/local/www/status_captiveportal_expire.php:73
+#: usr/local/www/status_captiveportal_vouchers.php:112
+#: usr/local/www/status_captiveportal.php:110
+#: usr/local/www/status_captiveportal_test.php:75
+#: usr/local/www/status_captiveportal_voucher_rolls.php:79
+msgid "Expire Vouchers"
+msgstr ""
+
+#: usr/local/www/status_captiveportal_expire.php:86
+#: usr/local/www/status_captiveportal_expire.php:86
+msgid ""
+"Enter multiple vouchers separated by space or newline. All valid vouchers "
+"will be marked as expired"
+msgstr ""
+
+#: usr/local/www/firewall_nat_edit.php:835
+#: usr/local/www/firewall_nat_edit.php:847
+msgid ""
+"NOTE: The \"pass\" selection does not work properly with Multi-WAN. It will "
+"only work on an interface containing the default gateway."
+msgstr ""
+
+#: usr/local/www/interfaces_vlan.php:71 usr/local/www/interfaces_vlan.php:71
+msgid "Invalid VLAN interface."
+msgstr ""
+
+#: usr/local/www/interfaces_gif_edit.php:87
+#: usr/local/www/interfaces_gif_edit.php:87
+msgid ""
+"The alias IP address family has to match the family of the remote peer "
+"address."
+msgstr ""
+
+#: usr/local/www/services_dhcp_edit.php:193
+#: usr/local/www/services_dhcp_edit.php:193
+msgid ""
+"The IP address must not be within the range configured on a DHCP pool for "
+"this interface."
+msgstr ""
+
+#: usr/local/www/services_dhcp_edit.php:388
+#: usr/local/www/services_dhcp_edit.php:388
+msgid "ARP Table Static Entry"
+msgstr ""
+
+#: usr/local/www/services_dhcp_edit.php:391
+#: usr/local/www/services_dhcp_edit.php:391
+msgid "Create an ARP Table Static Entry for this MAC & IP Address pair. "
+msgstr ""
+
+#: usr/local/www/firewall_virtual_ip_edit.php:117
+#: usr/local/www/firewall_virtual_ip_edit.php:117
+msgid "This IP address is being used by another interface or VIP."
+msgstr ""
+
+#: usr/local/www/diag_traceroute.php:122 usr/local/www/diag_traceroute.php:141
+msgid "Reverse Address Lookup"
+msgstr ""
+
+#: usr/local/www/interfaces_bridge.php:70
+#: usr/local/www/interfaces_bridge.php:70
+msgid "Invalid bridge interface."
+msgstr ""
+
+#: usr/local/www/diag_smart.php:339 usr/local/www/diag_smart.php:339
+msgid "Perform Self-tests"
+msgstr ""
+
+#: usr/local/www/diag_smart.php:384 usr/local/www/diag_smart.php:384
+msgid "Self-test"
+msgstr ""
+
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1484
+#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:1427
+#: usr/local/www/wizards/traffic_shaper_wizard.inc:1364
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1225
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1485
+#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:1428
+#: usr/local/www/wizards/traffic_shaper_wizard.inc:1365
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1226
+msgid "Connections From Upstream SIP Server"
+msgstr ""
+
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1497
+#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:1440
+#: usr/local/www/wizards/traffic_shaper_wizard.inc:1377
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1238
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1499
+#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:1442
+#: usr/local/www/wizards/traffic_shaper_wizard.inc:1379
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1240
+msgid "Connections To Upstream SIP Server"
+msgstr ""
+
+#: usr/local/www/vpn_pppoe_edit.php:149 usr/local/www/vpn_pppoe_edit.php:149
+msgid "Wrong data submitted"
+msgstr ""
+
+#: usr/local/www/license.php:158 usr/local/www/license.php:158
+msgid "1992-2012 The FreeBSD Project. All rights reserved"
+msgstr ""
+
+#: usr/local/www/license.php:161 usr/local/www/license.php:161
+msgid "1999-2010 The PHP Group. All rights reserved."
+msgstr ""
+
+#: usr/local/www/license.php:164 usr/local/www/license.php:164
+msgid "2004, Jan Knescke, incremental"
+msgstr ""
+
+#: usr/local/www/license.php:168 usr/local/www/license.php:168
+msgid "2004-2012 Internet Software Consortium, Inc."
+msgstr ""
+
+#: usr/local/www/license.php:169 usr/local/www/license.php:169
+msgid "1995-2003 Internet Software Consortium"
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:352 usr/local/www/services_dhcp.php:372
+msgid ""
+"The specified range must not be within the DHCP range for this interface."
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:361 usr/local/www/services_dhcp.php:381
+msgid ""
+"The specified range must not be within the range configured on a DHCP pool "
+"for this interface."
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:713 usr/local/www/services_dhcp.php:733
+msgid "Pool Description"
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:903 usr/local/www/services_dhcp.php:923
+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 DHCPd process is Primary or Secondary. Ensure one machine's "
+"advskew<20 (and the other is >20)."
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:946 usr/local/www/services_dhcp.php:966
+msgid ""
+"By default DHCP leases are displayed in UTC time. By checking this\n"
+"\t\t\t\t\t\tbox DHCP lease time will be displayed in local time and set to "
+"time zone selected. This will be used for all DHCP interfaces lease time."
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:1146 usr/local/www/services_dhcp.php:1166
+msgid "DHCP Static Mappings for this interface."
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:133
+#: usr/local/www/diag_system_pftop.php:133
+msgid "View type:"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:136
+#: usr/local/www/diag_system_pftop.php:136
+msgid "Label"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:141
+#: usr/local/www/diag_system_pftop.php:141
+msgid "Speed"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:150
+#: usr/local/www/diag_system_pftop.php:150
+msgid "Age"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:151
+#: usr/local/www/diag_system_pftop.php:151
+msgid "Bytes"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:152
+#: usr/local/www/diag_system_pftop.php:152
+msgid "Destination Address"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:154
+#: usr/local/www/diag_system_pftop.php:154
+msgid "Expiry"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:156
+#: usr/local/www/diag_system_pftop.php:156
+msgid "Peak"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:157
+#: usr/local/www/diag_system_pftop.php:157
+msgid "Packet"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:161 usr/local/www/diag_testport.php:143
+#: usr/local/www/diag_traceroute.php:113
+#: usr/local/www/diag_system_pftop.php:161 usr/local/www/diag_ping.php:111
+msgid "Source Address"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:166
+#: usr/local/www/diag_system_pftop.php:166
+msgid "Number of States:"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:357
+#: usr/local/www/system_advanced_misc.php:404
+msgid "On AC Power Mode"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:365
+#: usr/local/www/system_advanced_misc.php:412
+msgid "On Battery Power Mode"
+msgstr ""
+
+#: usr/local/www/bandwidth_by_ip.php:24 usr/local/www/bandwidth_by_ip.php:24
+msgid "Wrong Interface"
+msgstr ""
+
+#: usr/local/www/services_dhcpv6.php:601 usr/local/www/services_dhcpv6.php:601
+msgid "Prefix Delegation Size"
+msgstr ""
+
+#: usr/local/www/services_dhcpv6.php:846 usr/local/www/services_dhcpv6.php:846
+msgid "DHCPv6 Static Mappings for this interface."
+msgstr ""
+
+#: usr/local/www/system_authservers.php:217
+#: usr/local/www/system_authservers.php:217
+msgid "RADIUS Timeout value must be numeric and positive."
+msgstr ""
+
+#: usr/local/www/system_authservers.php:731
+#: usr/local/www/system_authservers.php:731
+msgid "Authentication Timeout"
+msgstr ""
+
+#: usr/local/www/system_authservers.php:734
+#: usr/local/www/system_authservers.php:734
+msgid ""
+"This value controls how long, in seconds, that the RADIUS server may take to "
+"respond to an authentication request."
+msgstr ""
+
+#: usr/local/www/system_authservers.php:735
+#: usr/local/www/system_authservers.php:735
+msgid "If left blank, the default value is 5 seconds."
+msgstr ""
+
+#: usr/local/www/system_authservers.php:736
+#: usr/local/www/system_authservers.php:736
+msgid ""
+"NOTE: If you are using an interactive two-factor authentication system, "
+"increase this timeout to account for how long it will take the user to "
+"receive and enter a token."
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:80
+#: usr/local/www/system_advanced_firewall.php:80
+msgid "The Firewall Adaptive values must be set together."
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:82
+#: usr/local/www/system_advanced_firewall.php:82
+msgid "The Firewall Adaptive Start value must be an integer."
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:85
+#: usr/local/www/system_advanced_firewall.php:85
+msgid "The Firewall Adaptive End value must be an integer."
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:345
+#: usr/local/www/system_advanced_firewall.php:346
+msgid "Firewall Adaptive Timeouts"
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:347
+#: usr/local/www/system_advanced_firewall.php:348
+msgid ""
+"Timeouts for states can be scaled adaptively as the number of state table "
+"entries grows."
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:350
+#: usr/local/www/system_advanced_firewall.php:351
+msgid ""
+"When the number of state entries exceeds this value, adaptive scaling "
+"begins. All timeout values are scaled linearly with factor (adaptive.end - "
+"number of states) / (adaptive.end - adaptive.start)."
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:354
+#: usr/local/www/system_advanced_firewall.php:355
+msgid ""
+"When reaching this number of state entries, all timeout values become zero, "
+"effectively purging all state entries immediately. This value is used to "
+"define the scale factor, it should not actually be reached (set a lower "
+"state limit, see below)."
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:356
+#: usr/local/www/system_advanced_firewall.php:357
+msgid "Note: Leave this blank for the default(0)."
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:447
+#: usr/local/www/system_advanced_firewall.php:448
+msgid "Bogon Networks"
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:450
+#: usr/local/www/system_advanced_firewall.php:451
+msgid "Update Frequency"
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:453
+#: usr/local/www/system_advanced_firewall.php:454
+msgid "Monthly"
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:454
+#: usr/local/www/system_advanced_firewall.php:455
+msgid "Weekly"
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:455
+#: usr/local/www/system_advanced_firewall.php:456
+msgid "Daily"
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:458
+#: usr/local/www/system_advanced_firewall.php:459
+msgid ""
+"The frequency of updating the lists of IP addresses that are reserved (but "
+"not RFC 1918) or not yet assigned by IANA."
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:227
+#: usr/local/www/services_captiveportal.php:243
+msgid ""
+"The NAS-Identifier must be 3-253 characters long and should only contain "
+"ASCII characters."
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:593
+#: usr/local/www/services_captiveportal.php:609
+msgid "Allow only users/groups with 'Captive portal login' privilege set"
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:760
+#: usr/local/www/services_captiveportal.php:776
+msgid "MAC authentication secret"
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:823
+#: usr/local/www/services_captiveportal.php:839
+msgid "Accounting Style"
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:824
+#: usr/local/www/services_captiveportal.php:840
+msgid "Invert Acct-Input-Octets and Acct-Output-Octets"
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:825
+#: usr/local/www/services_captiveportal.php:841
+msgid ""
+"When this is enabled, data counts for RADIUS accounting packets will be "
+"taken from the client perspective, not the NAS. Acct-Input-Octets will "
+"represent download, and Acct-Output-Octets will represent upload."
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:829
+#: usr/local/www/services_captiveportal.php:845
+msgid "NAS Identifier"
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:831
+#: usr/local/www/services_captiveportal.php:847
+msgid "Specify a NAS identifier to override the default value"
+msgstr ""
+
+#: usr/local/www/pkg_mgr_install.php:193 usr/local/www/pkg_mgr_install.php:189
+msgid "No packages are installed."
+msgstr ""
+
+#: usr/local/www/interfaces_bridge_edit.php:154
+#: usr/local/www/interfaces_bridge_edit.php:154
+msgid "A member interface passed does not exist in configuration"
+msgstr ""
+
+#: usr/local/www/status_queues.php:150 usr/local/www/status_queues.php:150
+msgid "PPS"
+msgstr ""
+
+#: usr/local/www/status_queues.php:152 usr/local/www/status_queues.php:152
+msgid "Borrows"
+msgstr ""
+
+#: usr/local/www/status_queues.php:153 usr/local/www/status_queues.php:153
+msgid "Suspends"
+msgstr ""
+
+#: usr/local/www/status_queues.php:154 usr/local/www/status_queues.php:154
+msgid "Drops"
+msgstr ""
+
+#: usr/local/www/status_queues.php:155 usr/local/www/status_queues.php:155
+msgid "Length"
+msgstr ""
+
+#: usr/local/www/widgets/widgets/dyn_dns_status.widget.php:51
+#: usr/local/www/widgets/widgets/dyn_dns_status.widget.php:78
+msgid "Int."
+msgstr ""
+
+#: usr/local/www/widgets/widgets/log.widget.php:164
+#: usr/local/www/widgets/widgets/log.widget.php:168
+msgid "IF"
+msgstr ""
+
+#: usr/local/www/widgets/widgets/log.widget.php:167
+#: usr/local/www/widgets/widgets/log.widget.php:171
+msgid "Prot"
+msgstr ""
+
+#: usr/local/www/services_dnsmasq.php:199
+#: usr/local/www/services_dnsmasq.php:201
+msgid "DNS Query Forwarding"
+msgstr ""
+
+#: usr/local/www/services_dnsmasq.php:202
+#: usr/local/www/services_dnsmasq.php:204
+msgid "Query DNS servers sequentially"
+msgstr ""
+
+#: usr/local/www/services_dnsmasq.php:203
+#: usr/local/www/services_dnsmasq.php:205
+#, php-format
+msgid ""
+"If this option is set, %s DNS Forwarder (dnsmasq) will query the DNS servers "
+"sequentially in the order specified (<i>System - General Setup - DNS "
+"Servers</i>), rather than all at once in parallel. "
+msgstr ""
+
+#: usr/local/www/services_dnsmasq.php:212
+#: usr/local/www/services_dnsmasq.php:214
+msgid "Require domain"
+msgstr ""
+
+#: usr/local/www/services_dnsmasq.php:213
+#: usr/local/www/services_dnsmasq.php:215
+#, php-format
+msgid ""
+"If this option is set, %s DNS Forwarder (dnsmasq) will not forward A or AAAA "
+"queries for plain names, without dots or domain parts, to upstream name "
+"servers. If the name is not known from /etc/hosts or DHCP then a \"not found"
+"\" answer is returned. "
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase1.php:183
+#: usr/local/www/vpn_ipsec_phase1.php:183
+msgid ""
+"A valid remote gateway IPv4 address must be specified or you need to change "
+"protocol to IPv6"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase1.php:185
+#: usr/local/www/vpn_ipsec_phase1.php:185
+msgid ""
+"A valid remote gateway IPv6 address must be specified or you need to change "
+"protocol to IPv4"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase1.php:205
+#: usr/local/www/vpn_ipsec_phase1.php:205
+msgid "There is a Phase 2 using IPv6, you cannot use IPv4."
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase1.php:209
+#: usr/local/www/vpn_ipsec_phase1.php:209
+msgid "There is a Phase 2 using IPv4, you cannot use IPv6."
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1226
+#: usr/local/www/vpn_openvpn_server.php:1226
+msgid "IPv4 Local Network/s"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1230
+#: usr/local/www/vpn_openvpn_server.php:1230
+msgid ""
+"These are the IPv4 networks that will be accessible from the remote "
+"endpoint. Expressed as a comma-separated list of one or more CIDR ranges. "
+"You may leave this blank if you don't want to add a route to the local "
+"network through this tunnel on the remote machine. This is generally set to "
+"your LAN network"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1239
+#: usr/local/www/vpn_openvpn_server.php:1239
+msgid "IPv6 Local Network/s"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1243
+#: usr/local/www/vpn_openvpn_server.php:1243
+msgid ""
+"These are the IPv6 networks that will be accessible from the remote "
+"endpoint. Expressed as a comma-separated list of one or more IP/PREFIX. You "
+"may leave this blank if you don't want to add a route to the local network "
+"through this tunnel on the remote machine. This is generally set to your LAN "
+"network"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1256
+#: usr/local/www/vpn_openvpn_server.php:1256
+msgid ""
+"These are the 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. Expressed as a comma-separated list of one or more CIDR ranges. If "
+"this is a site-to-site VPN, enter the remote LAN/s here. You may leave this "
+"blank if you don't want a site-to-site VPN"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1270
+#: usr/local/www/vpn_openvpn_server.php:1270
+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 "
+"tables. Expressed as a comma-separated list of one or more IP/PREFIX. If "
+"this is a site-to-site VPN, enter the remote LAN/s here. You may leave this "
+"blank if you don't want a site-to-site VPN"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1405
+#: usr/local/www/vpn_openvpn_server.php:1405
+msgid "Topology"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1415
+#: usr/local/www/vpn_openvpn_server.php:1415
+msgid ""
+"Allocate only one IP per client (topology subnet), rather than an isolated "
+"subnet per client (topology net30)."
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1422
+#: usr/local/www/vpn_openvpn_server.php:1422
+msgid ""
+"Relevant when supplying a virtual adapter IP address to clients when using "
+"tun mode on IPv4."
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1423
+#: usr/local/www/vpn_openvpn_server.php:1423
+msgid ""
+"Some clients may require this even for IPv6, such as OpenVPN Connect (iOS/"
+"Android). Others may break if it is present, such as older versions of "
+"OpenVPN or clients such as Yealink phones."
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:133
+#: usr/local/www/vpn_ipsec_phase2.php:133
+msgid ""
+"A valid local network IPv4 address must be specified or you need to change "
+"Mode to IPv6"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:135
+#: usr/local/www/vpn_ipsec_phase2.php:135
+msgid ""
+"A valid local network IPv6 address must be specified or you need to change "
+"Mode to IPv4"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:159
+#: usr/local/www/vpn_ipsec_phase2.php:159
+msgid ""
+"A valid nat local network IPv4 address must be specified or you need to "
+"change Mode to IPv6"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:161
+#: usr/local/www/vpn_ipsec_phase2.php:161
+msgid ""
+"A valid nat local network IPv6 address must be specified or you need to "
+"change Mode to IPv4"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:183
+#: usr/local/www/vpn_ipsec_phase2.php:183
+msgid ""
+"A valid remote network IPv4 address must be specified or you need to change "
+"Mode to IPv6"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:185
+#: usr/local/www/vpn_ipsec_phase2.php:185
+msgid ""
+"A valid remote network IPv6 address must be specified or you need to change "
+"Mode to IPv4"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:192
+#: usr/local/www/vpn_ipsec_phase2.php:192
+msgid "Mobile IPsec only supports Tunnel mode."
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:287
+#: usr/local/www/vpn_ipsec_phase2.php:287
+msgid "Phase 1 is using IPv4. You cannot use Tunnel IPv6 on Phase 2."
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:289
+#: usr/local/www/vpn_ipsec_phase2.php:289
+msgid "Phase 1 is using IPv6. You cannot use Tunnel IPv4 on Phase 2."
+msgstr ""
+
+#: usr/local/www/interfaces_assign.php:210
+#: usr/local/www/interfaces_assign.php:210
+#, php-format
+msgid ""
+"You cannot set port %s to interface %s because this interface is a member of "
+"%s."
+msgstr ""
+
+#: usr/local/www/services_snmp.php:395 usr/local/www/services_snmp.php:395
+msgid "UCD"
+msgstr ""
+
+#: usr/local/www/services_snmp.php:397 usr/local/www/services_snmp.php:397
+msgid "Regex"
+msgstr ""
+
+#: usr/local/www/interfaces.php:553 usr/local/www/interfaces.php:560
+msgid "This IPv4 address is being used by another interface or VIP."
+msgstr ""
+
+#: usr/local/www/interfaces.php:557 usr/local/www/interfaces.php:565
+msgid "This IPv4 address conflicts with a Static Route."
+msgstr ""
+
+#: usr/local/www/interfaces.php:568 usr/local/www/interfaces.php:577
+msgid "This IPv6 address is being used by another interface or VIP."
+msgstr ""
+
+#: usr/local/www/interfaces.php:572 usr/local/www/interfaces.php:582
+msgid "This IPv6 address conflicts with a Static Route."
+msgstr ""
+
+#: usr/local/www/interfaces.php:2651 usr/local/www/interfaces.php:2697
+msgid ""
+"Note: The update frequency can be changed under System->Advanced Firewall/"
+"NAT settings."
+msgstr ""
+
+#: etc/inc/priv/user.priv.inc:6 etc/inc/priv/user.priv.inc:6
+msgid "User - Services - Captive portal login"
+msgstr ""
+
+#: etc/inc/priv/user.priv.inc:7 etc/inc/priv/user.priv.inc:7
+msgid "Indicates whether the user is able to login on the captive portal."
+msgstr ""
+
+#: etc/inc/pkg-utils.inc:617 etc/inc/pkg-utils.inc:618
+#: etc/inc/pkg-utils.inc:617 etc/inc/pkg-utils.inc:618
+#, php-format
+msgid "Package %s is not supported on this version."
+msgstr ""
+
+#: etc/inc/priv.defs.inc:732 etc/inc/priv.defs.inc:732
+msgid "WebCfg - Services: Captive portal: Allowed Hostnames page"
+msgstr ""
+
+#: etc/inc/priv.defs.inc:733 etc/inc/priv.defs.inc:739
+#: etc/inc/priv.defs.inc:733 etc/inc/priv.defs.inc:739
+msgid "Allow access to the 'Services: Captive portal: Allowed Hostnames' page."
+msgstr ""
+
+#: etc/inc/priv.defs.inc:738 etc/inc/priv.defs.inc:738
+msgid "WebCfg - Services: Captive portal: Edit Allowed Hostnames page"
+msgstr ""
+
+#: etc/inc/priv.defs.inc:1136 etc/inc/priv.defs.inc:1136
+msgid "WebCfg - System: User Manager: settings page"
+msgstr ""
+
+#: etc/inc/priv.defs.inc:1137 etc/inc/priv.defs.inc:1137
+msgid "Allow access to the 'System: User Manager: settings' page."
+msgstr ""
+
+#: etc/inc/interfaces.inc:294 etc/inc/interfaces.inc:294
+#, php-format
+msgid "interface_qinq_configure called with invalid if.%s"
+msgstr ""
+
+#: etc/inc/interfaces.inc:401 etc/inc/interfaces.inc:401
+msgid "Creating wireless clone interfaces..."
+msgstr ""
+
+#: etc/inc/interfaces.inc:1139 etc/inc/interfaces.inc:1141
+msgid "Wrong parameters used during interface_bring_down"
+msgstr ""
+
+#: etc/inc/services.inc:2013 etc/inc/services.inc:2053
+#, php-format
+msgid "Removed cron job for %s"
+msgstr ""
+
+#: etc/inc/openvpn.inc:257 etc/inc/openvpn.inc:257
+#, php-format
+msgid "The field '%s' must contain a single valid %s CIDR range."
+msgstr ""
+
+#: etc/inc/openvpn.inc:269 etc/inc/openvpn.inc:269
+#, php-format
+msgid ""
+"The field '%s' must contain only valid %s CIDR range(s) separated by commas."
+msgstr ""
+
+#: etc/inc/vpn.inc:1780 etc/inc/vpn.inc:1793
+#, php-format
+msgid ""
+"Removing SPDs from tunnel gw '%1$s'. Local Subnet '%2$s' and Remote Subnet "
+"'%3$s'. Reloading policy"
+msgstr ""
+
+#: etc/inc/pfsense-utils.inc:938 etc/inc/pfsense-utils.inc:938
+msgid "Disabling auto login was not possible."
+msgstr ""
+
+#: etc/inc/pfsense-utils.inc:956 etc/inc/pfsense-utils.inc:956
+msgid "Enabled console auto login, console menu is NOT password protected."
+msgstr ""
+
+#: etc/inc/pfsense-utils.inc:958 etc/inc/pfsense-utils.inc:958
+msgid "Disabled console auto login, console menu is password protected."
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:552
+msgid " - Show advanced option"
+msgstr ""
+
+#: usr/local/www/services_dyndns_edit.php:302
+msgid "Verbose logging"
+msgstr ""
+
+#: usr/local/www/services_dyndns_edit.php:305
+msgid "verbose logging"
+msgstr ""
+
+#: usr/local/www/status_openvpn.php:278 usr/local/www/status_openvpn.php:339
+msgid "Bytes Rcvd"
+msgstr ""
+
+#: usr/local/www/status_openvpn.php:385
+msgid ""
+"If you have 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 ""
+
+#: usr/local/www/firewall_rules_edit.php:1579
+#: usr/local/www/firewall_nat_edit.php:863
+#: usr/local/www/firewall_nat_out_edit.php:678
+msgid "Rule Information"
+msgstr ""
+
+#: usr/local/www/firewall_rules_edit.php:1583
+#: usr/local/www/firewall_nat_edit.php:867
+#: usr/local/www/firewall_nat_out_edit.php:682
+msgid "Created"
+msgstr ""
+
+#: usr/local/www/firewall_rules_edit.php:1591
+#: usr/local/www/firewall_nat_edit.php:875
+#: usr/local/www/firewall_nat_out_edit.php:690
+msgid "Updated"
+msgstr ""
+
+#: usr/local/www/diag_logs_filter.php:163
+msgid "Source IP Address"
+msgstr ""
+
+#: usr/local/www/diag_logs_filter.php:175
+#: usr/local/www/diag_logs_filter.php:255
+msgid "Quantity"
+msgstr ""
+
+#: usr/local/www/diag_logs_filter.php:185
+msgid "Destination IP Address"
+msgstr ""
+
+#: usr/local/www/diag_logs_filter.php:193
+msgid "Protocol Flags"
+msgstr ""
+
+#: usr/local/www/diag_logs_filter.php:203
+#: usr/local/www/diag_logs_filter.php:266
+#, php-format
+msgid "Matches %1$s regular expression%2$s."
+msgstr ""
+
+#: usr/local/www/diag_logs_filter.php:204
+msgid "Precede with exclamation (!) as first character to exclude match."
+msgstr ""
+
+#: usr/local/www/diag_logs_filter.php:251
+msgid "Filter expresion"
+msgstr ""
+
+#: usr/local/www/diag_dump_states.php:136
+msgid "Current total state count"
+msgstr ""
+
+#: usr/local/www/diag_dump_states.php:218
+msgid "States matching current filter"
+msgstr ""
+
+#: usr/local/www/firewall_nat_edit.php:417
+msgid "NAT Port Forward"
+msgstr ""
+
+#: usr/local/www/status_graph.php:242
+msgid "Host Name or IP"
+msgstr ""
+
+#: usr/local/www/interfaces_gif_edit.php:210
+msgid "ECN friendly behavior"
+msgstr ""
+
+#: usr/local/www/firewall_virtual_ip_edit.php:146
+msgid "You cannot use the network address for this VIP"
+msgstr ""
+
+#: usr/local/www/firewall_virtual_ip_edit.php:148
+msgid "You cannot use the broadcast address for this VIP"
+msgstr ""
+
+#: usr/local/www/diag_packet_capture.php:204
+msgid "Promiscuous"
+msgstr ""
+
+#: usr/local/www/diag_packet_capture.php:207
+msgid "If checked, the"
+msgstr ""
+
+#: usr/local/www/diag_packet_capture.php:207
+msgid "packet capture"
+msgstr ""
+
+#: usr/local/www/diag_packet_capture.php:207
+msgid "will be performed using promiscuous mode."
+msgstr ""
+
+#: usr/local/www/diag_packet_capture.php:208
+msgid "Some network adapters do not support or work well in promiscuous mode."
+msgstr ""
+
+#: usr/local/www/diag_traceroute.php:72 usr/local/www/diag_ping.php:67
+msgid "When using IPv4, the target host must be an IPv4 address or hostname."
+msgstr ""
+
+#: usr/local/www/diag_traceroute.php:74 usr/local/www/diag_ping.php:69
+msgid "When using IPv6, the target host must be an IPv6 address or hostname."
+msgstr ""
+
+#: usr/local/www/diag_traceroute.php:164
+msgid ""
+"Using a source interface/IP address that does not match selected type (IPv4, "
+"IPv6) will result in an error or empty output."
+msgstr ""
+
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1472
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1493
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1507
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1524
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1543
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1567
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1594
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1647
+#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:1416
+#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:1436
+#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:1450
+#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:1467
+#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:1486
+#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:1510
+#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:1589
+#: usr/local/www/wizards/traffic_shaper_wizard.inc:1352
+#: usr/local/www/wizards/traffic_shaper_wizard.inc:1373
+#: usr/local/www/wizards/traffic_shaper_wizard.inc:1387
+#: usr/local/www/wizards/traffic_shaper_wizard.inc:1403
+#: usr/local/www/wizards/traffic_shaper_wizard.inc:1422
+#: usr/local/www/wizards/traffic_shaper_wizard.inc:1446
+#: usr/local/www/wizards/traffic_shaper_wizard.inc:1473
+#: usr/local/www/wizards/traffic_shaper_wizard.inc:1526
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1213
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1234
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1248
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1265
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1284
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1308
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1335
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1388
+msgid "Traffic Shaper Wizard"
+msgstr ""
+
+#: usr/local/www/wizards/openvpn_wizard.inc:614
+#: usr/local/www/wizards/openvpn_wizard.inc:629
+msgid "OpenVPN Wizard"
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:274
+#, php-format
+msgid ""
+"The Captive Portal zone '%s' has Hard Timeout parameter set to a value "
+"bigger than Default lease time (%s)."
+msgstr ""
+
+#: usr/local/www/system_certmanager.php:1026
+msgid "Signing request data"
+msgstr ""
+
+#: usr/local/www/system_certmanager.php:1034
+msgid "Final certificate data"
+msgstr ""
+
+#: usr/local/www/system_advanced_admin.php:447
+msgid ""
+"When this is unchecked, access to the webConfigurator is protected against "
+"HTTP_REFERER redirection attempts. Check this box to disable this protection "
+"if you find that it interferes with webConfigurator access in certain corner "
+"cases such as using external scripts to interact with this system. More "
+"information on HTTP_REFERER is available from <a target='_blank' "
+"href='http://en.wikipedia.org/wiki/HTTP_referrer'>Wikipedia</a>."
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:105
+msgid "/tmp Size must be numeric and should not be less than 40MB."
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:108
+msgid "/var Size must be numeric and should not be less than 60MB."
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:558
+msgid "Skip rules when gateway is down"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:562
+msgid ""
+"By default, when a rule has a specific gateway set, and this gateway is "
+"down, rule is created and traffic is sent to default gateway.This option "
+"overrides that behavior and the rule is not created when gateway is down"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:568
+msgid "RAM Disk Settings (Reboot to Apply Changes)"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:572
+msgid "Use RAM Disks"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:575
+msgid "Use memory file system for /tmp and /var"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:576
+msgid ""
+"Set this if you wish 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 at reboot, including log data. "
+"RRD and DHCP Leases will be retained."
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:582
+msgid "/tmp RAM Disk Size"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:586
+msgid ""
+"Set the size, in MB, for the /tmp RAM disk. Leave blank for 40MB. Do not set "
+"lower than 40."
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:591
+msgid "/var RAM Disk Size"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:595
+msgid ""
+"Set the size, in MB, for the /var RAM disk. Leave blank for 60MB. Do not set "
+"lower than 60."
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:600
+msgid "Periodic RRD Backup"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:616
+msgid "Periodic DHCP Leases Backup"
+msgstr ""
+
+#: usr/local/www/system_routes_edit.php:132
+#, php-format
+msgid ""
+"The alias (%s) has one or more FQDNs configured and cannot be used to "
+"configure a static route."
+msgstr ""
+
+#: usr/local/www/system_routes_edit.php:179
+#: usr/local/www/system_routes_edit.php:186
+#, php-format
+msgid "This network conflicts with address configured on interface %s."
+msgstr ""
+
+#: usr/local/www/firewall_nat_out.php:117
+#: usr/local/www/firewall_nat_out.php:128
+#: usr/local/www/firewall_nat_out.php:141
+#: usr/local/www/firewall_nat_out.php:157
+#: usr/local/www/firewall_nat_out.php:178
+#: usr/local/www/firewall_nat_out.php:199
+#: usr/local/www/firewall_nat_out.php:214
+msgid "Manual Outbound NAT Switch"
+msgstr ""
+
+#: usr/local/www/firewall_rules.php:311 usr/local/www/firewall_rules.php:313
+msgid ""
+"The firewall rule configuration has been changed.<br/>You must apply the "
+"changes in order for them to take effect."
+msgstr ""
+
+#: usr/local/www/system_gateway_groups_edit.php:100
+msgid "Changing name on a gateway group is not allowed."
+msgstr ""
+
+#: usr/local/www/system_gateway_groups_edit.php:150
+msgid "Edit gateway group"
+msgstr ""
+
+#: usr/local/www/system_gateway_groups_edit.php:229
+msgid "Edit gateway group entry"
+msgstr ""
+
+#: usr/local/www/system_gateway_groups_edit.php:317
+msgid ""
+"The virtual IP field selects what (virtual) IP should be used when this "
+"group applies to a local Dynamic DNS, IPsec or OpenVPN endpoint"
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:198
+msgid ""
+"Hard timeout must be less or equal Default lease time set on DHCP Server"
+msgstr ""
+
+#: usr/local/www/firewall_aliases_edit.php:245
+#, php-format
+msgid "You must provide a valid URL. Could not fetch usable data from '%s'."
+msgstr ""
+
+#: usr/local/www/firewall_aliases_edit.php:250
+#, php-format
+msgid "URL '%s' is not valid."
+msgstr ""
+
+#: usr/local/www/firewall_aliases_edit.php:288
+msgid "This alias is used on a static route and cannot contain FQDNs."
+msgstr ""
+
+#: usr/local/www/system_firmware_restorefullbackup.php:174
+msgid "Could not locate any previous backups."
+msgstr ""
+
+#: usr/local/www/system_firmware_restorefullbackup.php:182
+msgid "do not restore config.xml."
+msgstr ""
+
+#: usr/local/www/diag_dns.php:156
+msgid "Query Time"
+msgstr ""
+
+#: usr/local/www/widgets/widgets/dyn_dns_status.widget.php:131
+msgid "Checking ..."
+msgstr ""
+
+#: usr/local/www/services_dnsmasq.php:224
+msgid "Do not forward private reverse lookups"
+msgstr ""
+
+#: usr/local/www/services_dnsmasq.php:225
+#, php-format
+msgid ""
+"If this option is set, %s DNS Forwarder (dnsmasq) will not forward reverse "
+"DNS lookups (PTR) for private addresses (RFC 1918) to upstream name "
+"servers. Any entries in the Domain Overrides section forwarding private \"n."
+"n.n.in-addr.arpa\" names to a specific server are still forwarded. If the IP "
+"to name is not known from /etc/hosts, DHCP or a specific domain override "
+"then a \"not found\" answer is immediately returned. "
+msgstr ""
+
+#: usr/local/www/system_advanced_network.php:212
+msgid ""
+"All IPv6 traffic will be blocked by the firewall unless this box is checked."
+msgstr ""
+
+#: usr/local/www/system_advanced_network.php:213
+msgid ""
+"NOTE: This does not disable any IPv6 features on the firewall, it only "
+"blocks traffic."
+msgstr ""
+
+#: usr/local/www/diag_nanobsd.php:234
+msgid "RRD/DHCP Backup"
+msgstr ""
+
+#: usr/local/www/diag_nanobsd.php:236
+msgid "These options have been relocated to"
+msgstr ""
+
+#: usr/local/www/diag_nanobsd.php:236
+msgid "System > Advanced, Miscellaneous tab"
+msgstr ""
+
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:90
+msgid ""
+"A valid IP address must be specified, or # for an exclusion or ! to not "
+"forward at all."
+msgstr ""
+
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:141
+msgid ""
+"Or enter ! for lookups for this host/subdomain to NOT be forwarded anywhere."
+msgstr ""
+
+#: usr/local/www/interfaces.php:517
+msgid "You can only have one interface configured in 6rd with same prefix."
+msgstr ""
+
+#: usr/local/www/interfaces.php:528
+#, php-format
+msgid "You can only have one interface configured as 6to4."
+msgstr ""
+
+#: usr/local/www/interfaces.php:648
+msgid "MTU of a vlan should not be bigger than parent interface."
+msgstr ""
+
+#: usr/local/www/interfaces.php:663
+#, php-format
+msgid "Interface %s (VLAN) has MTU set to a bigger value"
+msgstr ""
+
+#: etc/inc/easyrule.inc:118 etc/inc/easyrule.inc:301
+msgid "Easy Rule"
+msgstr ""
+
+#: etc/inc/vpn.inc:1015
+#, php-format
+msgid ""
+"Ignoring IPsec racoon daemon reload since there are no tunnels on interface "
+"%s"
+msgstr ""
+
+#: etc/inc/auth.inc:1127
+#, php-format
+msgid "ERROR! Could not login to server %1$s as user %2$s: %3$s"
+msgstr ""
diff --git a/usr/local/share/locale/pt_BR.ISO8859-1/LC_MESSAGES/pfSense.po b/usr/local/share/locale/pt_BR.ISO8859-1/LC_MESSAGES/pfSense.po
index 26cadb0..f90d7bf 100644
--- a/usr/local/share/locale/pt_BR.ISO8859-1/LC_MESSAGES/pfSense.po
+++ b/usr/local/share/locale/pt_BR.ISO8859-1/LC_MESSAGES/pfSense.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-06-06 23:53-0300\n"
+"POT-Creation-Date: 2013-02-28 15:35-0300\n"
"PO-Revision-Date: 2012-06-14 01:41+0200\n"
"Last-Translator: Vinicius <vcoque@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -107,7 +107,7 @@ msgstr "Executando: %s"
#: etc/inc/auth.inc:656 etc/inc/auth.inc:728 etc/inc/auth.inc:796
#: etc/inc/auth.inc:1040 etc/inc/auth.inc:665 etc/inc/auth.inc:737
-#: etc/inc/auth.inc:805 etc/inc/auth.inc:1049
+#: etc/inc/auth.inc:805 etc/inc/auth.inc:1049 etc/inc/auth.inc:1053
#, php-format
msgid "ERROR! Could not connect to server %s."
msgstr "ERRO! Não foi possível conectar-se ao servidor %s."
@@ -154,7 +154,7 @@ msgstr ""
msgid "ERROR! ldap_get_groups() could not bind to server %s."
msgstr "ERRO! ldap_get_groups() não foi possível vincular ao servidor %s."
-#: etc/inc/auth.inc:1020 etc/inc/auth.inc:1029
+#: etc/inc/auth.inc:1020 etc/inc/auth.inc:1029 etc/inc/auth.inc:1033
msgid ""
"ERROR! ldap_backed() called with no LDAP authentication server defined. "
"Defaulting to local user database. Visit System -> User Manager."
@@ -163,93 +163,108 @@ msgstr ""
"definido. Padronizando o banco de dados do usuário local. Visite Sistema -> "
"Gerenciador de Usuário."
-#: etc/inc/auth.inc:1023 etc/inc/auth.inc:1032
+#: etc/inc/auth.inc:1023 etc/inc/auth.inc:1032 etc/inc/auth.inc:1036
msgid "ERROR! ldap_backed() called with no LDAP authentication server defined."
msgstr ""
"ERRO! ldap_backed() nenhum chamado com servidor de autenticação LDAP foi "
"definido."
-#: etc/inc/auth.inc:1054 etc/inc/auth.inc:1063
+#: etc/inc/auth.inc:1054 etc/inc/auth.inc:1063 etc/inc/auth.inc:1067
#, php-format
msgid "ERROR! Could not bind to server %s."
msgstr "ERRO! Não foi possível vincular ao servidor %s."
-#: etc/inc/auth.inc:1071 etc/inc/auth.inc:1080
+#: etc/inc/auth.inc:1071 etc/inc/auth.inc:1080 etc/inc/auth.inc:1084
+#: etc/inc/auth.inc:1085
#, php-format
msgid "Now Searching for %s in directory."
msgstr "Buscando agora por %s no diretório."
-#: etc/inc/auth.inc:1075 etc/inc/auth.inc:1084
+#: etc/inc/auth.inc:1075 etc/inc/auth.inc:1084 etc/inc/auth.inc:1088
+#: etc/inc/auth.inc:1090
#, php-format
msgid "Now Searching in server %1$s, container %2$s with filter %3$s."
msgstr "Agora pesquisando no servidor %1$s, recipiente %2$s com filtro %3$s."
-#: etc/inc/auth.inc:1086 etc/inc/auth.inc:1095
+#: etc/inc/auth.inc:1086 etc/inc/auth.inc:1095 etc/inc/auth.inc:1099
+#: etc/inc/auth.inc:1101
#, php-format
msgid "Search resulted in error: %s"
msgstr "A busca resultou em erro: %s"
-#: etc/inc/auth.inc:1102 etc/inc/auth.inc:1111
+#: etc/inc/auth.inc:1102 etc/inc/auth.inc:1111 etc/inc/auth.inc:1115
+#: etc/inc/auth.inc:1117
msgid "ERROR! Either LDAP search failed, or multiple users were found."
msgstr "ERRO! Ou a busca LDAP falhou, ou múltiplos usuários foram encontrados."
-#: etc/inc/auth.inc:1108 etc/inc/auth.inc:1117
+#: etc/inc/auth.inc:1108 etc/inc/auth.inc:1117 etc/inc/auth.inc:1121
+#: etc/inc/auth.inc:1123
#, php-format
msgid "ERROR! Could not login to server %1$s as user %2$s."
msgstr "ERRO! Não foi possível logar no servidor %1$s como usuário %2$s."
-#: etc/inc/auth.inc:1113 etc/inc/auth.inc:1122
+#: etc/inc/auth.inc:1113 etc/inc/auth.inc:1122 etc/inc/auth.inc:1126
+#: etc/inc/auth.inc:1129
#, php-format
msgid "Logged in successfully as %1$s via LDAP server %2$s with DN = %3$s."
msgstr ""
"Autenticado com sucesso como %1$s via servidor LDAP %2$s com DN = %3$s."
-#: etc/inc/auth.inc:1144 etc/inc/auth.inc:1153
+#: etc/inc/auth.inc:1144 etc/inc/auth.inc:1153 etc/inc/auth.inc:1157
+#: etc/inc/auth.inc:1163
#, php-format
msgid "Radius start: %s<br>\n"
msgstr "Início do Radius: %s<br>\n"
-#: etc/inc/auth.inc:1155 etc/inc/auth.inc:1164
+#: etc/inc/auth.inc:1155 etc/inc/auth.inc:1164 etc/inc/auth.inc:1168
+#: etc/inc/auth.inc:1174
#, php-format
msgid "Radius send failed: %s<br>\n"
msgstr "Envio do Radius falhou: %s<br>\n"
-#: etc/inc/auth.inc:1159 etc/inc/auth.inc:1170
+#: etc/inc/auth.inc:1159 etc/inc/auth.inc:1170 etc/inc/auth.inc:1174
+#: etc/inc/auth.inc:1180
#, php-format
msgid "Radius Auth succeeded"
msgstr "Autenticação do Radius bem sucedida"
-#: etc/inc/auth.inc:1164 etc/inc/auth.inc:1175
+#: etc/inc/auth.inc:1164 etc/inc/auth.inc:1175 etc/inc/auth.inc:1179
+#: etc/inc/auth.inc:1185
#, php-format
msgid "Radius Auth rejected"
msgstr "Autenticação do Radius rejeitada"
#: etc/inc/auth.inc:1207 etc/inc/auth.inc:1222 etc/inc/auth.inc:1218
-#: etc/inc/auth.inc:1233
+#: etc/inc/auth.inc:1233 etc/inc/auth.inc:1237 etc/inc/auth.inc:1228
+#: etc/inc/auth.inc:1243
msgid "Local Database"
msgstr "Banco de Dados Local"
#: etc/inc/auth.inc:1207 etc/inc/auth.inc:1222 etc/inc/auth.inc:1218
-#: etc/inc/auth.inc:1233
+#: etc/inc/auth.inc:1233 etc/inc/auth.inc:1237
msgid "Local Auth"
msgstr "Autenticação Local"
-#: etc/inc/auth.inc:1293 etc/inc/auth.inc:1317
+#: etc/inc/auth.inc:1293 etc/inc/auth.inc:1317 etc/inc/auth.inc:1321
+#: etc/inc/auth.inc:1327
#, php-format
msgid "Successful login for user '%1$s' from: %2$s"
msgstr "Login bem sucedido para o usuário '%1$s' de: %2$s"
-#: etc/inc/auth.inc:1347 etc/inc/auth.inc:1371
+#: etc/inc/auth.inc:1347 etc/inc/auth.inc:1371 etc/inc/auth.inc:1375
+#: etc/inc/auth.inc:1381
#, php-format
msgid "Session timed out for user '%1$s' from: %2$s"
msgstr "Sessão expirada para usuário '%1$s' de: %2$s"
-#: etc/inc/auth.inc:1349 etc/inc/auth.inc:1373
+#: etc/inc/auth.inc:1349 etc/inc/auth.inc:1373 etc/inc/auth.inc:1377
+#: etc/inc/auth.inc:1383
#, php-format
msgid "User logged out for user '%1$s' from: %2$s"
msgstr "Usuário desconectado para '%1$s' de: %2$s"
#: etc/inc/captiveportal.inc:1374 etc/inc/captiveportal.inc:1383
+#: etc/inc/captiveportal.inc:1420 etc/inc/captiveportal.inc:1335
#, php-format
msgid "Error: cannot open '%s' in captiveportal_write_elements()%s"
msgstr "Erro: não pôde abrir '%s' em captiveportal_write_elements()%s"
@@ -293,43 +308,50 @@ msgstr ""
"Nenhum config.xml ou backups encontrados, reconfigurando para padrões de "
"fábrica."
-#: etc/inc/filter.inc:197 etc/inc/filter.inc:194
+#: etc/inc/filter.inc:197 etc/inc/filter.inc:194 etc/inc/filter.inc:193
+#: etc/inc/filter.inc:168
msgid "Initializing"
msgstr "Inicializando"
-#: etc/inc/filter.inc:209 etc/inc/filter.inc:206
+#: etc/inc/filter.inc:209 etc/inc/filter.inc:206 etc/inc/filter.inc:205
+#: etc/inc/filter.inc:180
msgid "Configuring firewall"
msgstr "Configurando firewall"
-#: etc/inc/filter.inc:214 etc/inc/filter.inc:211
+#: etc/inc/filter.inc:214 etc/inc/filter.inc:211 etc/inc/filter.inc:210
+#: etc/inc/filter.inc:185
msgid "Creating aliases"
msgstr "Criando aliases"
-#: etc/inc/filter.inc:219
+#: etc/inc/filter.inc:219 etc/inc/filter.inc:218 etc/inc/filter.inc:193
msgid "Generating NAT rules"
msgstr "Gerando regras NAT"
-#: etc/inc/filter.inc:224
+#: etc/inc/filter.inc:224 etc/inc/filter.inc:223 etc/inc/filter.inc:198
msgid "Generating filter rules"
msgstr "Gerando regras de filtro"
-#: etc/inc/filter.inc:230
+#: etc/inc/filter.inc:230 etc/inc/filter.inc:229 etc/inc/filter.inc:204
msgid "Generating ALTQ queues"
msgstr "Gerando filas ALTQ"
-#: etc/inc/filter.inc:232 etc/inc/filter.inc:216
+#: etc/inc/filter.inc:232 etc/inc/filter.inc:216 etc/inc/filter.inc:215
+#: etc/inc/filter.inc:190
msgid "Generating Limiter rules"
msgstr "Gerando regras Limiter"
-#: etc/inc/filter.inc:234 etc/inc/filter.inc:232
+#: etc/inc/filter.inc:234 etc/inc/filter.inc:232 etc/inc/filter.inc:231
+#: etc/inc/filter.inc:206
msgid "Generating Layer7 rules"
msgstr "Gerando regras Layer7"
-#: etc/inc/filter.inc:238 etc/inc/filter.inc:236
+#: etc/inc/filter.inc:238 etc/inc/filter.inc:236 etc/inc/filter.inc:235
+#: etc/inc/filter.inc:210
msgid "Loading filter rules"
msgstr "Carregando regras de filtro"
-#: etc/inc/filter.inc:245 etc/inc/filter.inc:243
+#: etc/inc/filter.inc:245 etc/inc/filter.inc:243 etc/inc/filter.inc:242
+#: etc/inc/filter.inc:217
msgid "Filter is disabled. Not loading rules."
msgstr "Filtro estático desabilitado. Não carregando regras."
@@ -371,68 +393,121 @@ msgstr "Filtro estático desabilitado. Não carregando regras."
#: etc/inc/interfaces.inc:1006 etc/inc/interfaces.inc:1845 etc/inc/rrd.inc:806
#: etc/inc/services.inc:1028 etc/inc/services.inc:1370
#: etc/inc/services.inc:1434 etc/inc/services.inc:1669 etc/inc/filter.inc:245
-#: etc/inc/filter.inc:420
+#: etc/inc/filter.inc:420 etc/inc/system.inc:703 etc/inc/system.inc:726
+#: etc/inc/system.inc:804 etc/inc/system.inc:1229 etc/inc/system.inc:1376
+#: etc/inc/system.inc:1508 etc/inc/pkg-utils.inc:394 etc/inc/pkg-utils.inc:613
+#: etc/inc/pkg-utils.inc:623 etc/inc/pkg-utils.inc:646
+#: etc/inc/pkg-utils.inc:723 etc/inc/pkg-utils.inc:738
+#: etc/inc/pkg-utils.inc:782 etc/inc/pkg-utils.inc:813
+#: etc/inc/pkg-utils.inc:842 etc/inc/pkg-utils.inc:849
+#: etc/inc/pkg-utils.inc:866 etc/inc/pkg-utils.inc:882
+#: etc/inc/pkg-utils.inc:898 etc/inc/pkg-utils.inc:1005
+#: etc/inc/pkg-utils.inc:1022 etc/inc/pkg-utils.inc:1047
+#: etc/inc/pkg-utils.inc:1092 etc/inc/pkg-utils.inc:1101
+#: etc/inc/pkg-utils.inc:1111 etc/inc/pkg-utils.inc:1126
+#: etc/inc/pkg-utils.inc:1133 etc/inc/pkg-utils.inc:1152
+#: etc/inc/interfaces.inc:218 etc/inc/interfaces.inc:235
+#: etc/inc/interfaces.inc:361 etc/inc/interfaces.inc:411
+#: etc/inc/interfaces.inc:670 etc/inc/interfaces.inc:950
+#: etc/inc/interfaces.inc:990 etc/inc/interfaces.inc:1005
+#: etc/inc/interfaces.inc:1849 etc/inc/services.inc:1160
+#: etc/inc/services.inc:1509 etc/inc/services.inc:1573
+#: etc/inc/services.inc:1808 etc/inc/filter.inc:244 etc/inc/filter.inc:423
+#: etc/inc/filter.inc:219 etc/inc/filter.inc:395 etc/inc/pkg-utils.inc:411
+#: etc/inc/pkg-utils.inc:648 etc/inc/pkg-utils.inc:658
+#: etc/inc/pkg-utils.inc:681 etc/inc/pkg-utils.inc:758
+#: etc/inc/pkg-utils.inc:773 etc/inc/pkg-utils.inc:817
+#: etc/inc/pkg-utils.inc:877 etc/inc/pkg-utils.inc:884
+#: etc/inc/pkg-utils.inc:901 etc/inc/pkg-utils.inc:917
+#: etc/inc/pkg-utils.inc:933 etc/inc/pkg-utils.inc:1040
+#: etc/inc/pkg-utils.inc:1057 etc/inc/pkg-utils.inc:1082
+#: etc/inc/pkg-utils.inc:1127 etc/inc/pkg-utils.inc:1136
+#: etc/inc/pkg-utils.inc:1146 etc/inc/pkg-utils.inc:1161
+#: etc/inc/pkg-utils.inc:1168 etc/inc/pkg-utils.inc:1187
+#: etc/inc/interfaces.inc:216 etc/inc/interfaces.inc:233
+#: etc/inc/interfaces.inc:365 etc/inc/interfaces.inc:422
+#: etc/inc/interfaces.inc:697 etc/inc/interfaces.inc:1033
+#: etc/inc/interfaces.inc:1054 etc/inc/interfaces.inc:1069
+#: etc/inc/interfaces.inc:1889 etc/inc/services.inc:1154
+#: etc/inc/services.inc:1499 etc/inc/services.inc:1596
+#: etc/inc/services.inc:1797 etc/inc/system.inc:712 etc/inc/system.inc:735
+#: etc/inc/system.inc:815 etc/inc/system.inc:1178 etc/inc/system.inc:1318
+#: etc/inc/system.inc:1457 etc/inc/rrd.inc:829
msgid "done."
msgstr "pronto."
-#: etc/inc/filter.inc:259 etc/inc/filter.inc:265
+#: etc/inc/filter.inc:259 etc/inc/filter.inc:265 etc/inc/filter.inc:289
+#: etc/inc/filter.inc:269
msgid "Setting up logging information"
msgstr "Configurando informação de log"
-#: etc/inc/filter.inc:290 etc/inc/filter.inc:294
+#: etc/inc/filter.inc:290 etc/inc/filter.inc:294 etc/inc/filter.inc:274
msgid "Setting up SCRUB information"
msgstr "Configurando informação de SCRUB"
-#: etc/inc/filter.inc:336 etc/inc/filter.inc:338
+#: etc/inc/filter.inc:336 etc/inc/filter.inc:338 etc/inc/filter.inc:341
+#: etc/inc/filter.inc:313
#, php-format
msgid "The line in question reads [%1$d]: %2$s"
msgstr "A linha em questão lida [%1$d]: %2$s"
#: etc/inc/filter.inc:338 etc/inc/filter.inc:340 etc/inc/filter.inc:342
+#: etc/inc/filter.inc:343 etc/inc/filter.inc:345 etc/inc/filter.inc:316
+#: etc/inc/filter.inc:317
#, php-format
msgid "There were error(s) loading the rules: %1$s - %2$s"
msgstr "Houve erro(s) carregando as regras: %1$s - %2$s"
-#: etc/inc/filter.inc:349 etc/inc/filter.inc:351
+#: etc/inc/filter.inc:349 etc/inc/filter.inc:351 etc/inc/filter.inc:354
+#: etc/inc/filter.inc:324
msgid "PF was wedged/busy and has been reset."
msgstr "PF estava travado/ocupado e foi reiniciado."
-#: etc/inc/filter.inc:355 etc/inc/filter.inc:357
+#: etc/inc/filter.inc:355 etc/inc/filter.inc:357 etc/inc/filter.inc:360
+#: etc/inc/filter.inc:329
msgid "Starting up layer7 daemon"
msgstr "Iniciando daemon layer7"
-#: etc/inc/filter.inc:403 etc/inc/filter.inc:405
+#: etc/inc/filter.inc:403 etc/inc/filter.inc:405 etc/inc/filter.inc:408
+#: etc/inc/filter.inc:380
msgid "Processing down interface states"
msgstr "Processando estados de interface"
-#: etc/inc/filter.inc:407 etc/inc/filter.inc:409
+#: etc/inc/filter.inc:407 etc/inc/filter.inc:409 etc/inc/filter.inc:412
+#: etc/inc/filter.inc:384
msgid "Running plugins"
msgstr "Executando plugins"
-#: etc/inc/filter.inc:411 etc/inc/filter.inc:413
+#: etc/inc/filter.inc:411 etc/inc/filter.inc:413 etc/inc/filter.inc:416
+#: etc/inc/filter.inc:388
msgid "Running plugins (pf)"
msgstr "Executando plugins (pf)"
-#: etc/inc/filter.inc:413 etc/inc/filter.inc:415
+#: etc/inc/filter.inc:413 etc/inc/filter.inc:415 etc/inc/filter.inc:418
+#: etc/inc/filter.inc:390
msgid "Plugins completed."
msgstr "Plugins finalizados."
#: etc/inc/filter.inc:416 usr/local/www/restart_httpd.php:52
#: usr/local/www/restart_httpd.php:55 usr/local/www/restart_httpd.php:58
#: usr/local/www/restart_httpd.php:61 etc/inc/filter.inc:418
+#: etc/inc/filter.inc:421 etc/inc/filter.inc:393
msgid "Done"
msgstr "Pronto"
-#: etc/inc/filter.inc:636 etc/inc/filter.inc:649
+#: etc/inc/filter.inc:636 etc/inc/filter.inc:649 etc/inc/filter.inc:652
+#: etc/inc/filter.inc:641
msgid "Creating gateway group item..."
msgstr "Criando um item de grupo de gateway..."
-#: etc/inc/filter.inc:666 etc/inc/filter.inc:681
+#: etc/inc/filter.inc:666 etc/inc/filter.inc:681 etc/inc/filter.inc:684
+#: etc/inc/filter.inc:673
#, php-format
msgid "Setting up route with %1$s on %2$s"
msgstr "Configurando rota com %1$s em %2$s"
-#: etc/inc/filter.inc:673 etc/inc/filter.inc:688
+#: etc/inc/filter.inc:673 etc/inc/filter.inc:688 etc/inc/filter.inc:691
+#: etc/inc/filter.inc:680
#, php-format
msgid ""
"An error occurred while trying to find the interface got %s . The rule has "
@@ -441,77 +516,93 @@ msgstr ""
"Um erro ocorreu na tentativa de se encontrar a interface obtida %s. A regra "
"não foi adicionada."
-#: etc/inc/filter.inc:937 etc/inc/filter.inc:987
+#: etc/inc/filter.inc:937 etc/inc/filter.inc:987 etc/inc/filter.inc:975
+#: etc/inc/filter.inc:1009
#, php-format
msgid "Creating reflection NAT rule for %s..."
msgstr "Criando regra de reflexão NAT para %s..."
-#: etc/inc/filter.inc:991 etc/inc/filter.inc:1076
+#: etc/inc/filter.inc:991 etc/inc/filter.inc:1076 etc/inc/filter.inc:1064
+#: etc/inc/filter.inc:1098
#, php-format
msgid "Creating reflection rule for %s..."
msgstr "Criando regra de reflexão para %s..."
-#: etc/inc/filter.inc:1251 etc/inc/filter.inc:1338
+#: etc/inc/filter.inc:1251 etc/inc/filter.inc:1338 etc/inc/filter.inc:1326
+#: etc/inc/filter.inc:1360
msgid "Creating 1:1 rules..."
msgstr "Criando regras 1:1..."
-#: etc/inc/filter.inc:1350 etc/inc/filter.inc:1437
+#: etc/inc/filter.inc:1350 etc/inc/filter.inc:1437 etc/inc/filter.inc:1454
+#: etc/inc/filter.inc:1501
#, php-format
msgid "Creating advanced outbound rule %s"
msgstr "Criando regra de saída avançada %s"
-#: etc/inc/filter.inc:1386 etc/inc/filter.inc:1473
+#: etc/inc/filter.inc:1386 etc/inc/filter.inc:1473 etc/inc/filter.inc:1490
+#: etc/inc/filter.inc:1533
msgid "Creating outbound NAT rules"
msgstr "Criando regras NAT de outbound"
-#: etc/inc/filter.inc:1481 etc/inc/filter.inc:1566
+#: etc/inc/filter.inc:1481 etc/inc/filter.inc:1566 etc/inc/filter.inc:1583
+#: etc/inc/filter.inc:1626
#, php-format
msgid "Creating outbound rules %1$s - (%2$s)"
msgstr "Criando regras de saída %1$s - (%2$s)"
-#: etc/inc/filter.inc:1499 etc/inc/filter.inc:1584
+#: etc/inc/filter.inc:1499 etc/inc/filter.inc:1584 etc/inc/filter.inc:1601
+#: etc/inc/filter.inc:1644
msgid "Setting up TFTP helper"
msgstr "Configurando ajuda do TFTP"
-#: etc/inc/filter.inc:1545 etc/inc/filter.inc:1630
+#: etc/inc/filter.inc:1545 etc/inc/filter.inc:1630 etc/inc/filter.inc:1644
+#: etc/inc/filter.inc:1676
#, php-format
msgid "Creating NAT rule %s"
msgstr "Criando regra NAT %s"
-#: etc/inc/filter.inc:1689 etc/inc/filter.inc:1837
+#: etc/inc/filter.inc:1689 etc/inc/filter.inc:1837 etc/inc/filter.inc:1850
+#: etc/inc/filter.inc:1882
#, php-format
msgid "Creating filter rule %s ..."
msgstr "Criando regra de filtro %s ..."
-#: etc/inc/filter.inc:1827 etc/inc/filter.inc:1975
+#: etc/inc/filter.inc:1827 etc/inc/filter.inc:1975 etc/inc/filter.inc:1988
+#: etc/inc/filter.inc:2024
#, php-format
msgid "filter_generate_address: %s is not a valid source port."
msgstr "filter_generate_address: %s não é uma porta de origem válida."
-#: etc/inc/filter.inc:1943 etc/inc/filter.inc:2094
+#: etc/inc/filter.inc:1943 etc/inc/filter.inc:2094 etc/inc/filter.inc:2107
+#: etc/inc/filter.inc:2142
#, php-format
msgid "Setting up pass/block rules %s"
msgstr "Configurando regras de liberação/bloqueio %s"
-#: etc/inc/filter.inc:1962 etc/inc/filter.inc:2113
+#: etc/inc/filter.inc:1962 etc/inc/filter.inc:2113 etc/inc/filter.inc:2126
+#: etc/inc/filter.inc:2157
#, php-format
msgid "Could not find IPv4 gateway for interface (%s)."
msgstr "Não é possível encontrar gateway IPv4 para interface (%s)."
-#: etc/inc/filter.inc:1989 etc/inc/filter.inc:2140
+#: etc/inc/filter.inc:1989 etc/inc/filter.inc:2140 etc/inc/filter.inc:2153
+#: etc/inc/filter.inc:2182
#, php-format
msgid "Creating rule %s"
msgstr "Criando regra %s"
-#: etc/inc/filter.inc:2198 etc/inc/filter.inc:2355
+#: etc/inc/filter.inc:2198 etc/inc/filter.inc:2355 etc/inc/filter.inc:2378
+#: etc/inc/filter.inc:2407
msgid "Creating default rules"
msgstr "Criando regras padrão"
-#: etc/inc/filter.inc:2649 etc/inc/filter.inc:2862
+#: etc/inc/filter.inc:2649 etc/inc/filter.inc:2862 etc/inc/filter.inc:2887
+#: etc/inc/filter.inc:2976
msgid "Creating IPsec rules..."
msgstr "Criando regras IPsec..."
-#: etc/inc/filter.inc:2702 etc/inc/filter.inc:2915
+#: etc/inc/filter.inc:2702 etc/inc/filter.inc:2915 etc/inc/filter.inc:2940
+#: etc/inc/filter.inc:3026
msgid ""
"Please use filter_tdr_install_cron() function tdr_install_cron will be "
"deprecated!"
@@ -519,23 +610,27 @@ msgstr ""
"Por favor, use a função filter_tdr_install_cron(). A função tdr_install_cron "
"se tornará obsoleta!"
-#: etc/inc/filter.inc:2747 etc/inc/filter.inc:2960
+#: etc/inc/filter.inc:2747 etc/inc/filter.inc:2960 etc/inc/filter.inc:2986
+#: etc/inc/filter.inc:3072
msgid "Installed 15 minute filter reload for Time Based Rules"
msgstr ""
"Instalado filtro de recarregamento de 15 minutos para Tempo de Regras "
"Baseadas"
-#: etc/inc/filter.inc:3102 etc/inc/filter.inc:3313
+#: etc/inc/filter.inc:3102 etc/inc/filter.inc:3313 etc/inc/filter.inc:3293
+#: etc/inc/filter.inc:3389
#, php-format
msgid "Checking for %1$s PF hooks in package %2$s"
msgstr "Checando para %1$s saltos PF no pacote %2$s"
-#: etc/inc/filter.inc:3107 etc/inc/filter.inc:3318
+#: etc/inc/filter.inc:3107 etc/inc/filter.inc:3318 etc/inc/filter.inc:3299
+#: etc/inc/filter.inc:3395
#, php-format
msgid "Processing early %1$s rules for package %2$s"
msgstr "Processando %1$s regras iniciais para o pacote %2$s"
-#: etc/inc/filter.inc:3112 etc/inc/filter.inc:3323
+#: etc/inc/filter.inc:3112 etc/inc/filter.inc:3323 etc/inc/filter.inc:3304
+#: etc/inc/filter.inc:3400
#, php-format
msgid "There was an error while parsing the package filter rules for %s."
msgstr "Houve um erro ao analisar as regras de filtro do pacote para %s."
@@ -545,14 +640,17 @@ msgid "interfaces_bring_up() was called but no variable defined."
msgstr "interfaces_bring_up() foi chamada mas nenhuma variável foi definida."
#: etc/inc/interfaces.inc:213 etc/inc/interfaces.inc:215
+#: etc/inc/interfaces.inc:214 etc/inc/interfaces.inc:212
msgid "Configuring loopback interface..."
msgstr "Configurando interface de loopback..."
#: etc/inc/interfaces.inc:224 etc/inc/interfaces.inc:226
+#: etc/inc/interfaces.inc:225 etc/inc/interfaces.inc:223
msgid "Configuring VLAN interfaces..."
msgstr "Configurando interfaces VLAN..."
#: etc/inc/interfaces.inc:241 etc/inc/interfaces.inc:243
+#: etc/inc/interfaces.inc:242 etc/inc/interfaces.inc:240
msgid "VLAN: called with wrong options. Problems with config!"
msgstr "VLAN: chamada com as opções erradas. Problemas com configuração!"
@@ -562,6 +660,8 @@ msgstr "interface_vlan_confgure chamada com if indefinido."
#: etc/inc/interfaces.inc:283 etc/inc/interfaces.inc:367
#: etc/inc/interfaces.inc:285 etc/inc/interfaces.inc:369
+#: etc/inc/interfaces.inc:284 etc/inc/interfaces.inc:368
+#: etc/inc/interfaces.inc:282 etc/inc/interfaces.inc:372
#, php-format
msgid "QinQ compat VLAN: called with wrong options. Problems with config!%s"
msgstr ""
@@ -573,35 +673,43 @@ msgid "interface_qinq_confgure called with if undefined.%s"
msgstr "interface_qinq_confgure chamada com if indefinido.%s"
#: etc/inc/interfaces.inc:352 etc/inc/interfaces.inc:354
+#: etc/inc/interfaces.inc:353 etc/inc/interfaces.inc:357
msgid "Configuring QinQ interfaces..."
msgstr "Configurando interfaces QinQ..."
#: etc/inc/interfaces.inc:396 etc/inc/interfaces.inc:398
+#: etc/inc/interfaces.inc:397
msgid "Creating other wireless clone interfaces..."
msgstr "Criando outras interfaces clones sem fio..."
#: etc/inc/interfaces.inc:439 etc/inc/interfaces.inc:438
+#: etc/inc/interfaces.inc:437 etc/inc/interfaces.inc:466
#, php-format
msgid "No members found on %s"
msgstr "Nenhum membro encontrado em %s"
#: etc/inc/interfaces.inc:505 etc/inc/interfaces.inc:512
+#: etc/inc/interfaces.inc:511 etc/inc/interfaces.inc:541
msgid "realif not defined in interfaces bridge - up"
msgstr "realif não definido em interfaces bridge - up"
#: etc/inc/interfaces.inc:618 etc/inc/interfaces.inc:625
+#: etc/inc/interfaces.inc:624 etc/inc/interfaces.inc:654
msgid "bridgeif not defined -- could not bring interface up"
msgstr "bridgeif não definido -- não pôde iniciar a interface"
#: etc/inc/interfaces.inc:652 etc/inc/interfaces.inc:659
+#: etc/inc/interfaces.inc:658 etc/inc/interfaces.inc:685
msgid "Configuring LAGG interfaces..."
msgstr "Configurando interfaces LAGG..."
#: etc/inc/interfaces.inc:790 etc/inc/interfaces.inc:801
+#: etc/inc/interfaces.inc:800 etc/inc/interfaces.inc:835
msgid "Could not bring greif up -- variable not defined."
msgstr "Não pôde iniciar greif -- variável não definida."
#: etc/inc/interfaces.inc:833 etc/inc/interfaces.inc:851
+#: etc/inc/interfaces.inc:850 etc/inc/interfaces.inc:899
msgid ""
"could not bring realif up -- variable not defined -- interface_gif_configure"
"()"
@@ -610,12 +718,16 @@ msgstr ""
"interface_gif_configure()"
#: etc/inc/interfaces.inc:856 etc/inc/interfaces.inc:874
+#: etc/inc/interfaces.inc:873 etc/inc/interfaces.inc:922
msgid "could not bring gifif up -- variable not defined"
msgstr "O gifif não pôde ser iniciado -- variável não definida"
#: etc/inc/interfaces.inc:919 etc/inc/interfaces.inc:957
#: etc/inc/interfaces.inc:972 etc/inc/interfaces.inc:945
#: etc/inc/interfaces.inc:984 etc/inc/interfaces.inc:999
+#: etc/inc/interfaces.inc:944 etc/inc/interfaces.inc:983
+#: etc/inc/interfaces.inc:998 etc/inc/interfaces.inc:1026
+#: etc/inc/interfaces.inc:1047 etc/inc/interfaces.inc:1062
#, php-format
msgid "Configuring %s interface..."
msgstr "Configurando interface %s..."
@@ -623,17 +735,23 @@ msgstr "Configurando interface %s..."
#: etc/inc/interfaces.inc:921 etc/inc/interfaces.inc:959
#: etc/inc/interfaces.inc:974 etc/inc/interfaces.inc:948
#: etc/inc/interfaces.inc:986 etc/inc/interfaces.inc:1001
+#: etc/inc/interfaces.inc:947 etc/inc/interfaces.inc:985
+#: etc/inc/interfaces.inc:1000 etc/inc/interfaces.inc:1002
+#: etc/inc/interfaces.inc:1028 etc/inc/interfaces.inc:1049
+#: etc/inc/interfaces.inc:1064
#, php-format
msgid "Configuring %s"
msgstr "Configurando %s"
#: etc/inc/interfaces.inc:1299 etc/inc/interfaces.inc:1339
+#: etc/inc/interfaces.inc:1338 etc/inc/interfaces.inc:1407
#, php-format
msgid "Can't find PPP config for %s in interface_ppps_configure()."
msgstr ""
"O PPP config não pôde ser encontrado para %s em interface_ppps_configure()."
#: etc/inc/interfaces.inc:1362 etc/inc/interfaces.inc:1402
+#: etc/inc/interfaces.inc:1401 etc/inc/interfaces.inc:1464
#, php-format
msgid ""
"Could not get a PPTP/L2TP Remote IP address from %1$s for %2$s in "
@@ -643,6 +761,7 @@ msgstr ""
"interfaces_ppps_configure."
#: etc/inc/interfaces.inc:1369 etc/inc/interfaces.inc:1409
+#: etc/inc/interfaces.inc:1408 etc/inc/interfaces.inc:1471
#, php-format
msgid ""
"Device %s does not exist. PPP link cannot start without the modem device."
@@ -651,61 +770,75 @@ msgstr ""
"modem."
#: etc/inc/interfaces.inc:1374 etc/inc/interfaces.inc:1414
+#: etc/inc/interfaces.inc:1413 etc/inc/interfaces.inc:1476
#, php-format
msgid "Unkown %s configured as ppp interface."
msgstr "%s desconhecido configurado como uma interface ppp."
#: etc/inc/interfaces.inc:1641 etc/inc/interfaces.inc:1686
+#: etc/inc/interfaces.inc:1685 etc/inc/interfaces.inc:1748
#, php-format
msgid "Error: cannot open mpd_%s.conf in interface_ppps_configure().%s"
msgstr "Erro: mpd_%s.conf não pôde ser aberto em interface_ppps_configure().%s"
#: etc/inc/interfaces.inc:1702 etc/inc/interfaces.inc:1771
+#: etc/inc/interfaces.inc:1770 etc/inc/interfaces.inc:1828
msgid "Configuring CARP settings..."
msgstr "Configurando CARP..."
#: etc/inc/interfaces.inc:1723 etc/inc/interfaces.inc:1788
+#: etc/inc/interfaces.inc:1787
msgid "Enable CARP ARP-balancing"
msgstr "Habilitar CARP ARP-balancing"
#: etc/inc/interfaces.inc:1724 etc/inc/interfaces.inc:1789
+#: etc/inc/interfaces.inc:1788
msgid "Disallow CARP preemption"
msgstr "Desabilitar preempção do CARP"
#: etc/inc/interfaces.inc:1726 etc/inc/interfaces.inc:1791
+#: etc/inc/interfaces.inc:1790
msgid "Enable CARP preemption"
msgstr "Habilitar preempção do CARP"
#: etc/inc/interfaces.inc:1728 etc/inc/interfaces.inc:1793
+#: etc/inc/interfaces.inc:1792
msgid "Enable CARP logging"
msgstr "Habilitar log do CARP"
#: etc/inc/interfaces.inc:1744 etc/inc/interfaces.inc:1809
+#: etc/inc/interfaces.inc:1808
msgid "Could not create rules.boot file!"
msgstr "Não pôde criar arquivo rules.boot!"
#: etc/inc/interfaces.inc:1750 etc/inc/interfaces.inc:1815
+#: etc/inc/interfaces.inc:1814
msgid "Bring up pfsync0 syncpeer"
msgstr "Levantando pfsync0 syncpeer"
#: etc/inc/interfaces.inc:1752 etc/inc/interfaces.inc:1817
+#: etc/inc/interfaces.inc:1816
msgid "Bring up pfsync0 syncdev"
msgstr "Levantando pfsync0 syncdev"
#: etc/inc/interfaces.inc:1754 etc/inc/interfaces.inc:1819
+#: etc/inc/interfaces.inc:1818
msgid "Bring up pfsync0"
msgstr "Levantando pfsync0"
#: etc/inc/interfaces.inc:1768 etc/inc/interfaces.inc:1833
+#: etc/inc/interfaces.inc:1837
msgid "Allow CARP."
msgstr "Permitir CARP."
#: etc/inc/interfaces.inc:1770 etc/inc/interfaces.inc:1835
+#: etc/inc/interfaces.inc:1839
msgid "Disallow CARP."
msgstr "Desabilitar CARP."
#: etc/inc/interfaces.inc:1963 etc/inc/interfaces.inc:2038
#: etc/inc/interfaces.inc:2020 etc/inc/interfaces.inc:2099
+#: etc/inc/interfaces.inc:2016 etc/inc/interfaces.inc:2056
#, php-format
msgid ""
"Interface specified for the virtual IP address %s does not exist. Skipping "
@@ -715,6 +848,7 @@ msgstr ""
"esse IP virtual."
#: etc/inc/interfaces.inc:1972 etc/inc/interfaces.inc:2029
+#: etc/inc/interfaces.inc:2025 etc/inc/interfaces.inc:2065
#, php-format
msgid ""
"Sorry but we could not find a matching real interface subnet for the virtual "
@@ -724,6 +858,7 @@ msgstr ""
"correspondente ao endereço de IP virtual %s."
#: etc/inc/interfaces.inc:1981 etc/inc/interfaces.inc:2038
+#: etc/inc/interfaces.inc:2034 etc/inc/interfaces.inc:2074
#, php-format
msgid ""
"Sorry but we could not find a matching real interface subnet for the virtual "
@@ -742,35 +877,42 @@ msgstr ""
"para escrita.%s"
#: etc/inc/interfaces.inc:2117 etc/inc/interfaces.inc:2185
+#: etc/inc/interfaces.inc:2104 etc/inc/interfaces.inc:2144
#, php-format
msgid "Interface %s changed to hostap mode"
msgstr "Interface %s modificada para modo hostap"
#: etc/inc/interfaces.inc:2121 etc/inc/interfaces.inc:2189
+#: etc/inc/interfaces.inc:2108 etc/inc/interfaces.inc:2148
#, php-format
msgid "Interface %s changed to adhoc mode"
msgstr "Interface %s modificada para modo adhoc"
#: etc/inc/interfaces.inc:2125 etc/inc/interfaces.inc:2193
+#: etc/inc/interfaces.inc:2112 etc/inc/interfaces.inc:2152
#, php-format
msgid "Interface %s changed to infrastructure mode"
msgstr "Interface %s modificada para modo de infraestrutura"
#: etc/inc/interfaces.inc:2137 etc/inc/interfaces.inc:2205
+#: etc/inc/interfaces.inc:2124 etc/inc/interfaces.inc:2164
#, php-format
msgid "Cloning new wireless interface %s"
msgstr "Clonando nova interface sem fio %s"
#: etc/inc/interfaces.inc:2142 etc/inc/interfaces.inc:2210
+#: etc/inc/interfaces.inc:2129 etc/inc/interfaces.inc:2169
#, php-format
msgid "Failed to clone interface %1$s with error code %2$s, output %3$s"
msgstr "Falha ao clonar interface %1$s com código de erro %2$s, saída %3$s"
#: etc/inc/interfaces.inc:2715 etc/inc/interfaces.inc:2790
+#: etc/inc/interfaces.inc:2709 etc/inc/interfaces.inc:2761
msgid "Generating new MAC address."
msgstr "Gerando novo endereço MAC."
#: etc/inc/interfaces.inc:2721 etc/inc/interfaces.inc:2796
+#: etc/inc/interfaces.inc:2715 etc/inc/interfaces.inc:2767
#, php-format
msgid ""
"The INVALID MAC address (ff:ff:ff:ff:ff:ff) on interface %1$s has been "
@@ -793,11 +935,13 @@ msgstr ""
"() para escrita.%s"
#: etc/inc/interfaces.inc:3029 etc/inc/interfaces.inc:3513
+#: etc/inc/interfaces.inc:3373 etc/inc/interfaces.inc:3466
#, php-format
msgid "Invalid interface \"%s\" in interface_dhcp_configure()"
msgstr "Interface inválida \"%s\" em interface_dhcp_configure()"
#: etc/inc/interfaces.inc:3064 etc/inc/interfaces.inc:3548
+#: etc/inc/interfaces.inc:3408 etc/inc/interfaces.inc:3501
#, php-format
msgid "Could not bring up %s interface in interface_dhcp_configure()"
msgstr "A interface %s não pôde ser iniciada em interface_dhcp_configure()"
@@ -817,76 +961,78 @@ msgstr "Mensagem enviada para %s OK"
msgid "Could not send the message to %1$s -- Error: %2$s"
msgstr "A mensagem não pôde ser enviada para %1$s -- Erro: %2$s"
-#: etc/inc/openvpn.inc:83 etc/inc/openvpn.inc:90
+#: etc/inc/openvpn.inc:83 etc/inc/openvpn.inc:90 etc/inc/openvpn.inc:81
+#: etc/inc/openvpn.inc:88
msgid "Peer to Peer ( SSL/TLS )"
msgstr "Ponto a Ponto ( SSL/TLS )"
-#: etc/inc/openvpn.inc:84 etc/inc/openvpn.inc:91
+#: etc/inc/openvpn.inc:84 etc/inc/openvpn.inc:91 etc/inc/openvpn.inc:82
+#: etc/inc/openvpn.inc:89
msgid "Peer to Peer ( Shared Key )"
msgstr "Ponto a Ponto ( Chave compartilhada )"
-#: etc/inc/openvpn.inc:85
+#: etc/inc/openvpn.inc:85 etc/inc/openvpn.inc:83
msgid "Remote Access ( SSL/TLS )"
msgstr "Acesso Remoto ( SSL/TLS )"
-#: etc/inc/openvpn.inc:86
+#: etc/inc/openvpn.inc:86 etc/inc/openvpn.inc:84
msgid "Remote Access ( User Auth )"
msgstr "Acesso Remoto ( Autenticação de Usuário)"
-#: etc/inc/openvpn.inc:87
+#: etc/inc/openvpn.inc:87 etc/inc/openvpn.inc:85
msgid "Remote Access ( SSL/TLS + User Auth )"
msgstr "Acesso Remoto ( SSL/TLS + Autenticação de Usuário )"
-#: etc/inc/openvpn.inc:179
+#: etc/inc/openvpn.inc:179 etc/inc/openvpn.inc:177 etc/inc/openvpn.inc:195
msgid "None (No Encryption)"
msgstr "Nenhum (Sem criptografia)"
-#: etc/inc/openvpn.inc:203
+#: etc/inc/openvpn.inc:203 etc/inc/openvpn.inc:201 etc/inc/openvpn.inc:238
#, php-format
msgid "The field '%s' must contain a valid IP address or domain name."
msgstr "O campo '%s' deve conter um endereço de IP ou nome de domínio válido."
-#: etc/inc/openvpn.inc:210
+#: etc/inc/openvpn.inc:210 etc/inc/openvpn.inc:208 etc/inc/openvpn.inc:245
#, php-format
msgid "The field '%s' must contain a valid port, ranging from 0 to 65535."
msgstr "O campo '%s' deve conter uma porta válida, variando entre 0 e 65535."
-#: etc/inc/openvpn.inc:219
+#: etc/inc/openvpn.inc:219 etc/inc/openvpn.inc:217
#, php-format
msgid "The field '%s' must contain a valid CIDR range."
msgstr "O campo '%s' deve conter um intervalo CIDR válido."
-#: etc/inc/pfsense-utils.inc:345
+#: etc/inc/pfsense-utils.inc:345 etc/inc/pfsense-utils.inc:330
msgid "MASTER"
msgstr "MASTER"
-#: etc/inc/pfsense-utils.inc:347
+#: etc/inc/pfsense-utils.inc:347 etc/inc/pfsense-utils.inc:332
msgid "BACKUP"
msgstr "BACKUP"
-#: etc/inc/pfsense-utils.inc:349
+#: etc/inc/pfsense-utils.inc:349 etc/inc/pfsense-utils.inc:334
msgid "INIT"
msgstr "INIT"
-#: etc/inc/pfsense-utils.inc:417
+#: etc/inc/pfsense-utils.inc:417 etc/inc/pfsense-utils.inc:402
msgid "After synch increase advertising skew"
msgstr "Após sincronização, aumentar o advertising skew"
-#: etc/inc/pfsense-utils.inc:462
+#: etc/inc/pfsense-utils.inc:462 etc/inc/pfsense-utils.inc:447
msgid "Error creating socket!"
msgstr "Erro criando socket!"
-#: etc/inc/pfsense-utils.inc:463
+#: etc/inc/pfsense-utils.inc:463 etc/inc/pfsense-utils.inc:448
#, php-format
msgid "Error code is '%1$s' - %2$s"
msgstr "Código do erro é '%1$s' - %2$s"
-#: etc/inc/pfsense-utils.inc:468
+#: etc/inc/pfsense-utils.inc:468 etc/inc/pfsense-utils.inc:453
#, php-format
msgid "setsockopt() failed, error: %s"
msgstr "setsockopt() falhou, erro: %s"
-#: etc/inc/pfsense-utils.inc:471
+#: etc/inc/pfsense-utils.inc:471 etc/inc/pfsense-utils.inc:456
#, php-format
msgid "Magic Packet sent (%1$s) to {%2$s} MAC=%3$s"
msgstr "Pacote Mágico enviado (%1$s) para {%2$s} MAC=%3$s"
@@ -920,56 +1066,69 @@ msgid "Cleaning up Interfaces"
msgstr "Limpando Interfaces"
#: etc/inc/pfsense-utils.inc:912 etc/inc/pfsense-utils.inc:927
+#: etc/inc/pfsense-utils.inc:936
msgid "Enabling auto login was not possible."
msgstr "Não foi possível habilitar o auto login."
#: etc/inc/pfsense-utils.inc:1100 etc/inc/pfsense-utils.inc:1137
+#: etc/inc/pfsense-utils.inc:1191 etc/inc/pfsense-utils.inc:1196
msgid "No history data found!"
msgstr "Nenhum dado de histórico encontrado!"
#: etc/inc/pfsense-utils.inc:1222 etc/inc/pfsense-utils.inc:1260
+#: etc/inc/pfsense-utils.inc:1313 etc/inc/pfsense-utils.inc:1318
msgid "device not present! Is the modem attached to the system?"
msgstr "o dispositivo não está presente! O modem está acoplado ao sistema?"
#: etc/inc/pfsense-utils.inc:1262 etc/inc/pfsense-utils.inc:1327
+#: etc/inc/pfsense-utils.inc:1380 etc/inc/pfsense-utils.inc:1385
msgid "running"
msgstr "executando"
#: etc/inc/pfsense-utils.inc:1263 usr/local/www/graph.php:201
-#: etc/inc/pfsense-utils.inc:1328
+#: etc/inc/pfsense-utils.inc:1328 etc/inc/pfsense-utils.inc:1381
+#: etc/inc/pfsense-utils.inc:1386
msgid "up"
msgstr "para cima"
#: etc/inc/pfsense-utils.inc:1300 etc/inc/pfsense-utils.inc:1371
+#: etc/inc/pfsense-utils.inc:1424 etc/inc/pfsense-utils.inc:1429
msgid "blocking"
msgstr "bloqueando"
#: etc/inc/pfsense-utils.inc:1300 etc/inc/pfsense-utils.inc:1371
+#: etc/inc/pfsense-utils.inc:1424 etc/inc/pfsense-utils.inc:1429
msgid "check for ethernet loops"
msgstr "verificar loops ethernet"
#: etc/inc/pfsense-utils.inc:1303 etc/inc/pfsense-utils.inc:1374
+#: etc/inc/pfsense-utils.inc:1427 etc/inc/pfsense-utils.inc:1432
msgid "learning"
msgstr "aprendendo"
#: etc/inc/pfsense-utils.inc:1306 etc/inc/pfsense-utils.inc:1377
+#: etc/inc/pfsense-utils.inc:1430 etc/inc/pfsense-utils.inc:1435
msgid "forwarding"
msgstr "encaminhando"
#: etc/inc/pfsense-utils.inc:1417 etc/inc/pfsense-utils.inc:1493
+#: etc/inc/pfsense-utils.inc:1546 etc/inc/pfsense-utils.inc:1551
#, php-format
msgid "DNSCACHE: Found old IP %1$s and new IP %2$s"
msgstr "DNSCACHE: Encontrado IP antigo %1$s e novo IP %2$s"
#: etc/inc/pkg-utils.inc:211 etc/inc/pkg-utils.inc:226
+#: etc/inc/pkg-utils.inc:244
msgid "Resyncing configuration for all packages."
msgstr "Ressincronizando configurações para todos os pacotes."
#: etc/inc/pkg-utils.inc:231 etc/inc/pkg-utils.inc:246
+#: etc/inc/pkg-utils.inc:264
msgid "Syncing packages:"
msgstr "Sincronizando pacotes:"
#: etc/inc/pkg-utils.inc:273 etc/inc/pkg-utils.inc:288
+#: etc/inc/pkg-utils.inc:306
#, php-format
msgid ""
"The %1$s package is missing required dependencies and must be reinstalled. "
@@ -980,6 +1139,8 @@ msgstr ""
#: etc/inc/pkg-utils.inc:297 etc/inc/pkg-utils.inc:437
#: etc/inc/pkg-utils.inc:312 etc/inc/pkg-utils.inc:462
+#: etc/inc/pkg-utils.inc:464 etc/inc/pkg-utils.inc:330
+#: etc/inc/pkg-utils.inc:481
#, php-format
msgid ""
"The %s package is missing required dependencies and must be reinstalled."
@@ -988,6 +1149,7 @@ msgstr ""
"reinstalado."
#: etc/inc/pkg-utils.inc:404 etc/inc/pkg-utils.inc:429
+#: etc/inc/pkg-utils.inc:431 etc/inc/pkg-utils.inc:448
#, php-format
msgid ""
"The %s package is missing its configuration file and must be reinstalled."
@@ -996,25 +1158,31 @@ msgstr ""
"ser reinstalado."
#: etc/inc/pkg-utils.inc:563 usr/local/www/pkg_mgr_install.php:101
-#: etc/inc/pkg-utils.inc:589
+#: etc/inc/pkg-utils.inc:589 etc/inc/pkg-utils.inc:590
+#: usr/local/www/pkg_mgr_install.php:99 etc/inc/pkg-utils.inc:625
msgid "Beginning package installation."
msgstr "Iniciando instalação de pacote."
#: etc/inc/pkg-utils.inc:564 etc/inc/pkg-utils.inc:565
#: etc/inc/pkg-utils.inc:590 etc/inc/pkg-utils.inc:591
+#: etc/inc/pkg-utils.inc:592 etc/inc/pkg-utils.inc:626
+#: etc/inc/pkg-utils.inc:627
#, php-format
msgid "Beginning package installation for %s ."
msgstr "Iniciando instalação do pacote para %s ."
#: etc/inc/pkg-utils.inc:569 etc/inc/pkg-utils.inc:595
+#: etc/inc/pkg-utils.inc:596 etc/inc/pkg-utils.inc:631
msgid "Downloading package configuration file... "
msgstr "Download de arquivo de configuração de pacote..."
#: etc/inc/pkg-utils.inc:571 etc/inc/pkg-utils.inc:597
+#: etc/inc/pkg-utils.inc:598 etc/inc/pkg-utils.inc:633
msgid "Downloading package configuration file..."
msgstr "Download do arquivo de configuração de pacote..."
#: etc/inc/pkg-utils.inc:575 etc/inc/pkg-utils.inc:601
+#: etc/inc/pkg-utils.inc:602 etc/inc/pkg-utils.inc:637
msgid ""
"ERROR! Unable to fetch package configuration file. Aborting installation."
msgstr ""
@@ -1022,6 +1190,7 @@ msgstr ""
"instalação."
#: etc/inc/pkg-utils.inc:577 etc/inc/pkg-utils.inc:603
+#: etc/inc/pkg-utils.inc:604 etc/inc/pkg-utils.inc:639
msgid ""
"ERROR! Unable to fetch package configuration file. Aborting package "
"installation."
@@ -1030,6 +1199,7 @@ msgstr ""
"instalação de pacote."
#: etc/inc/pkg-utils.inc:579 etc/inc/pkg-utils.inc:605
+#: etc/inc/pkg-utils.inc:606 etc/inc/pkg-utils.inc:641
msgid ""
"failed!\n"
"\n"
@@ -1040,180 +1210,225 @@ msgstr ""
"Instalação abortada.\n"
#: etc/inc/pkg-utils.inc:591 etc/inc/pkg-utils.inc:617
+#: etc/inc/pkg-utils.inc:618 etc/inc/pkg-utils.inc:653
msgid "Saving updated package information..."
msgstr "Salvando informações atualizadas do pacote..."
#: etc/inc/pkg-utils.inc:595 etc/inc/pkg-utils.inc:621
+#: etc/inc/pkg-utils.inc:622 etc/inc/pkg-utils.inc:657
#, php-format
msgid "Installed %s package."
msgstr "Pacote %s instalado."
#: etc/inc/pkg-utils.inc:599 etc/inc/pkg-utils.inc:625
+#: etc/inc/pkg-utils.inc:626 etc/inc/pkg-utils.inc:661
#, php-format
msgid "Overwrote previous installation of %s."
msgstr "Sobrescreveu instalação anterior de %s."
#: etc/inc/pkg-utils.inc:600 etc/inc/pkg-utils.inc:626
+#: etc/inc/pkg-utils.inc:627 etc/inc/pkg-utils.inc:662
msgid "overwrite!"
msgstr "sobrescreva!"
#: etc/inc/pkg-utils.inc:612 etc/inc/pkg-utils.inc:638
+#: etc/inc/pkg-utils.inc:639 etc/inc/pkg-utils.inc:674
msgid "Failed to install package."
msgstr "Falha ao instalar pacote."
#: etc/inc/pkg-utils.inc:616 etc/inc/pkg-utils.inc:642
+#: etc/inc/pkg-utils.inc:643 etc/inc/pkg-utils.inc:678
msgid "Writing configuration... "
msgstr "Escrevendo a configuração..."
#: etc/inc/pkg-utils.inc:652 etc/inc/pkg-utils.inc:678
+#: etc/inc/pkg-utils.inc:679 etc/inc/pkg-utils.inc:714
#, php-format
msgid "The %s package is not installed.%sInstallation aborted."
msgstr "O pacote %s não está instalado.%sInstalação abortada."
#: etc/inc/pkg-utils.inc:667 etc/inc/pkg-utils.inc:693
+#: etc/inc/pkg-utils.inc:694 etc/inc/pkg-utils.inc:729
msgid "Installing"
msgstr "Instalando"
#: etc/inc/pkg-utils.inc:667 etc/inc/pkg-utils.inc:693
+#: etc/inc/pkg-utils.inc:694 etc/inc/pkg-utils.inc:729
msgid "and its dependencies."
msgstr "e suas dependências."
#: etc/inc/pkg-utils.inc:668 etc/inc/pkg-utils.inc:694
+#: etc/inc/pkg-utils.inc:695 etc/inc/pkg-utils.inc:730
msgid "Downloading"
msgstr "Fazendo download"
#: etc/inc/pkg-utils.inc:668 etc/inc/pkg-utils.inc:694
+#: etc/inc/pkg-utils.inc:695 etc/inc/pkg-utils.inc:730
msgid "and its dependencies... "
msgstr "e suas dependências..."
#: etc/inc/pkg-utils.inc:680 etc/inc/pkg-utils.inc:706
+#: etc/inc/pkg-utils.inc:707 etc/inc/pkg-utils.inc:742
msgid "Package WAS NOT installed properly."
msgstr "O pacote NÃO FOI instalado apropriadamente."
#: etc/inc/pkg-utils.inc:693 etc/inc/pkg-utils.inc:719
+#: etc/inc/pkg-utils.inc:720 etc/inc/pkg-utils.inc:755
msgid "Loading package configuration... "
msgstr "Carregando configuração de pacote... "
#: etc/inc/pkg-utils.inc:698 etc/inc/pkg-utils.inc:724
+#: etc/inc/pkg-utils.inc:725 etc/inc/pkg-utils.inc:760
msgid "Configuring package components...\n"
msgstr "Configurando componentes do pacote...\n"
#: etc/inc/pkg-utils.inc:704 etc/inc/pkg-utils.inc:1049
#: etc/inc/pkg-utils.inc:730 etc/inc/pkg-utils.inc:1086
+#: etc/inc/pkg-utils.inc:731 etc/inc/pkg-utils.inc:1087
+#: etc/inc/pkg-utils.inc:766 etc/inc/pkg-utils.inc:1122
msgid "System files... "
msgstr "Sistema de arquivos..."
#: etc/inc/pkg-utils.inc:716 etc/inc/pkg-utils.inc:742
+#: etc/inc/pkg-utils.inc:743 etc/inc/pkg-utils.inc:778
msgid "Additional files... "
msgstr "Arquivos adicionais..."
#: etc/inc/pkg-utils.inc:742 etc/inc/pkg-utils.inc:768
+#: etc/inc/pkg-utils.inc:769 etc/inc/pkg-utils.inc:804
msgid "Extracting tarball to -C for "
msgstr "Extraindo tarball para -C para"
#: etc/inc/pkg-utils.inc:748 etc/inc/pkg-utils.inc:774
+#: etc/inc/pkg-utils.inc:775 etc/inc/pkg-utils.inc:810
#, php-format
msgid "Changing file mode to %1$s for %2$s%3$s%4$s"
msgstr "Alterando modo de arquivo de %1$s para %2$s%3$s%4$s"
#: etc/inc/pkg-utils.inc:764 etc/inc/pkg-utils.inc:1025
#: etc/inc/pkg-utils.inc:790 etc/inc/pkg-utils.inc:1062
+#: etc/inc/pkg-utils.inc:791 etc/inc/pkg-utils.inc:1063
+#: etc/inc/pkg-utils.inc:826 etc/inc/pkg-utils.inc:1098
msgid "Loading package instructions..."
msgstr "Carregando instruções de pacote..."
#: etc/inc/pkg-utils.inc:779 etc/inc/pkg-utils.inc:805
+#: etc/inc/pkg-utils.inc:806 etc/inc/pkg-utils.inc:841
msgid "Custom commands..."
msgstr "Comandos personalizados..."
#: etc/inc/pkg-utils.inc:783 etc/inc/pkg-utils.inc:809
+#: etc/inc/pkg-utils.inc:810 etc/inc/pkg-utils.inc:845
msgid "Executing custom_php_global_functions()..."
msgstr "Executando custom_php_global_functions()..."
#: etc/inc/pkg-utils.inc:790 etc/inc/pkg-utils.inc:816
+#: etc/inc/pkg-utils.inc:817 etc/inc/pkg-utils.inc:852
msgid "Executing custom_php_install_command()..."
msgstr "Executando custom_php_install_command()..."
#: etc/inc/pkg-utils.inc:809 etc/inc/pkg-utils.inc:845
+#: etc/inc/pkg-utils.inc:846 etc/inc/pkg-utils.inc:881
msgid "Executing custom_php_resync_config_command()..."
msgstr "Executando custom_php_resync_config_command()..."
#: etc/inc/pkg-utils.inc:818 etc/inc/pkg-utils.inc:972
#: etc/inc/pkg-utils.inc:854 etc/inc/pkg-utils.inc:1009
+#: etc/inc/pkg-utils.inc:855 etc/inc/pkg-utils.inc:1010
+#: etc/inc/pkg-utils.inc:890 etc/inc/pkg-utils.inc:1045
msgid "Menu items... "
msgstr "Items de menu..."
#: etc/inc/pkg-utils.inc:834 etc/inc/pkg-utils.inc:870
+#: etc/inc/pkg-utils.inc:871 etc/inc/pkg-utils.inc:906
msgid "Integrated Tab items... "
msgstr "Itens de abas integrados..."
#: etc/inc/pkg-utils.inc:850 etc/inc/pkg-utils.inc:989
#: etc/inc/pkg-utils.inc:886 etc/inc/pkg-utils.inc:1026
+#: etc/inc/pkg-utils.inc:887 etc/inc/pkg-utils.inc:1027
+#: etc/inc/pkg-utils.inc:922 etc/inc/pkg-utils.inc:1062
msgid "Services... "
msgstr "Serviços... "
#: etc/inc/pkg-utils.inc:865 etc/inc/pkg-utils.inc:901
+#: etc/inc/pkg-utils.inc:902 etc/inc/pkg-utils.inc:937
msgid "Loading package configuration... failed!"
msgstr "Carregando configuração de pacote... falhou!"
#: etc/inc/pkg-utils.inc:865 etc/inc/pkg-utils.inc:901
+#: etc/inc/pkg-utils.inc:902 etc/inc/pkg-utils.inc:937
msgid "Installation aborted."
msgstr "Instalação abortada."
#: etc/inc/pkg-utils.inc:867 etc/inc/pkg-utils.inc:903
+#: etc/inc/pkg-utils.inc:904 etc/inc/pkg-utils.inc:939
msgid "Unable to load package configuration. Installation aborted."
msgstr ""
"Não foi possível carregar a configuração do pacote. Instalação abortada."
#: etc/inc/pkg-utils.inc:911 etc/inc/pkg-utils.inc:948
+#: etc/inc/pkg-utils.inc:949 etc/inc/pkg-utils.inc:984
#, php-format
msgid "Starting package deletion for %s..."
msgstr "Iniciando remoção do pacote para %s..."
#: etc/inc/pkg-utils.inc:931 etc/inc/pkg-utils.inc:968
+#: etc/inc/pkg-utils.inc:969 etc/inc/pkg-utils.inc:1004
#, php-format
msgid "The %s package is not installed.%sDeletion aborted."
msgstr "O pacote %s não está instalado.%sRemoção abortada."
#: etc/inc/pkg-utils.inc:942 etc/inc/pkg-utils.inc:979
+#: etc/inc/pkg-utils.inc:980 etc/inc/pkg-utils.inc:1015
#, php-format
msgid "Removing %s package... "
msgstr "Removendo pacote %s..."
#: etc/inc/pkg-utils.inc:943 etc/inc/pkg-utils.inc:980
+#: etc/inc/pkg-utils.inc:981 etc/inc/pkg-utils.inc:1016
#, php-format
msgid "Removing %s components..."
msgstr "Removendo componentes %s..."
#: etc/inc/pkg-utils.inc:955 etc/inc/pkg-utils.inc:992
+#: etc/inc/pkg-utils.inc:993 etc/inc/pkg-utils.inc:1028
msgid "Tabs items... "
msgstr "Itens de abas..."
#: etc/inc/pkg-utils.inc:1059 etc/inc/pkg-utils.inc:1096
+#: etc/inc/pkg-utils.inc:1097 etc/inc/pkg-utils.inc:1132
msgid "Deinstall commands... "
msgstr "Desinstalar comandos..."
#: etc/inc/pkg-utils.inc:1069 etc/inc/pkg-utils.inc:1106
+#: etc/inc/pkg-utils.inc:1107 etc/inc/pkg-utils.inc:1142
msgid "Removing package instructions..."
msgstr "Removendo instruções de pacote..."
#: etc/inc/pkg-utils.inc:1071 etc/inc/pkg-utils.inc:1108
+#: etc/inc/pkg-utils.inc:1109 etc/inc/pkg-utils.inc:1144
#, php-format
msgid "Remove '%s'"
msgstr "Remover '%s'"
#: etc/inc/pkg-utils.inc:1078 etc/inc/pkg-utils.inc:1115
+#: etc/inc/pkg-utils.inc:1116 etc/inc/pkg-utils.inc:1151
msgid "Auxiliary files... "
msgstr "Arquivos auxiliares..."
#: etc/inc/pkg-utils.inc:1092 etc/inc/pkg-utils.inc:1129
+#: etc/inc/pkg-utils.inc:1130 etc/inc/pkg-utils.inc:1165
msgid "Package XML... "
msgstr "Empacotar XML..."
#: etc/inc/pkg-utils.inc:1111 etc/inc/pkg-utils.inc:1148
+#: etc/inc/pkg-utils.inc:1149 etc/inc/pkg-utils.inc:1184
msgid "Configuration... "
msgstr "Configuração..."
#: etc/inc/pkg-utils.inc:1205 etc/inc/pkg-utils.inc:1242
+#: etc/inc/pkg-utils.inc:1243 etc/inc/pkg-utils.inc:1274
#, php-format
msgid ""
" >>> Unable to communicate with %1$s. Please verify DNS and interface "
@@ -1223,45 +1438,50 @@ msgstr ""
"configuração de interface, e se %2$s tem conectividade com a Internet "
"funcional."
-#: etc/inc/radius.inc:404
+#: etc/inc/radius.inc:404 etc/inc/radius.inc:406
msgid "Error sending request:"
msgstr "Erro enviando a requisição:"
-#: etc/inc/radius.inc:410
+#: etc/inc/radius.inc:410 etc/inc/radius.inc:412
msgid "RADIUS_ACCESS_ACCEPT is unexpected for accounting"
msgstr "RADIUS_ACCESS_ACCEPT é esperado para accounting"
-#: etc/inc/radius.inc:419
+#: etc/inc/radius.inc:419 etc/inc/radius.inc:421
msgid "RADIUS_ACCOUNTING_RESPONSE is unexpected for authentication"
msgstr "RADIUS_ACCOUNTING_RESPONSE é esperado para a autenticação"
-#: etc/inc/radius.inc:424
+#: etc/inc/radius.inc:424 etc/inc/radius.inc:426
#, php-format
msgid "Unexpected return value: %s"
msgstr "Valor de retorno inesperado: %s"
-#: etc/inc/services.inc:262 etc/inc/services.inc:333
+#: etc/inc/services.inc:262 etc/inc/services.inc:333 etc/inc/services.inc:360
+#: etc/inc/services.inc:369
#, php-format
msgid "DHCP leases restore failed exited with %1$s, the error is: %2$s%3$s"
msgstr ""
"Restauração de concessões DHCP falhou ao sair com %1$s, o erro é: %2$s%3$s"
-#: etc/inc/services.inc:275 etc/inc/services.inc:346
+#: etc/inc/services.inc:275 etc/inc/services.inc:346 etc/inc/services.inc:373
+#: etc/inc/services.inc:382
msgid "Starting DHCP service..."
msgstr "Iniciando serviço DHCP..."
-#: etc/inc/services.inc:282 etc/inc/services.inc:353
+#: etc/inc/services.inc:282 etc/inc/services.inc:353 etc/inc/services.inc:380
+#: etc/inc/services.inc:820
#, php-format
msgid "Error: cannot open dhcpd.conf in services_dhcpdv4_configure().%s"
msgstr ""
"Erro: não foi possível abrir dhcp.conf em services_dhcpdv4_configure().%s"
-#: etc/inc/services.inc:353 etc/inc/services.inc:434
+#: etc/inc/services.inc:353 etc/inc/services.inc:434 etc/inc/services.inc:461
+#: etc/inc/services.inc:463
msgid "Warning! DHCP Failover setup and no CARP virtual IP's defined!"
msgstr ""
"Atenção! Instalação de DHCP falhou e nenhum IP virtual do CARP definido!"
#: etc/inc/services.inc:949 etc/inc/services.inc:1078
+#: etc/inc/services.inc:1210 etc/inc/services.inc:1203
msgid "Could not write Igmpproxy configuration file!"
msgstr "O arquivo de configuração do Igmpproxy não pôde ser escrito!"
@@ -1270,43 +1490,53 @@ msgid "Started Igmpproxy service sucsesfully."
msgstr "Serviço Igmpproxy iniciado com sucesso."
#: etc/inc/services.inc:980 etc/inc/services.inc:1109
+#: etc/inc/services.inc:1241 etc/inc/services.inc:1235
msgid "Starting DHCP relay service..."
msgstr "Iniciando serviço de retransmição DHCP..."
#: etc/inc/services.inc:1096 etc/inc/services.inc:1223
+#: etc/inc/services.inc:1355 etc/inc/services.inc:1350
msgid "Starting DHCPv6 relay service..."
msgstr "Iniciando serviço de retransmissão DHCPv6..."
#: etc/inc/services.inc:1222 etc/inc/services.inc:1358
+#: etc/inc/services.inc:1493 etc/inc/services.inc:1489
msgid "Starting DynDNS clients..."
msgstr "Iniciando clientes DynDNS..."
#: etc/inc/services.inc:1255 etc/inc/services.inc:1392
+#: etc/inc/services.inc:1531 etc/inc/services.inc:1545
msgid "Starting DNS forwarder..."
msgstr "Iniciando encaminhadores DNS..."
#: etc/inc/services.inc:1324 etc/inc/services.inc:1507
+#: etc/inc/services.inc:1646 etc/inc/services.inc:1623
msgid "Starting SNMP daemon... "
msgstr "Iniciando daemon SNMP... "
#: etc/inc/services.inc:1329 etc/inc/services.inc:1512
+#: etc/inc/services.inc:1651 etc/inc/services.inc:1628
#, php-format
msgid "Error: cannot open snmpd.conf in services_snmpd_configure().%s"
msgstr "Erro: snmpd.conf não pôde ser aberto em services_snmpd_configure().%s"
#: etc/inc/services.inc:1875 etc/inc/services.inc:2067
+#: etc/inc/services.inc:1919 etc/inc/services.inc:1908
msgid "pfSense specific crontab entries"
msgstr "Entradas do crontab específicas do pfSense"
#: etc/inc/services.inc:1876 etc/inc/services.inc:2068
+#: etc/inc/services.inc:1920 etc/inc/services.inc:1909
msgid "Created:"
msgstr "Criado:"
#: etc/inc/services.inc:1890 etc/inc/services.inc:2082
+#: etc/inc/services.inc:1934 etc/inc/services.inc:1923
msgid "If possible do not add items to this file manually."
msgstr "Se possível não adicione itens a esse arquivo manualmente."
#: etc/inc/services.inc:1891 etc/inc/services.inc:2083
+#: etc/inc/services.inc:1935 etc/inc/services.inc:1924
msgid ""
"If you do so, this file must be terminated with a blank line (e.g. new line)"
msgstr ""
@@ -1314,20 +1544,24 @@ msgstr ""
"nova linha)"
#: etc/inc/services.inc:1934 etc/inc/services.inc:2126
+#: etc/inc/services.inc:1978 etc/inc/services.inc:1968
msgid "Starting UPnP service... "
msgstr "Iniciando serviço UPnP..."
#: etc/inc/services.inc:1969 etc/inc/services.inc:2161
+#: etc/inc/services.inc:2013 etc/inc/services.inc:2005
#, php-format
msgid "Installed cron job for %s"
msgstr "Instalado serviço cron para %s"
#: etc/inc/services.inc:1972 etc/inc/services.inc:2164
+#: etc/inc/services.inc:2016 etc/inc/services.inc:2008
#, php-format
msgid "Updated cron job for %s"
msgstr "Atualizado serviço cron para %s"
#: etc/inc/services.inc:1977 etc/inc/services.inc:2169
+#: etc/inc/services.inc:2021
#, php-format
msgid "Remvoed cron job for %s"
msgstr "Removido serviço cron para %s"
@@ -1349,27 +1583,36 @@ msgstr "O campo '%s' é requerido."
#: etc/inc/shaper.inc:318 etc/inc/shaper.inc:652 etc/inc/shaper.inc:1546
#: etc/inc/shaper.inc:1852 etc/inc/shaper.inc:2194 etc/inc/shaper.inc:2329
#: etc/inc/shaper.inc:2469 etc/inc/shaper.inc:2595 etc/inc/shaper.inc:2789
-#: etc/inc/shaper.inc:3031
+#: etc/inc/shaper.inc:3031 etc/inc/shaper.inc:3161
+#: usr/local/www/interfaces_ppps_edit.php:751
+#: usr/local/www/interfaces_ppps_edit.php:757
+#: usr/local/www/status_queues.php:151 etc/inc/shaper.inc:1547
+#: etc/inc/shaper.inc:1853 etc/inc/shaper.inc:2195 etc/inc/shaper.inc:2330
+#: etc/inc/shaper.inc:2470 etc/inc/shaper.inc:2596 etc/inc/shaper.inc:2790
+#: etc/inc/shaper.inc:3162
msgid "Bandwidth"
msgstr "Largura de banda"
#: etc/inc/shaper.inc:319 etc/inc/shaper.inc:1546 etc/inc/shaper.inc:2194
#: etc/inc/shaper.inc:2469 etc/inc/shaper.inc:2789 etc/inc/shaper.inc:320
#: etc/inc/shaper.inc:1548 etc/inc/shaper.inc:2196 etc/inc/shaper.inc:2471
-#: etc/inc/shaper.inc:2791
+#: etc/inc/shaper.inc:2791 etc/inc/shaper.inc:1549 etc/inc/shaper.inc:2197
+#: etc/inc/shaper.inc:2472 etc/inc/shaper.inc:2792
msgid "Bandwidthtype"
msgstr "Tipo de largura de banda"
#: etc/inc/shaper.inc:324 etc/inc/shaper.inc:1552 etc/inc/shaper.inc:2199
#: etc/inc/shaper.inc:2474 etc/inc/shaper.inc:2900 etc/inc/shaper.inc:325
#: etc/inc/shaper.inc:1554 etc/inc/shaper.inc:2201 etc/inc/shaper.inc:2476
-#: etc/inc/shaper.inc:2904
+#: etc/inc/shaper.inc:2904 etc/inc/shaper.inc:1555 etc/inc/shaper.inc:2202
+#: etc/inc/shaper.inc:2477
msgid "Bandwidth must be an integer."
msgstr "Largura de banda deve ser um inteiro."
#: etc/inc/shaper.inc:326 etc/inc/shaper.inc:1555 etc/inc/shaper.inc:2203
#: etc/inc/shaper.inc:2478 etc/inc/shaper.inc:327 etc/inc/shaper.inc:1557
-#: etc/inc/shaper.inc:2205 etc/inc/shaper.inc:2480
+#: etc/inc/shaper.inc:2205 etc/inc/shaper.inc:2480 etc/inc/shaper.inc:1558
+#: etc/inc/shaper.inc:2206 etc/inc/shaper.inc:2481
msgid "Bandwidth cannot be negative."
msgstr "A largura de banda não pode ser negativa."
@@ -1391,7 +1634,9 @@ msgstr "Tbrsize deve ser positivo."
#: etc/inc/shaper.inc:614 etc/inc/shaper.inc:1120 etc/inc/shaper.inc:3269
#: etc/inc/shaper.inc:3488 etc/inc/shaper.inc:615 etc/inc/shaper.inc:1121
-#: etc/inc/shaper.inc:3277 etc/inc/shaper.inc:3500
+#: etc/inc/shaper.inc:3277 etc/inc/shaper.inc:3500 etc/inc/shaper.inc:3432
+#: etc/inc/shaper.inc:3655 etc/inc/shaper.inc:1122 etc/inc/shaper.inc:3433
+#: etc/inc/shaper.inc:3656
msgid "Enable/Disable"
msgstr "Habilitar/Desabilitar"
@@ -1452,7 +1697,32 @@ msgstr "Habilitar/Desabilitar disciplina e suas filhas"
#: usr/local/www/firewall_aliases.php:168
#: usr/local/www/system_camanager.php:566
#: usr/local/www/load_balancer_pool_edit.php:189
-#: usr/local/www/load_balancer_pool.php:132
+#: usr/local/www/load_balancer_pool.php:132 etc/inc/shaper.inc:3150
+#: etc/inc/shaper.inc:3439 etc/inc/shaper.inc:3663 etc/inc/shaper.inc:3735
+#: usr/local/www/status_openvpn.php:214 usr/local/www/status_openvpn.php:265
+#: usr/local/www/load_balancer_relay_protocol_edit.php:193
+#: usr/local/www/interfaces_groups.php:95
+#: usr/local/www/load_balancer_relay_action_edit.php:408
+#: usr/local/www/load_balancer_monitor_edit.php:233
+#: usr/local/www/system_crlmanager.php:520
+#: usr/local/www/firewall_aliases_edit.php:584
+#: usr/local/www/load_balancer_virtual_server.php:127
+#: usr/local/www/system_gateways_edit.php:100
+#: usr/local/www/system_gateways_edit.php:497
+#: usr/local/www/status_gateways.php:73
+#: usr/local/www/services_captiveportal_filemanager.php:159
+#: usr/local/www/load_balancer_monitor.php:121
+#: usr/local/www/load_balancer_relay_protocol.php:132
+#: usr/local/www/load_balancer_virtual_server_edit.php:155
+#: usr/local/www/firewall_aliases.php:188
+#: usr/local/www/load_balancer_relay_action.php:138
+#: usr/local/www/load_balancer_pool_edit.php:187
+#: usr/local/www/load_balancer_pool.php:130
+#: usr/local/www/system_gateways_edit.php:499
+#: usr/local/www/system_camanager.php:590 usr/local/www/status_openvpn.php:313
+#: usr/local/www/system_certmanager.php:1062 etc/inc/shaper.inc:2794
+#: etc/inc/shaper.inc:3151 etc/inc/shaper.inc:3440 etc/inc/shaper.inc:3664
+#: etc/inc/shaper.inc:3736
msgid "Name"
msgstr "Nome"
@@ -1482,7 +1752,7 @@ msgid "The priority must be an integer between 1 and 15."
msgstr "A prioridade deve ser um inteiro entre 1 e 15."
#: etc/inc/shaper.inc:981 etc/inc/shaper.inc:2802 etc/inc/shaper.inc:982
-#: etc/inc/shaper.inc:2804
+#: etc/inc/shaper.inc:2804 etc/inc/shaper.inc:2805
msgid "Queue limit must be an integer"
msgstr "Limite da fila deve ser um inteiro"
@@ -1493,22 +1763,24 @@ msgstr "Limite da fila deve ser positivo"
#: etc/inc/shaper.inc:985 etc/inc/shaper.inc:987 etc/inc/shaper.inc:2804
#: etc/inc/shaper.inc:2806 etc/inc/shaper.inc:3573 etc/inc/shaper.inc:986
#: etc/inc/shaper.inc:988 etc/inc/shaper.inc:2808 etc/inc/shaper.inc:3585
+#: etc/inc/shaper.inc:3740 etc/inc/shaper.inc:2807 etc/inc/shaper.inc:2809
+#: etc/inc/shaper.inc:3741
msgid "Queue names must be alphanumeric and _ or - only."
msgstr "Nomes de filas devem ser alfanuméricos, _ ou - somente."
-#: etc/inc/shaper.inc:989 etc/inc/shaper.inc:990
+#: etc/inc/shaper.inc:989 etc/inc/shaper.inc:990 etc/inc/shaper.inc:991
msgid "Only one default queue per interface is allowed."
msgstr "Apenas uma fila padrão é permitida por interface."
-#: etc/inc/shaper.inc:1125 etc/inc/shaper.inc:1126
+#: etc/inc/shaper.inc:1125 etc/inc/shaper.inc:1126 etc/inc/shaper.inc:1127
msgid "Enable/Disable queue and its children"
msgstr "Habilitar/Desabilitar fila e suas filhas"
-#: etc/inc/shaper.inc:1129 etc/inc/shaper.inc:1130
+#: etc/inc/shaper.inc:1129 etc/inc/shaper.inc:1130 etc/inc/shaper.inc:1131
msgid "Queue Name"
msgstr "Nome da Fila"
-#: etc/inc/shaper.inc:1136 etc/inc/shaper.inc:1137
+#: etc/inc/shaper.inc:1136 etc/inc/shaper.inc:1137 etc/inc/shaper.inc:1138
msgid ""
"Enter the name of the queue here. Do not use spaces and limit the size to "
"15 characters."
@@ -1521,10 +1793,15 @@ msgstr ""
#: usr/local/www/system_gateway_groups.php:122 etc/inc/shaper.inc:1140
#: usr/local/www/interfaces_bridge_edit.php:363
#: usr/local/www/interfaces_bridge_edit.php:382
+#: usr/local/www/system_gateway_groups.php:123
+#: usr/local/www/interfaces_bridge_edit.php:364
+#: usr/local/www/interfaces_bridge_edit.php:383
+#: usr/local/www/interfaces_bridge_edit.php:365
+#: usr/local/www/interfaces_bridge_edit.php:384 etc/inc/shaper.inc:1141
msgid "Priority"
msgstr "Prioridade"
-#: etc/inc/shaper.inc:1143 etc/inc/shaper.inc:1144
+#: etc/inc/shaper.inc:1143 etc/inc/shaper.inc:1144 etc/inc/shaper.inc:1145
msgid ""
"For hfsc, the range is 0 to 7. The default is 1. Hfsc queues with a higher "
"priority are preferred in the case of overload."
@@ -1532,36 +1809,36 @@ msgstr ""
"Para hfsc, o intervalo é de 0 a 7. O padrão é 1. Filas Hfsc com maior "
"prioridade são preferidas no caso de sobrecarga."
-#: etc/inc/shaper.inc:1146 etc/inc/shaper.inc:1147
+#: etc/inc/shaper.inc:1146 etc/inc/shaper.inc:1147 etc/inc/shaper.inc:1148
msgid "Queue limit"
msgstr "Limite da Fila"
-#: etc/inc/shaper.inc:1150 etc/inc/shaper.inc:1151
+#: etc/inc/shaper.inc:1150 etc/inc/shaper.inc:1151 etc/inc/shaper.inc:1152
msgid "Queue limit in packets per second."
msgstr "Limite da Fila em pacotes por segundo."
-#: etc/inc/shaper.inc:1153 etc/inc/shaper.inc:1154
+#: etc/inc/shaper.inc:1153 etc/inc/shaper.inc:1154 etc/inc/shaper.inc:1155
msgid "Scheduler options"
msgstr "Opções do agendador"
#: etc/inc/shaper.inc:1158 etc/inc/shaper.inc:1161 etc/inc/shaper.inc:1159
-#: etc/inc/shaper.inc:1162
+#: etc/inc/shaper.inc:1162 etc/inc/shaper.inc:1160 etc/inc/shaper.inc:1163
msgid "Default queue"
msgstr "Fila padrão"
-#: etc/inc/shaper.inc:1168 etc/inc/shaper.inc:1169
+#: etc/inc/shaper.inc:1168 etc/inc/shaper.inc:1169 etc/inc/shaper.inc:1170
msgid "Random Early Detection"
msgstr "Detecção Antecipada Aleatória"
-#: etc/inc/shaper.inc:1173 etc/inc/shaper.inc:1174
+#: etc/inc/shaper.inc:1173 etc/inc/shaper.inc:1174 etc/inc/shaper.inc:1175
msgid "Random Early Detection In and Out"
msgstr "Detecção Randômica Recente de Entrada e Saída"
-#: etc/inc/shaper.inc:1178 etc/inc/shaper.inc:1179
+#: etc/inc/shaper.inc:1178 etc/inc/shaper.inc:1179 etc/inc/shaper.inc:1180
msgid "Explicit Congestion Notification"
msgstr "Notificação de Congestionamento Explícita"
-#: etc/inc/shaper.inc:1179 etc/inc/shaper.inc:1180
+#: etc/inc/shaper.inc:1179 etc/inc/shaper.inc:1180 etc/inc/shaper.inc:1181
msgid "Select options for this queue"
msgstr "Selecione opções para essa fila"
@@ -1715,109 +1992,223 @@ msgstr "Selecione opções para essa fila"
#: usr/local/www/interfaces_gre_edit.php:218
#: usr/local/www/load_balancer_pool.php:137
#: usr/local/www/vpn_ipsec_phase1.php:588
-#: usr/local/www/services_dhcpv6.php:901
+#: usr/local/www/services_dhcpv6.php:901 etc/inc/shaper.inc:3225
+#: etc/inc/shaper.inc:3668 usr/local/www/vpn_pppoe_edit.php:445
+#: usr/local/www/system_routes_edit.php:308
+#: usr/local/www/system_gateway_groups_edit.php:334
+#: usr/local/www/interfaces_vlan_edit.php:180
+#: usr/local/www/services_dnsmasq.php:247
+#: usr/local/www/services_dnsmasq.php:335
+#: usr/local/www/firewall_nat_out.php:360
+#: usr/local/www/system_groupmanager.php:406
+#: usr/local/www/services_dnsmasq_edit.php:219
+#: usr/local/www/services_dnsmasq_edit.php:240
+#: usr/local/www/load_balancer_relay_protocol_edit.php:216
+#: usr/local/www/firewall_nat_1to1_edit.php:445
+#: usr/local/www/services_dhcpv6_edit.php:230
+#: usr/local/www/services_captiveportal_ip.php:116
+#: usr/local/www/firewall_nat_npt_edit.php:265 usr/local/www/vpn_pppoe.php:105
+#: usr/local/www/interfaces_groups.php:97
+#: usr/local/www/services_captiveportal_hostname_edit.php:181
+#: usr/local/www/interfaces_qinq_edit.php:338
+#: usr/local/www/interfaces_gif_edit.php:209 usr/local/www/diag_ipsec.php:107
+#: usr/local/www/firewall_nat.php:208 usr/local/www/interfaces_qinq.php:120
+#: usr/local/www/load_balancer_relay_action_edit.php:414
+#: usr/local/www/interfaces_ppps.php:111
+#: usr/local/www/load_balancer_monitor_edit.php:239
+#: usr/local/www/services_captiveportal_mac.php:166
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:151
+#: usr/local/www/services_captiveportal_mac_edit.php:180
+#: usr/local/www/firewall_schedule_edit.php:792
+#: usr/local/www/firewall_schedule_edit.php:997
+#: usr/local/www/interfaces_bridge.php:110
+#: usr/local/www/interfaces_ppps_edit.php:468
+#: usr/local/www/interfaces_lagg.php:115
+#: usr/local/www/firewall_aliases_edit.php:460
+#: usr/local/www/firewall_aliases_edit.php:599
+#: usr/local/www/firewall_aliases_edit.php:634
+#: usr/local/www/interfaces_lagg_edit.php:209
+#: usr/local/www/vpn_openvpn_csc.php:341 usr/local/www/vpn_openvpn_csc.php:673
+#: usr/local/www/services_captiveportal_hostname.php:121
+#: usr/local/www/firewall_rules.php:371 usr/local/www/interfaces_gre.php:110
+#: usr/local/www/load_balancer_virtual_server.php:133
+#: usr/local/www/interfaces_wireless.php:109
+#: usr/local/www/system_gateway_groups.php:124
+#: usr/local/www/status_services.php:241
+#: usr/local/www/system_gateways_edit.php:619
+#: usr/local/www/status_gateways.php:79
+#: usr/local/www/load_balancer_monitor.php:123
+#: usr/local/www/services_captiveportal_ip_edit.php:206
+#: usr/local/www/load_balancer_relay_protocol.php:135
+#: usr/local/www/vpn_openvpn_server.php:823
+#: usr/local/www/vpn_openvpn_server.php:1634 usr/local/www/status_upnp.php:89
+#: usr/local/www/services_dhcp.php:1135
+#: usr/local/www/load_balancer_virtual_server_edit.php:161
+#: usr/local/www/interfaces_bridge_edit.php:283
+#: usr/local/www/firewall_aliases.php:190
+#: usr/local/www/load_balancer_relay_action.php:141
+#: usr/local/www/interfaces_groups_edit.php:260
+#: usr/local/www/services_captiveportal_zones_edit.php:108
+#: usr/local/www/vpn_ipsec_phase2.php:625
+#: usr/local/www/interfaces_vlan.php:111
+#: usr/local/www/firewall_nat_edit.php:775
+#: usr/local/www/services_dhcp_edit.php:253 usr/local/www/interfaces.php:1336
+#: usr/local/www/services_captiveportal_zones.php:56
+#: usr/local/www/vpn_openvpn_client.php:596
+#: usr/local/www/vpn_openvpn_client.php:921
+#: usr/local/www/status_gateway_groups.php:77
+#: usr/local/www/load_balancer_pool_edit.php:202
+#: usr/local/www/firewall_virtual_ip_edit.php:471
+#: usr/local/www/interfaces_gif.php:109
+#: usr/local/www/load_balancer_pool.php:135
+#: usr/local/www/firewall_virtual_ip.php:191
+#: usr/local/www/vpn_ipsec_phase1.php:587
+#: usr/local/www/services_dhcpv6.php:832 usr/local/www/services_rfc2136.php:81
+#: usr/local/www/status_services.php:239
+#: usr/local/www/system_gateways_edit.php:623
+#: usr/local/www/services_captiveportal_ip_edit.php:200
+#: usr/local/www/vpn_pppoe.php:106
+#: usr/local/www/interfaces_wireless_edit.php:187
+#: usr/local/www/services_captiveportal_zones_edit.php:105
+#: usr/local/www/vpn_openvpn_client.php:615
+#: usr/local/www/vpn_openvpn_client.php:940
+#: usr/local/www/services_dhcpv6_edit.php:233
+#: usr/local/www/services_dyndns_edit.php:362
+#: usr/local/www/firewall_rules_edit.php:1103
+#: usr/local/www/interfaces_qinq.php:123
+#: usr/local/www/interfaces_vlan_edit.php:183
+#: usr/local/www/interfaces_ppps_edit.php:474
+#: usr/local/www/firewall_virtual_ip.php:205
+#: usr/local/www/interfaces_lagg_edit.php:222
+#: usr/local/www/firewall_nat_edit.php:770
+#: usr/local/www/interfaces_lagg.php:119 usr/local/www/interfaces_vlan.php:117
+#: usr/local/www/interfaces_gif_edit.php:220
+#: usr/local/www/services_dhcp_edit.php:381
+#: usr/local/www/firewall_virtual_ip_edit.php:463
+#: usr/local/www/diag_ipsec.php:109 usr/local/www/interfaces_bridge.php:116
+#: usr/local/www/interfaces_wireless.php:111
+#: usr/local/www/system_routes.php:133 usr/local/www/vpn_pppoe_edit.php:448
+#: usr/local/www/services_dhcp.php:792 usr/local/www/services_dhcp.php:1154
+#: usr/local/www/services_captiveportal_mac_edit.php:193
+#: usr/local/www/services_dhcpv6.php:853
+#: usr/local/www/interfaces_bridge_edit.php:284
+#: usr/local/www/services_dnsmasq.php:272
+#: usr/local/www/services_dnsmasq.php:360
+#: usr/local/www/services_captiveportal_mac.php:176
+#: usr/local/www/vpn_ipsec_phase1.php:608 usr/local/www/interfaces_gre.php:114
+#: usr/local/www/firewall_nat_out_edit.php:651
+#: usr/local/www/vpn_openvpn_server.php:850
+#: usr/local/www/vpn_openvpn_server.php:1686
+#: usr/local/www/vpn_ipsec_phase2.php:646 usr/local/www/services_dyndns.php:93
+#: usr/local/www/interfaces_gif.php:113
+#: usr/local/www/interfaces_qinq_edit.php:341
+#: usr/local/www/interfaces.php:1349 etc/inc/shaper.inc:1183
+#: etc/inc/shaper.inc:3226 etc/inc/shaper.inc:3669
msgid "Description"
msgstr "Descrição"
-#: etc/inc/shaper.inc:1207 etc/inc/shaper.inc:1209
+#: etc/inc/shaper.inc:1207 etc/inc/shaper.inc:1209 etc/inc/shaper.inc:1210
msgid "Bandwidth:"
msgstr "Largura de banda:"
-#: etc/inc/shaper.inc:1212 etc/inc/shaper.inc:1214
+#: etc/inc/shaper.inc:1212 etc/inc/shaper.inc:1214 etc/inc/shaper.inc:1215
msgid "Priority: on"
msgstr "Prioridade: ligada"
-#: etc/inc/shaper.inc:1215 etc/inc/shaper.inc:1217
+#: etc/inc/shaper.inc:1215 etc/inc/shaper.inc:1217 etc/inc/shaper.inc:1218
msgid "Default: on"
msgstr "Padrão: ligado"
#: etc/inc/shaper.inc:1222 etc/inc/shaper.inc:1223 etc/inc/shaper.inc:1224
-#: etc/inc/shaper.inc:1225
+#: etc/inc/shaper.inc:1225 etc/inc/shaper.inc:1226
msgid "Delete queue from interface"
msgstr "Apagar fila da interface"
#: etc/inc/shaper.inc:1559 etc/inc/shaper.inc:2207 etc/inc/shaper.inc:2483
#: etc/inc/shaper.inc:1561 etc/inc/shaper.inc:2209 etc/inc/shaper.inc:2485
+#: etc/inc/shaper.inc:1562 etc/inc/shaper.inc:2210 etc/inc/shaper.inc:2486
msgid "Bandwidth in percentage should be between 1 and 100 bounds."
msgstr "Tamanho de banda em porcentagem deve ser limitado de 1 a 100."
-#: etc/inc/shaper.inc:1576 etc/inc/shaper.inc:1578
+#: etc/inc/shaper.inc:1576 etc/inc/shaper.inc:1578 etc/inc/shaper.inc:1579
msgid "upperlimit service curve defined but missing (d) value"
msgstr "curva de serviço upperlimit definido mas o valor (d) está faltando"
-#: etc/inc/shaper.inc:1578 etc/inc/shaper.inc:1580
+#: etc/inc/shaper.inc:1578 etc/inc/shaper.inc:1580 etc/inc/shaper.inc:1581
msgid ""
"upperlimit service curve defined but missing initial bandwidth (m1) value"
msgstr ""
"curva de serviço upperlimit definido mas o valor do tamanho de banda inicial "
"(m1) está faltando"
-#: etc/inc/shaper.inc:1580 etc/inc/shaper.inc:1582
+#: etc/inc/shaper.inc:1580 etc/inc/shaper.inc:1582 etc/inc/shaper.inc:1583
msgid "upperlimit m1 value needs to be Kb, Mb, Gb, or %"
msgstr "o valor m1 do upperlimit precisa ser Kb, Gb, ou %"
-#: etc/inc/shaper.inc:1582 etc/inc/shaper.inc:1584
+#: etc/inc/shaper.inc:1582 etc/inc/shaper.inc:1584 etc/inc/shaper.inc:1585
msgid "upperlimit d value needs to be numeric"
msgstr "o valor d do upperlimit precisa ser numérico"
-#: etc/inc/shaper.inc:1584 etc/inc/shaper.inc:1586
+#: etc/inc/shaper.inc:1584 etc/inc/shaper.inc:1586 etc/inc/shaper.inc:1587
msgid "upperlimit m2 value needs to be Kb, Mb, Gb, or %"
msgstr "valor m2 de upperlimit precisa ser Kb, Mb, Gb, ou %"
-#: etc/inc/shaper.inc:1598 etc/inc/shaper.inc:1600
+#: etc/inc/shaper.inc:1598 etc/inc/shaper.inc:1600 etc/inc/shaper.inc:1601
msgid "linkshare service curve defined but missing (d) value"
msgstr "curva de serviço linkshare definida mas o valor (d) está faltando"
-#: etc/inc/shaper.inc:1600 etc/inc/shaper.inc:1602
+#: etc/inc/shaper.inc:1600 etc/inc/shaper.inc:1602 etc/inc/shaper.inc:1603
msgid ""
"linkshare service curve defined but missing initial bandwidth (m1) value"
msgstr ""
"curva de serviço linkshare definida mas o valor da largura de banda inicial "
"(m1) está faltando"
-#: etc/inc/shaper.inc:1602 etc/inc/shaper.inc:1604
+#: etc/inc/shaper.inc:1602 etc/inc/shaper.inc:1604 etc/inc/shaper.inc:1605
msgid "linkshare m1 value needs to be Kb, Mb, Gb, or %"
msgstr "O valor m1 de linkshare precisa ser Kb, Mb, Gb, ou %"
-#: etc/inc/shaper.inc:1604 etc/inc/shaper.inc:1606
+#: etc/inc/shaper.inc:1604 etc/inc/shaper.inc:1606 etc/inc/shaper.inc:1607
msgid "linkshare d value needs to be numeric"
msgstr "o valor d de linkshare precisa ser numérico"
-#: etc/inc/shaper.inc:1606 etc/inc/shaper.inc:1608
+#: etc/inc/shaper.inc:1606 etc/inc/shaper.inc:1608 etc/inc/shaper.inc:1609
msgid "linkshare m2 value needs to be Kb, Mb, Gb, or %"
msgstr "o valor m2 de linkshare precisa ser Kb, Mb, Gb, ou %"
-#: etc/inc/shaper.inc:1608 etc/inc/shaper.inc:1610
+#: etc/inc/shaper.inc:1608 etc/inc/shaper.inc:1610 etc/inc/shaper.inc:1611
msgid "realtime service curve defined but missing (d) value"
msgstr "curva de serviço realtime definida mas o valor (d) está faltando"
-#: etc/inc/shaper.inc:1610 etc/inc/shaper.inc:1612
+#: etc/inc/shaper.inc:1610 etc/inc/shaper.inc:1612 etc/inc/shaper.inc:1613
msgid "realtime service curve defined but missing initial bandwidth (m1) value"
msgstr ""
"curva de serviço realtime definida mas o valor da largura de banda inicial "
"(m1) está faltando"
-#: etc/inc/shaper.inc:1625 etc/inc/shaper.inc:1627
+#: etc/inc/shaper.inc:1625 etc/inc/shaper.inc:1627 etc/inc/shaper.inc:1628
msgid "realtime m1 value needs to be Kb, Mb, Gb, or %"
msgstr "o valor m1 de realtime precisa ser Kb, Mb, Gb, ou %"
-#: etc/inc/shaper.inc:1627 etc/inc/shaper.inc:1629
+#: etc/inc/shaper.inc:1627 etc/inc/shaper.inc:1629 etc/inc/shaper.inc:1630
msgid "realtime d value needs to be numeric"
msgstr "o valor d de realtime precisa ser numérico"
-#: etc/inc/shaper.inc:1629 etc/inc/shaper.inc:1631
+#: etc/inc/shaper.inc:1629 etc/inc/shaper.inc:1631 etc/inc/shaper.inc:1632
msgid "realtime m2 value needs to be Kb, Mb, Gb, or %"
msgstr "o valor m2 de realtime precisa ser Kb, Mb, Gb, ou %"
#: etc/inc/shaper.inc:1858 etc/inc/shaper.inc:2336 etc/inc/shaper.inc:2602
#: etc/inc/shaper.inc:3039 etc/inc/shaper.inc:1860 etc/inc/shaper.inc:2338
-#: etc/inc/shaper.inc:2604 etc/inc/shaper.inc:3047
+#: etc/inc/shaper.inc:2604 etc/inc/shaper.inc:3047 etc/inc/shaper.inc:1861
+#: etc/inc/shaper.inc:2339 etc/inc/shaper.inc:2605
msgid "Gbit/s"
msgstr "Gbits/s"
#: etc/inc/shaper.inc:1862 etc/inc/shaper.inc:2340 etc/inc/shaper.inc:2606
#: etc/inc/shaper.inc:3035 etc/inc/shaper.inc:1864 etc/inc/shaper.inc:2342
-#: etc/inc/shaper.inc:2608 etc/inc/shaper.inc:3043
+#: etc/inc/shaper.inc:2608 etc/inc/shaper.inc:3043 etc/inc/shaper.inc:1865
+#: etc/inc/shaper.inc:2343 etc/inc/shaper.inc:2609
msgid "Mbit/s"
msgstr "Mbit/s"
@@ -1827,51 +2218,56 @@ msgstr "Mbit/s"
#: etc/inc/shaper.inc:2346 etc/inc/shaper.inc:2612 etc/inc/shaper.inc:3039
#: usr/local/www/services_captiveportal.php:565
#: usr/local/www/services_captiveportal.php:569
+#: usr/local/www/services_captiveportal.php:563
+#: usr/local/www/services_captiveportal.php:567 etc/inc/shaper.inc:1869
+#: etc/inc/shaper.inc:2347 etc/inc/shaper.inc:2613
msgid "Kbit/s"
msgstr "Kbit/s"
#: etc/inc/shaper.inc:1870 etc/inc/shaper.inc:2348 etc/inc/shaper.inc:2614
#: etc/inc/shaper.inc:3043 etc/inc/shaper.inc:1872 etc/inc/shaper.inc:2350
-#: etc/inc/shaper.inc:2616 etc/inc/shaper.inc:3051
+#: etc/inc/shaper.inc:2616 etc/inc/shaper.inc:3051 etc/inc/shaper.inc:1873
+#: etc/inc/shaper.inc:2351 etc/inc/shaper.inc:2617
msgid "Bit/s"
msgstr "Bit/s"
#: etc/inc/shaper.inc:1876 etc/inc/shaper.inc:2354 etc/inc/shaper.inc:2620
#: etc/inc/shaper.inc:1878 etc/inc/shaper.inc:2356 etc/inc/shaper.inc:2622
+#: etc/inc/shaper.inc:1879 etc/inc/shaper.inc:2357 etc/inc/shaper.inc:2623
msgid "Choose the amount of bandwidth for this queue"
msgstr "Escolha a largura de banda total para essa fila"
-#: etc/inc/shaper.inc:1879 etc/inc/shaper.inc:1881
+#: etc/inc/shaper.inc:1879 etc/inc/shaper.inc:1881 etc/inc/shaper.inc:1882
msgid "Service Curve (sc)"
msgstr "Curva de Serviço (sc)"
-#: etc/inc/shaper.inc:1886 etc/inc/shaper.inc:1888
+#: etc/inc/shaper.inc:1886 etc/inc/shaper.inc:1888 etc/inc/shaper.inc:1889
msgid "Upperlimit:"
msgstr "Upperlimit:"
-#: etc/inc/shaper.inc:1901 etc/inc/shaper.inc:1903
+#: etc/inc/shaper.inc:1901 etc/inc/shaper.inc:1903 etc/inc/shaper.inc:1904
msgid "The maximum allowed bandwidth for the queue."
msgstr "A de largura de banda máxima permitida para esta fila."
-#: etc/inc/shaper.inc:1905 etc/inc/shaper.inc:1907
+#: etc/inc/shaper.inc:1905 etc/inc/shaper.inc:1907 etc/inc/shaper.inc:1908
msgid "Real time:"
msgstr "Tempo real:"
-#: etc/inc/shaper.inc:1920 etc/inc/shaper.inc:1922
+#: etc/inc/shaper.inc:1920 etc/inc/shaper.inc:1922 etc/inc/shaper.inc:1923
msgid "The minimum required bandwidth for the queue."
msgstr "A largura de banda mínima requerida para esta fila."
-#: etc/inc/shaper.inc:1924 etc/inc/shaper.inc:1926
+#: etc/inc/shaper.inc:1924 etc/inc/shaper.inc:1926 etc/inc/shaper.inc:1927
msgid "Link share:"
msgstr "Compartilhar Link:"
-#: etc/inc/shaper.inc:1939 etc/inc/shaper.inc:1941
+#: etc/inc/shaper.inc:1939 etc/inc/shaper.inc:1941 etc/inc/shaper.inc:1942
msgid "The bandwidth share of a backlogged queue - this overrides priority."
msgstr ""
"A largura de banda compartilhada de uma fila de backlog - isso substitui a "
"prioridade."
-#: etc/inc/shaper.inc:1941 etc/inc/shaper.inc:1943
+#: etc/inc/shaper.inc:1941 etc/inc/shaper.inc:1943 etc/inc/shaper.inc:1944
msgid ""
"The format for service curve specifications is (m1, d, m2). m2 controls the "
"bandwidth assigned to the queue. m1 and d are optional and can be used to "
@@ -1884,40 +2280,41 @@ msgstr ""
"os primeiros d milisegundos a fila obtém a largura de banda dado como m1, "
"depois o valor dado em m2."
-#: etc/inc/shaper.inc:2190 etc/inc/shaper.inc:2192
+#: etc/inc/shaper.inc:2190 etc/inc/shaper.inc:2192 etc/inc/shaper.inc:2193
msgid "Priority must be an integer between 1 and 7."
msgstr "A prioridade deve ser um inteiro entre 1 e 7."
#: etc/inc/shaper.inc:2356 etc/inc/shaper.inc:2622 etc/inc/shaper.inc:2358
-#: etc/inc/shaper.inc:2624
+#: etc/inc/shaper.inc:2624 etc/inc/shaper.inc:2359 etc/inc/shaper.inc:2625
msgid "Scheduler specific options"
msgstr "Opções específicas do Agendador"
-#: etc/inc/shaper.inc:2360 etc/inc/shaper.inc:2362
+#: etc/inc/shaper.inc:2360 etc/inc/shaper.inc:2362 etc/inc/shaper.inc:2363
msgid "Borrow from other queues when available"
msgstr "Emprestar de outras filas quando disponíveis"
-#: etc/inc/shaper.inc:2465 etc/inc/shaper.inc:2467
+#: etc/inc/shaper.inc:2465 etc/inc/shaper.inc:2467 etc/inc/shaper.inc:2468
msgid "Priority must be an integer between 1 and 255."
msgstr "Prioridade deve ser um inteiro entre 1 e 255."
-#: etc/inc/shaper.inc:2628 etc/inc/shaper.inc:2630
+#: etc/inc/shaper.inc:2628 etc/inc/shaper.inc:2630 etc/inc/shaper.inc:2631
msgid "Number of buckets available."
msgstr "Número de buckets disponíveis."
-#: etc/inc/shaper.inc:2633 etc/inc/shaper.inc:2635
+#: etc/inc/shaper.inc:2633 etc/inc/shaper.inc:2635 etc/inc/shaper.inc:2636
msgid "Bandwidth limit for hosts to not saturate link."
msgstr "Limite da largura de banda para hosts não saturarem o link."
-#: etc/inc/shaper.inc:2797 etc/inc/shaper.inc:2799
+#: etc/inc/shaper.inc:2797 etc/inc/shaper.inc:2799 etc/inc/shaper.inc:2800
msgid "Plr must be an integer between 1 and 100."
msgstr "Plr deve ser um inteiro entre 1 e 100."
-#: etc/inc/shaper.inc:2800 etc/inc/shaper.inc:2802
+#: etc/inc/shaper.inc:2800 etc/inc/shaper.inc:2802 etc/inc/shaper.inc:2803
msgid "Buckets must be an integer between 16 and 65535."
msgstr "Buckets deve ser um inteiro entre 16 e 65535."
-#: etc/inc/shaper.inc:2902 etc/inc/shaper.inc:2906
+#: etc/inc/shaper.inc:2902 etc/inc/shaper.inc:2906 etc/inc/shaper.inc:2921
+#: etc/inc/shaper.inc:2922
msgid "Delay must be an integer."
msgstr "Espera deve ser um inteiro."
@@ -1929,31 +2326,45 @@ msgstr "Espera deve ser um inteiro."
#: usr/local/www/vpn_ipsec_phase1.php:813 etc/inc/shaper.inc:3013
#: usr/local/www/services_unbound.php:150 usr/local/www/interfaces.php:1338
#: usr/local/www/services_snmp.php:274 usr/local/www/services_snmp.php:334
-#: usr/local/www/vpn_ipsec_phase1.php:826
+#: usr/local/www/vpn_ipsec_phase1.php:826 etc/inc/shaper.inc:3143
+#: usr/local/www/services_dnsmasq.php:155 usr/local/www/diag_routes.php:61
+#: usr/local/www/system_firmware.php:138 usr/local/www/interfaces.php:1326
+#: usr/local/www/services_snmp.php:275 usr/local/www/services_snmp.php:335
+#: usr/local/www/vpn_ipsec_phase1.php:823
+#: usr/local/www/system_firmware.php:133
+#: usr/local/www/services_dnsmasq.php:159
+#: usr/local/www/vpn_ipsec_phase1.php:844 usr/local/www/services_snmp.php:285
+#: usr/local/www/services_snmp.php:345 usr/local/www/interfaces.php:1339
+#: etc/inc/shaper.inc:3144
msgid "Enable"
msgstr "Habilitar"
-#: etc/inc/shaper.inc:3014 etc/inc/shaper.inc:3018
+#: etc/inc/shaper.inc:3014 etc/inc/shaper.inc:3018 etc/inc/shaper.inc:3148
+#: etc/inc/shaper.inc:3149
msgid "Enable limiter and its children"
msgstr "Habilitar/Desabilitar limitador e seus dependentes"
#: etc/inc/shaper.inc:3046 etc/inc/shaper.inc:3283 etc/inc/shaper.inc:3054
-#: etc/inc/shaper.inc:3295
+#: etc/inc/shaper.inc:3295 etc/inc/shaper.inc:3202 etc/inc/shaper.inc:3450
+#: etc/inc/shaper.inc:3203 etc/inc/shaper.inc:3451
msgid "Mask"
msgstr "Máscara"
#: etc/inc/shaper.inc:3056 etc/inc/shaper.inc:3293 etc/inc/shaper.inc:3064
-#: etc/inc/shaper.inc:3305
+#: etc/inc/shaper.inc:3305 etc/inc/shaper.inc:3212 etc/inc/shaper.inc:3460
+#: etc/inc/shaper.inc:3213 etc/inc/shaper.inc:3461
msgid "Source addresses"
msgstr "Endereços fonte"
#: etc/inc/shaper.inc:3060 etc/inc/shaper.inc:3297 etc/inc/shaper.inc:3068
-#: etc/inc/shaper.inc:3309
+#: etc/inc/shaper.inc:3309 etc/inc/shaper.inc:3216 etc/inc/shaper.inc:3464
+#: etc/inc/shaper.inc:3217 etc/inc/shaper.inc:3465
msgid "Destination addresses"
msgstr "Endereços de destino"
#: etc/inc/shaper.inc:3063 etc/inc/shaper.inc:3300 etc/inc/shaper.inc:3071
-#: etc/inc/shaper.inc:3312
+#: etc/inc/shaper.inc:3312 etc/inc/shaper.inc:3219 etc/inc/shaper.inc:3467
+#: etc/inc/shaper.inc:3220 etc/inc/shaper.inc:3468
msgid ""
"If 'source' or 'destination' is chosen, \n"
"a dynamic pipe with the bandwidth, delay, packet loss and queue size given "
@@ -2006,7 +2417,35 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:779
#: usr/local/www/services_dhcp_edit.php:254
#: usr/local/www/firewall_virtual_ip_edit.php:529
-#: usr/local/www/interfaces_gre_edit.php:221
+#: usr/local/www/interfaces_gre_edit.php:221 etc/inc/shaper.inc:3231
+#: etc/inc/shaper.inc:3479 etc/inc/shaper.inc:3674
+#: usr/local/www/system_routes_edit.php:311
+#: usr/local/www/system_gateway_groups_edit.php:338
+#: usr/local/www/interfaces_vlan_edit.php:183
+#: usr/local/www/services_dnsmasq_edit.php:222
+#: usr/local/www/firewall_nat_1to1_edit.php:448
+#: usr/local/www/services_dhcpv6_edit.php:233
+#: usr/local/www/firewall_nat_npt_edit.php:268
+#: usr/local/www/interfaces_qinq_edit.php:343
+#: usr/local/www/interfaces_gif_edit.php:212
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:154
+#: usr/local/www/firewall_schedule_edit.php:795
+#: usr/local/www/firewall_schedule_edit.php:969
+#: usr/local/www/firewall_aliases_edit.php:604
+#: usr/local/www/interfaces_groups_edit.php:265
+#: usr/local/www/firewall_nat_edit.php:778
+#: usr/local/www/services_dhcp_edit.php:256
+#: usr/local/www/firewall_virtual_ip_edit.php:474
+#: usr/local/www/interfaces_wireless_edit.php:190
+#: usr/local/www/services_dhcpv6_edit.php:236
+#: usr/local/www/interfaces_vlan_edit.php:186
+#: usr/local/www/firewall_nat_edit.php:773
+#: usr/local/www/interfaces_gif_edit.php:223
+#: usr/local/www/services_dhcp_edit.php:384
+#: usr/local/www/firewall_virtual_ip_edit.php:466
+#: usr/local/www/firewall_nat_out_edit.php:654
+#: usr/local/www/interfaces_qinq_edit.php:346 etc/inc/shaper.inc:3232
+#: etc/inc/shaper.inc:3480 etc/inc/shaper.inc:3675
msgid "You may enter a description here for your reference (not parsed)."
msgstr ""
"Você pode inserir uma descrição aqui para sua referência (não analisado)."
@@ -2015,15 +2454,23 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:281
#: usr/local/www/interfaces_ppps_edit.php:738 etc/inc/shaper.inc:3089
#: etc/inc/shaper.inc:3330 usr/local/www/interfaces_bridge_edit.php:290
+#: etc/inc/shaper.inc:3237 etc/inc/shaper.inc:3485
+#: usr/local/www/interfaces_ppps_edit.php:739
+#: usr/local/www/interfaces_bridge_edit.php:291
+#: usr/local/www/interfaces_ppps_edit.php:745
+#: usr/local/www/interfaces_bridge_edit.php:292 etc/inc/shaper.inc:3238
+#: etc/inc/shaper.inc:3486
msgid "Show advanced options"
msgstr "Exibir opções avançadas"
#: etc/inc/shaper.inc:3085 etc/inc/shaper.inc:3093
-#: usr/local/www/status_ntpd.php:115
+#: usr/local/www/status_ntpd.php:115 etc/inc/shaper.inc:3241
+#: usr/local/www/status_ntpd.php:131 etc/inc/shaper.inc:3242
msgid "Delay"
msgstr "Atraso"
-#: etc/inc/shaper.inc:3089 etc/inc/shaper.inc:3097
+#: etc/inc/shaper.inc:3089 etc/inc/shaper.inc:3097 etc/inc/shaper.inc:3245
+#: etc/inc/shaper.inc:3246
msgid ""
"Hint: in most cases, you should specify 0 here (or leave the field empty)"
msgstr ""
@@ -2031,12 +2478,14 @@ msgstr ""
"vazio)"
#: etc/inc/shaper.inc:3093 etc/inc/shaper.inc:3329 etc/inc/shaper.inc:3101
-#: etc/inc/shaper.inc:3341
+#: etc/inc/shaper.inc:3341 etc/inc/shaper.inc:3249 etc/inc/shaper.inc:3496
+#: etc/inc/shaper.inc:3250 etc/inc/shaper.inc:3497
msgid "Packet loss rate"
msgstr "Taxa de perda de pacote"
#: etc/inc/shaper.inc:3097 etc/inc/shaper.inc:3333 etc/inc/shaper.inc:3105
-#: etc/inc/shaper.inc:3345
+#: etc/inc/shaper.inc:3345 etc/inc/shaper.inc:3253 etc/inc/shaper.inc:3500
+#: etc/inc/shaper.inc:3254 etc/inc/shaper.inc:3501
msgid ""
"Hint: in most cases, you should specify 0 here (or leave the field empty). A "
"value of 0.001 means one packet in 1000 gets dropped"
@@ -2045,12 +2494,14 @@ msgstr ""
"vazio). Um valor de 0.001 significa um pacote em 1000 é descartado"
#: etc/inc/shaper.inc:3102 etc/inc/shaper.inc:3338 etc/inc/shaper.inc:3110
-#: etc/inc/shaper.inc:3350
+#: etc/inc/shaper.inc:3350 etc/inc/shaper.inc:3258 etc/inc/shaper.inc:3505
+#: etc/inc/shaper.inc:3259 etc/inc/shaper.inc:3506
msgid "Queue Size"
msgstr "Tamanho da Fila"
#: etc/inc/shaper.inc:3107 etc/inc/shaper.inc:3343 etc/inc/shaper.inc:3115
-#: etc/inc/shaper.inc:3355
+#: etc/inc/shaper.inc:3355 etc/inc/shaper.inc:3263 etc/inc/shaper.inc:3510
+#: etc/inc/shaper.inc:3264 etc/inc/shaper.inc:3511
msgid ""
"Hint: in most cases, you should leave the field empty. All packets in this "
"pipe are placed into a fixed-size queue first, then they are delayed by "
@@ -2063,12 +2514,14 @@ msgstr ""
"entregues aos seus destinos."
#: etc/inc/shaper.inc:3113 etc/inc/shaper.inc:3349 etc/inc/shaper.inc:3121
-#: etc/inc/shaper.inc:3361
+#: etc/inc/shaper.inc:3361 etc/inc/shaper.inc:3269 etc/inc/shaper.inc:3516
+#: etc/inc/shaper.inc:3270 etc/inc/shaper.inc:3517
msgid "Bucket Size"
msgstr "Tamanho do bucket"
#: etc/inc/shaper.inc:3118 etc/inc/shaper.inc:3354 etc/inc/shaper.inc:3126
-#: etc/inc/shaper.inc:3366
+#: etc/inc/shaper.inc:3366 etc/inc/shaper.inc:3274 etc/inc/shaper.inc:3521
+#: etc/inc/shaper.inc:3275 etc/inc/shaper.inc:3522
msgid ""
"Hint: in most cases, you should leave the field empty. It increases the hash "
"size set."
@@ -2076,11 +2529,13 @@ msgstr ""
"Dica: na maioria dos casos, você deve deixar o campo vazio. Ele aumenta o "
"conjunto de tamanhos de hash."
-#: etc/inc/shaper.inc:3176 etc/inc/shaper.inc:3184
+#: etc/inc/shaper.inc:3176 etc/inc/shaper.inc:3184 etc/inc/shaper.inc:3339
+#: etc/inc/shaper.inc:3340
msgid "Weight must be an integer between 1 and 100."
msgstr "Peso deve ser um inteiro entre 1 e 100."
-#: etc/inc/shaper.inc:3274 etc/inc/shaper.inc:3282
+#: etc/inc/shaper.inc:3274 etc/inc/shaper.inc:3282 etc/inc/shaper.inc:3437
+#: etc/inc/shaper.inc:3438
msgid "Enable/Disable queue"
msgstr "Habilita/Desabilita fila"
@@ -2095,16 +2550,28 @@ msgstr "Habilita/Desabilita fila"
#: usr/local/www/firewall_rules_edit.php:1266
#: usr/local/www/firewall_rules.php:757
#: usr/local/www/load_balancer_virtual_server_edit.php:223
-#: usr/local/www/vpn_openvpn_client.php:524
+#: usr/local/www/vpn_openvpn_client.php:524 etc/inc/shaper.inc:3456
+#: usr/local/www/vpn_ipsec_mobile.php:403
+#: usr/local/www/interfaces_lagg_edit.php:202
+#: usr/local/www/firewall_rules.php:750
+#: usr/local/www/load_balancer_virtual_server_edit.php:221
+#: usr/local/www/vpn_openvpn_client.php:542
+#: usr/local/www/vpn_openvpn_client.php:561
+#: usr/local/www/firewall_rules_edit.php:1274
+#: usr/local/www/firewall_rules_edit.php:1281
+#: usr/local/www/interfaces_lagg_edit.php:215 etc/inc/shaper.inc:3457
msgid "none"
msgstr "nenhum"
#: etc/inc/shaper.inc:3321 usr/local/www/system_gateways_edit.php:424
#: etc/inc/shaper.inc:3333 usr/local/www/system_gateways_edit.php:445
+#: etc/inc/shaper.inc:3488 usr/local/www/system_gateways_edit.php:551
+#: usr/local/www/system_gateways_edit.php:555 etc/inc/shaper.inc:3489
msgid "Weight"
msgstr "Peso"
-#: etc/inc/shaper.inc:3325 etc/inc/shaper.inc:3337
+#: etc/inc/shaper.inc:3325 etc/inc/shaper.inc:3337 etc/inc/shaper.inc:3492
+#: etc/inc/shaper.inc:3493
msgid ""
"Hint: For queues under the same parent this specifies the share that a queue "
"gets(values range from 1 to 100, you can leave it blank otherwise)"
@@ -2113,31 +2580,37 @@ msgstr ""
"a fila obtém (o intervalo de valores é de 1 a 100, do contrário, você pode "
"deixá-lo em branco)"
-#: etc/inc/shaper.inc:3353 etc/inc/shaper.inc:3365
+#: etc/inc/shaper.inc:3353 etc/inc/shaper.inc:3365 etc/inc/shaper.inc:3520
+#: etc/inc/shaper.inc:3521
msgid "slots"
msgstr "slots"
-#: etc/inc/shaper.inc:3494 etc/inc/shaper.inc:3506
+#: etc/inc/shaper.inc:3494 etc/inc/shaper.inc:3506 etc/inc/shaper.inc:3661
+#: etc/inc/shaper.inc:3662
msgid "Enable/Disable layer7 Container"
msgstr "Habilitar/Desabilitar Contêiner de layer7"
-#: etc/inc/shaper.inc:3744 etc/inc/shaper.inc:3756
+#: etc/inc/shaper.inc:3744 etc/inc/shaper.inc:3756 etc/inc/shaper.inc:3911
+#: etc/inc/shaper.inc:3912
#, php-format
msgid "Sending HUP signal to %s"
msgstr "Enviando sinal HUP para %s"
-#: etc/inc/shaper.inc:4052 etc/inc/shaper.inc:4112
+#: etc/inc/shaper.inc:4052 etc/inc/shaper.inc:4112 etc/inc/shaper.inc:4269
+#: etc/inc/shaper.inc:4270
msgid " Clone shaper/queue on this interface"
msgstr " Modelador/fila de clone nessa interface"
#: etc/inc/shaper.inc:4060 etc/inc/shaper.inc:4067 etc/inc/shaper.inc:4120
-#: etc/inc/shaper.inc:4127
+#: etc/inc/shaper.inc:4127 etc/inc/shaper.inc:4277 etc/inc/shaper.inc:4284
+#: etc/inc/shaper.inc:4278 etc/inc/shaper.inc:4285
#, php-format
msgid "Welcome to the %s Traffic Shaper."
msgstr "Bem-vindo ao Traffic Shaper %s."
#: etc/inc/shaper.inc:4061 etc/inc/shaper.inc:4068 etc/inc/shaper.inc:4121
-#: etc/inc/shaper.inc:4128
+#: etc/inc/shaper.inc:4128 etc/inc/shaper.inc:4278 etc/inc/shaper.inc:4285
+#: etc/inc/shaper.inc:4279 etc/inc/shaper.inc:4286
msgid ""
"The tree on the left helps you navigate through the queues <br />buttons at "
"the bottom represent queue actions and are activated accordingly."
@@ -2145,136 +2618,163 @@ msgstr ""
"A árvore do lado esquerdo ajuda-o a navegar através das filas <br /> botões "
"no rodapé representam ações de filas e são ativados de acordo com as filas."
-#: etc/inc/system.inc:430 etc/inc/system.inc:449
+#: etc/inc/system.inc:430 etc/inc/system.inc:449 etc/inc/system.inc:457
#, php-format
msgid "Static Routes: Gateway IP could not be found for %s"
msgstr "Rotas estáticas: IP do Gateway não pôde ser encontrado para %s"
-#: etc/inc/system.inc:497 etc/inc/system.inc:529
+#: etc/inc/system.inc:497 etc/inc/system.inc:529 etc/inc/system.inc:533
+#: etc/inc/system.inc:547
msgid "Starting syslog..."
msgstr "Iniciando syslog..."
-#: etc/inc/system.inc:536 etc/inc/system.inc:568
+#: etc/inc/system.inc:536 etc/inc/system.inc:568 etc/inc/system.inc:572
+#: etc/inc/system.inc:695
#, php-format
msgid "Error: cannot open syslog.conf in system_syslogd_start().%s"
msgstr "Erro: Não pôde abrir syslog.conf em system_syslogd_start().%s"
-#: etc/inc/system.inc:664 etc/inc/system.inc:712
+#: etc/inc/system.inc:664 etc/inc/system.inc:712 etc/inc/system.inc:716
+#: etc/inc/system.inc:725
msgid "Initializing PCMCIA..."
msgstr "Inicializando PCMCIA..."
#: etc/inc/system.inc:676 etc/inc/system.inc:761 etc/inc/system.inc:1412
#: etc/inc/system.inc:1415 etc/inc/system.inc:724 etc/inc/system.inc:808
-#: etc/inc/system.inc:1469 etc/inc/system.inc:1472
+#: etc/inc/system.inc:1469 etc/inc/system.inc:1472 etc/inc/system.inc:728
+#: etc/inc/system.inc:806 etc/inc/system.inc:1511 etc/inc/system.inc:1514
+#: etc/inc/system.inc:737 etc/inc/system.inc:817 etc/inc/system.inc:1460
+#: etc/inc/system.inc:1463
msgid "failed!"
msgstr "falhou!"
-#: etc/inc/system.inc:687 etc/inc/system.inc:735
+#: etc/inc/system.inc:687 etc/inc/system.inc:735 etc/inc/system.inc:739
+#: etc/inc/system.inc:748
msgid "Starting webConfigurator..."
msgstr "Iniciando webConfigurator..."
-#: etc/inc/system.inc:719 etc/inc/system.inc:767
+#: etc/inc/system.inc:719 etc/inc/system.inc:767 etc/inc/system.inc:771
+#: etc/inc/system.inc:775
msgid "webConfigurator default"
msgstr "webConfigurator padrão"
-#: etc/inc/system.inc:729 etc/inc/system.inc:777
+#: etc/inc/system.inc:729 etc/inc/system.inc:777 etc/inc/system.inc:781
+#: etc/inc/system.inc:785
msgid "Importing HTTPS certificate"
msgstr "Importar certificados HTTPS"
-#: etc/inc/system.inc:1115 etc/inc/system.inc:1167
+#: etc/inc/system.inc:1115 etc/inc/system.inc:1167 etc/inc/system.inc:1147
+#: etc/inc/system.inc:1096
#, php-format
msgid "Error: cannot open cert.pem in system_webgui_start().%s"
msgstr "Erro: não pôde abrir cert.pem em system_webgui_start().%s"
-#: etc/inc/system.inc:1126 etc/inc/system.inc:1178
+#: etc/inc/system.inc:1126 etc/inc/system.inc:1178 etc/inc/system.inc:1158
+#: etc/inc/system.inc:1107
#, php-format
msgid "Error: cannot open ca.pem in system_webgui_start().%s"
msgstr "Erro: não pôde abrir ca.pem em system_webgui_start().%s"
-#: etc/inc/system.inc:1134 etc/inc/system.inc:1186
+#: etc/inc/system.inc:1134 etc/inc/system.inc:1186 etc/inc/system.inc:1166
+#: etc/inc/system.inc:1115
msgid "ssl configuration"
msgstr "configuração ssl"
-#: etc/inc/system.inc:1161 etc/inc/system.inc:1213
+#: etc/inc/system.inc:1161 etc/inc/system.inc:1213 etc/inc/system.inc:1193
+#: etc/inc/system.inc:1142
#, php-format
msgid "Error: cannot open %s in system_generate_lighty_config().%s"
msgstr "Erro: não pôde abrir %s em system_generate_lighty_config().%s"
-#: etc/inc/system.inc:1181 etc/inc/system.inc:1233
+#: etc/inc/system.inc:1181 etc/inc/system.inc:1233 etc/inc/system.inc:1213
+#: etc/inc/system.inc:1162
msgid "Setting timezone..."
msgstr "Configurando fuso horário..."
-#: etc/inc/system.inc:1270 etc/inc/system.inc:1326
+#: etc/inc/system.inc:1270 etc/inc/system.inc:1326 etc/inc/system.inc:1368
+#: etc/inc/system.inc:1310
msgid "Syncing system time before startup..."
msgstr "Sincronizando horário do sistema antes de iniciar..."
-#: etc/inc/system.inc:1376 etc/inc/system.inc:1433
+#: etc/inc/system.inc:1376 etc/inc/system.inc:1433 etc/inc/system.inc:1475
+#: etc/inc/system.inc:1424
#, php-format
msgid "Error: cannot open dmesg.boot in system_dmesg_save().%s"
msgstr "Erro: não pôde abrir dmesg.boot em system_dmesg_save().%s"
-#: etc/inc/system.inc:1397 etc/inc/system.inc:1454
+#: etc/inc/system.inc:1397 etc/inc/system.inc:1454 etc/inc/system.inc:1496
+#: etc/inc/system.inc:1445
msgid "Setting hard disk standby... "
msgstr "Configurando modo de espera do disco rígido..."
-#: etc/inc/system.inc:1514 etc/inc/system.inc:1571
+#: etc/inc/system.inc:1514 etc/inc/system.inc:1571 etc/inc/system.inc:1613
+#: etc/inc/system.inc:1562
msgid "Generic PC"
msgstr "PC Genérico"
-#: etc/inc/system.inc:1517 etc/inc/system.inc:1574
+#: etc/inc/system.inc:1517 etc/inc/system.inc:1574 etc/inc/system.inc:1616
+#: etc/inc/system.inc:1565
msgid "Generic PC (CD-ROM)"
msgstr "PC Genérico (CD-ROM)"
# Trata-se de um modelo de RouterBoard, acho válido preservar o modelo.
-#: etc/inc/system.inc:1526 etc/inc/system.inc:1583
+#: etc/inc/system.inc:1526 etc/inc/system.inc:1583 etc/inc/system.inc:1625
+#: etc/inc/system.inc:1574
msgid "PC Engines WRAP"
msgstr "PC Engines WRAP"
# Trata-se de um modelo de RouterBoard, acho prudente preservar o modelo.
-#: etc/inc/system.inc:1529 etc/inc/system.inc:1586
+#: etc/inc/system.inc:1529 etc/inc/system.inc:1586 etc/inc/system.inc:1628
+#: etc/inc/system.inc:1577
msgid "PC Engines ALIX"
msgstr "Pc Engines ALIX"
-#: etc/inc/system.inc:1541 etc/inc/system.inc:1598
+#: etc/inc/system.inc:1541 etc/inc/system.inc:1598 etc/inc/system.inc:1640
+#: etc/inc/system.inc:1589
msgid "embedded (unknown)"
msgstr "embarcado (desconhecido)"
-#: etc/inc/util.inc:99
+#: etc/inc/util.inc:99 etc/inc/util.inc:101
#, php-format
msgid "WARNING: Could not mark subsystem: %s dirty"
msgstr "ADVERTÊNCIA: Não pôde marcar subsistema: %s sujo"
-#: etc/inc/util.inc:119
+#: etc/inc/util.inc:119 etc/inc/util.inc:121
msgid "WARNING: You must give a name as parameter to lock() function."
msgstr ""
"ADVERTÊNCIA: Você deve dar um nome como parâmetro para a função lock()."
-#: etc/inc/util.inc:213 etc/inc/util.inc:208
+#: etc/inc/util.inc:213 etc/inc/util.inc:208 etc/inc/util.inc:238
+#: etc/inc/util.inc:240
#, php-format
msgid "Reference %s is going negative, not doing unreference."
msgstr "Referência %s está se tornando negavita, não desreferenciando."
-#: etc/inc/util.inc:980 etc/inc/util.inc:981
+#: etc/inc/util.inc:980 etc/inc/util.inc:981 etc/inc/util.inc:1026
+#: etc/inc/util.inc:1076
#, php-format
msgid "The command '%1$s' returned exit code '%2$d', the output was '%3$s' "
msgstr ""
"O comando '%1$s' retornou o código de saída '%2$d', a saída foi '%3$s' "
-#: etc/inc/vpn.inc:126
+#: etc/inc/vpn.inc:126 etc/inc/vpn.inc:134
msgid "Configuring IPsec VPN... "
msgstr "Configurando VPN do IPsec..."
-#: etc/inc/vpn.inc:229 etc/inc/vpn.inc:228
+#: etc/inc/vpn.inc:229 etc/inc/vpn.inc:228 etc/inc/vpn.inc:238
+#: etc/inc/vpn.inc:237
#, php-format
msgid "Error: Invalid certificate info for %s"
msgstr "Erro: Info de certificado inválido para %s"
-#: etc/inc/vpn.inc:235 etc/inc/vpn.inc:234
+#: etc/inc/vpn.inc:235 etc/inc/vpn.inc:234 etc/inc/vpn.inc:244
+#: etc/inc/vpn.inc:243
#, php-format
msgid "Error: Invalid certificate hash info for %s"
msgstr "Erro: Info de hash de certificado inválido para %s"
-#: etc/inc/vpn.inc:240 etc/inc/vpn.inc:239
+#: etc/inc/vpn.inc:240 etc/inc/vpn.inc:239 etc/inc/vpn.inc:249
+#: etc/inc/vpn.inc:248
#, php-format
msgid "Error: Cannot write IPsec CA file for %s"
msgstr "Erro: Não pode escrever arquivo de IPsec CA para %s"
@@ -2294,22 +2794,26 @@ msgstr "Erro: não pode abrir racoon.conf em vpn_ipsec_configure()."
msgid "Error: cannot open server %s in vpn.\n"
msgstr "Erro: não foi possível abrir servidor %s na vpn.\n"
-#: etc/inc/vpn.inc:560 etc/inc/vpn.inc:559
+#: etc/inc/vpn.inc:560 etc/inc/vpn.inc:559 etc/inc/vpn.inc:546
+#: etc/inc/vpn.inc:549
#, php-format
msgid "Error: Invalid phase1 certificate reference for %s"
msgstr "Erro: Referência de certificado da fase1 inválida para %s"
-#: etc/inc/vpn.inc:569 etc/inc/vpn.inc:568
+#: etc/inc/vpn.inc:569 etc/inc/vpn.inc:568 etc/inc/vpn.inc:555
+#: etc/inc/vpn.inc:558
#, php-format
msgid "Error: Cannot write phase1 certificate file for %s"
msgstr "Erro: Não pode escrever arquivo de certificado da fase1 para %s"
-#: etc/inc/vpn.inc:580 etc/inc/vpn.inc:579
+#: etc/inc/vpn.inc:580 etc/inc/vpn.inc:579 etc/inc/vpn.inc:566
+#: etc/inc/vpn.inc:569
#, php-format
msgid "Error: Cannot write phase1 key file for %s"
msgstr "Erro: Não pode escrever arquivo de chave da fase1 para %s"
-#: etc/inc/vpn.inc:593 etc/inc/vpn.inc:592
+#: etc/inc/vpn.inc:593 etc/inc/vpn.inc:592 etc/inc/vpn.inc:579
+#: etc/inc/vpn.inc:582
#, php-format
msgid "Error: Cannot write phase1 CA certificate file for %s"
msgstr ""
@@ -2320,82 +2824,99 @@ msgstr ""
msgid "Error: cannot open spd.conf in vpn_ipsec_configure()."
msgstr "Erro: não foi possível abrir spd.conf na vpn_ipsec_configure()."
-#: etc/inc/vpn.inc:1008 etc/inc/vpn.inc:1014
+#: etc/inc/vpn.inc:1008 etc/inc/vpn.inc:1014 etc/inc/vpn.inc:1013
+#: etc/inc/vpn.inc:1022
msgid "Forcefully reloading IPsec racoon daemon"
msgstr "Recarga forçada do processo IPsec racoon"
-#: etc/inc/vpn.inc:1052 etc/inc/vpn.inc:1058
+#: etc/inc/vpn.inc:1052 etc/inc/vpn.inc:1058 etc/inc/vpn.inc:1056
+#: etc/inc/vpn.inc:1065
msgid "Configuring PPTP VPN service... "
msgstr "Configurando o serviço PPTP VPN..."
-#: etc/inc/vpn.inc:1062 etc/inc/vpn.inc:1068
+#: etc/inc/vpn.inc:1062 etc/inc/vpn.inc:1068 etc/inc/vpn.inc:1066
+#: etc/inc/vpn.inc:1075
msgid "Could not kill mpd within 3 seconds. Trying again."
msgstr "Não foi possível matar mpd em 3 segundos. Tente novamente."
-#: etc/inc/vpn.inc:1085 etc/inc/vpn.inc:1091
+#: etc/inc/vpn.inc:1085 etc/inc/vpn.inc:1091 etc/inc/vpn.inc:1089
+#: etc/inc/vpn.inc:1098
#, php-format
msgid "Error: cannot open mpd.conf in vpn_pptpd_configure()."
msgstr "Erro: não pôde abrir mdp.conf em vpn_pptpd_configure()."
-#: etc/inc/vpn.inc:1198 etc/inc/vpn.inc:1204
+#: etc/inc/vpn.inc:1198 etc/inc/vpn.inc:1204 etc/inc/vpn.inc:1202
+#: etc/inc/vpn.inc:1212
#, php-format
msgid "Error: cannot open mpd.links in vpn_pptpd_configure()."
msgstr "Erro: não pôde abrir mpd.links em vpn_pptpd_configure()."
-#: etc/inc/vpn.inc:1222 etc/inc/vpn.inc:1228
+#: etc/inc/vpn.inc:1222 etc/inc/vpn.inc:1228 etc/inc/vpn.inc:1226
+#: etc/inc/vpn.inc:1237
#, php-format
msgid "Error: cannot open mpd.secret in vpn_pptpd_configure()."
msgstr "Erro: não pôde abrir mpd.secret em vpn_pptpd_configure()."
-#: etc/inc/vpn.inc:1279 etc/inc/vpn.inc:1285
+#: etc/inc/vpn.inc:1279 etc/inc/vpn.inc:1285 etc/inc/vpn.inc:1283
+#: etc/inc/vpn.inc:1295
msgid "Configuring PPPoE VPN service... "
msgstr "Configurando serviço PPPoE da VPN..."
-#: etc/inc/vpn.inc:1303 etc/inc/vpn.inc:1309
+#: etc/inc/vpn.inc:1303 etc/inc/vpn.inc:1309 etc/inc/vpn.inc:1307
+#: etc/inc/vpn.inc:1319
#, php-format
msgid "Error: cannot open mpd.conf in vpn_pppoe_configure()."
msgstr "Erro: não se pode abrir mpd.conf em vpn_pppoe_configure()."
-#: etc/inc/vpn.inc:1406 etc/inc/vpn.inc:1412
+#: etc/inc/vpn.inc:1406 etc/inc/vpn.inc:1412 etc/inc/vpn.inc:1410
+#: etc/inc/vpn.inc:1423
#, php-format
msgid "Error: cannot open mpd.links in vpn_pppoe_configure()."
msgstr "Erro: não se pode abrir mpd.links em vpn_pppoe_configure()."
-#: etc/inc/vpn.inc:1432 etc/inc/vpn.inc:1438
+#: etc/inc/vpn.inc:1432 etc/inc/vpn.inc:1438 etc/inc/vpn.inc:1436
+#: etc/inc/vpn.inc:1450
#, php-format
msgid "Error: cannot open mpd.secret in vpn_pppoe_configure()."
msgstr "Erro: não se pode abrir mpd.secret em vpn_pppoe_configure()."
#: etc/inc/vpn.inc:1460 usr/local/www/system_firmware_check.php:139
-#: etc/inc/vpn.inc:1470
+#: etc/inc/vpn.inc:1470 etc/inc/vpn.inc:1468
+#: usr/local/www/system_firmware_check.php:141 etc/inc/vpn.inc:1483
msgid "done"
msgstr "feito"
-#: etc/inc/vpn.inc:1479 etc/inc/vpn.inc:1489
+#: etc/inc/vpn.inc:1479 etc/inc/vpn.inc:1489 etc/inc/vpn.inc:1487
+#: etc/inc/vpn.inc:1502
msgid "Configuring l2tp VPN service... "
msgstr "Configurando o serviço VPN l2tp..."
-#: etc/inc/vpn.inc:1504 etc/inc/vpn.inc:1514
+#: etc/inc/vpn.inc:1504 etc/inc/vpn.inc:1514 etc/inc/vpn.inc:1512
+#: etc/inc/vpn.inc:1527
#, php-format
msgid "Error: cannot open mpd.conf in vpn_l2tp_configure()."
msgstr "Erro: não se pode abrir mpd.conf em vpn_l2tp_configure()."
-#: etc/inc/vpn.inc:1597 etc/inc/vpn.inc:1607
+#: etc/inc/vpn.inc:1597 etc/inc/vpn.inc:1607 etc/inc/vpn.inc:1605
+#: etc/inc/vpn.inc:1621
#, php-format
msgid "Error: cannot open mpd.links in vpn_l2tp_configure()."
msgstr "Erro: não se pode abrir mpd.links em vpn_l2tp_configure()."
-#: etc/inc/vpn.inc:1622 etc/inc/vpn.inc:1632
+#: etc/inc/vpn.inc:1622 etc/inc/vpn.inc:1632 etc/inc/vpn.inc:1630
+#: etc/inc/vpn.inc:1647
#, php-format
msgid "Error: cannot open mpd.secret in vpn_l2tp_configure()."
msgstr "Erro: não se pode abrir mpd.secret em vpn_l2tp_configure()."
-#: etc/inc/vpn.inc:1769 etc/inc/vpn.inc:1779
+#: etc/inc/vpn.inc:1769 etc/inc/vpn.inc:1779 etc/inc/vpn.inc:1764
+#: etc/inc/vpn.inc:1836
#, php-format
msgid "Could not determine VPN endpoint for '%s'"
msgstr "Não foi possível determinar o ponto final da VPN para '%s'"
-#: etc/inc/vpn.inc:1774 etc/inc/vpn.inc:1784
+#: etc/inc/vpn.inc:1774 etc/inc/vpn.inc:1784 etc/inc/vpn.inc:1769
+#: etc/inc/vpn.inc:1841
#, php-format
msgid ""
"IPSEC: ERROR: One of the endpoints is not a IP address. Old EP '%1$s' new EP "
@@ -2404,7 +2925,8 @@ msgstr ""
"IPSEC: ERRO: Um dos endpoints não é um endereço IP. EP antigo '%1$s' EP novo "
"'%2$s'"
-#: etc/inc/vpn.inc:1777 etc/inc/vpn.inc:1787
+#: etc/inc/vpn.inc:1777 etc/inc/vpn.inc:1787 etc/inc/vpn.inc:1772
+#: etc/inc/vpn.inc:1844
#, php-format
msgid ""
"IPSEC: ERROR: One of the remote endpoints is not a IP address. Old RG '%1$s' "
@@ -2413,7 +2935,8 @@ msgstr ""
"IPSEC: ERRO: Um dos endpoints remotos não é um endereço IP. RG antigo '%1$s' "
"novo RG '%2$s'"
-#: etc/inc/vpn.inc:1833 etc/inc/vpn.inc:1843
+#: etc/inc/vpn.inc:1833 etc/inc/vpn.inc:1843 etc/inc/vpn.inc:1835
+#: etc/inc/vpn.inc:1907
#, php-format
msgid ""
"Reloading IPsec tunnel '%1$s'. Previous IP '%2$s', current IP '%3$s'. "
@@ -2525,16 +3048,17 @@ msgstr "Erro de HTTP, obteve resposta: %s"
msgid "XML error at line 1, check URL"
msgstr "Erro de XML na linha 1, verificar URL"
-#: etc/inc/xmlrpc_client.inc:1591
+#: etc/inc/xmlrpc_client.inc:1591 etc/inc/xmlrpc_client.inc:1593
msgid "Scalar can have only one value"
msgstr "Escalar pode ter apenas um valor"
-#: etc/inc/xmlrpc_client.inc:1598
+#: etc/inc/xmlrpc_client.inc:1598 etc/inc/xmlrpc_client.inc:1600
#, php-format
msgid "Not a scalar type (%s)"
msgstr "Não é um tipo escalar (%s)"
#: etc/inc/xmlrpc_client.inc:1634 etc/inc/xmlrpc_client.inc:1650
+#: etc/inc/xmlrpc_client.inc:1636 etc/inc/xmlrpc_client.inc:1652
#, php-format
msgid "Already initialized as a [%s]"
msgstr "Já inicializado como um [%s]"
@@ -2570,31 +3094,31 @@ msgid "No page assigned to this user! Click here to logout."
msgstr ""
"Nenhuma página atribuída à este usuário! Clique aqui para fazer logout."
-#: etc/inc/authgui.inc:97
+#: etc/inc/authgui.inc:97 etc/inc/authgui.inc:103
#, php-format
msgid "Error: %1$s Description: %2$s"
msgstr "Erro: %1$s Descrição: %2$s"
-#: etc/inc/authgui.inc:160 etc/inc/authgui.inc:159
+#: etc/inc/authgui.inc:160 etc/inc/authgui.inc:159 etc/inc/authgui.inc:165
msgid "unknown reason"
msgstr "razão desconhecida"
-#: etc/inc/authgui.inc:161 etc/inc/authgui.inc:160
+#: etc/inc/authgui.inc:161 etc/inc/authgui.inc:160 etc/inc/authgui.inc:166
#, php-format
msgid "Invalid login (%s)."
msgstr "Login inválido (%s)."
-#: etc/inc/authgui.inc:166 etc/inc/authgui.inc:165
+#: etc/inc/authgui.inc:166 etc/inc/authgui.inc:165 etc/inc/authgui.inc:171
#, php-format
msgid "This device is currently being maintained by: %s."
msgstr "O dispositivo atual esta sendo mantido por: %s."
#: etc/inc/authgui.inc:214 etc/inc/authgui.inc:277 etc/inc/authgui.inc:212
-#: etc/inc/authgui.inc:275
+#: etc/inc/authgui.inc:275 etc/inc/authgui.inc:235 etc/inc/authgui.inc:298
msgid "Login"
msgstr "Login"
-#: etc/inc/authgui.inc:242 etc/inc/authgui.inc:240
+#: etc/inc/authgui.inc:242 etc/inc/authgui.inc:240 etc/inc/authgui.inc:263
msgid ""
"You are accessing this router by an IP address not configured locally, which "
"may be forwarded by NAT or other means. <br/><br/>If you did not setup this "
@@ -2604,21 +3128,23 @@ msgstr ""
"localmente, que pode ser encaminhado pelo NAT ou outros meios. <br/><br/>Se "
"você não instalou este encaminhando, você pode estar sendo alvo de um ataque."
-#: etc/inc/authgui.inc:251 etc/inc/authgui.inc:249
+#: etc/inc/authgui.inc:251 etc/inc/authgui.inc:249 etc/inc/authgui.inc:272
msgid "Username:"
msgstr "Usuário:"
#: etc/inc/authgui.inc:258 usr/local/www/diag_backup.php:597
#: usr/local/www/system_authservers.php:627 etc/inc/authgui.inc:256
-#: usr/local/www/diag_backup.php:676
+#: usr/local/www/diag_backup.php:676 usr/local/www/system_authservers.php:632
+#: usr/local/www/system_authservers.php:639 usr/local/www/diag_backup.php:681
+#: etc/inc/authgui.inc:279
msgid "Password:"
msgstr "Senha:"
-#: etc/inc/authgui.inc:265 etc/inc/authgui.inc:263
+#: etc/inc/authgui.inc:265 etc/inc/authgui.inc:263 etc/inc/authgui.inc:286
msgid "Enter username and password to login."
msgstr "Digite usuário e senha para entrar."
-#: etc/inc/authgui.inc:271 etc/inc/authgui.inc:269
+#: etc/inc/authgui.inc:271 etc/inc/authgui.inc:269 etc/inc/authgui.inc:292
msgid "Your browser must support cookies to login."
msgstr "Seu browser precisa suportar cookies para logar."
@@ -2651,6 +3177,7 @@ msgid "Press ENTER to continue."
msgstr "Pressione ENTER para continuar."
#: etc/inc/config.console.inc:83 etc/inc/config.console.inc:495
+#: etc/inc/config.console.inc:497
msgid "No interfaces found!"
msgstr "Nenhuma interface encontrada!"
@@ -2663,7 +3190,8 @@ msgid "Enter the WAN interface name or 'a' for auto-detection:"
msgstr "Informe o nome da interface WAN ou 'uma' para auto-detecção:"
#: etc/inc/config.console.inc:215 etc/inc/config.console.inc:276
-#: etc/inc/config.console.inc:518
+#: etc/inc/config.console.inc:518 etc/inc/config.console.inc:520
+#: etc/inc/config.console.inc:244
#, php-format
msgid "%sInvalid interface name '%s'%s"
msgstr "%sNome de interface inválido '%s'%s"
@@ -2700,53 +3228,53 @@ msgstr "Opcional"
msgid "The interfaces will be assigned as follows:"
msgstr "As interfaces serão atribuídas conforme segue:"
-#: etc/inc/config.console.inc:416
+#: etc/inc/config.console.inc:416 etc/inc/config.console.inc:418
#, php-format
msgid "%sWriting configuration..."
msgstr "%sEscrevendo configuração..."
-#: etc/inc/config.console.inc:418
+#: etc/inc/config.console.inc:418 etc/inc/config.console.inc:420
#, php-format
msgid "done.%s"
msgstr "pronto.%s"
-#: etc/inc/config.console.inc:425
+#: etc/inc/config.console.inc:425 etc/inc/config.console.inc:427
msgid "One moment while we reload the settings..."
msgstr "Um momento enquanto recarregamos as configurações..."
-#: etc/inc/config.console.inc:429
+#: etc/inc/config.console.inc:429 etc/inc/config.console.inc:431
msgid " done!"
msgstr "pronto!"
-#: etc/inc/config.console.inc:449
+#: etc/inc/config.console.inc:449 etc/inc/config.console.inc:451
#, php-format
msgid "Detected link-up on interface %s.%s"
msgstr "Detectado link-up na interface %s.%s"
-#: etc/inc/config.console.inc:454
+#: etc/inc/config.console.inc:454 etc/inc/config.console.inc:456
#, php-format
msgid "No link-up detected.%s"
msgstr "Nenhum link-up detectado.%s"
-#: etc/inc/config.console.inc:493
+#: etc/inc/config.console.inc:493 etc/inc/config.console.inc:495
msgid "VLAN Capable interfaces:"
msgstr "Interfaces que suportam VLAN:"
-#: etc/inc/config.console.inc:508
+#: etc/inc/config.console.inc:508 etc/inc/config.console.inc:510
msgid "No VLAN capable interfaces detected."
msgstr "Nenhum interface que suporta VLAN detectada."
-#: etc/inc/config.console.inc:512
+#: etc/inc/config.console.inc:512 etc/inc/config.console.inc:514
msgid ""
"Enter the parent interface name for the new VLAN (or nothing if finished):"
msgstr ""
"Informe o nome da interface pai para a nova VLAN (ou nada se finalizado):"
-#: etc/inc/config.console.inc:525
+#: etc/inc/config.console.inc:525 etc/inc/config.console.inc:527
msgid "Enter the VLAN tag (1-4094):"
msgstr "Informe a tag da VLAN (1-4094):"
-#: etc/inc/config.console.inc:529
+#: etc/inc/config.console.inc:529 etc/inc/config.console.inc:531
#, php-format
msgid "%sInvalid VLAN tag '%s'%s"
msgstr "%sTag de VLAN inválida '%s'%s"
@@ -2768,7 +3296,8 @@ msgstr ""
"anterior."
#: etc/inc/config.lib.inc:138 etc/inc/config.lib.inc:149
-#: etc/inc/config.lib.inc:552
+#: etc/inc/config.lib.inc:552 etc/inc/config.lib.inc:560
+#: etc/inc/config.lib.inc:577
msgid "Could not restore config.xml."
msgstr "Não pôde restaurar config.xml."
@@ -2807,15 +3336,15 @@ msgstr ""
"Última configuração conhecida encontrada e restaurada. Por favor, cheque "
"duas vezes seu arquivo de configuração por precaução."
-#: etc/inc/config.lib.inc:317
+#: etc/inc/config.lib.inc:317 etc/inc/config.lib.inc:320
msgid "Disk is dirty. Running fsck -y"
msgstr "O disco está sujo. Executando fsck -y"
-#: etc/inc/config.lib.inc:328
+#: etc/inc/config.lib.inc:328 etc/inc/config.lib.inc:331
msgid "File system is dirty. Launching FSCK for /"
msgstr "O sistema de arquivos está sujo. Abrindo FSCK para /"
-#: etc/inc/config.lib.inc:379
+#: etc/inc/config.lib.inc:379 etc/inc/config.lib.inc:382
#, php-format
msgid "Start Configuration upgrade at %s, set execution timeout to 15 minutes"
msgstr ""
@@ -2823,141 +3352,170 @@ msgstr ""
"15 minutos"
#: etc/inc/config.lib.inc:389 etc/inc/config.lib.inc:390
+#: etc/inc/config.lib.inc:392 etc/inc/config.lib.inc:393
msgid "Updated bogon update frequency to 3am"
msgstr "Atualizada frequência de atualização bogon para 3 da manhã"
-#: etc/inc/config.lib.inc:420
+#: etc/inc/config.lib.inc:420 etc/inc/config.lib.inc:423
#, php-format
msgid "Ended Configuration upgrade at %s"
msgstr "Atualização de Configuração finalizada às %s"
-#: etc/inc/config.lib.inc:423
+#: etc/inc/config.lib.inc:423 etc/inc/config.lib.inc:426
#, php-format
msgid "Upgraded config version level from %1$s to %2$s"
msgstr "Atualizada versão config de nível %1$s para %2$s"
-#: etc/inc/config.lib.inc:512
+#: etc/inc/config.lib.inc:512 etc/inc/config.lib.inc:520
+#: etc/inc/config.lib.inc:537
#, php-format
msgid "%s made unknown change"
msgstr "%s fez mudança desconhecida"
-#: etc/inc/config.lib.inc:525
+#: etc/inc/config.lib.inc:525 etc/inc/config.lib.inc:533
+#: etc/inc/config.lib.inc:550
msgid "WARNING: Config contents could not be save. Could not open file!"
msgstr ""
"ADVERTÊNCIA: Conteúdo de config não pôde ser salvo. Não pôde abrir arquivo!"
-#: etc/inc/config.lib.inc:527
+#: etc/inc/config.lib.inc:527 etc/inc/config.lib.inc:535
+#: etc/inc/config.lib.inc:552
#, php-format
msgid "Unable to open %s/config.xml for writing in write_config()%s"
msgstr "Incapaz de abrir %s/config.cml para escrita em write_config()%s"
-#: etc/inc/config.lib.inc:636
+#: etc/inc/config.lib.inc:636 etc/inc/config.lib.inc:644
+#: etc/inc/config.lib.inc:661
msgid "Reverted to"
msgstr "Revertido para"
-#: etc/inc/config.lib.inc:651
+#: etc/inc/config.lib.inc:651 etc/inc/config.lib.inc:659
+#: etc/inc/config.lib.inc:676
msgid "Installing configuration..."
msgstr "Instalando configuração..."
-#: etc/inc/config.lib.inc:653
+#: etc/inc/config.lib.inc:653 etc/inc/config.lib.inc:661
+#: etc/inc/config.lib.inc:678
msgid "Installing configuration ...."
msgstr "Instalando configuração ...."
-#: etc/inc/config.lib.inc:704
+#: etc/inc/config.lib.inc:704 etc/inc/config.lib.inc:712
+#: etc/inc/config.lib.inc:729
msgid "XML error: unable to open file"
msgstr "Erro de XML: incapaz de abrir arquivo"
-#: etc/inc/config.lib.inc:710
+#: etc/inc/config.lib.inc:710 etc/inc/config.lib.inc:718
+#: etc/inc/config.lib.inc:735
#, php-format
msgid "%1$s at line %2$d"
msgstr "%1$s na linha %2$d"
#: etc/inc/config.lib.inc:756 etc/inc/config.lib.inc:758
+#: etc/inc/config.lib.inc:764 etc/inc/config.lib.inc:766
+#: etc/inc/config.lib.inc:781 etc/inc/config.lib.inc:783
#, php-format
msgid "The backup cache file %s is corrupted. Unlinking."
msgstr "O arquivo de backup de cache %s está corrompido. Desvinculando."
-#: etc/inc/easyrule.inc:116
+#: etc/inc/easyrule.inc:116 etc/inc/easyrule.inc:117
msgid "Easy Rule: Blocked from Firewall Log View"
msgstr "Regra Fácil: Bloqueado da Visualização de Log do Firewall"
#: etc/inc/easyrule.inc:165 etc/inc/easyrule.inc:173 etc/inc/easyrule.inc:181
+#: etc/inc/easyrule.inc:177 etc/inc/easyrule.inc:185
msgid "Entry added"
msgstr "Entrada adicionada"
-#: etc/inc/easyrule.inc:170 etc/inc/easyrule.inc:178
+#: etc/inc/easyrule.inc:170 etc/inc/easyrule.inc:178 etc/inc/easyrule.inc:182
msgid "Hosts blocked from Firewall Log view"
msgstr "Hosts bloqueados da Visualização de Log do Firewall"
-#: etc/inc/easyrule.inc:249 etc/inc/easyrule.inc:257
+#: etc/inc/easyrule.inc:249 etc/inc/easyrule.inc:257 etc/inc/easyrule.inc:262
msgid "Easy Rule: Passed from Firewall Log View"
msgstr "Regra Fácil: Liberado pela Visualização de Log do Firewall"
-#: etc/inc/easyrule.inc:280 etc/inc/easyrule.inc:303
+#: etc/inc/easyrule.inc:280 etc/inc/easyrule.inc:303 etc/inc/easyrule.inc:309
+#: etc/inc/easyrule.inc:313
msgid "Tried to block invalid IP:"
msgstr "Tentou bloquear IP inválido:"
-#: etc/inc/easyrule.inc:284 etc/inc/easyrule.inc:307
+#: etc/inc/easyrule.inc:284 etc/inc/easyrule.inc:307 etc/inc/easyrule.inc:313
+#: etc/inc/easyrule.inc:317
msgid "Invalid interface for block rule:"
msgstr "Interface inválida para regra de bloqueio:"
-#: etc/inc/easyrule.inc:287 etc/inc/easyrule.inc:310
+#: etc/inc/easyrule.inc:287 etc/inc/easyrule.inc:310 etc/inc/easyrule.inc:316
+#: etc/inc/easyrule.inc:320
msgid "Host added successfully"
msgstr "Host adicionado com sucesso"
-#: etc/inc/easyrule.inc:289 etc/inc/easyrule.inc:312
+#: etc/inc/easyrule.inc:289 etc/inc/easyrule.inc:312 etc/inc/easyrule.inc:318
+#: etc/inc/easyrule.inc:322
msgid "Failed to create block rule, alias, or add host."
msgstr "Falhou ao criar regra de bloqueio, alias, ou ao adicionar um host."
-#: etc/inc/easyrule.inc:292 etc/inc/easyrule.inc:315
+#: etc/inc/easyrule.inc:292 etc/inc/easyrule.inc:315 etc/inc/easyrule.inc:321
+#: etc/inc/easyrule.inc:325
msgid "Tried to block but had no host IP or interface"
msgstr "Tentou bloquear, mas não possuía nenhum IP de host ou interface"
-#: etc/inc/easyrule.inc:294 etc/inc/easyrule.inc:317
+#: etc/inc/easyrule.inc:294 etc/inc/easyrule.inc:317 etc/inc/easyrule.inc:323
+#: etc/inc/easyrule.inc:327
msgid "Unknown block error."
msgstr "Erro desconhecido de bloqueio."
-#: etc/inc/easyrule.inc:303 etc/inc/easyrule.inc:326
+#: etc/inc/easyrule.inc:303 etc/inc/easyrule.inc:326 etc/inc/easyrule.inc:334
+#: etc/inc/easyrule.inc:338
msgid "Invalid interface for pass rule:"
msgstr "Interface inválida para regra de liberação:"
-#: etc/inc/easyrule.inc:306 etc/inc/easyrule.inc:329
+#: etc/inc/easyrule.inc:306 etc/inc/easyrule.inc:329 etc/inc/easyrule.inc:337
+#: etc/inc/easyrule.inc:341
msgid "Invalid protocol for pass rule:"
msgstr "Protocolo inválido para regra de liberação:"
-#: etc/inc/easyrule.inc:309 etc/inc/easyrule.inc:332
+#: etc/inc/easyrule.inc:309 etc/inc/easyrule.inc:332 etc/inc/easyrule.inc:340
+#: etc/inc/easyrule.inc:344
msgid "Tried to pass invalid source IP:"
msgstr "Tentou passar um IP fonte inválido:"
-#: etc/inc/easyrule.inc:312 etc/inc/easyrule.inc:335
+#: etc/inc/easyrule.inc:312 etc/inc/easyrule.inc:335 etc/inc/easyrule.inc:343
+#: etc/inc/easyrule.inc:347
msgid "Tried to pass invalid destination IP:"
msgstr "Tentou passar um IP de destino inválido:"
-#: etc/inc/easyrule.inc:316 etc/inc/easyrule.inc:339
+#: etc/inc/easyrule.inc:316 etc/inc/easyrule.inc:339 etc/inc/easyrule.inc:347
+#: etc/inc/easyrule.inc:351
msgid "Missing destination port:"
msgstr "Porta de destino faltando:"
-#: etc/inc/easyrule.inc:319 etc/inc/easyrule.inc:342
+#: etc/inc/easyrule.inc:319 etc/inc/easyrule.inc:342 etc/inc/easyrule.inc:350
+#: etc/inc/easyrule.inc:354
msgid "Tried to pass invalid destination port:"
msgstr "Tentou passar uma porta de destino inválida:"
-#: etc/inc/easyrule.inc:326 etc/inc/easyrule.inc:349
+#: etc/inc/easyrule.inc:326 etc/inc/easyrule.inc:349 etc/inc/easyrule.inc:357
+#: etc/inc/easyrule.inc:361
msgid "Successfully added pass rule!"
msgstr "Adicionou regra de liberação com sucesso!"
-#: etc/inc/easyrule.inc:328 etc/inc/easyrule.inc:351
+#: etc/inc/easyrule.inc:328 etc/inc/easyrule.inc:351 etc/inc/easyrule.inc:359
+#: etc/inc/easyrule.inc:363
msgid "Failed to add pass rule."
msgstr "Falhou ao adicionar regra de passe."
-#: etc/inc/easyrule.inc:331 etc/inc/easyrule.inc:354
+#: etc/inc/easyrule.inc:331 etc/inc/easyrule.inc:354 etc/inc/easyrule.inc:362
+#: etc/inc/easyrule.inc:366
msgid "Missing parameters for pass rule."
msgstr "Parâmetros faltando para regra de liberação."
-#: etc/inc/easyrule.inc:333 etc/inc/easyrule.inc:356
+#: etc/inc/easyrule.inc:333 etc/inc/easyrule.inc:356 etc/inc/easyrule.inc:364
+#: etc/inc/easyrule.inc:368
msgid "Unknown pass error."
msgstr "Erro de liberação desconhecido."
-#: etc/inc/filter_log.inc:164
+#: etc/inc/filter_log.inc:164 etc/inc/filter_log.inc:167
+#: etc/inc/filter_log.inc:191
#, php-format
msgid ""
"There was a error parsing rule: %s. Please report to mailing list or forum."
@@ -2966,11 +3524,12 @@ msgstr ""
"lista de e-mails ou fórum."
#: etc/inc/filter_log.inc:208 etc/inc/filter_log.inc:210
+#: etc/inc/filter_log.inc:213 etc/inc/filter_log.inc:237
#, php-format
msgid "Service %1$s/%2$s: %3$s"
msgstr "Serviço %1$s/%2$s: %3$s"
-#: etc/inc/gwlb.inc:230 etc/inc/gwlb.inc:237
+#: etc/inc/gwlb.inc:230 etc/inc/gwlb.inc:237 etc/inc/gwlb.inc:242
#, php-format
msgid ""
"Removing static route for monitor %1$s and adding a new route through %2$s"
@@ -2978,28 +3537,29 @@ msgstr ""
"Removendo regras estáticas para monitor %1$s e adicionando nova rota através "
"%2$s"
-#: etc/inc/gwlb.inc:501 etc/inc/gwlb.inc:727
+#: etc/inc/gwlb.inc:501 etc/inc/gwlb.inc:727 etc/inc/gwlb.inc:750
#, php-format
msgid "MONITOR: %s is down, removing from routing group"
msgstr "MONITOR: %s não responde, removendo do grupo de roteamento"
-#: etc/inc/gwlb.inc:505 etc/inc/gwlb.inc:731
+#: etc/inc/gwlb.inc:505 etc/inc/gwlb.inc:731 etc/inc/gwlb.inc:754
#, php-format
msgid "MONITOR: %s has packet loss, removing from routing group"
msgstr "MONITOR: %s tem perda de pacote, removendo de grupo de roteamento"
-#: etc/inc/gwlb.inc:509 etc/inc/gwlb.inc:735
+#: etc/inc/gwlb.inc:509 etc/inc/gwlb.inc:735 etc/inc/gwlb.inc:758
#, php-format
msgid "MONITOR: %s has high latency, removing from routing group"
msgstr "MONITOR: %s tem alta latência, removendo de grupo de roteamento"
-#: etc/inc/gwlb.inc:526 etc/inc/gwlb.inc:752
+#: etc/inc/gwlb.inc:526 etc/inc/gwlb.inc:752 etc/inc/gwlb.inc:775
msgid "Gateways status could not be determined, considering all as up/active."
msgstr ""
"Status de gateways não pôde ser determinado, considerando todos como up/"
"ativo."
-#: etc/inc/gwlb.inc:580 etc/inc/gwlb.inc:809
+#: etc/inc/gwlb.inc:580 etc/inc/gwlb.inc:809 etc/inc/gwlb.inc:835
+#: etc/inc/gwlb.inc:844
#, php-format
msgid "Updating gateway group gateway for %1$s - new gateway is %2$s"
msgstr "Atualizando grupo de gateway para %1$s - novo gateway é %2$s"
@@ -3039,6 +3599,31 @@ msgstr "Meu endereço IP"
#: usr/local/www/status_dhcp_leases.php:339
#: usr/local/www/services_dhcp.php:929 usr/local/www/vpn_ipsec_phase2.php:661
#: usr/local/www/services_dhcp_edit.php:224
+#: usr/local/www/services_dnsmasq_edit.php:212
+#: usr/local/www/services_captiveportal_ip.php:115
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:72
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:137
+#: usr/local/www/vpn_l2tp_users.php:103
+#: usr/local/www/services_captiveportal.php:636
+#: usr/local/www/services_captiveportal.php:657
+#: usr/local/www/services_captiveportal.php:679
+#: usr/local/www/services_captiveportal.php:698
+#: usr/local/www/status_dhcp_leases.php:341
+#: usr/local/www/services_captiveportal_ip_edit.php:193
+#: usr/local/www/services_dhcp.php:1133 usr/local/www/vpn_ipsec_phase2.php:757
+#: usr/local/www/vpn_pptp_users_edit.php:161
+#: usr/local/www/services_dhcp_edit.php:223
+#: usr/local/www/vpn_l2tp_users_edit.php:169
+#: usr/local/www/vpn_pptp_users.php:100
+#: usr/local/www/services_captiveportal_ip_edit.php:187
+#: usr/local/www/services_dhcp_edit.php:351
+#: usr/local/www/services_dhcp.php:1152
+#: usr/local/www/status_captiveportal.php:146
+#: usr/local/www/services_captiveportal.php:637
+#: usr/local/www/services_captiveportal.php:658
+#: usr/local/www/services_captiveportal.php:680
+#: usr/local/www/services_captiveportal.php:699
+#: usr/local/www/vpn_ipsec_phase2.php:778
msgid "IP address"
msgstr "Endereço IP"
@@ -3049,6 +3634,9 @@ msgstr "Endereço IP"
#: usr/local/www/system_certmanager.php:705
#: usr/local/www/system_certmanager.php:838
#: usr/local/www/system_camanager.php:477
+#: usr/local/www/system_camanager.php:500
+#: usr/local/www/system_certmanager.php:730
+#: usr/local/www/system_certmanager.php:879
msgid "Distinguished name"
msgstr "Nome distinto"
@@ -3067,7 +3655,11 @@ msgstr "Tag KeyID"
#: etc/inc/ipsec.inc:45 usr/local/www/services_dhcp.php:722
#: usr/local/www/fbegin.inc:128 usr/local/www/services_dhcpv6.php:648
#: usr/local/www/fbegin.inc:145 usr/local/www/services_dhcp.php:760
-#: usr/local/www/services_dhcpv6.php:741
+#: usr/local/www/services_dhcpv6.php:741 usr/local/www/fbegin.inc:154
+#: usr/local/www/services_dhcp.php:942 usr/local/www/services_dhcpv6.php:672
+#: usr/local/www/services_dhcp_edit.php:451
+#: usr/local/www/services_dhcp.php:955 usr/local/www/services_dhcpv6.php:689
+#: usr/local/www/fbegin.inc:146
msgid "Dynamic DNS"
msgstr "DNS dinâmico"
@@ -3078,7 +3670,10 @@ msgstr "Endereço IP do Peer"
#: etc/inc/ipsec.inc:256 usr/local/www/vpn_ipsec.php:206
#: usr/local/www/vpn_ipsec_phase1.php:358
#: usr/local/www/vpn_ipsec_phase2.php:255 usr/local/www/vpn_ipsec.php:217
-#: usr/local/www/vpn_ipsec_phase2.php:268
+#: usr/local/www/vpn_ipsec_phase2.php:268 etc/inc/ipsec.inc:281
+#: usr/local/www/vpn_ipsec.php:216 usr/local/www/vpn_ipsec_phase2.php:294
+#: usr/local/www/vpn_ipsec.php:222 usr/local/www/vpn_ipsec_phase1.php:379
+#: usr/local/www/vpn_ipsec_phase2.php:316 etc/inc/ipsec.inc:289
msgid "Mobile Client"
msgstr "Cliente Móvel"
@@ -3093,7 +3688,22 @@ msgstr "Cliente Móvel"
#: usr/local/www/firewall_nat_edit.php:805
#: usr/local/www/firewall_nat_edit.php:836 usr/local/www/interfaces.php:1118
#: usr/local/www/interfaces.php:1119 usr/local/www/interfaces.php:1489
-#: usr/local/www/interfaces.php:1597
+#: usr/local/www/interfaces.php:1597 etc/inc/ipsec.inc:283
+#: usr/local/www/system_advanced_misc.php:386
+#: usr/local/www/interfaces_bridge_edit.php:438
+#: usr/local/www/vpn_ipsec_phase2.php:527
+#: usr/local/www/vpn_ipsec_phase2.php:563
+#: usr/local/www/firewall_nat_edit.php:804
+#: usr/local/www/firewall_nat_edit.php:835 usr/local/www/interfaces.php:1106
+#: usr/local/www/interfaces.php:1107 usr/local/www/interfaces.php:1477
+#: usr/local/www/interfaces.php:1585 usr/local/www/firewall_nat_edit.php:799
+#: usr/local/www/firewall_nat_edit.php:830
+#: usr/local/www/diag_system_pftop.php:155
+#: usr/local/www/system_advanced_misc.php:398
+#: usr/local/www/interfaces_bridge_edit.php:439
+#: usr/local/www/vpn_ipsec_phase2.php:584 usr/local/www/interfaces.php:1120
+#: usr/local/www/interfaces.php:1121 usr/local/www/interfaces.php:1490
+#: usr/local/www/interfaces.php:1595 etc/inc/ipsec.inc:292
msgid "None"
msgstr "Nenhum"
@@ -3199,100 +3809,106 @@ msgstr "WebCfg - Página Diagnóstico: Exibir Estados"
msgid "Allow access to the 'Diagnostics: Show States' page."
msgstr "Permitir acesso à  página 'Diagnóstico: Exibir Estados'."
-#: etc/inc/priv.defs.inc:64
+#: etc/inc/priv.defs.inc:64 etc/inc/priv.defs.inc:70
msgid "WebCfg - Status: IPsec page"
msgstr "WebCfg - Página Status: IPsec"
-#: etc/inc/priv.defs.inc:65
+#: etc/inc/priv.defs.inc:65 etc/inc/priv.defs.inc:71
msgid "Allow access to the 'Status: IPsec' page."
msgstr "Permitir acesso à  página 'Status: IPsec'."
-#: etc/inc/priv.defs.inc:70
+#: etc/inc/priv.defs.inc:70 etc/inc/priv.defs.inc:76
msgid "WebCfg - Status: IPsec: SAD page"
msgstr "WebCfg - Página Status: Ipsec: SAD"
-#: etc/inc/priv.defs.inc:71
+#: etc/inc/priv.defs.inc:71 etc/inc/priv.defs.inc:77
msgid "Allow access to the 'Status: IPsec: SAD' page."
msgstr "Permitir acesso à  página 'Status: Ipsec: SAD'."
-#: etc/inc/priv.defs.inc:76
+#: etc/inc/priv.defs.inc:76 etc/inc/priv.defs.inc:82
msgid "WebCfg - Status: IPsec: SPD page"
msgstr "WebCfg - Página Status: Ipsec: SPD"
-#: etc/inc/priv.defs.inc:77
+#: etc/inc/priv.defs.inc:77 etc/inc/priv.defs.inc:83
msgid "Allow access to the 'Status: IPsec: SPD' page."
msgstr "Permitir acesso à  página 'Status: Ipsec: SPD'."
-#: etc/inc/priv.defs.inc:82
+#: etc/inc/priv.defs.inc:82 etc/inc/priv.defs.inc:88
msgid "WebCfg - Diag IPsec XML page"
msgstr "WebCfg - Página de Diagnóstico IPsec XML"
-#: etc/inc/priv.defs.inc:83
+#: etc/inc/priv.defs.inc:83 etc/inc/priv.defs.inc:89
msgid "Allow access to the 'Diag IPsec XML' page."
msgstr "Permitir acesso à página 'Diag IPsec XML'."
#: etc/inc/priv.defs.inc:88 etc/inc/priv.defs.inc:184
#: etc/inc/priv.defs.inc:220 etc/inc/priv.defs.inc:226
#: etc/inc/priv.defs.inc:202 etc/inc/priv.defs.inc:238
-#: etc/inc/priv.defs.inc:244
+#: etc/inc/priv.defs.inc:244 etc/inc/priv.defs.inc:94
+#: etc/inc/priv.defs.inc:208 etc/inc/priv.defs.inc:250
msgid "WebCfg - Diagnostics: System Activity"
msgstr "WebCfg - Página Diagnóstico: Atividade do Sistema"
#: etc/inc/priv.defs.inc:89 etc/inc/priv.defs.inc:185
#: etc/inc/priv.defs.inc:221 etc/inc/priv.defs.inc:227
#: etc/inc/priv.defs.inc:203 etc/inc/priv.defs.inc:239
-#: etc/inc/priv.defs.inc:245
+#: etc/inc/priv.defs.inc:245 etc/inc/priv.defs.inc:95
+#: etc/inc/priv.defs.inc:209 etc/inc/priv.defs.inc:251
msgid "Allows access to the 'Diagnostics: System Activity' page"
msgstr "Permitir acesso à página 'Diagnósticos: Atividade do Sistema'"
-#: etc/inc/priv.defs.inc:94
+#: etc/inc/priv.defs.inc:94 etc/inc/priv.defs.inc:100
msgid "WebCfg - Diagnostics: Logs: System page"
msgstr "WebCfg - Página Diagnóstico: Logs: Sistema"
-#: etc/inc/priv.defs.inc:95
+#: etc/inc/priv.defs.inc:95 etc/inc/priv.defs.inc:101
msgid "Allow access to the 'Diagnostics: Logs: System' page."
msgstr "Permitir acesso à  página 'Diagnóstico: Logs: Sistema'."
-#: etc/inc/priv.defs.inc:100
+#: etc/inc/priv.defs.inc:100 etc/inc/priv.defs.inc:106
msgid "WebCfg - Status: System logs: Portal Auth page"
msgstr "WebCfg - Página Status: Logs de distema: Portal de Autenticação"
-#: etc/inc/priv.defs.inc:101
+#: etc/inc/priv.defs.inc:101 etc/inc/priv.defs.inc:107
msgid "Allow access to the 'Status: System logs: Portal Auth' page."
msgstr ""
"Permitir acesso à  página 'Status: Logs de distema: Portal de Autenticação'."
-#: etc/inc/priv.defs.inc:106
+#: etc/inc/priv.defs.inc:106 etc/inc/priv.defs.inc:112
msgid "WebCfg - Diagnostics: Logs: DHCP page"
msgstr "WebCfg - Página Diagnóstico: Logs: DHCP"
-#: etc/inc/priv.defs.inc:107
+#: etc/inc/priv.defs.inc:107 etc/inc/priv.defs.inc:113
msgid "Allow access to the 'Diagnostics: Logs: DHCP' page."
msgstr "Permitir acesso à  página 'Diagnóstico: Logs: DHCP'."
-#: etc/inc/priv.defs.inc:112
+#: etc/inc/priv.defs.inc:112 etc/inc/priv.defs.inc:118
msgid "WebCfg - Diagnostics: Logs: Firewall page"
msgstr "WebCfg - Página Diagnóstico: Logs: Firewall"
-#: etc/inc/priv.defs.inc:113
+#: etc/inc/priv.defs.inc:113 etc/inc/priv.defs.inc:119
msgid "Allow access to the 'Diagnostics: Logs: Firewall' page."
msgstr "Permitir acesso à  página 'Diagnóstico: Logs: Firewall'."
#: etc/inc/priv.defs.inc:118 etc/inc/priv.defs.inc:136
+#: etc/inc/priv.defs.inc:142
msgid "WebCfg - Hidden: No longer included page"
msgstr "WebCfg - Página Omitidas: Página não mais inclusa"
#: etc/inc/priv.defs.inc:119 etc/inc/priv.defs.inc:137
+#: etc/inc/priv.defs.inc:143
msgid "Allow access to the 'Hidden: No longer included' page."
msgstr "Permitir acesso à  página 'Omitidas: Página não mais inclusa'."
#: etc/inc/priv.defs.inc:124 etc/inc/priv.defs.inc:142
-#: etc/inc/priv.defs.inc:160
+#: etc/inc/priv.defs.inc:160 etc/inc/priv.defs.inc:148
+#: etc/inc/priv.defs.inc:166
msgid "WebCfg - Status: System logs: IPsec VPN page"
msgstr "WebCfg - Página Status: Logs do Sistema: IPsec"
#: etc/inc/priv.defs.inc:125 etc/inc/priv.defs.inc:143
-#: etc/inc/priv.defs.inc:161
+#: etc/inc/priv.defs.inc:161 etc/inc/priv.defs.inc:149
+#: etc/inc/priv.defs.inc:167
msgid "Allow access to the 'Status: System logs: IPsec VPN' page."
msgstr "WebCfg - Página 'Status: Logs do Sistema: IPsec'."
@@ -3305,601 +3921,751 @@ msgid "Allow access to the 'Status: System logs: OpenNTPD' page."
msgstr "Permitir acesso à  página 'Status: Logs do Sistema: OpenNTPD'."
#: etc/inc/priv.defs.inc:136 etc/inc/priv.defs.inc:154
+#: etc/inc/priv.defs.inc:160
msgid "WebCfg - Status: System logs: OpenVPN page"
msgstr "WebCfg - Página Status: Logs do Sistema: OpenVPN"
#: etc/inc/priv.defs.inc:137 etc/inc/priv.defs.inc:155
+#: etc/inc/priv.defs.inc:161
msgid "Allow access to the 'Status: System logs: OpenVPN' page."
msgstr "Permitir acesso à  página 'Status: Logs do Sistema: OpenVPN'."
#: etc/inc/priv.defs.inc:148 etc/inc/priv.defs.inc:166
+#: etc/inc/priv.defs.inc:172
msgid "WebCfg - Status: System logs: Load Balancer page"
msgstr "WebCfg - Página Status: Logs do Sistema: Balanceador de Carga"
#: etc/inc/priv.defs.inc:149 etc/inc/priv.defs.inc:167
+#: etc/inc/priv.defs.inc:173
msgid "Allow access to the 'Status: System logs: Load Balancer' page."
msgstr ""
"Permitir acesso à  página 'Status: Logs do Sistema: Balanceador de Carga'."
#: etc/inc/priv.defs.inc:154 etc/inc/priv.defs.inc:172
+#: etc/inc/priv.defs.inc:178
msgid "WebCfg - Diagnostics: Logs: Settings page"
msgstr "WebCfg - Página Status: Logs do Sistema: Configurações"
#: etc/inc/priv.defs.inc:155 etc/inc/priv.defs.inc:173
+#: etc/inc/priv.defs.inc:179
msgid "Allow access to the 'Diagnostics: Logs: Settings' page."
msgstr "Permitir acesso à  página 'Status: Logs do Sistema: Configurações'."
#: etc/inc/priv.defs.inc:160 etc/inc/priv.defs.inc:178
+#: etc/inc/priv.defs.inc:184
msgid "WebCfg - Diagnostics: Logs: VPN page"
msgstr "WebCfg - Página Diagnóstico: Logs: VPN"
#: etc/inc/priv.defs.inc:161 etc/inc/priv.defs.inc:179
+#: etc/inc/priv.defs.inc:185
msgid "Allow access to the 'Diagnostics: Logs: VPN' page."
msgstr "Permitir acesso à  página 'Diagnóstico: Logs: VPN'."
#: etc/inc/priv.defs.inc:166 etc/inc/priv.defs.inc:184
+#: etc/inc/priv.defs.inc:190
msgid "WebCfg - Diagnostics: NanoBSD"
msgstr "WebCfg - Página Diagnóstico: NanoBSD"
#: etc/inc/priv.defs.inc:167 etc/inc/priv.defs.inc:185
+#: etc/inc/priv.defs.inc:191
msgid "Allow access to the 'Diagnostics: NanoBSD' page."
msgstr "Permitir acesso à página 'Diagnóstico: NanoBSD'."
#: etc/inc/priv.defs.inc:172 etc/inc/priv.defs.inc:190
+#: etc/inc/priv.defs.inc:196
msgid "WebCfg - Diagnostics: Packet Capture page"
msgstr "WebCfg - Página Diagnóstico: Captura de Pacotes"
#: etc/inc/priv.defs.inc:173 etc/inc/priv.defs.inc:191
+#: etc/inc/priv.defs.inc:197
msgid "Allow access to the 'Diagnostics: Packet Capture' page."
msgstr "Permitir acesso à  'Página Diagnóstico: Captura de Pacotes'."
#: etc/inc/priv.defs.inc:178 etc/inc/priv.defs.inc:196
+#: etc/inc/priv.defs.inc:202
msgid "WebCfg - Diagnostics: Patterns page"
msgstr "WebCfg - Página Diagnóstico: Modelos"
#: etc/inc/priv.defs.inc:179 etc/inc/priv.defs.inc:197
+#: etc/inc/priv.defs.inc:203
msgid "Allow access to the 'Diagnostics: Patterns' page."
msgstr "Permitir acesso à 'Página Diagnóstico: Modelos'."
#: etc/inc/priv.defs.inc:190 etc/inc/priv.defs.inc:208
+#: etc/inc/priv.defs.inc:214
msgid "WebCfg - Diagnostics: Ping page"
msgstr "WebCfg - Página Diagnóstico: Ping"
#: etc/inc/priv.defs.inc:191 etc/inc/priv.defs.inc:209
+#: etc/inc/priv.defs.inc:215
msgid "Allow access to the 'Diagnostics: Ping' page."
msgstr "Permitir acesso à 'Página Diagnóstico: Ping'."
#: etc/inc/priv.defs.inc:196 etc/inc/priv.defs.inc:214
+#: etc/inc/priv.defs.inc:220
msgid "WebCfg - Status: Package logs page"
msgstr "WebCfg - Página Status: Logs de Pacotes"
#: etc/inc/priv.defs.inc:197 etc/inc/priv.defs.inc:215
+#: etc/inc/priv.defs.inc:221
msgid "Allow access to the 'Status: Package logs' page."
msgstr "Permitir acesso à página 'Status: Logs de Pacotes'."
#: etc/inc/priv.defs.inc:202 etc/inc/priv.defs.inc:220
+#: etc/inc/priv.defs.inc:226
msgid "WebCfg - Diagnostics: Reset state page"
msgstr "WebCfg - Página Diagnóstico: Estado Inicial"
#: etc/inc/priv.defs.inc:203 etc/inc/priv.defs.inc:221
+#: etc/inc/priv.defs.inc:227
msgid "Allow access to the 'Diagnostics: Reset state' page."
msgstr "Permitir acesso à  página 'Diagnóstico: Estado Inicial'."
#: etc/inc/priv.defs.inc:208 etc/inc/priv.defs.inc:226
+#: etc/inc/priv.defs.inc:232
msgid "WebCfg - Diagnostics: Routing tables page"
msgstr "WebCfg - Página Diagnóstico: Tabelas de roteamento"
#: etc/inc/priv.defs.inc:209 etc/inc/priv.defs.inc:227
+#: etc/inc/priv.defs.inc:233
msgid "Allow access to the 'Diagnostics: Routing tables' page."
msgstr "Permitir acesso à página 'Diagnóstico: Tabelas de roteamento'."
#: etc/inc/priv.defs.inc:214 etc/inc/priv.defs.inc:232
+#: etc/inc/priv.defs.inc:238
msgid "WebCfg - Diagnostics: States Summary page"
msgstr "WebCfg - Diagnósticos: Página de Resumo de Estados"
#: etc/inc/priv.defs.inc:215 etc/inc/priv.defs.inc:233
+#: etc/inc/priv.defs.inc:239
msgid "Allow access to the 'Diagnostics: States Summary' page."
msgstr "Permitir acesso à  página 'Diagnóstico: Resumo de Estados'."
#: etc/inc/priv.defs.inc:232 etc/inc/priv.defs.inc:250
+#: etc/inc/priv.defs.inc:256
msgid "WebCfg - Diagnostics: PF Table IP addresses"
msgstr "WebCfg - Diagnósticos: Tabela PF de Endereços IP"
#: etc/inc/priv.defs.inc:233 etc/inc/priv.defs.inc:251
+#: etc/inc/priv.defs.inc:257
msgid "Allow access to the 'Diagnostics: Tables' page."
msgstr "Permitir acesso à  página 'Diagnósticos: Tabelas'."
#: etc/inc/priv.defs.inc:238 etc/inc/priv.defs.inc:256
+#: etc/inc/priv.defs.inc:262
msgid "WebCfg - Diagnostics: Traceroute page"
msgstr "WebCfg - Página Diagnóstico: Traceroute"
#: etc/inc/priv.defs.inc:239 etc/inc/priv.defs.inc:257
+#: etc/inc/priv.defs.inc:263
msgid "Allow access to the 'Diagnostics: Traceroute' page."
msgstr "Permitir acesso à página 'Diagnóstico: Traceroute'."
#: etc/inc/priv.defs.inc:244 etc/inc/priv.defs.inc:262
+#: etc/inc/priv.defs.inc:268
msgid "WebCfg - Diagnostics: Edit FIle"
msgstr "WebCfg - Diagnósticos: Editar arquivo"
#: etc/inc/priv.defs.inc:245 etc/inc/priv.defs.inc:263
+#: etc/inc/priv.defs.inc:269
msgid "Allow access to the 'Diagnostics: Edit File' page."
msgstr "Permitir acesso à página 'Diagnósticos: Editar arquivo'."
#: etc/inc/priv.defs.inc:250 etc/inc/priv.defs.inc:268
+#: etc/inc/priv.defs.inc:274 etc/inc/priv.defs.inc:276
msgid "WebCfg - Diagnostics: Command page"
msgstr "WebCfg - Página Diagnóstico: Comando"
#: etc/inc/priv.defs.inc:251 etc/inc/priv.defs.inc:269
+#: etc/inc/priv.defs.inc:275 etc/inc/priv.defs.inc:277
msgid "Allow access to the 'Diagnostics: Command' page."
msgstr "Permitir acesso à página 'Diagnóstico: Comando'."
#: etc/inc/priv.defs.inc:256 etc/inc/priv.defs.inc:274
+#: etc/inc/priv.defs.inc:280
msgid "WebCfg - Hidden: Exec Raw page"
msgstr "WebCfg - Página Escondida: Exec Raw"
#: etc/inc/priv.defs.inc:257 etc/inc/priv.defs.inc:275
+#: etc/inc/priv.defs.inc:281
msgid "Allow access to the 'Hidden: Exec Raw' page."
msgstr "Permitir acesso à página 'Escondida: Exec Raw'."
#: etc/inc/priv.defs.inc:262 etc/inc/priv.defs.inc:280
+#: etc/inc/priv.defs.inc:286 etc/inc/priv.defs.inc:282
msgid "WebCfg - Firewall: Aliases page"
msgstr "WebCfg - Página Firewall: Aliases"
#: etc/inc/priv.defs.inc:263 etc/inc/priv.defs.inc:281
+#: etc/inc/priv.defs.inc:287 etc/inc/priv.defs.inc:283
msgid "Allow access to the 'Firewall: Aliases' page."
msgstr "Permitir acesso à página 'Firewall: Aliases'."
#: etc/inc/priv.defs.inc:268 etc/inc/priv.defs.inc:286
+#: etc/inc/priv.defs.inc:292 etc/inc/priv.defs.inc:288
msgid "WebCfg - Firewall: Alias: Edit page"
msgstr "WebCfg - Página Firewall: Alias: Editar"
#: etc/inc/priv.defs.inc:269 etc/inc/priv.defs.inc:287
+#: etc/inc/priv.defs.inc:293 etc/inc/priv.defs.inc:289
msgid "Allow access to the 'Firewall: Alias: Edit' page."
msgstr "Permitir acesso à página 'Firewall: Alias: Editar'."
#: etc/inc/priv.defs.inc:274 etc/inc/priv.defs.inc:292
+#: etc/inc/priv.defs.inc:298 etc/inc/priv.defs.inc:294
msgid "WebCfg - Firewall: Alias: Import page"
msgstr "WebCfg - Página Firewall: Alias: Importação"
#: etc/inc/priv.defs.inc:275 etc/inc/priv.defs.inc:293
+#: etc/inc/priv.defs.inc:299 etc/inc/priv.defs.inc:295
msgid "Allow access to the 'Firewall: Alias: Import' page."
msgstr "Permitir acesso à página 'Firewall: Alias: Importação'."
#: etc/inc/priv.defs.inc:280 etc/inc/priv.defs.inc:298
+#: etc/inc/priv.defs.inc:304 etc/inc/priv.defs.inc:300
msgid "WebCfg - Firewall: NAT: Port Forward page"
msgstr "WebCfg - Página Firewall: NAT: Encaminhamento de Porta"
#: etc/inc/priv.defs.inc:281 etc/inc/priv.defs.inc:299
+#: etc/inc/priv.defs.inc:305 etc/inc/priv.defs.inc:301
msgid "Allow access to the 'Firewall: NAT: Port Forward' page."
msgstr "Permitir acesso à  página 'Firewall: NAT: Encaminhamento de Porta'."
#: etc/inc/priv.defs.inc:286 etc/inc/priv.defs.inc:304
+#: etc/inc/priv.defs.inc:310 etc/inc/priv.defs.inc:306
msgid "WebCfg - Firewall: NAT: 1:1 page"
msgstr "WebCfg - Página Firewall: NAT: 1:1"
#: etc/inc/priv.defs.inc:287 etc/inc/priv.defs.inc:305
+#: etc/inc/priv.defs.inc:311 etc/inc/priv.defs.inc:307
msgid "Allow access to the 'Firewall: NAT: 1:1' page."
msgstr "Permitir acesso à página 'Firewall: NAT: 1:1'."
#: etc/inc/priv.defs.inc:292 etc/inc/priv.defs.inc:310
+#: etc/inc/priv.defs.inc:316 etc/inc/priv.defs.inc:312
msgid "WebCfg - Firewall: NAT: 1:1: Edit page"
msgstr "WebCfg - Página Firewall: NAT: 1:1: Editar"
#: etc/inc/priv.defs.inc:293 etc/inc/priv.defs.inc:311
+#: etc/inc/priv.defs.inc:317 etc/inc/priv.defs.inc:313
msgid "Allow access to the 'Firewall: NAT: 1:1: Edit' page."
msgstr "Permitir acesso à página 'Firewall: NAT: 1:1: Editar'."
#: etc/inc/priv.defs.inc:298 etc/inc/priv.defs.inc:316
+#: etc/inc/priv.defs.inc:322 etc/inc/priv.defs.inc:318
msgid "WebCfg - Firewall: NAT: Port Forward: Edit page"
msgstr "WebCfg - Página Firewall: NAT: Encaminhamento de Porta"
#: etc/inc/priv.defs.inc:299 etc/inc/priv.defs.inc:317
+#: etc/inc/priv.defs.inc:323 etc/inc/priv.defs.inc:319
msgid "Allow access to the 'Firewall: NAT: Port Forward: Edit' page."
msgstr "Permitir acesso à página 'Firewall: NAT: Encaminhamento de Porta'."
#: etc/inc/priv.defs.inc:304 etc/inc/priv.defs.inc:322
+#: etc/inc/priv.defs.inc:328 etc/inc/priv.defs.inc:324
msgid "WebCfg - Firewall: NAT: Outbound page"
msgstr "WebCfg - Página Firewall: NAT: Outbound"
#: etc/inc/priv.defs.inc:305 etc/inc/priv.defs.inc:323
+#: etc/inc/priv.defs.inc:329 etc/inc/priv.defs.inc:325
msgid "Allow access to the 'Firewall: NAT: Outbound' page."
msgstr "Permitir acesso à página 'Firewall: NAT: Outbound'."
#: etc/inc/priv.defs.inc:310 etc/inc/priv.defs.inc:328
+#: etc/inc/priv.defs.inc:334 etc/inc/priv.defs.inc:330
msgid "WebCfg - Firewall: NAT: Outbound: Edit page"
msgstr "WebCfg - Página Firewall: NAT: Outbound: Editar"
#: etc/inc/priv.defs.inc:311 etc/inc/priv.defs.inc:329
+#: etc/inc/priv.defs.inc:335 etc/inc/priv.defs.inc:331
msgid "Allow access to the 'Firewall: NAT: Outbound: Edit' page."
msgstr "Permitir acesso à página 'Firewall: NAT: Outbound: Editar'."
#: etc/inc/priv.defs.inc:316 etc/inc/priv.defs.inc:334
+#: etc/inc/priv.defs.inc:340 etc/inc/priv.defs.inc:336
msgid "WebCfg - Firewall: Rules page"
msgstr "WebCfg - Página Firewall: Regras"
#: etc/inc/priv.defs.inc:317 etc/inc/priv.defs.inc:335
+#: etc/inc/priv.defs.inc:341 etc/inc/priv.defs.inc:337
msgid "Allow access to the 'Firewall: Rules' page."
msgstr "Permitir acesso à página 'Firewall: Regras'."
#: etc/inc/priv.defs.inc:322 etc/inc/priv.defs.inc:340
+#: etc/inc/priv.defs.inc:346 etc/inc/priv.defs.inc:342
msgid "WebCfg - Firewall: Rules: Edit page"
msgstr "WebCfg - Página Firewall: Regras: Editar"
#: etc/inc/priv.defs.inc:323 etc/inc/priv.defs.inc:341
+#: etc/inc/priv.defs.inc:347 etc/inc/priv.defs.inc:343
msgid "Allow access to the 'Firewall: Rules: Edit' page."
msgstr "Permitir acesso à página 'Firewall: Regras: Editar'."
#: etc/inc/priv.defs.inc:328 etc/inc/priv.defs.inc:346
+#: etc/inc/priv.defs.inc:352 etc/inc/priv.defs.inc:348
msgid "WebCfg - Firewall: Schedules page"
msgstr "WebCfg - Página Firewall: Agendas"
#: etc/inc/priv.defs.inc:329 etc/inc/priv.defs.inc:347
+#: etc/inc/priv.defs.inc:353 etc/inc/priv.defs.inc:349
msgid "Allow access to the 'Firewall: Schedules' page."
msgstr "Permitir acesso à página 'Firewall: Agendas'."
#: etc/inc/priv.defs.inc:334 etc/inc/priv.defs.inc:352
+#: etc/inc/priv.defs.inc:358 etc/inc/priv.defs.inc:354
msgid "WebCfg - Firewall: Schedules: Edit page"
msgstr "WebCfg - Página Firewall: Agendas: Editar"
#: etc/inc/priv.defs.inc:335 etc/inc/priv.defs.inc:353
+#: etc/inc/priv.defs.inc:359 etc/inc/priv.defs.inc:355
msgid "Allow access to the 'Firewall: Schedules: Edit' page."
msgstr "Permitir acesso à página 'Firewall: Agendas: Editar'."
#: etc/inc/priv.defs.inc:340 etc/inc/priv.defs.inc:358
+#: etc/inc/priv.defs.inc:364 etc/inc/priv.defs.inc:360
msgid "WebCfg - Firewall: Traffic Shaper page"
msgstr "WebCfg - Página Firewall: Traffic Shaper"
#: etc/inc/priv.defs.inc:341 etc/inc/priv.defs.inc:359
+#: etc/inc/priv.defs.inc:365 etc/inc/priv.defs.inc:361
msgid "Allow access to the 'Firewall: Traffic Shaper' page."
msgstr "Permitir acesso à página 'Firewall: Traffic Shaper'."
#: etc/inc/priv.defs.inc:346 etc/inc/priv.defs.inc:364
+#: etc/inc/priv.defs.inc:370 etc/inc/priv.defs.inc:366
msgid "WebCfg - Firewall: Traffic Shaper: Layer7 page"
msgstr "WebCfg - Página Firewall: Traffic Shaper: Layer7"
#: etc/inc/priv.defs.inc:347 etc/inc/priv.defs.inc:365
+#: etc/inc/priv.defs.inc:371 etc/inc/priv.defs.inc:367
msgid "Allow access to the 'Firewall: Traffic Shaper: Layer7' page."
msgstr "Permitir acesso à página 'Firewall: Traffic Shaper: Layer7'."
#: etc/inc/priv.defs.inc:352 etc/inc/priv.defs.inc:370
+#: etc/inc/priv.defs.inc:376 etc/inc/priv.defs.inc:372
msgid "WebCfg - Firewall: Traffic Shaper: Queues page"
msgstr "WebCfg - Página Firewall: Traffic Shaper: Filas"
#: etc/inc/priv.defs.inc:353 etc/inc/priv.defs.inc:371
+#: etc/inc/priv.defs.inc:377 etc/inc/priv.defs.inc:373
msgid "Allow access to the 'Firewall: Traffic Shaper: Queues' page."
msgstr "Permitir acesso à página 'Firewall: Traffic Shaper: Filas'."
#: etc/inc/priv.defs.inc:358 etc/inc/priv.defs.inc:376
+#: etc/inc/priv.defs.inc:382 etc/inc/priv.defs.inc:378
msgid "WebCfg - Firewall: Traffic Shaper: Limiter page"
msgstr "WebCfg - Página Firewall: Traffic Shaper: Limitador"
#: etc/inc/priv.defs.inc:359 etc/inc/priv.defs.inc:377
+#: etc/inc/priv.defs.inc:383 etc/inc/priv.defs.inc:379
msgid "Allow access to the 'Firewall: Traffic Shaper: Limiter' page."
msgstr "Permitir acesso à página 'Firewall: Traffic Shaper: Limitador'."
#: etc/inc/priv.defs.inc:364 etc/inc/priv.defs.inc:382
+#: etc/inc/priv.defs.inc:388 etc/inc/priv.defs.inc:384
msgid "WebCfg - Firewall: Traffic Shaper: Wizard page"
msgstr "WebCfg - Página Firewall: Traffic Shaper: Wizard"
#: etc/inc/priv.defs.inc:365 etc/inc/priv.defs.inc:383
+#: etc/inc/priv.defs.inc:389 etc/inc/priv.defs.inc:385
msgid "Allow access to the 'Firewall: Traffic Shaper: Wizard' page."
msgstr "Permitir acesso à página 'Firewall: Traffic Shaper: Wizard'."
#: etc/inc/priv.defs.inc:370 etc/inc/priv.defs.inc:388
+#: etc/inc/priv.defs.inc:394 etc/inc/priv.defs.inc:390
msgid "WebCfg - Firewall: Virtual IP Addresses page"
msgstr "WebCfg - Página Firewall: Endereços IP Virtuais"
#: etc/inc/priv.defs.inc:371 etc/inc/priv.defs.inc:389
+#: etc/inc/priv.defs.inc:395 etc/inc/priv.defs.inc:391
msgid "Allow access to the 'Firewall: Virtual IP Addresses' page."
msgstr "Permitir acesso à Página 'Firewall: Endereços IP Virtuais'."
#: etc/inc/priv.defs.inc:376 etc/inc/priv.defs.inc:394
+#: etc/inc/priv.defs.inc:400 etc/inc/priv.defs.inc:396
msgid "WebCfg - Firewall: Virtual IP Address: Edit page"
msgstr "WebCfg - Página Firewall: Endereços IP Virtuais: Editar"
#: etc/inc/priv.defs.inc:377 etc/inc/priv.defs.inc:395
+#: etc/inc/priv.defs.inc:401 etc/inc/priv.defs.inc:397
msgid "Allow access to the 'Firewall: Virtual IP Address: Edit' page."
msgstr "Permitir acesso à página 'Firewall: Endereços IP Virtuais: Editar'."
#: etc/inc/priv.defs.inc:382 etc/inc/priv.defs.inc:400
+#: etc/inc/priv.defs.inc:406 etc/inc/priv.defs.inc:402
msgid "WebCfg - AJAX: Get Service Providers"
msgstr "WebCfg - AJAX: Obter Provedores de Serviço"
#: etc/inc/priv.defs.inc:383 etc/inc/priv.defs.inc:401
+#: etc/inc/priv.defs.inc:407 etc/inc/priv.defs.inc:403
msgid "Allow access to the 'AJAX: Service Providers' page."
msgstr "Permitir acesso à página 'AJAX: Provedores de Serviço'."
#: etc/inc/priv.defs.inc:388 etc/inc/priv.defs.inc:406
+#: etc/inc/priv.defs.inc:412 etc/inc/priv.defs.inc:408
msgid "WebCfg - AJAX: Get Stats"
msgstr "WebCfg - Página AJAX: Obter Status"
#: etc/inc/priv.defs.inc:389 etc/inc/priv.defs.inc:407
+#: etc/inc/priv.defs.inc:413 etc/inc/priv.defs.inc:409
msgid "Allow access to the 'AJAX: Get Stats' page."
msgstr "Permitir acesso à página 'AJAX: Obter Status'."
#: etc/inc/priv.defs.inc:394 etc/inc/priv.defs.inc:412
+#: etc/inc/priv.defs.inc:418 etc/inc/priv.defs.inc:414
msgid "WebCfg - Diagnostics: Interface Traffic page"
msgstr "WebCfg - Página Diagnóstico: Tráfego de Interface"
#: etc/inc/priv.defs.inc:395 etc/inc/priv.defs.inc:413
+#: etc/inc/priv.defs.inc:419 etc/inc/priv.defs.inc:415
msgid "Allow access to the 'Diagnostics: Interface Traffic' page."
msgstr "Permitir acesso à página 'Diagnóstico: Tráfego de Interface'."
#: etc/inc/priv.defs.inc:400 etc/inc/priv.defs.inc:814
#: etc/inc/priv.defs.inc:418 etc/inc/priv.defs.inc:832
+#: etc/inc/priv.defs.inc:424 etc/inc/priv.defs.inc:838
+#: etc/inc/priv.defs.inc:420 etc/inc/priv.defs.inc:846
msgid "WebCfg - Diagnostics: CPU Utilization page"
msgstr "WebCfg - Página Diagnóstico: Utilização de CPU"
#: etc/inc/priv.defs.inc:401 etc/inc/priv.defs.inc:815
#: etc/inc/priv.defs.inc:419 etc/inc/priv.defs.inc:833
+#: etc/inc/priv.defs.inc:425 etc/inc/priv.defs.inc:839
+#: etc/inc/priv.defs.inc:421 etc/inc/priv.defs.inc:847
msgid "Allow access to the 'Diagnostics: CPU Utilization' page."
msgstr "Permitir acesso à Página 'Diagnóstico: Utilização de CPU'."
#: etc/inc/priv.defs.inc:406 etc/inc/priv.defs.inc:424
+#: etc/inc/priv.defs.inc:430 etc/inc/priv.defs.inc:426
msgid "WebCfg - Diagnostics: Halt system page"
msgstr "WebCfg - Página Diagnóstico: Desligar sistema"
#: etc/inc/priv.defs.inc:407 etc/inc/priv.defs.inc:425
+#: etc/inc/priv.defs.inc:431 etc/inc/priv.defs.inc:427
msgid "Allow access to the 'Diagnostics: Halt system' page."
msgstr "Permitir acesso à página 'Diagnóstico: Desligar sistema'."
#: etc/inc/priv.defs.inc:412 etc/inc/priv.defs.inc:430
+#: etc/inc/priv.defs.inc:436 etc/inc/priv.defs.inc:432
msgid "WebCfg - Required for javascript page"
msgstr "WebCfg - Página Requerido por javascript"
#: etc/inc/priv.defs.inc:413 etc/inc/priv.defs.inc:431
+#: etc/inc/priv.defs.inc:437 etc/inc/priv.defs.inc:433
msgid "Allow access to the 'Required for javascript' page."
msgstr "Permitir acesso à página 'Requerido por javascript'."
#: etc/inc/priv.defs.inc:418 etc/inc/priv.defs.inc:436
+#: etc/inc/priv.defs.inc:442 etc/inc/priv.defs.inc:438
msgid "WebCfg - XMLRPC Interface Stats page"
msgstr "WebCfg - Página Estatísticas de Interface XMLRPC"
#: etc/inc/priv.defs.inc:419 etc/inc/priv.defs.inc:437
+#: etc/inc/priv.defs.inc:443 etc/inc/priv.defs.inc:439
msgid "Allow access to the 'XMLRPC Interface Stats' page."
msgstr "Permitir acesso à página 'Estatísticas de Interface XMLRPC'."
#: etc/inc/priv.defs.inc:424 etc/inc/priv.defs.inc:442
+#: etc/inc/priv.defs.inc:448 etc/inc/priv.defs.inc:444
msgid "WebCfg - System: Login / Logout page / Dashboard"
msgstr "WebCfg - Sistema: Login / Página de Logout / Dashboard"
#: etc/inc/priv.defs.inc:425 etc/inc/priv.defs.inc:443
+#: etc/inc/priv.defs.inc:449 etc/inc/priv.defs.inc:445
msgid "Allow access to the 'System: Login / Logout' page and Dashboard."
msgstr "Permitir acesso à página 'Sistema: Login / Logout' e Dashboard."
#: etc/inc/priv.defs.inc:430 etc/inc/priv.defs.inc:448
+#: etc/inc/priv.defs.inc:454 etc/inc/priv.defs.inc:450
msgid "WebCfg - Interfaces: WAN page"
msgstr "WebCfg - Página Interfaces: WAN"
#: etc/inc/priv.defs.inc:431 etc/inc/priv.defs.inc:449
+#: etc/inc/priv.defs.inc:455 etc/inc/priv.defs.inc:451
msgid "Allow access to the 'Interfaces' page."
msgstr "Permitir acesso à página 'Interfaces'."
#: etc/inc/priv.defs.inc:436 etc/inc/priv.defs.inc:454
+#: etc/inc/priv.defs.inc:460 etc/inc/priv.defs.inc:456
msgid "WebCfg - Interfaces: Assign network ports page"
msgstr "WebCfg - Página Interfaces: Atribuir portas de rede"
#: etc/inc/priv.defs.inc:437 etc/inc/priv.defs.inc:455
+#: etc/inc/priv.defs.inc:461 etc/inc/priv.defs.inc:457
msgid "Allow access to the 'Interfaces: Assign network ports' page."
msgstr "Permitir acesso à página 'Interfaces: Atribuir portas de rede'."
#: etc/inc/priv.defs.inc:442 etc/inc/priv.defs.inc:460
+#: etc/inc/priv.defs.inc:466 etc/inc/priv.defs.inc:462
msgid "WebCfg - Interfaces: Bridge page"
msgstr "WebCfg - Página Interfaces: Ponte"
#: etc/inc/priv.defs.inc:443 etc/inc/priv.defs.inc:461
+#: etc/inc/priv.defs.inc:467 etc/inc/priv.defs.inc:463
msgid "Allow access to the 'Interfaces: Bridge' page."
msgstr "Permitir acesso à página 'Interfaces: Ponte'."
#: etc/inc/priv.defs.inc:448 etc/inc/priv.defs.inc:466
+#: etc/inc/priv.defs.inc:472 etc/inc/priv.defs.inc:468
msgid "WebCfg - Interfaces: Bridge edit page"
msgstr "WebCfg - Página Interfaces: Editar Ponte"
#: etc/inc/priv.defs.inc:449 etc/inc/priv.defs.inc:467
+#: etc/inc/priv.defs.inc:473 etc/inc/priv.defs.inc:469
msgid "Allow access to the 'Interfaces: Bridge : Edit' page."
msgstr "Permitir acesso à página 'Interfaces: Editar Ponte'."
#: etc/inc/priv.defs.inc:454 etc/inc/priv.defs.inc:472
+#: etc/inc/priv.defs.inc:478 etc/inc/priv.defs.inc:474
msgid "WebCfg - Interfaces: GIF page"
msgstr "WebCfg - Página Interfaces: GIF"
#: etc/inc/priv.defs.inc:455 etc/inc/priv.defs.inc:473
+#: etc/inc/priv.defs.inc:479 etc/inc/priv.defs.inc:475
msgid "Allow access to the 'Interfaces: GIF' page."
msgstr "Permitir acesso à página 'Interfaces: GIF'."
#: etc/inc/priv.defs.inc:460 etc/inc/priv.defs.inc:478
+#: etc/inc/priv.defs.inc:484 etc/inc/priv.defs.inc:480
msgid "WebCfg - Interfaces: GIF: Edit page"
msgstr "WebCfg - Página Interfaces: GIF: Editar"
#: etc/inc/priv.defs.inc:461 etc/inc/priv.defs.inc:479
+#: etc/inc/priv.defs.inc:485 etc/inc/priv.defs.inc:481
msgid "Allow access to the 'Interfaces: GIF: Edit' page."
msgstr "Permitir acesso à página 'Interfaces: GIF: Editar'."
#: etc/inc/priv.defs.inc:466 etc/inc/priv.defs.inc:484
+#: etc/inc/priv.defs.inc:490 etc/inc/priv.defs.inc:486
msgid "WebCfg - Interfaces: GRE page"
msgstr "WebCfg - Página Interfaces: GRE"
#: etc/inc/priv.defs.inc:467 etc/inc/priv.defs.inc:485
+#: etc/inc/priv.defs.inc:491 etc/inc/priv.defs.inc:487
msgid "Allow access to the 'Interfaces: GRE' page."
msgstr "Permitir acesso à página 'Interfaces: GRE'."
#: etc/inc/priv.defs.inc:472 etc/inc/priv.defs.inc:490
+#: etc/inc/priv.defs.inc:496 etc/inc/priv.defs.inc:492
msgid "WebCfg - Interfaces: GRE: Edit page"
msgstr "WebCfg - Página Interfaces: GRE: Editar"
#: etc/inc/priv.defs.inc:473 etc/inc/priv.defs.inc:491
+#: etc/inc/priv.defs.inc:497 etc/inc/priv.defs.inc:493
msgid "Allow access to the 'Interfaces: GRE: Edit' page."
msgstr "Permitir acesso à página 'Interfaces: GRE: Editar'."
#: etc/inc/priv.defs.inc:478 etc/inc/priv.defs.inc:496
+#: etc/inc/priv.defs.inc:502 etc/inc/priv.defs.inc:498
msgid "WebCfg - Interfaces: Groups page"
msgstr "WebCfg - Página Interfaces: Grupos"
#: etc/inc/priv.defs.inc:479 etc/inc/priv.defs.inc:497
+#: etc/inc/priv.defs.inc:503 etc/inc/priv.defs.inc:499
msgid "Create interface groups"
msgstr "Criar grupos de interface"
#: etc/inc/priv.defs.inc:484 etc/inc/priv.defs.inc:502
+#: etc/inc/priv.defs.inc:508 etc/inc/priv.defs.inc:504
msgid "WebCfg - Interfaces: Groups: Edit page"
msgstr "WebCfg - Página Interfaces: Grupos: Editar"
#: etc/inc/priv.defs.inc:485 etc/inc/priv.defs.inc:503
+#: etc/inc/priv.defs.inc:509 etc/inc/priv.defs.inc:505
msgid "Edit Interface groups"
msgstr "Editar grupos de Interface"
#: etc/inc/priv.defs.inc:490 etc/inc/priv.defs.inc:508
+#: etc/inc/priv.defs.inc:514 etc/inc/priv.defs.inc:510
msgid "WebCfg - Interfaces: LAGG: page"
msgstr "WebCfg - Página Interfaces: LAGG"
#: etc/inc/priv.defs.inc:491 etc/inc/priv.defs.inc:497
#: etc/inc/priv.defs.inc:509 etc/inc/priv.defs.inc:515
+#: etc/inc/priv.defs.inc:521 etc/inc/priv.defs.inc:511
+#: etc/inc/priv.defs.inc:517
msgid "Edit Interface LAGG"
msgstr "Editar LAGG da Interface"
#: etc/inc/priv.defs.inc:496 etc/inc/priv.defs.inc:514
+#: etc/inc/priv.defs.inc:520 etc/inc/priv.defs.inc:516
msgid "WebCfg - Interfaces: LAGG: Edit page"
msgstr "WebCfg - Página Interfaces: LAGG: Editar"
#: etc/inc/priv.defs.inc:502 etc/inc/priv.defs.inc:520
+#: etc/inc/priv.defs.inc:526 etc/inc/priv.defs.inc:522
msgid "WebCfg - Interfaces: ppps page"
msgstr "WebCfg - Interfaces: Página PPPs"
#: etc/inc/priv.defs.inc:503 etc/inc/priv.defs.inc:521
+#: etc/inc/priv.defs.inc:527 etc/inc/priv.defs.inc:523
msgid "Allow access to the 'Interfaces: ppps' page."
msgstr "Permitir acesso à página 'Interfaces: PPPs'."
#: etc/inc/priv.defs.inc:508 etc/inc/priv.defs.inc:526
+#: etc/inc/priv.defs.inc:532 etc/inc/priv.defs.inc:528
msgid "WebCfg - Interfaces: PPPs: Edit page"
msgstr "WebCfg - Interfaces: PPPs: Editar página"
#: etc/inc/priv.defs.inc:509 etc/inc/priv.defs.inc:527
+#: etc/inc/priv.defs.inc:533 etc/inc/priv.defs.inc:529
msgid "Allow access to the 'Interfaces: PPPs: Edit' page."
msgstr "Permitir acesso à página 'Interfaces: PPPs: Editar página'."
#: etc/inc/priv.defs.inc:514 etc/inc/priv.defs.inc:532
+#: etc/inc/priv.defs.inc:538 etc/inc/priv.defs.inc:534
msgid "WebCfg - Interfaces: QinQ page"
msgstr "WebCfg - Página Interfaces: QinQ"
#: etc/inc/priv.defs.inc:515 etc/inc/priv.defs.inc:533
+#: etc/inc/priv.defs.inc:539 etc/inc/priv.defs.inc:535
msgid "Allow access to the 'Interfaces: QinQ' page."
msgstr "Permitir acesso à página 'Interfaces: QinQ'."
#: etc/inc/priv.defs.inc:520 etc/inc/priv.defs.inc:538
+#: etc/inc/priv.defs.inc:544 etc/inc/priv.defs.inc:540
msgid "WebCfg - Interfaces: QinQ: Edit page"
msgstr "WebCfg - Página Interfaces: QinQ: Editar"
#: etc/inc/priv.defs.inc:521 etc/inc/priv.defs.inc:539
+#: etc/inc/priv.defs.inc:545 etc/inc/priv.defs.inc:541
msgid "Edit Interface qinq"
msgstr "Editar Qinq da Interface"
#: etc/inc/priv.defs.inc:526 etc/inc/priv.defs.inc:544
+#: etc/inc/priv.defs.inc:550 etc/inc/priv.defs.inc:546
msgid "WebCfg - Interfaces: VLAN page"
msgstr "WebCfg - Página Interfaces: VLAN"
#: etc/inc/priv.defs.inc:527 etc/inc/priv.defs.inc:545
+#: etc/inc/priv.defs.inc:551 etc/inc/priv.defs.inc:547
msgid "Allow access to the 'Interfaces: VLAN' page."
msgstr "Permitir acesso à página 'Interfaces: VLAN'."
#: etc/inc/priv.defs.inc:532 etc/inc/priv.defs.inc:550
+#: etc/inc/priv.defs.inc:556 etc/inc/priv.defs.inc:552
msgid "WebCfg - Interfaces: VLAN: Edit page"
msgstr "WebCfg - Página Interfaces: VLAN: Editar"
#: etc/inc/priv.defs.inc:533 etc/inc/priv.defs.inc:551
+#: etc/inc/priv.defs.inc:557 etc/inc/priv.defs.inc:553
msgid "Allow access to the 'Interfaces: VLAN: Edit' page."
msgstr "Permitir acesso à página 'Interfaces: VLAN'."
#: etc/inc/priv.defs.inc:538 etc/inc/priv.defs.inc:556
+#: etc/inc/priv.defs.inc:562 etc/inc/priv.defs.inc:558
msgid "WebCfg - Interfaces: Wireless page"
msgstr "WebCfg - Página Interfaces: Sem fio"
#: etc/inc/priv.defs.inc:539 etc/inc/priv.defs.inc:557
+#: etc/inc/priv.defs.inc:563 etc/inc/priv.defs.inc:559
msgid "Allow access to the 'Interfaces: Wireless' page."
msgstr "Permitir acesso à página 'Interfaces: Sem fio'."
#: etc/inc/priv.defs.inc:544 etc/inc/priv.defs.inc:562
+#: etc/inc/priv.defs.inc:568 etc/inc/priv.defs.inc:564
msgid "WebCfg - Interfaces: Wireless edit page"
msgstr "WebCfg - Página Interfaces: Editar Sem fio"
#: etc/inc/priv.defs.inc:545 etc/inc/priv.defs.inc:563
+#: etc/inc/priv.defs.inc:569 etc/inc/priv.defs.inc:565
msgid "Allow access to the 'Interfaces: Wireless : Edit' page."
msgstr "WebCfg - Página 'Interfaces: Editar Sem fio'."
#: etc/inc/priv.defs.inc:550 etc/inc/priv.defs.inc:568
+#: etc/inc/priv.defs.inc:574 etc/inc/priv.defs.inc:570
msgid "WebCfg - System: License page"
msgstr "WebCfg - Página Sistema: Licença"
#: etc/inc/priv.defs.inc:551 etc/inc/priv.defs.inc:569
+#: etc/inc/priv.defs.inc:575 etc/inc/priv.defs.inc:571
msgid "Allow access to the 'System: License' page."
msgstr "Permitir acesso à página 'Sistema: Licença'."
#: etc/inc/priv.defs.inc:556 etc/inc/priv.defs.inc:574
+#: etc/inc/priv.defs.inc:580 etc/inc/priv.defs.inc:576
msgid "WebCfg - Services: Load Balancer: Monitors page"
msgstr "WebCfg - Página Serviços: Balanceador de Carga: Monitores"
#: etc/inc/priv.defs.inc:557 etc/inc/priv.defs.inc:575
+#: etc/inc/priv.defs.inc:581 etc/inc/priv.defs.inc:577
msgid "Allow access to the 'Services: Load Balancer: Monitors' page."
msgstr "Permitir acesso à página 'Serviços: Balanceador de Carga: Monitores'."
#: etc/inc/priv.defs.inc:562 etc/inc/priv.defs.inc:580
+#: etc/inc/priv.defs.inc:586 etc/inc/priv.defs.inc:582
msgid "WebCfg - Services: Load Balancer: Monitor: Edit page"
msgstr "WebCfg - Página Serviços: Balanceador de Carga: Monitores: Editar"
#: etc/inc/priv.defs.inc:563 etc/inc/priv.defs.inc:581
+#: etc/inc/priv.defs.inc:587 etc/inc/priv.defs.inc:583
msgid "Allow access to the 'Services: Load Balancer: Monitor: Edit' page."
msgstr ""
"Permitir acesso à página 'Serviços: Balanceador de Carga: Monitores: Editar'."
#: etc/inc/priv.defs.inc:568 etc/inc/priv.defs.inc:586
+#: etc/inc/priv.defs.inc:592 etc/inc/priv.defs.inc:588
msgid "WebCfg - Load Balancer: Pool page"
msgstr "WebCfg - Página Balanceador de Carga: Pool"
#: etc/inc/priv.defs.inc:569 etc/inc/priv.defs.inc:587
+#: etc/inc/priv.defs.inc:593 etc/inc/priv.defs.inc:589
msgid "Allow access to the 'Load Balancer: Pool' page."
msgstr "Permitir acesso à página 'Balanceador de Carga: Pool'."
#: etc/inc/priv.defs.inc:574 etc/inc/priv.defs.inc:592
+#: etc/inc/priv.defs.inc:598 etc/inc/priv.defs.inc:594
msgid "WebCfg - Load Balancer: Pool: Edit page"
msgstr "WebCfg - Página Balanceador de Carga: Pool: Editar"
#: etc/inc/priv.defs.inc:575 etc/inc/priv.defs.inc:593
+#: etc/inc/priv.defs.inc:599 etc/inc/priv.defs.inc:595
msgid "Allow access to the 'Load Balancer: Pool: Edit' page."
msgstr "Permitir acesso à página 'Balanceador de Carga: Pool: Editar'."
#: etc/inc/priv.defs.inc:580 etc/inc/priv.defs.inc:598
+#: etc/inc/priv.defs.inc:604 etc/inc/priv.defs.inc:600
msgid "WebCfg - Services: Load Balancer: Relay Actions page"
msgstr "WebCfg - Página Serviços: Balanceador de Carga: Ações de Relay"
#: etc/inc/priv.defs.inc:581 etc/inc/priv.defs.inc:599
+#: etc/inc/priv.defs.inc:605 etc/inc/priv.defs.inc:601
msgid "Allow access to the 'Services: Load Balancer: Relay Actions' page."
msgstr ""
"Permitir acesso à página 'Página Serviços: Balanceador de Carga: Ações de "
"Relay'."
#: etc/inc/priv.defs.inc:586 etc/inc/priv.defs.inc:604
+#: etc/inc/priv.defs.inc:610 etc/inc/priv.defs.inc:606
msgid "WebCfg - Services: Load Balancer: Relay Action: Edit page"
msgstr "WebCfg - Serviços: Balanceador de Carga: Ações de Relay: Página Editar"
#: etc/inc/priv.defs.inc:587 etc/inc/priv.defs.inc:605
+#: etc/inc/priv.defs.inc:611 etc/inc/priv.defs.inc:607
msgid "Allow access to the 'Services: Load Balancer: Relay Action: Edit' page."
msgstr ""
"Permitir acesso à página 'Página Serviços: Balanceador de Carga: Ações de "
"Relay: Editar'."
#: etc/inc/priv.defs.inc:592 etc/inc/priv.defs.inc:610
+#: etc/inc/priv.defs.inc:616 etc/inc/priv.defs.inc:612
msgid "WebCfg - Services: Load Balancer: Relay Protocols page"
msgstr "WebCfg - Página Serviços: Balanceador de Carga: Protocolos Relay"
#: etc/inc/priv.defs.inc:593 etc/inc/priv.defs.inc:611
+#: etc/inc/priv.defs.inc:617 etc/inc/priv.defs.inc:613
msgid "Allow access to the 'Services: Load Balancer: Relay Protocols' page."
msgstr ""
"Permitir acesso à página 'Serviços: Balanceador de Carga: Protocolos Relay'."
#: etc/inc/priv.defs.inc:598 etc/inc/priv.defs.inc:616
+#: etc/inc/priv.defs.inc:622 etc/inc/priv.defs.inc:618
msgid "WebCfg - Services: Load Balancer: Relay Protocol: Edit page"
msgstr ""
"WebCfg - Página Serviços: Balanceador de Carga: Protocolo Relay: Editar"
#: etc/inc/priv.defs.inc:599 etc/inc/priv.defs.inc:617
+#: etc/inc/priv.defs.inc:623 etc/inc/priv.defs.inc:619
msgid ""
"Allow access to the 'Services: Load Balancer: Relay Protocol: Edit' page."
msgstr ""
@@ -3907,200 +4673,250 @@ msgstr ""
"Editar'."
#: etc/inc/priv.defs.inc:604 etc/inc/priv.defs.inc:622
+#: etc/inc/priv.defs.inc:628 etc/inc/priv.defs.inc:624
msgid "WebCfg - Services: Load Balancer: Virtual Servers page"
msgstr "WebCfg - Página Serviços: Balanceador de Carga: Servidores Virtuais"
#: etc/inc/priv.defs.inc:605 etc/inc/priv.defs.inc:623
+#: etc/inc/priv.defs.inc:629 etc/inc/priv.defs.inc:625
msgid "Allow access to the 'Services: Load Balancer: Virtual Servers' page."
msgstr ""
"Permitir acesso à página 'Serviços: Balanceador de Carga: Servidores "
"Virtuais'."
#: etc/inc/priv.defs.inc:610 etc/inc/priv.defs.inc:628
+#: etc/inc/priv.defs.inc:634 etc/inc/priv.defs.inc:630
msgid "WebCfg - Load Balancer: Virtual Server: Edit page"
msgstr "WebCfg - Página Balanceador de Carga: Servidor Virtual: Editar"
#: etc/inc/priv.defs.inc:611 etc/inc/priv.defs.inc:629
+#: etc/inc/priv.defs.inc:635 etc/inc/priv.defs.inc:631
msgid "Allow access to the 'Load Balancer: Virtual Server: Edit' page."
msgstr ""
"Permitir acesso à página 'Balanceador de Carga: Servidor Virtual: Editar'."
#: etc/inc/priv.defs.inc:616 etc/inc/priv.defs.inc:634
+#: etc/inc/priv.defs.inc:640 etc/inc/priv.defs.inc:636
msgid "WebCfg - Package: Settings page"
msgstr "WebCfg - Página Pacote: Configurações"
#: etc/inc/priv.defs.inc:617 etc/inc/priv.defs.inc:635
+#: etc/inc/priv.defs.inc:641 etc/inc/priv.defs.inc:637
msgid "Allow access to the 'Package: Settings' page."
msgstr "Permitir acesso à página 'Pacote: Configurações'."
#: etc/inc/priv.defs.inc:622 etc/inc/priv.defs.inc:640
+#: etc/inc/priv.defs.inc:646 etc/inc/priv.defs.inc:642
msgid "WebCfg - Package: Edit page"
msgstr "WebCfg - Página Pacote: Editar"
#: etc/inc/priv.defs.inc:623 etc/inc/priv.defs.inc:641
+#: etc/inc/priv.defs.inc:647 etc/inc/priv.defs.inc:643
msgid "Allow access to the 'Package: Edit' page."
msgstr "Permitir acesso à página 'Pacote: Editar'."
#: etc/inc/priv.defs.inc:628 etc/inc/priv.defs.inc:646
+#: etc/inc/priv.defs.inc:652 etc/inc/priv.defs.inc:648
msgid "WebCfg - System: Package Manager page"
msgstr "WebCfg - Página Sistema: Gerenciador de Pacote"
#: etc/inc/priv.defs.inc:629 etc/inc/priv.defs.inc:647
+#: etc/inc/priv.defs.inc:653 etc/inc/priv.defs.inc:649
msgid "Allow access to the 'System: Package Manager' page."
msgstr "Permitir acesso à página 'Sistema: Gerenciador de Pacote'."
#: etc/inc/priv.defs.inc:634 etc/inc/priv.defs.inc:652
+#: etc/inc/priv.defs.inc:658 etc/inc/priv.defs.inc:654
msgid "WebCfg - System: Package Manager: Install Package page"
msgstr "WebCfg - Página Sistema: Gerenciador de Pacote: Instalar Pacote"
#: etc/inc/priv.defs.inc:635 etc/inc/priv.defs.inc:653
+#: etc/inc/priv.defs.inc:659 etc/inc/priv.defs.inc:655
msgid "Allow access to the 'System: Package Manager: Install Package' page."
msgstr ""
"Permitir acesso à página 'Sistema: Gerenciador de Pacote: Instalar Pacote'."
#: etc/inc/priv.defs.inc:640 etc/inc/priv.defs.inc:658
+#: etc/inc/priv.defs.inc:664 etc/inc/priv.defs.inc:660
msgid "WebCfg - System: Package Manager: Installed page"
msgstr "WebCfg - Página Sistema: Gerenciador de Pacote: Instalado"
#: etc/inc/priv.defs.inc:641 etc/inc/priv.defs.inc:659
+#: etc/inc/priv.defs.inc:665 etc/inc/priv.defs.inc:661
msgid "Allow access to the 'System: Package Manager: Installed' page."
msgstr "Permitir acesso à página 'Sistema: Gerenciador de Pacote: Instalado'."
#: etc/inc/priv.defs.inc:646 etc/inc/priv.defs.inc:664
+#: etc/inc/priv.defs.inc:670 etc/inc/priv.defs.inc:666
msgid "WebCfg - Packages: Settings page"
msgstr "WebCfg - Página Pacotes: Configurações"
#: etc/inc/priv.defs.inc:647 etc/inc/priv.defs.inc:665
+#: etc/inc/priv.defs.inc:671 etc/inc/priv.defs.inc:667
msgid "Allow access to the 'Packages: Settings' page."
msgstr "Permitir acesso à página 'Pacotes: Configurações'."
#: etc/inc/priv.defs.inc:652 etc/inc/priv.defs.inc:670
+#: etc/inc/priv.defs.inc:676 etc/inc/priv.defs.inc:672
msgid "WebCfg - Diagnostics: Reboot System page"
msgstr "WebCfg - Página Diagnóstico: Reiniciar Sistema"
#: etc/inc/priv.defs.inc:653 etc/inc/priv.defs.inc:671
+#: etc/inc/priv.defs.inc:677 etc/inc/priv.defs.inc:673
msgid "Allow access to the 'Diagnostics: Reboot System' page."
msgstr "Permitir acesso à página 'Diagnóstico: Reiniciar Sistema'."
#: etc/inc/priv.defs.inc:658 etc/inc/priv.defs.inc:676
+#: etc/inc/priv.defs.inc:682 etc/inc/priv.defs.inc:678
msgid "WebCfg - Diagnostics: Restart HTTPD : System page"
msgstr "WebCfg - Página Diagnóstico: Reiniciar HTTPD: Sistema"
#: etc/inc/priv.defs.inc:659 etc/inc/priv.defs.inc:677
+#: etc/inc/priv.defs.inc:683 etc/inc/priv.defs.inc:679
msgid "Allow access to the 'Diagnostics: Restart HTTPD: System' page."
msgstr "Permitir acesso à página 'Diagnóstico: Reiniciar HTTPD: Sistema'."
#: etc/inc/priv.defs.inc:664 etc/inc/priv.defs.inc:682
+#: etc/inc/priv.defs.inc:688 etc/inc/priv.defs.inc:684
msgid "WebCfg - Services: Captive portal page"
msgstr "WebCfg - Página Serviços: Portal Captive"
#: etc/inc/priv.defs.inc:665 etc/inc/priv.defs.inc:683
+#: etc/inc/priv.defs.inc:689 etc/inc/priv.defs.inc:685
msgid "Allow access to the 'Services: Captive portal' page."
msgstr "Permitir acesso à página 'Serviços: Portal Captive'."
#: etc/inc/priv.defs.inc:670 etc/inc/priv.defs.inc:688
+#: etc/inc/priv.defs.inc:694 etc/inc/priv.defs.inc:690
msgid "WebCfg - Services: Captive portal: File Manager page"
msgstr "WebCfg - Página Serviços: Portal Captive: Gerenciador de Arquivo"
#: etc/inc/priv.defs.inc:671 etc/inc/priv.defs.inc:689
+#: etc/inc/priv.defs.inc:695 etc/inc/priv.defs.inc:691
msgid "Allow access to the 'Services: Captive portal: File Manager' page."
msgstr ""
"Permitir acesso à página 'Serviços: Portal Captive: Gerenciador de Arquivo'."
#: etc/inc/priv.defs.inc:676 etc/inc/priv.defs.inc:688
#: etc/inc/priv.defs.inc:694 etc/inc/priv.defs.inc:706
+#: etc/inc/priv.defs.inc:700 etc/inc/priv.defs.inc:712
+#: etc/inc/priv.defs.inc:696 etc/inc/priv.defs.inc:708
msgid "WebCfg - Services: Captive portal: Allowed IPs page"
msgstr "WebCfg - Página Sistema: Portal Captive: IPs permitidos"
#: etc/inc/priv.defs.inc:677 etc/inc/priv.defs.inc:689
#: etc/inc/priv.defs.inc:695 etc/inc/priv.defs.inc:707
+#: etc/inc/priv.defs.inc:701 etc/inc/priv.defs.inc:713
+#: etc/inc/priv.defs.inc:697 etc/inc/priv.defs.inc:709
msgid "Allow access to the 'Services: Captive portal: Allowed IPs' page."
msgstr "Permitir acesso à página 'Serviços: Portal Captive: IPs Permitidos'."
#: etc/inc/priv.defs.inc:682 etc/inc/priv.defs.inc:694
#: etc/inc/priv.defs.inc:700 etc/inc/priv.defs.inc:712
+#: etc/inc/priv.defs.inc:706 etc/inc/priv.defs.inc:718
+#: etc/inc/priv.defs.inc:702 etc/inc/priv.defs.inc:714
msgid "WebCfg - Services: Captive portal: Edit Allowed IPs page"
msgstr "WebCfg - Página Serviços: Portal Captive: Editar IPs Permitidos"
#: etc/inc/priv.defs.inc:683 etc/inc/priv.defs.inc:695
#: etc/inc/priv.defs.inc:701 etc/inc/priv.defs.inc:713
+#: etc/inc/priv.defs.inc:707 etc/inc/priv.defs.inc:719
+#: etc/inc/priv.defs.inc:703 etc/inc/priv.defs.inc:715
msgid "Allow access to the 'Services: Captive portal: Edit Allowed IPs' page."
msgstr ""
"Permitir acesso à página 'Serviços: Portal Captive: Editar IPs Permitidos'."
#: etc/inc/priv.defs.inc:700 etc/inc/priv.defs.inc:718
+#: etc/inc/priv.defs.inc:724 etc/inc/priv.defs.inc:720
msgid "WebCfg - Services: Captive portal: Mac Addresses page"
msgstr "WebCfg - Página Serviços: Portal Captive: Endereços MAC"
#: etc/inc/priv.defs.inc:701 etc/inc/priv.defs.inc:719
+#: etc/inc/priv.defs.inc:725 etc/inc/priv.defs.inc:721
msgid "Allow access to the 'Services: Captive portal: Mac Addresses' page."
msgstr "Permitir acesso à página 'Serviços: Portal Captive: Endereços MAC'."
#: etc/inc/priv.defs.inc:706 etc/inc/priv.defs.inc:724
+#: etc/inc/priv.defs.inc:730 etc/inc/priv.defs.inc:726
msgid "WebCfg - Services: Captive portal: Edit MAC Addresses page"
msgstr "WebCfg - Página Serviços: Portal Captive: Editar Endereços MAC"
#: etc/inc/priv.defs.inc:707 etc/inc/priv.defs.inc:725
+#: etc/inc/priv.defs.inc:731 etc/inc/priv.defs.inc:727
msgid ""
"Allow access to the 'Services: Captive portal: Edit MAC Addresses' page."
msgstr "Permitir acesso à página 'Serviços: Portal Captive: Endereços MAC'."
#: etc/inc/priv.defs.inc:712 etc/inc/priv.defs.inc:730
+#: etc/inc/priv.defs.inc:736 etc/inc/priv.defs.inc:744
msgid "WebCfg - Services: Captive portal Vouchers page"
msgstr "WebCfg - Página Serviços: Vouchers do portal Captive"
#: etc/inc/priv.defs.inc:713 etc/inc/priv.defs.inc:731
+#: etc/inc/priv.defs.inc:737 etc/inc/priv.defs.inc:745
msgid "Allow access to the 'Services: Captive portal Vouchers' page."
msgstr "Permitir acesso à página 'Serviços: Vouchers do portal Captive'."
#: etc/inc/priv.defs.inc:724 etc/inc/priv.defs.inc:742
+#: etc/inc/priv.defs.inc:748 etc/inc/priv.defs.inc:756
msgid "WebCfg - Services: DHCP server page"
msgstr "WebCfg - Página Serviços: Servidor DHCP"
#: etc/inc/priv.defs.inc:725 etc/inc/priv.defs.inc:743
+#: etc/inc/priv.defs.inc:749 etc/inc/priv.defs.inc:757
msgid "Allow access to the 'Services: DHCP server' page."
msgstr "Permitir acesso à página 'Serviços: Servidor DHCP'."
#: etc/inc/priv.defs.inc:730 etc/inc/priv.defs.inc:748
+#: etc/inc/priv.defs.inc:754 etc/inc/priv.defs.inc:762
msgid "WebCfg - Services: DHCP Server : Edit static mapping page"
msgstr "WebCfg - Página Serviços: Servidor DHCP: Editar mapeamento estático"
#: etc/inc/priv.defs.inc:731 etc/inc/priv.defs.inc:749
+#: etc/inc/priv.defs.inc:755 etc/inc/priv.defs.inc:763
msgid "Allow access to the 'Services: DHCP Server : Edit static mapping' page."
msgstr ""
"Permitir acesso à página 'Serviços: Servidor DHCP: Editar mapeamento "
"estático'."
#: etc/inc/priv.defs.inc:736 etc/inc/priv.defs.inc:754
+#: etc/inc/priv.defs.inc:760 etc/inc/priv.defs.inc:768
msgid "WebCfg - Services: DHCP Relay page"
msgstr "WebCfg - Página Serviços: DHCP Relay"
#: etc/inc/priv.defs.inc:737 etc/inc/priv.defs.inc:755
+#: etc/inc/priv.defs.inc:761 etc/inc/priv.defs.inc:769
msgid "Allow access to the 'Services: DHCP Relay' page."
msgstr "Permitir acesso à página 'Serviços: DHCP Relay'."
#: etc/inc/priv.defs.inc:742 etc/inc/priv.defs.inc:760
+#: etc/inc/priv.defs.inc:766 etc/inc/priv.defs.inc:774
msgid "WebCfg - Services: DHCPv6 Relay page"
msgstr "WebCfg - Serviços: Página DHCPv6 Relay"
#: etc/inc/priv.defs.inc:743 etc/inc/priv.defs.inc:761
+#: etc/inc/priv.defs.inc:767 etc/inc/priv.defs.inc:775
msgid "Allow access to the 'Services: DHCPv6 Relay' page."
msgstr "Permitir acesso à página 'Serviços: DHCPv6 Relay'."
#: etc/inc/priv.defs.inc:748 etc/inc/priv.defs.inc:766
+#: etc/inc/priv.defs.inc:772 etc/inc/priv.defs.inc:780
msgid "WebCfg - Services: DNS Forwarder page"
msgstr "WebCfg - Página Serviços: DNS Forwarder"
#: etc/inc/priv.defs.inc:749 etc/inc/priv.defs.inc:767
+#: etc/inc/priv.defs.inc:773 etc/inc/priv.defs.inc:781
msgid "Allow access to the 'Services: DNS Forwarder' page."
msgstr "Permitir acesso à página 'Serviços: DNS Forwarder'."
#: etc/inc/priv.defs.inc:754 etc/inc/priv.defs.inc:772
+#: etc/inc/priv.defs.inc:778 etc/inc/priv.defs.inc:786
msgid "WebCfg - Services: DNS Forwarder: Edit Domain Override page"
msgstr ""
"WebCfg - Página Serviços: DNS Forwarder: Editar Substituição de Domínio"
#: etc/inc/priv.defs.inc:755 etc/inc/priv.defs.inc:773
+#: etc/inc/priv.defs.inc:779 etc/inc/priv.defs.inc:787
msgid ""
"Allow access to the 'Services: DNS Forwarder: Edit Domain Override' page."
msgstr ""
@@ -4108,485 +4924,603 @@ msgstr ""
"Domínio'."
#: etc/inc/priv.defs.inc:760 etc/inc/priv.defs.inc:778
+#: etc/inc/priv.defs.inc:784 etc/inc/priv.defs.inc:792
msgid "WebCfg - Services: DNS Forwarder: Edit host page"
msgstr "WebCfg - Página Serviços: DNS Forwarder: Editar"
#: etc/inc/priv.defs.inc:761 etc/inc/priv.defs.inc:779
+#: etc/inc/priv.defs.inc:785 etc/inc/priv.defs.inc:793
msgid "Allow access to the 'Services: DNS Forwarder: Edit host' page."
msgstr "Permitir acesso à página 'Serviços: DNS Forwarder: Editar'."
#: etc/inc/priv.defs.inc:766 etc/inc/priv.defs.inc:784
+#: etc/inc/priv.defs.inc:790 etc/inc/priv.defs.inc:798
msgid "WebCfg - Services: Dynamic DNS clients page"
msgstr "WebCfg - Página Serviços: Clientes DNS Dinâmico"
#: etc/inc/priv.defs.inc:767 etc/inc/priv.defs.inc:785
+#: etc/inc/priv.defs.inc:791 etc/inc/priv.defs.inc:799
msgid "Allow access to the 'Services: Dynamic DNS clients' page."
msgstr "Permitir acesso à página 'Serviços: Clientes DNS Dinâmico'."
#: etc/inc/priv.defs.inc:772 etc/inc/priv.defs.inc:790
+#: etc/inc/priv.defs.inc:796 etc/inc/priv.defs.inc:804
msgid "WebCfg - Services: Dynamic DNS client page"
msgstr "WebCfg - Página Serviços: Cliente DNS Dinâmico"
#: etc/inc/priv.defs.inc:773 etc/inc/priv.defs.inc:791
+#: etc/inc/priv.defs.inc:797 etc/inc/priv.defs.inc:805
msgid "Allow access to the 'Services: Dynamic DNS client' page."
msgstr "Permitir acesso à página 'Serviços: Cliente DNS Dinâmico'."
#: etc/inc/priv.defs.inc:778 etc/inc/priv.defs.inc:796
+#: etc/inc/priv.defs.inc:802 etc/inc/priv.defs.inc:810
msgid "WebCfg - Services: Igmpproxy page"
msgstr "WebCfg - Página Serviços: Igmpproxy"
#: etc/inc/priv.defs.inc:779 etc/inc/priv.defs.inc:797
+#: etc/inc/priv.defs.inc:803 etc/inc/priv.defs.inc:811
msgid "Allow access to the 'Services: Igmpproxy' page."
msgstr "Permitir acesso à página 'Serviços: Igmpproxy'."
#: etc/inc/priv.defs.inc:784 etc/inc/priv.defs.inc:802
+#: etc/inc/priv.defs.inc:808 etc/inc/priv.defs.inc:816
msgid "WebCfg - Firewall: Igmpproxy: Edit page"
msgstr "WebCfg - Página Firewall: Igmpproxy: Editar"
#: etc/inc/priv.defs.inc:785 etc/inc/priv.defs.inc:803
+#: etc/inc/priv.defs.inc:809 etc/inc/priv.defs.inc:817
msgid "Allow access to the 'Firewall: Igmpproxy' page."
msgstr "Permitir acesso à página 'Firewall: Igmpproxy:'."
#: etc/inc/priv.defs.inc:790 etc/inc/priv.defs.inc:808
+#: etc/inc/priv.defs.inc:814 etc/inc/priv.defs.inc:822
msgid "WebCfg - Services: RFC 2136 clients page"
msgstr "WebCfg - Página Serviços: Clientes de RFC 2136"
#: etc/inc/priv.defs.inc:791 etc/inc/priv.defs.inc:809
+#: etc/inc/priv.defs.inc:815 etc/inc/priv.defs.inc:823
msgid "Allow access to the 'Services: RFC 2136 clients' page."
msgstr "Permitir acesso à página 'Serviços: Clientes de RFC 2136'."
#: etc/inc/priv.defs.inc:796 etc/inc/priv.defs.inc:814
+#: etc/inc/priv.defs.inc:820 etc/inc/priv.defs.inc:828
msgid "WebCfg - Services: SNMP page"
msgstr "WebCfg - Página Serviços: SNMP"
#: etc/inc/priv.defs.inc:797 etc/inc/priv.defs.inc:815
+#: etc/inc/priv.defs.inc:821 etc/inc/priv.defs.inc:829
msgid "Allow access to the 'Services: SNMP' page."
msgstr "Permitir acesso à página 'Serviços: SNMP'."
#: etc/inc/priv.defs.inc:802 etc/inc/priv.defs.inc:820
+#: etc/inc/priv.defs.inc:826 etc/inc/priv.defs.inc:834
msgid "WebCfg - Services: Wake on LAN page"
msgstr "WebCfg - Página Serviços: Wake on LAN"
#: etc/inc/priv.defs.inc:803 etc/inc/priv.defs.inc:821
+#: etc/inc/priv.defs.inc:827 etc/inc/priv.defs.inc:835
msgid "Allow access to the 'Services: Wake on LAN' page."
msgstr "Permitir acesso à página 'Serviços: Wake on LAN'."
#: etc/inc/priv.defs.inc:808 etc/inc/priv.defs.inc:826
+#: etc/inc/priv.defs.inc:832 etc/inc/priv.defs.inc:840
msgid "WebCfg - Services: Wake on LAN: Edit page"
msgstr "WebCfg - Página Serviços: Wake on LAN: Editar"
#: etc/inc/priv.defs.inc:809 etc/inc/priv.defs.inc:827
+#: etc/inc/priv.defs.inc:833 etc/inc/priv.defs.inc:841
msgid "Allow access to the 'Services: Wake on LAN: Edit' page."
msgstr "Permitir acesso à página 'Serviços: Wake on LAN: Editar'."
#: etc/inc/priv.defs.inc:820 etc/inc/priv.defs.inc:838
+#: etc/inc/priv.defs.inc:844 etc/inc/priv.defs.inc:852
msgid "WebCfg - Hidden: Detailed Status page"
msgstr "WebCfg - Página Omitida: Status Detalhado"
#: etc/inc/priv.defs.inc:821 etc/inc/priv.defs.inc:839
+#: etc/inc/priv.defs.inc:845 etc/inc/priv.defs.inc:853
msgid "Allow access to the 'Hidden: Detailed Status' page."
msgstr "Permitir acesso à página 'Omitida: Status Detalhado'."
#: etc/inc/priv.defs.inc:826 etc/inc/priv.defs.inc:844
+#: etc/inc/priv.defs.inc:850 etc/inc/priv.defs.inc:858
msgid "WebCfg - Status: Captive portal page"
msgstr "WebCfg - Página Status: Portal Captive"
#: etc/inc/priv.defs.inc:827 etc/inc/priv.defs.inc:845
+#: etc/inc/priv.defs.inc:851 etc/inc/priv.defs.inc:859
msgid "Allow access to the 'Status: Captive portal' page."
msgstr "Permitir acesso à página 'Status: Portal Captive'."
#: etc/inc/priv.defs.inc:832 etc/inc/priv.defs.inc:850
+#: etc/inc/priv.defs.inc:856 etc/inc/priv.defs.inc:864
msgid "WebCfg - Status: Captive portal test Vouchers page"
msgstr "WebCfg - Página Status: Vouchers de teste do portal Captive"
#: etc/inc/priv.defs.inc:833 etc/inc/priv.defs.inc:851
+#: etc/inc/priv.defs.inc:857 etc/inc/priv.defs.inc:865
msgid "Allow access to the 'Status: Captive portal Test Vouchers' page."
msgstr ""
"Permitir acesso à página 'Status: Vouchers de teste do portal Captive'."
#: etc/inc/priv.defs.inc:838 etc/inc/priv.defs.inc:856
+#: etc/inc/priv.defs.inc:862 etc/inc/priv.defs.inc:870
msgid "WebCfg - Status: Captive portal Voucher Rolls page"
msgstr "WebCfg - Página Status: Listas de Vouchers do portal Captive"
#: etc/inc/priv.defs.inc:839 etc/inc/priv.defs.inc:857
+#: etc/inc/priv.defs.inc:863 etc/inc/priv.defs.inc:871
msgid "Allow access to the 'Status: Captive portal Voucher Rolls' page."
msgstr ""
"Permitir acesso à página 'Status: Listas de Vouchers do portal Captive'."
#: etc/inc/priv.defs.inc:844 etc/inc/priv.defs.inc:862
+#: etc/inc/priv.defs.inc:868 etc/inc/priv.defs.inc:876
msgid "WebCfg - Status: Captive portal Vouchers page"
msgstr "WebCfg - Página Status: Vouchers do portal Captive"
#: etc/inc/priv.defs.inc:845 etc/inc/priv.defs.inc:863
+#: etc/inc/priv.defs.inc:869 etc/inc/priv.defs.inc:877
msgid "Allow access to the 'Status: Captive portal Vouchers' page."
msgstr "Permitir acesso à página 'Status: Vouchers do portal Captive'."
#: etc/inc/priv.defs.inc:850 etc/inc/priv.defs.inc:868
+#: etc/inc/priv.defs.inc:874 etc/inc/priv.defs.inc:882
msgid "WebCfg - Status: DHCP leases page"
msgstr "WebCfg - Página Status: Concessões DHCP"
#: etc/inc/priv.defs.inc:851 etc/inc/priv.defs.inc:869
+#: etc/inc/priv.defs.inc:875 etc/inc/priv.defs.inc:883
msgid "Allow access to the 'Status: DHCP leases' page."
msgstr "Permitir acesso à  página 'Status: Concessões DHCP'."
#: etc/inc/priv.defs.inc:856 etc/inc/priv.defs.inc:874
+#: etc/inc/priv.defs.inc:880 etc/inc/priv.defs.inc:888
msgid "WebCfg - Status: Filter Reload Status page"
msgstr "WebCfg - Página Status: Status do Filtro"
#: etc/inc/priv.defs.inc:857 etc/inc/priv.defs.inc:875
+#: etc/inc/priv.defs.inc:881 etc/inc/priv.defs.inc:889
msgid "Allow access to the 'Status: Filter Reload Status' page."
msgstr "Permitir acesso à página 'Status: Status do Filtro'."
#: etc/inc/priv.defs.inc:862 etc/inc/priv.defs.inc:880
+#: etc/inc/priv.defs.inc:886 etc/inc/priv.defs.inc:894
msgid "WebCfg - Status: Gateway Groups page"
msgstr "WebCfg - Página Status: Grupos de Gateway"
#: etc/inc/priv.defs.inc:863 etc/inc/priv.defs.inc:881
+#: etc/inc/priv.defs.inc:887 etc/inc/priv.defs.inc:895
msgid "Allow access to the 'Status: Gateway Groups' page."
msgstr "Permitir acesso à página 'Status: Grupos de Gateway'."
#: etc/inc/priv.defs.inc:868 etc/inc/priv.defs.inc:886
+#: etc/inc/priv.defs.inc:892 etc/inc/priv.defs.inc:900
msgid "WebCfg - Status: Gateways page"
msgstr "WebCfg - Página Status: Gateways"
#: etc/inc/priv.defs.inc:869 etc/inc/priv.defs.inc:887
+#: etc/inc/priv.defs.inc:893 etc/inc/priv.defs.inc:901
msgid "Allow access to the 'Status: Gateways' page."
msgstr "Permitir acesso à página 'Status: Gateways'."
#: etc/inc/priv.defs.inc:874 etc/inc/priv.defs.inc:892
+#: etc/inc/priv.defs.inc:898 etc/inc/priv.defs.inc:906
msgid "WebCfg - Status: Traffic Graph page"
msgstr "WebCfg - Página Status: Gráfico de Tráfego"
#: etc/inc/priv.defs.inc:875 etc/inc/priv.defs.inc:893
+#: etc/inc/priv.defs.inc:899 etc/inc/priv.defs.inc:907
msgid "Allow access to the 'Status: Traffic Graph' page."
msgstr "Permitir acesso à página 'Status: Gráfico de Tráfego'."
#: etc/inc/priv.defs.inc:881 etc/inc/priv.defs.inc:899
+#: etc/inc/priv.defs.inc:905 etc/inc/priv.defs.inc:913
msgid "WebCfg - Status: CPU load page"
msgstr "WebCfg - Página Status: Carregamento de CPU"
#: etc/inc/priv.defs.inc:882 etc/inc/priv.defs.inc:900
+#: etc/inc/priv.defs.inc:906 etc/inc/priv.defs.inc:914
msgid "Allow access to the 'Status: CPU load' page."
msgstr "Permitir acesso à página 'Status: Carregamento de CPU'."
#: etc/inc/priv.defs.inc:887 etc/inc/priv.defs.inc:905
+#: etc/inc/priv.defs.inc:911 etc/inc/priv.defs.inc:919
msgid "WebCfg - Status: Interfaces page"
msgstr "WebCfg - Página Status: Interfaces"
#: etc/inc/priv.defs.inc:888 etc/inc/priv.defs.inc:906
+#: etc/inc/priv.defs.inc:912 etc/inc/priv.defs.inc:920
msgid "Allow access to the 'Status: Interfaces' page."
msgstr "Permitir acesso à página 'Status: Interfaces'."
#: etc/inc/priv.defs.inc:893 etc/inc/priv.defs.inc:911
+#: etc/inc/priv.defs.inc:917 etc/inc/priv.defs.inc:925
msgid "WebCfg - Status: Load Balancer: Pool page"
msgstr "WebCfg - Página Status: Balanceador de Carga: Pool"
#: etc/inc/priv.defs.inc:894 etc/inc/priv.defs.inc:912
+#: etc/inc/priv.defs.inc:918 etc/inc/priv.defs.inc:926
msgid "Allow access to the 'Status: Load Balancer: Pool' page."
msgstr "Permitir acesso à  página 'Status: Balanceador de Carga: Pool'."
#: etc/inc/priv.defs.inc:899 etc/inc/priv.defs.inc:917
+#: etc/inc/priv.defs.inc:923 etc/inc/priv.defs.inc:931
msgid "WebCfg - Status: Load Balancer: Virtual Server page"
msgstr "WebCfg - Página Status: Balanceador de Carga: Servidor Virtual"
#: etc/inc/priv.defs.inc:900 etc/inc/priv.defs.inc:918
+#: etc/inc/priv.defs.inc:924 etc/inc/priv.defs.inc:932
msgid "Allow access to the 'Status: Load Balancer: Virtual Server' page."
msgstr ""
"Permitir acesso à página 'Status: Balanceador de Carga: Servidor Virtual'."
#: etc/inc/priv.defs.inc:905 etc/inc/priv.defs.inc:923
+#: etc/inc/priv.defs.inc:929 etc/inc/priv.defs.inc:937
msgid "WebCfg - Status: OpenVPN page"
msgstr "WebCfg - Página Status: OpenVPN"
#: etc/inc/priv.defs.inc:906 etc/inc/priv.defs.inc:924
+#: etc/inc/priv.defs.inc:930 etc/inc/priv.defs.inc:938
msgid "Allow access to the 'Status: OpenVPN' page."
msgstr "Permitir acesso à página 'Status: OpenVPN'."
#: etc/inc/priv.defs.inc:911 etc/inc/priv.defs.inc:929
+#: etc/inc/priv.defs.inc:935 etc/inc/priv.defs.inc:943
msgid "WebCfg - Status: Traffic shaper: Queues page"
msgstr "WebCfg - Página Status: Traffic Shaper: Filas"
#: etc/inc/priv.defs.inc:912 etc/inc/priv.defs.inc:930
+#: etc/inc/priv.defs.inc:936 etc/inc/priv.defs.inc:944
msgid "Allow access to the 'Status: Traffic shaper: Queues' page."
msgstr "Permitir acesso à página 'Status: Traffic Shaper: Filas'."
#: etc/inc/priv.defs.inc:917 etc/inc/priv.defs.inc:935
+#: etc/inc/priv.defs.inc:941 etc/inc/priv.defs.inc:949
msgid "WebCfg - Status: RRD Graphs page"
msgstr "WebCfg - Página Status: Gráficos de RRD"
#: etc/inc/priv.defs.inc:918 etc/inc/priv.defs.inc:936
+#: etc/inc/priv.defs.inc:942 etc/inc/priv.defs.inc:950
msgid "Allow access to the 'Status: RRD Graphs' page."
msgstr "Permitir acesso à página 'Status: Gráficos de RRD'."
#: etc/inc/priv.defs.inc:924 etc/inc/priv.defs.inc:942
+#: etc/inc/priv.defs.inc:948 etc/inc/priv.defs.inc:956
msgid "WebCfg - Status: RRD Graphs settings page"
msgstr "WebCfg - Página Status: Configurações de Gráficos de RRD"
#: etc/inc/priv.defs.inc:925 etc/inc/priv.defs.inc:943
+#: etc/inc/priv.defs.inc:949 etc/inc/priv.defs.inc:957
msgid "Allow access to the 'Status: RRD Graphs: settings' page."
msgstr "Permitir acesso à página 'Status: Configurações de Gráficos de RRD'."
#: etc/inc/priv.defs.inc:930 etc/inc/priv.defs.inc:948
+#: etc/inc/priv.defs.inc:954 etc/inc/priv.defs.inc:962
msgid "WebCfg - Status: Services page"
msgstr "WebCfg - Página Status: Serviços"
#: etc/inc/priv.defs.inc:931 etc/inc/priv.defs.inc:949
+#: etc/inc/priv.defs.inc:955 etc/inc/priv.defs.inc:963
msgid "Allow access to the 'Status: Services' page."
msgstr "Permitir acesso à página 'Status: Serviços'."
#: etc/inc/priv.defs.inc:936 etc/inc/priv.defs.inc:954
+#: etc/inc/priv.defs.inc:960 etc/inc/priv.defs.inc:968
msgid "WebCfg - Status: UPnP Status page"
msgstr "WebCfg - Página Status: Status UPnP"
#: etc/inc/priv.defs.inc:937 etc/inc/priv.defs.inc:955
+#: etc/inc/priv.defs.inc:961 etc/inc/priv.defs.inc:969
msgid "Allow access to the 'Status: UPnP Status' page."
msgstr "Permitir acesso à página 'Status: Status UPnP'."
#: etc/inc/priv.defs.inc:942 etc/inc/priv.defs.inc:960
+#: etc/inc/priv.defs.inc:966 etc/inc/priv.defs.inc:974
msgid "WebCfg - Status: Wireless page"
msgstr "WebCfg - Página Status: Conexão sem fio"
#: etc/inc/priv.defs.inc:943 etc/inc/priv.defs.inc:961
+#: etc/inc/priv.defs.inc:967 etc/inc/priv.defs.inc:975
msgid "Allow access to the 'Status: Wireless' page."
msgstr "Permitir acesso à página 'Status: Conexão sem fio'."
#: etc/inc/priv.defs.inc:948 etc/inc/priv.defs.inc:966
+#: etc/inc/priv.defs.inc:972 etc/inc/priv.defs.inc:980
msgid "WebCfg - System: General Setup page"
msgstr "WebCfg - Página Sistema: Configurações Gerais"
#: etc/inc/priv.defs.inc:949 etc/inc/priv.defs.inc:967
+#: etc/inc/priv.defs.inc:973 etc/inc/priv.defs.inc:981
msgid "Allow access to the 'System: General Setup' page."
msgstr "Permitir acesso à página 'Sistema: Configurações Gerais'."
#: etc/inc/priv.defs.inc:954 etc/inc/priv.defs.inc:972
+#: etc/inc/priv.defs.inc:978 etc/inc/priv.defs.inc:986
msgid "WebCfg - System: Advanced: Admin Access Page"
msgstr "WebCfg - Página Sistema: Avançado: Acesso de Administrador"
#: etc/inc/priv.defs.inc:955 etc/inc/priv.defs.inc:973
+#: etc/inc/priv.defs.inc:979 etc/inc/priv.defs.inc:987
msgid "Allow access to the 'System: Advanced: Admin Access' page."
msgstr "Permitir acesso à página 'Sistema: Avançado: Acesso de Administrador'."
#: etc/inc/priv.defs.inc:960 etc/inc/priv.defs.inc:978
+#: etc/inc/priv.defs.inc:984 etc/inc/priv.defs.inc:992
msgid "WebCfg - System: Advanced: Firewall and NAT page"
msgstr "WebCfg - Página Sistema: Avançado: Firewall e NAT"
#: etc/inc/priv.defs.inc:961 etc/inc/priv.defs.inc:979
+#: etc/inc/priv.defs.inc:985 etc/inc/priv.defs.inc:993
msgid "Allow access to the 'System: Advanced: Firewall and NAT' page."
msgstr "Permitir acesso à página 'Sistema: Avançado: Firewall e NAT'."
#: etc/inc/priv.defs.inc:966 etc/inc/priv.defs.inc:984
+#: etc/inc/priv.defs.inc:990 etc/inc/priv.defs.inc:998
msgid "WebCfg - System: Advanced: Miscellaneous page"
msgstr "WebCfg - Página Sistema: Avançado: Variados"
#: etc/inc/priv.defs.inc:967 etc/inc/priv.defs.inc:985
+#: etc/inc/priv.defs.inc:991 etc/inc/priv.defs.inc:999
msgid "Allow access to the 'System: Advanced: Miscellaneous' page."
msgstr "Permitir acesso à página 'Sistema: Avançado: Variados'."
#: etc/inc/priv.defs.inc:972 etc/inc/priv.defs.inc:990
+#: etc/inc/priv.defs.inc:996 etc/inc/priv.defs.inc:1004
msgid "WebCfg - System: Advanced: Network page"
msgstr "WebCfg - Página Sistema: Avançado: Rede"
#: etc/inc/priv.defs.inc:973 etc/inc/priv.defs.inc:991
+#: etc/inc/priv.defs.inc:997 etc/inc/priv.defs.inc:1005
msgid "Allow access to the 'System: Advanced: Networking' page."
msgstr "Permitir acesso à página 'Sistema: Avançado: Rede'."
#: etc/inc/priv.defs.inc:978 etc/inc/priv.defs.inc:984
#: etc/inc/priv.defs.inc:996 etc/inc/priv.defs.inc:1002
+#: etc/inc/priv.defs.inc:1008 etc/inc/priv.defs.inc:1010
+#: etc/inc/priv.defs.inc:1016
msgid "WebCfg - System: Advanced: Tunables page"
msgstr "WebCfg - Página Sistema: Avançado: Ajustes"
#: etc/inc/priv.defs.inc:979 etc/inc/priv.defs.inc:985
#: etc/inc/priv.defs.inc:997 etc/inc/priv.defs.inc:1003
+#: etc/inc/priv.defs.inc:1009 etc/inc/priv.defs.inc:1011
+#: etc/inc/priv.defs.inc:1017
msgid "Allow access to the 'System: Advanced: Tunables' page."
msgstr "Permitir acesso à página 'Sistema: Avançado: Ajustes'."
#: etc/inc/priv.defs.inc:990 etc/inc/priv.defs.inc:1008
+#: etc/inc/priv.defs.inc:1014 etc/inc/priv.defs.inc:1022
msgid "WebCfg - System: Authentication Servers"
msgstr "WebCfg - Página Sistema: Servidores de Autenticação"
#: etc/inc/priv.defs.inc:991 etc/inc/priv.defs.inc:1009
+#: etc/inc/priv.defs.inc:1015 etc/inc/priv.defs.inc:1023
msgid "Allow access to the 'System: Authentication Servers' page."
msgstr "Permitir acesso à página 'Sistema: Servidores de Autenticação'."
#: etc/inc/priv.defs.inc:996 etc/inc/priv.defs.inc:1014
+#: etc/inc/priv.defs.inc:1020 etc/inc/priv.defs.inc:1028
msgid "WebCfg - System: CA Manager"
msgstr "WebCfg - Sistema: Gerenciador CA"
#: etc/inc/priv.defs.inc:997 etc/inc/priv.defs.inc:1015
+#: etc/inc/priv.defs.inc:1021 etc/inc/priv.defs.inc:1029
msgid "Allow access to the 'System: CA Manager' page."
msgstr "Permitir acesso à página 'Sistema: Gerenciador CA'."
#: etc/inc/priv.defs.inc:1002 etc/inc/priv.defs.inc:1020
+#: etc/inc/priv.defs.inc:1026 etc/inc/priv.defs.inc:1034
msgid "WebCfg - System: Certificate Manager"
msgstr "WebCfg - Sistema: Gerenciador de Certificado"
#: etc/inc/priv.defs.inc:1003 etc/inc/priv.defs.inc:1021
+#: etc/inc/priv.defs.inc:1027 etc/inc/priv.defs.inc:1035
msgid "Allow access to the 'System: Certificate Manager' page."
msgstr "Permitir acesso à página 'Sistema: Gerenciados de Certificado'."
#: etc/inc/priv.defs.inc:1008 etc/inc/priv.defs.inc:1026
+#: etc/inc/priv.defs.inc:1032 etc/inc/priv.defs.inc:1040
msgid "WebCfg - System: CRL Manager"
msgstr "WebCfg - Sistema: Gerenciador CRL"
#: etc/inc/priv.defs.inc:1009 etc/inc/priv.defs.inc:1027
+#: etc/inc/priv.defs.inc:1033 etc/inc/priv.defs.inc:1041
msgid "Allow access to the 'System: CRL Manager' page."
msgstr "Permitir acesso à página 'Sistema: Gerenciador CRL'."
#: etc/inc/priv.defs.inc:1014 etc/inc/priv.defs.inc:1032
+#: etc/inc/priv.defs.inc:1038 etc/inc/priv.defs.inc:1046
msgid "WebCfg - System: Firmware: Manual Update page"
msgstr "WebCfg - Página Sistema: Firmware: Atualização Manual"
#: etc/inc/priv.defs.inc:1015 etc/inc/priv.defs.inc:1033
+#: etc/inc/priv.defs.inc:1039 etc/inc/priv.defs.inc:1047
msgid "Allow access to the 'System: Firmware: Manual Update' page."
msgstr "Permitir acesso à  página 'Sistema: Firmware: Atualização Manual'."
#: etc/inc/priv.defs.inc:1020 etc/inc/priv.defs.inc:1038
+#: etc/inc/priv.defs.inc:1044 etc/inc/priv.defs.inc:1052
msgid "WebCfg - System: Firmware: Check For Update page"
msgstr "WebCfg - Página Sistema: Firmware: Verificar por Atualização"
#: etc/inc/priv.defs.inc:1021 etc/inc/priv.defs.inc:1039
+#: etc/inc/priv.defs.inc:1045 etc/inc/priv.defs.inc:1053
msgid "Allow access to the 'System: Firmware: Check For Update' page."
msgstr ""
"Permitir acesso à página 'Sistema: Firmware: Verificar por Atualização'."
#: etc/inc/priv.defs.inc:1026 etc/inc/priv.defs.inc:1044
+#: etc/inc/priv.defs.inc:1050 etc/inc/priv.defs.inc:1058
msgid "WebCfg - System: Firmware: Auto Update page"
msgstr "WebCfg - Página Sistema: Firmware: Auto Atualização"
#: etc/inc/priv.defs.inc:1027 etc/inc/priv.defs.inc:1045
+#: etc/inc/priv.defs.inc:1051 etc/inc/priv.defs.inc:1059
msgid "Allow access to the 'System: Firmware: Auto Update' page."
msgstr ""
"Permitir acesso à página 'Sistema: Firmware: Página de Auto Atualização'."
#: etc/inc/priv.defs.inc:1032 etc/inc/priv.defs.inc:1050
+#: etc/inc/priv.defs.inc:1056 etc/inc/priv.defs.inc:1064
msgid "WebCfg - System: Firmware: Settings page"
msgstr "WebCfg - Página Sistema: Firmware: Configurações"
#: etc/inc/priv.defs.inc:1033 etc/inc/priv.defs.inc:1051
+#: etc/inc/priv.defs.inc:1057 etc/inc/priv.defs.inc:1065
msgid "Allow access to the 'System: Firmware: Settings' page."
msgstr "Permitir acesso à página 'Sistema: Firmware: Configurações'."
#: etc/inc/priv.defs.inc:1038 etc/inc/priv.defs.inc:1056
+#: etc/inc/priv.defs.inc:1062 etc/inc/priv.defs.inc:1070
msgid "WebCfg - System: Gateway Groups page"
msgstr "WebCfg - Página Sistema: Grupos de Gateway"
#: etc/inc/priv.defs.inc:1039 etc/inc/priv.defs.inc:1057
+#: etc/inc/priv.defs.inc:1063 etc/inc/priv.defs.inc:1071
msgid "Allow access to the 'System: Gateway Groups' page."
msgstr "Permitir acesso à página 'Sistema: Grupos de Gateway'."
#: etc/inc/priv.defs.inc:1044 etc/inc/priv.defs.inc:1062
+#: etc/inc/priv.defs.inc:1068 etc/inc/priv.defs.inc:1076
msgid "WebCfg - System: Gateways: Edit Gateway Groups page"
msgstr "WebCfg - Página Sistema: Gateways: Editar Grupos de Gateways"
#: etc/inc/priv.defs.inc:1045 etc/inc/priv.defs.inc:1063
+#: etc/inc/priv.defs.inc:1069 etc/inc/priv.defs.inc:1077
msgid "Allow access to the 'System: Gateways: Edit Gateway Groups' page."
msgstr ""
"Permitir acesso à página 'Sistema: Gateways: Editar Grupos de Gateways'."
#: etc/inc/priv.defs.inc:1050 etc/inc/priv.defs.inc:1068
+#: etc/inc/priv.defs.inc:1074 etc/inc/priv.defs.inc:1082
msgid "WebCfg - System: Gateways page"
msgstr "WebCfg - Página Sistema: Gateways"
#: etc/inc/priv.defs.inc:1051 etc/inc/priv.defs.inc:1069
+#: etc/inc/priv.defs.inc:1075 etc/inc/priv.defs.inc:1083
msgid "Allow access to the 'System: Gateways' page."
msgstr "Permitir acesso à página 'Sistema: Gateways'."
#: etc/inc/priv.defs.inc:1056 etc/inc/priv.defs.inc:1074
+#: etc/inc/priv.defs.inc:1080 etc/inc/priv.defs.inc:1088
msgid "WebCfg - System: Gateways: Edit Gateway page"
msgstr "WebCfg - Página Sistema: Gateway: Editar Gateway"
#: etc/inc/priv.defs.inc:1057 etc/inc/priv.defs.inc:1075
+#: etc/inc/priv.defs.inc:1081 etc/inc/priv.defs.inc:1089
msgid "Allow access to the 'System: Gateways: Edit Gateway' page."
msgstr "Permitir acesso à página 'Sistema: Gateway: Editar Gateway'."
#: etc/inc/priv.defs.inc:1062 etc/inc/priv.defs.inc:1080
+#: etc/inc/priv.defs.inc:1086 etc/inc/priv.defs.inc:1094
msgid "WebCfg - System: Group manager page"
msgstr "WebCfg - Página Sistema: Gerenciador de Grupo"
#: etc/inc/priv.defs.inc:1063 etc/inc/priv.defs.inc:1081
+#: etc/inc/priv.defs.inc:1087 etc/inc/priv.defs.inc:1095
msgid "Allow access to the 'System: Group manager' page."
msgstr "Permitir acesso à página 'Sistema: Gerenciador de Grupo'."
#: etc/inc/priv.defs.inc:1068 etc/inc/priv.defs.inc:1086
+#: etc/inc/priv.defs.inc:1092 etc/inc/priv.defs.inc:1100
msgid "WebCfg - System: Group Manager: Add Privileges page"
msgstr "WebCfg - Página Sistema: Gerenciador de Grupo: Adicionar Priviégios"
#: etc/inc/priv.defs.inc:1069 etc/inc/priv.defs.inc:1087
+#: etc/inc/priv.defs.inc:1093 etc/inc/priv.defs.inc:1101
msgid "Allow access to the 'System: Group Manager: Add Privileges' page."
msgstr ""
"Permitir acesso à página 'Sistema: Gerenciador de Grupo: Adicionar "
"Privilégios'."
#: etc/inc/priv.defs.inc:1074 etc/inc/priv.defs.inc:1092
+#: etc/inc/priv.defs.inc:1098 etc/inc/priv.defs.inc:1106
msgid "WebCfg - System: Static Routes page"
msgstr "WebCfg - Página Sistema: Rotas Estáticas"
#: etc/inc/priv.defs.inc:1075 etc/inc/priv.defs.inc:1093
+#: etc/inc/priv.defs.inc:1099 etc/inc/priv.defs.inc:1107
msgid "Allow access to the 'System: Static Routes' page."
msgstr "Permitir acesso à página 'Sistema: Rotas Estáticas'."
#: etc/inc/priv.defs.inc:1080 etc/inc/priv.defs.inc:1098
+#: etc/inc/priv.defs.inc:1104 etc/inc/priv.defs.inc:1112
msgid "WebCfg - System: Static Routes: Edit route page"
msgstr "WebCfg - Página Sistema: Rotas Estáticas: Editar rota"
#: etc/inc/priv.defs.inc:1081 etc/inc/priv.defs.inc:1099
+#: etc/inc/priv.defs.inc:1105 etc/inc/priv.defs.inc:1113
msgid "Allow access to the 'System: Static Routes: Edit route' page."
msgstr "Permitir acesso à página 'Sistema: Rotas Estáticas: Editar rota'."
#: etc/inc/priv.defs.inc:1086 etc/inc/priv.defs.inc:1104
+#: etc/inc/priv.defs.inc:1110 etc/inc/priv.defs.inc:1118
msgid "WebCfg - System: User Manager page"
msgstr "WebCfg - Página Sistema: Gerenciador de Usuários"
#: etc/inc/priv.defs.inc:1087 etc/inc/priv.defs.inc:1105
+#: etc/inc/priv.defs.inc:1111 etc/inc/priv.defs.inc:1119
msgid "Allow access to the 'System: User Manager' page."
msgstr "Permitir acesso à página 'Sistema: Gerenciador de Usuários'."
#: etc/inc/priv.defs.inc:1092 etc/inc/priv.defs.inc:1110
+#: etc/inc/priv.defs.inc:1116 etc/inc/priv.defs.inc:1124
msgid "WebCfg - System: User Manager: Add Privileges page"
msgstr ""
"WebCfg - Página Sistema: Gerenciador de Usuários: Adicionar Privilégios"
#: etc/inc/priv.defs.inc:1093 etc/inc/priv.defs.inc:1111
+#: etc/inc/priv.defs.inc:1117 etc/inc/priv.defs.inc:1125
msgid "Allow access to the 'System: User Manager: Add Privileges' page."
msgstr ""
"Permitir acesso à página 'Sistema: Gerenciador de Usuários: Adicionar "
"Privilégios'."
#: etc/inc/priv.defs.inc:1098 etc/inc/priv.defs.inc:1116
+#: etc/inc/priv.defs.inc:1122 etc/inc/priv.defs.inc:1130
msgid "WebCfg - System: User Password Manager page"
msgstr "WebCfg - Sistema: Página Gerenciador de Senha de Usuários"
#: etc/inc/priv.defs.inc:1099 etc/inc/priv.defs.inc:1117
+#: etc/inc/priv.defs.inc:1123 etc/inc/priv.defs.inc:1131
msgid "Allow access to the 'System: User Password Manager' page."
msgstr "Permitir acesso à página 'Sistema: Gerenciador de Senha de Usuários'."
#: etc/inc/priv.defs.inc:1104 etc/inc/priv.defs.inc:1122
+#: etc/inc/priv.defs.inc:1128
msgid "WebCfg - System: User manager: settings page"
msgstr "WebCfg - Sistema: Gerenciador de Usuários: Página de Configurações"
#: etc/inc/priv.defs.inc:1105 etc/inc/priv.defs.inc:1123
+#: etc/inc/priv.defs.inc:1129
msgid "Allow access to the 'System: User manager: settings' page."
msgstr ""
"Permitir acesso à página 'Sistema: Gerenciador de usuários: Página "
"deConfigurações'."
#: etc/inc/priv.defs.inc:1110 etc/inc/priv.defs.inc:1128
+#: etc/inc/priv.defs.inc:1134 etc/inc/priv.defs.inc:1142
msgid "WebCfg - System: User Manager: Settings: Test LDAP page"
msgstr ""
"WebCfg - Página Sistema: Gerenciador de Usuários: Configurações: Testar LDAP"
#: etc/inc/priv.defs.inc:1111 etc/inc/priv.defs.inc:1129
+#: etc/inc/priv.defs.inc:1135 etc/inc/priv.defs.inc:1143
msgid "Allow access to the 'System: User Manager: Settings: Test LDAP' page."
msgstr ""
"Permitir acesso à página 'Sistema: Gerenciador de Usuário: Configurações: "
"Testar LDAP'."
#: etc/inc/priv.defs.inc:1116 etc/inc/priv.defs.inc:1134
+#: etc/inc/priv.defs.inc:1140 etc/inc/priv.defs.inc:1148
msgid "WebCfg - System: Firmware: Manual Update page (progress bar)"
msgstr ""
"WebCfg - Página Sistema: Firmware: Atualização Manual (barra de progresso)"
#: etc/inc/priv.defs.inc:1117 etc/inc/priv.defs.inc:1135
+#: etc/inc/priv.defs.inc:1141 etc/inc/priv.defs.inc:1149
msgid ""
"Allow access to the 'System: Firmware: Manual Update: Progress bar' page."
msgstr ""
@@ -4594,165 +5528,205 @@ msgstr ""
"progresso'."
#: etc/inc/priv.defs.inc:1122 etc/inc/priv.defs.inc:1140
+#: etc/inc/priv.defs.inc:1146 etc/inc/priv.defs.inc:1154
msgid "WebCfg - Hidden: Upload Configuration page"
msgstr "WebCfg - Página Omitidos: Configuração de Carregamento"
#: etc/inc/priv.defs.inc:1123 etc/inc/priv.defs.inc:1141
+#: etc/inc/priv.defs.inc:1147 etc/inc/priv.defs.inc:1155
msgid "Allow access to the 'Hidden: Upload Configuration' page."
msgstr "Permitir acesso à página 'Omitidos: Configuração de Carregamento'."
#: etc/inc/priv.defs.inc:1128 etc/inc/priv.defs.inc:1146
+#: etc/inc/priv.defs.inc:1152 etc/inc/priv.defs.inc:1160
msgid "WebCfg - VPN: IPsec page"
msgstr "WebCfg - Página VPN: IPsec"
#: etc/inc/priv.defs.inc:1129 etc/inc/priv.defs.inc:1147
+#: etc/inc/priv.defs.inc:1153 etc/inc/priv.defs.inc:1161
msgid "Allow access to the 'VPN: IPsec' page."
msgstr "Permitir acesso à página 'VPN: IPsec'."
#: etc/inc/priv.defs.inc:1134 etc/inc/priv.defs.inc:1152
+#: etc/inc/priv.defs.inc:1158 etc/inc/priv.defs.inc:1166
msgid "WebCfg - VPN: IPsec: Pre-Shared Keys List"
msgstr "WebCfg - VPN: IPsec: Lista de chaves pré-compartilhadas"
#: etc/inc/priv.defs.inc:1135 etc/inc/priv.defs.inc:1153
+#: etc/inc/priv.defs.inc:1159 etc/inc/priv.defs.inc:1167
msgid "Allow access to the 'VPN: IPsec: Pre-Shared Keys List' page."
msgstr ""
"Permitir acesso à página 'VPN: IPsec: Lista de chaves pré-compartilhadas'."
#: etc/inc/priv.defs.inc:1140 etc/inc/priv.defs.inc:1158
+#: etc/inc/priv.defs.inc:1164 etc/inc/priv.defs.inc:1172
msgid "WebCfg - VPN: IPsec: Edit Pre-Shared Keys"
msgstr "WebCfg - VPN: IPsec: Editar chaves pré-compartilhadas"
#: etc/inc/priv.defs.inc:1141 etc/inc/priv.defs.inc:1159
+#: etc/inc/priv.defs.inc:1165 etc/inc/priv.defs.inc:1173
msgid "Allow access to the 'VPN: IPsec: Edit Pre-Shared Keys' page."
msgstr ""
"Permitir acesso à página 'VPN: IPsec: Editar chaves pré-compartilhadas'."
#: etc/inc/priv.defs.inc:1146 etc/inc/priv.defs.inc:1164
+#: etc/inc/priv.defs.inc:1170 etc/inc/priv.defs.inc:1178
msgid "WebCfg - VPN: IPsec: Mobile page"
msgstr "WebCfg - Página VPN: IPsec: Móvel"
#: etc/inc/priv.defs.inc:1147 etc/inc/priv.defs.inc:1165
+#: etc/inc/priv.defs.inc:1171 etc/inc/priv.defs.inc:1179
msgid "Allow access to the 'VPN: IPsec: Mobile' page."
msgstr "Permitir acesso à página 'VPN: IPsec: Móvel'."
#: etc/inc/priv.defs.inc:1152 etc/inc/priv.defs.inc:1170
+#: etc/inc/priv.defs.inc:1176 etc/inc/priv.defs.inc:1184
msgid "WebCfg - VPN: IPsec: Edit Phase 1 page"
msgstr "WebCfg - Página VPN: IPsec: Editar Fase 1"
#: etc/inc/priv.defs.inc:1153 etc/inc/priv.defs.inc:1171
+#: etc/inc/priv.defs.inc:1177 etc/inc/priv.defs.inc:1185
msgid "Allow access to the 'VPN: IPsec: Edit Phase 1' page."
msgstr "Permitir acesso à página 'VPN: IPsec: Editar Fase 1'."
#: etc/inc/priv.defs.inc:1158 etc/inc/priv.defs.inc:1176
+#: etc/inc/priv.defs.inc:1182 etc/inc/priv.defs.inc:1190
msgid "WebCfg - VPN: IPsec: Edit Phase 2 page"
msgstr "WebCfg - Página VPN: IPsec: Editar Fase 2"
#: etc/inc/priv.defs.inc:1159 etc/inc/priv.defs.inc:1177
+#: etc/inc/priv.defs.inc:1183 etc/inc/priv.defs.inc:1191
msgid "Allow access to the 'VPN: IPsec: Edit Phase 2' page."
msgstr "Permitir acesso à página 'VPN: IPsec: Editar Fase 2'."
#: etc/inc/priv.defs.inc:1164 etc/inc/priv.defs.inc:1182
+#: etc/inc/priv.defs.inc:1188 etc/inc/priv.defs.inc:1196
msgid "WebCfg - VPN: VPN L2TP page"
msgstr "WebCfg - Página VPN: L2TP da VPN"
#: etc/inc/priv.defs.inc:1165 etc/inc/priv.defs.inc:1183
+#: etc/inc/priv.defs.inc:1189 etc/inc/priv.defs.inc:1197
msgid "Allow access to the 'VPN: VPN L2TP' page."
msgstr "Permitir acesso à página 'VPN: L2TP da VPN'."
#: etc/inc/priv.defs.inc:1170 etc/inc/priv.defs.inc:1188
+#: etc/inc/priv.defs.inc:1194 etc/inc/priv.defs.inc:1202
msgid "WebCfg - VPN: VPN L2TP : Users page"
msgstr "WebCfg - Página VPN: L2TP da VPN: Usuários"
#: etc/inc/priv.defs.inc:1171 etc/inc/priv.defs.inc:1189
+#: etc/inc/priv.defs.inc:1195 etc/inc/priv.defs.inc:1203
msgid "Allow access to the 'VPN: VPN L2TP : Users' page."
msgstr "Permitir acesso à página 'VPN: L2TP da VPN: Usuários'."
#: etc/inc/priv.defs.inc:1176 etc/inc/priv.defs.inc:1194
+#: etc/inc/priv.defs.inc:1200 etc/inc/priv.defs.inc:1208
msgid "WebCfg - VPN: VPN L2TP : Users : Edit page"
msgstr "WebCfg - Página VPN: L2TP da VPN: Usuários: Editar"
#: etc/inc/priv.defs.inc:1177 etc/inc/priv.defs.inc:1195
+#: etc/inc/priv.defs.inc:1201 etc/inc/priv.defs.inc:1209
msgid "Allow access to the 'VPN: VPN L2TP : Users : Edit' page."
msgstr "Permitir acesso à página 'VPN: L2TP da VPN: Usuários: Editar'."
#: etc/inc/priv.defs.inc:1182 etc/inc/priv.defs.inc:1200
+#: etc/inc/priv.defs.inc:1206 etc/inc/priv.defs.inc:1214
msgid "WebCfg - OpenVPN: Client page"
msgstr "WebCfg - Página OpenVPN: Cliente"
#: etc/inc/priv.defs.inc:1183 etc/inc/priv.defs.inc:1201
+#: etc/inc/priv.defs.inc:1207 etc/inc/priv.defs.inc:1215
msgid "Allow access to the 'OpenVPN: Client' page."
msgstr "Permitir acesso à página 'OpenVPN: Cliente'."
#: etc/inc/priv.defs.inc:1188 etc/inc/priv.defs.inc:1206
+#: etc/inc/priv.defs.inc:1212 etc/inc/priv.defs.inc:1220
msgid "WebCfg - OpenVPN: Client Specific Override page"
msgstr "WebCfg - Página OpenVPN: Substituição Específica de Cliente"
#: etc/inc/priv.defs.inc:1189 etc/inc/priv.defs.inc:1207
+#: etc/inc/priv.defs.inc:1213 etc/inc/priv.defs.inc:1221
msgid "Allow access to the 'OpenVPN: Client Specific Override' page."
msgstr ""
"Permitir acesso à página 'OpenVPN: Substituição Específica de Cliente'."
#: etc/inc/priv.defs.inc:1194 etc/inc/priv.defs.inc:1212
+#: etc/inc/priv.defs.inc:1218 etc/inc/priv.defs.inc:1226
msgid "WebCfg - OpenVPN: Server page"
msgstr "WebCfg - Página OpenVPN: Servidor"
#: etc/inc/priv.defs.inc:1195 etc/inc/priv.defs.inc:1213
+#: etc/inc/priv.defs.inc:1219 etc/inc/priv.defs.inc:1227
msgid "Allow access to the 'OpenVPN: Server' page."
msgstr "Permitir acesso à página 'OpenVPN: Servidor'."
#: etc/inc/priv.defs.inc:1200 etc/inc/priv.defs.inc:1218
+#: etc/inc/priv.defs.inc:1224 etc/inc/priv.defs.inc:1232
msgid "WebCfg - Services: PPPoE Server page"
msgstr "WebCfg - Página Serviços: Servidor PPPoE"
#: etc/inc/priv.defs.inc:1201 etc/inc/priv.defs.inc:1219
+#: etc/inc/priv.defs.inc:1225 etc/inc/priv.defs.inc:1233
msgid "Allow access to the 'Services: PPPoE Server' page."
msgstr "Permitir acesso à página 'Serviços: Servidor PPPoE'."
#: etc/inc/priv.defs.inc:1206 etc/inc/priv.defs.inc:1224
+#: etc/inc/priv.defs.inc:1230 etc/inc/priv.defs.inc:1238
msgid "WebCfg - Services: PPPoE Server: Edit page"
msgstr "WebCfg - Serviços: Servidor PPPoE: Página Editar"
#: etc/inc/priv.defs.inc:1207 etc/inc/priv.defs.inc:1225
+#: etc/inc/priv.defs.inc:1231 etc/inc/priv.defs.inc:1239
msgid "Allow access to the 'Services: PPPoE Server: Edit' page."
msgstr "Permitir acesso à página 'Serviços: Servidor PPPoE: Editar'."
#: etc/inc/priv.defs.inc:1212 etc/inc/priv.defs.inc:1230
+#: etc/inc/priv.defs.inc:1236 etc/inc/priv.defs.inc:1244
msgid "WebCfg - VPN: VPN PPTP page"
msgstr "WebCfg - Página VPN: PPTP da VPN"
#: etc/inc/priv.defs.inc:1213 etc/inc/priv.defs.inc:1231
+#: etc/inc/priv.defs.inc:1237 etc/inc/priv.defs.inc:1245
msgid "Allow access to the 'VPN: VPN PPTP' page."
msgstr "Permitir acesso à página 'VPN: PPTP da VPN'."
#: etc/inc/priv.defs.inc:1218 etc/inc/priv.defs.inc:1236
+#: etc/inc/priv.defs.inc:1242 etc/inc/priv.defs.inc:1250
msgid "WebCfg - VPN: VPN PPTP: Users page"
msgstr "WebCfg - Página VPN: PPTP da VPN: Usuários"
#: etc/inc/priv.defs.inc:1219 etc/inc/priv.defs.inc:1237
+#: etc/inc/priv.defs.inc:1243 etc/inc/priv.defs.inc:1251
msgid "Allow access to the 'VPN: VPN PPTP: Users' page."
msgstr "Permitir acesso à página 'VPN: PPTP da VPN: Usuários'."
#: etc/inc/priv.defs.inc:1224 etc/inc/priv.defs.inc:1242
+#: etc/inc/priv.defs.inc:1248 etc/inc/priv.defs.inc:1256
msgid "WebCfg - VPN: VPN PPTP: User: Edit page"
msgstr "WebCfg - Página VPN: PPTP da VPN: Usuários: Editar"
#: etc/inc/priv.defs.inc:1225 etc/inc/priv.defs.inc:1243
+#: etc/inc/priv.defs.inc:1249 etc/inc/priv.defs.inc:1257
msgid "Allow access to the 'VPN: VPN PPTP: User: Edit' page."
msgstr "Permitir acesso à página 'VPN: PPTP da VPN: Usuários: Editar'."
#: etc/inc/priv.defs.inc:1230 etc/inc/priv.defs.inc:1248
+#: etc/inc/priv.defs.inc:1254 etc/inc/priv.defs.inc:1262
msgid "WebCfg - pfSense wizard subsystem page"
msgstr "WebCfg - Página Subsistema de wizard do pfSense"
#: etc/inc/priv.defs.inc:1231 etc/inc/priv.defs.inc:1249
+#: etc/inc/priv.defs.inc:1255 etc/inc/priv.defs.inc:1263
msgid "Allow access to the 'pfSense wizard subsystem' page."
msgstr "Permitir acesso à página 'Subsistema de wizard do pfSense'."
#: etc/inc/priv.defs.inc:1236 etc/inc/priv.defs.inc:1254
+#: etc/inc/priv.defs.inc:1260 etc/inc/priv.defs.inc:1268
msgid "WebCfg - XMLRPC Library page"
msgstr "WebCfg - Página Biblioteca XMLRPC"
#: etc/inc/priv.defs.inc:1237 etc/inc/priv.defs.inc:1255
+#: etc/inc/priv.defs.inc:1261 etc/inc/priv.defs.inc:1269
msgid "Allow access to the 'XMLRPC Library' page."
msgstr "Permitir acesso à página 'Biblioteca XMLRPC'."
@@ -4789,7 +5763,7 @@ msgstr "Gerando gráficos RRD..."
msgid "RRD restore failed exited with %1$s, the error is: %2$s%3$s"
msgstr "RRD restore falhou ao sair com %1$s, o erro é: %2$s%3$s"
-#: etc/inc/rrd.inc:758 etc/inc/rrd.inc:782
+#: etc/inc/rrd.inc:758 etc/inc/rrd.inc:782 etc/inc/rrd.inc:803
msgid "Creating rrd update script"
msgstr "Criando script de atualização rrd"
@@ -4943,56 +5917,57 @@ msgstr "Resolvendo o domínio do servidor SMTP \"%s\"..."
msgid "Connected to SMTP server \"%s\"."
msgstr "Conectado ao servidor SMTP \"%s\"."
-#: etc/inc/smtp.inc:517
+#: etc/inc/smtp.inc:517 etc/inc/smtp.inc:519
msgid "server does not require authentication"
msgstr "servidor não requere autenticação"
-#: etc/inc/smtp.inc:581
+#: etc/inc/smtp.inc:581 etc/inc/smtp.inc:583
msgid ""
"it is not supported any of the authentication mechanisms required by the "
"server"
msgstr ""
"não é suportado por nenhum mecanismo de autenticação requerido pelo servidor"
-#: etc/inc/smtp.inc:613
+#: etc/inc/smtp.inc:613 etc/inc/smtp.inc:615
msgid ""
"direct delivery connection is already established and sender is already set"
msgstr ""
"conexão de entrega direta já está estabelecida e quem envia já esta "
"configurado"
-#: etc/inc/smtp.inc:621
+#: etc/inc/smtp.inc:621 etc/inc/smtp.inc:623
msgid "connection is not in the initial state"
msgstr "conexão não está no seu estado inicial"
-#: etc/inc/smtp.inc:643
+#: etc/inc/smtp.inc:643 etc/inc/smtp.inc:645
msgid "it was not specified a valid direct recipient"
msgstr "um destinatário direto válido não foi especificado"
-#: etc/inc/smtp.inc:662
+#: etc/inc/smtp.inc:662 etc/inc/smtp.inc:664
msgid ""
"it is not possible to deliver directly to recipients of different domains"
msgstr ""
"não foi possível entregar diretamente para destinatários de diferentes "
"domínios"
-#: etc/inc/smtp.inc:667
+#: etc/inc/smtp.inc:667 etc/inc/smtp.inc:669
msgid "connection is already established and the recipient is already set"
msgstr "conexão já está estabelecida e o destinatário já está configurado"
-#: etc/inc/smtp.inc:679
+#: etc/inc/smtp.inc:679 etc/inc/smtp.inc:681
msgid "connection is not in the recipient setting state"
msgstr "conexão não está no estado de configuração do destinatário"
-#: etc/inc/smtp.inc:708
+#: etc/inc/smtp.inc:708 etc/inc/smtp.inc:710
msgid "connection is not in the start sending data state"
msgstr "conexão não está no estado inicial de envio de dados"
-#: etc/inc/smtp.inc:738 etc/inc/smtp.inc:749
+#: etc/inc/smtp.inc:738 etc/inc/smtp.inc:749 etc/inc/smtp.inc:740
+#: etc/inc/smtp.inc:751
msgid "connection is not in the sending data state"
msgstr "conexão não está no estado de envio de dados"
-#: etc/inc/smtp.inc:785
+#: etc/inc/smtp.inc:785 etc/inc/smtp.inc:787
msgid "it was not previously established a SMTP connection"
msgstr "não foi previamente estabelecida uma conexão SMTP"
@@ -5198,73 +6173,78 @@ msgstr "Interface %s Gateway Estático"
msgid "Interface %s Dynamic Gateway"
msgstr "Interface %s Gateway Dinâmico"
-#: etc/inc/upgrade_config.inc:810
+#: etc/inc/upgrade_config.inc:810 etc/inc/upgrade_config.inc:811
#, php-format
msgid "Upgraded static route for %s"
msgstr "Atualizar rota estática para %s"
-#: etc/inc/upgrade_config.inc:907
+#: etc/inc/upgrade_config.inc:907 etc/inc/upgrade_config.inc:908
#, php-format
msgid "Sitedown pool for VS: %s"
msgstr "Pool de sites indisponíveis para Servidor Virtual: %s"
-#: etc/inc/upgrade_config.inc:1060
+#: etc/inc/upgrade_config.inc:1060 etc/inc/upgrade_config.inc:1062
+#: etc/inc/upgrade_config.inc:1063
#, php-format
msgid "phase2 for %s"
msgstr "fase2 para %s"
-#: etc/inc/upgrade_config.inc:1287
+#: etc/inc/upgrade_config.inc:1287 etc/inc/upgrade_config.inc:1289
+#: etc/inc/upgrade_config.inc:1290
#, php-format
msgid "Upgraded Dyndns %s"
msgstr "Atualizar DNS Dinâmico %s"
-#: etc/inc/upgrade_config.inc:1339
+#: etc/inc/upgrade_config.inc:1339 etc/inc/upgrade_config.inc:1341
+#: etc/inc/upgrade_config.inc:1342
msgid "All Users"
msgstr "Todos Usuários"
-#: etc/inc/upgrade_config.inc:1471
+#: etc/inc/upgrade_config.inc:1471 etc/inc/upgrade_config.inc:1473
+#: etc/inc/upgrade_config.inc:1474
#, php-format
msgid "Converted bridged %s"
msgstr "Converted bridged %s"
#: etc/inc/upgrade_config.inc:1797 etc/inc/upgrade_config.inc:1845
+#: etc/inc/upgrade_config.inc:1847 etc/inc/upgrade_config.inc:1848
msgid "Auto added OpenVPN rule from config upgrade."
msgstr "Regra de OpenVPN auto adicionada pela atualização de config."
-#: etc/inc/voucher.inc:364
+#: etc/inc/voucher.inc:364 etc/inc/voucher.inc:367
#, php-format
msgid "%1$s (%2$s/%3$s) active and good for %4$d Minutes"
msgstr "%1$s (%2$s/%3$s) ativo e válido por %4$d Minutos"
-#: etc/inc/voucher.inc:401
+#: etc/inc/voucher.inc:401 etc/inc/voucher.inc:404
msgid "Access denied!"
msgstr "Acesso negado!"
-#: etc/inc/voucher.inc:403
+#: etc/inc/voucher.inc:403 etc/inc/voucher.inc:406
#, php-format
msgid "Access granted for %d Minutes in total."
msgstr "Acesso garantido por %d minutos no total."
-#: etc/inc/voucher.inc:466
+#: etc/inc/voucher.inc:466 etc/inc/voucher.inc:469
msgid "Enabling voucher support... "
msgstr "Habilitando suporte a voucher..."
-#: etc/inc/voucher.inc:505
+#: etc/inc/voucher.inc:505 etc/inc/voucher.inc:508
#, php-format
msgid "Error: cannot write voucher.cfg"
msgstr "Erro: não pode escrever voicher.cfg"
-#: etc/inc/voucher.inc:556
+#: etc/inc/voucher.inc:556 etc/inc/voucher.inc:559
#, php-format
msgid "cant write %1$s/voucher_%s_used_%2$s.db"
msgstr "não pode gravar em %1$s/voucher_%s_used_%2$s.db"
-#: etc/inc/voucher.inc:635
+#: etc/inc/voucher.inc:635 etc/inc/voucher.inc:638
#, php-format
msgid "cant read %1$s/voucher_%s_used_%2$s.db"
msgstr "não pode ler %1$s/voucher_%s_used_%2$s.db"
-#: etc/inc/voucher.inc:653 etc/inc/voucher.inc:652
+#: etc/inc/voucher.inc:653 etc/inc/voucher.inc:652 etc/inc/voucher.inc:655
#, php-format
msgid "Voucher: %s"
msgstr "Voucher: %s"
@@ -5334,6 +6314,34 @@ msgstr "Mesclado em config (seções %s) do cliente ZeroMQ."
#: usr/local/www/services_ntpd.php:71 usr/local/www/services_dhcp_edit.php:193
#: usr/local/www/load_balancer_pool_edit.php:159
#: usr/local/www/services_dhcpv6.php:386
+#: usr/local/www/services_captiveportal_vouchers.php:82
+#: usr/local/www/fbegin.inc:197 usr/local/www/fbegin.inc:307
+#: usr/local/www/services_captiveportal_vouchers_edit.php:45
+#: usr/local/www/services_router_advertisements.php:194
+#: usr/local/www/services_captiveportal_ip.php:61
+#: usr/local/www/services_captiveportal_hostname_edit.php:59
+#: usr/local/www/services_captiveportal_mac.php:60
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:118
+#: usr/local/www/services_captiveportal_mac_edit.php:57
+#: usr/local/www/services_captiveportal_hostname.php:63
+#: usr/local/www/status_services.php:222
+#: usr/local/www/services_captiveportal.php:60
+#: usr/local/www/services_captiveportal_filemanager.php:71
+#: usr/local/www/services_captiveportal_ip_edit.php:60
+#: usr/local/www/services_dhcp.php:527 usr/local/www/services_ntpd.php:76
+#: usr/local/www/services_captiveportal_zones_edit.php:45
+#: usr/local/www/services_dhcpv6.php:367
+#: usr/local/www/system_authservers.php:187
+#: usr/local/www/status_services.php:220
+#: usr/local/www/services_dhcpv6_edit.php:178
+#: usr/local/www/services_dyndns_edit.php:160
+#: usr/local/www/services_dhcp_edit.php:301
+#: usr/local/www/services_captiveportal_vouchers.php:89
+#: usr/local/www/vpn_pppoe_edit.php:237 usr/local/www/services_dhcp.php:526
+#: usr/local/www/services_dhcpv6.php:362
+#: usr/local/www/system_authservers.php:188 usr/local/www/fbegin.inc:188
+#: usr/local/www/fbegin.inc:299 usr/local/www/services_dnsmasq.php:123
+#: usr/local/www/services_dyndns.php:64 usr/local/www/services_snmp.php:165
msgid "Services"
msgstr "Serviços"
@@ -5367,6 +6375,20 @@ msgstr "Serviços"
#: usr/local/www/diag_logs_gateways.php:85
#: usr/local/www/load_balancer_pool_edit.php:159
#: usr/local/www/diag_logs_filter_dynamic.php:105
+#: usr/local/www/diag_logs_routing.php:73
+#: usr/local/www/diag_logs_settings.php:229 usr/local/www/fbegin.inc:156
+#: usr/local/www/fbegin.inc:190 usr/local/www/diag_logs_relayd.php:74
+#: usr/local/www/diag_logs_auth.php:73 usr/local/www/diag_logs_ipsec.php:110
+#: usr/local/www/diag_logs_resolver.php:86 usr/local/www/diag_logs_ntpd.php:73
+#: usr/local/www/diag_logs_dhcp.php:78 usr/local/www/diag_logs_wireless.php:75
+#: usr/local/www/diag_logs_filter_summary.php:192
+#: usr/local/www/diag_logs_gateways.php:86
+#: usr/local/www/diag_logs_openvpn.php:77
+#: usr/local/www/diag_logs_filter_dynamic.php:106
+#: usr/local/www/diag_logs_filter.php:98
+#: usr/local/www/diag_logs_filter_dynamic.php:104
+#: usr/local/www/diag_logs_ppp.php:75 usr/local/www/fbegin.inc:148
+#: usr/local/www/fbegin.inc:181
msgid "Load Balancer"
msgstr "Balanceamento de carga"
@@ -5378,10 +6400,17 @@ msgstr "Balanceamento de carga"
#: usr/local/www/load_balancer_relay_protocol.php:123
#: usr/local/www/status_lb_pool.php:121 usr/local/www/status_lb_vs.php:68
#: usr/local/www/load_balancer_setting.php:120
+#: usr/local/www/load_balancer_setting.php:119
+#: usr/local/www/load_balancer_virtual_server.php:114
+#: usr/local/www/load_balancer_monitor.php:108
+#: usr/local/www/load_balancer_relay_protocol.php:121
+#: usr/local/www/load_balancer_relay_action.php:125
+#: usr/local/www/load_balancer_pool.php:117
msgid "Virtual Servers"
msgstr "Servidores Virtuais"
#: usr/local/www/load_balancer_virtual_server.php:108
+#: usr/local/www/load_balancer_virtual_server.php:106
msgid "The virtual server configuration has been changed"
msgstr "A configuração do servidor virtual foi modificada"
@@ -5412,6 +6441,24 @@ msgstr "A configuração do servidor virtual foi modificada"
#: usr/local/www/firewall_shaper_vinterface.php:376
#: usr/local/www/services_dhcp.php:549 usr/local/www/firewall_aliases.php:163
#: usr/local/www/interfaces.php:1326 usr/local/www/services_dhcpv6.php:488
+#: usr/local/www/services_dnsmasq.php:148
+#: usr/local/www/firewall_nat_out.php:305
+#: usr/local/www/load_balancer_setting.php:110 usr/local/www/vpn_pppoe.php:97
+#: usr/local/www/vpn_ipsec.php:133 usr/local/www/vpn_ipsec_mobile.php:330
+#: usr/local/www/firewall_nat.php:180 usr/local/www/firewall_shaper.php:404
+#: usr/local/www/vpn_ipsec_keys.php:85
+#: usr/local/www/firewall_shaper_vinterface.php:383
+#: usr/local/www/load_balancer_virtual_server.php:106
+#: usr/local/www/load_balancer_monitor.php:100
+#: usr/local/www/load_balancer_relay_protocol.php:112
+#: usr/local/www/services_dhcp.php:653 usr/local/www/firewall_aliases.php:167
+#: usr/local/www/interfaces.php:1314
+#: usr/local/www/services_captiveportal_zones.php:48
+#: usr/local/www/firewall_virtual_ip.php:167
+#: usr/local/www/services_dhcpv6.php:468 usr/local/www/vpn_pppoe.php:98
+#: usr/local/www/vpn_ipsec.php:139 usr/local/www/firewall_virtual_ip.php:181
+#: usr/local/www/services_dhcp.php:655 usr/local/www/services_dhcpv6.php:463
+#: usr/local/www/services_dnsmasq.php:152 usr/local/www/interfaces.php:1327
msgid "You must apply the changes in order for them to take effect."
msgstr "Você deve aplicar as mudanças para que elas tenham efeito."
@@ -5422,6 +6469,12 @@ msgstr "Você deve aplicar as mudanças para que elas tenham efeito."
#: usr/local/www/load_balancer_relay_protocol.php:122
#: usr/local/www/status_lb_pool.php:120 usr/local/www/status_lb_vs.php:67
#: usr/local/www/load_balancer_setting.php:119
+#: usr/local/www/load_balancer_setting.php:118
+#: usr/local/www/load_balancer_virtual_server.php:113
+#: usr/local/www/load_balancer_monitor.php:107
+#: usr/local/www/load_balancer_relay_protocol.php:120
+#: usr/local/www/load_balancer_relay_action.php:124
+#: usr/local/www/load_balancer_pool.php:116
msgid "Pools"
msgstr "Pools"
@@ -5431,6 +6484,12 @@ msgstr "Pools"
#: usr/local/www/load_balancer_monitor.php:111
#: usr/local/www/load_balancer_relay_protocol.php:121
#: usr/local/www/load_balancer_setting.php:121
+#: usr/local/www/load_balancer_setting.php:120
+#: usr/local/www/load_balancer_virtual_server.php:115
+#: usr/local/www/load_balancer_monitor.php:109
+#: usr/local/www/load_balancer_relay_protocol.php:119
+#: usr/local/www/load_balancer_relay_action.php:123
+#: usr/local/www/load_balancer_pool.php:118
msgid "Monitors"
msgstr "Monitores"
@@ -5464,6 +6523,28 @@ msgstr "Monitores"
#: usr/local/www/firewall_nat_edit.php:525
#: usr/local/www/vpn_openvpn_client.php:426
#: usr/local/www/vpn_openvpn_client.php:866
+#: usr/local/www/load_balancer_relay_action_edit.php:421
+#: usr/local/www/diag_ipsec_sad.php:90
+#: usr/local/www/load_balancer_virtual_server.php:128
+#: usr/local/www/vpn_openvpn_server.php:747 usr/local/www/status_upnp.php:87
+#: usr/local/www/interfaces_bridge_edit.php:301
+#: usr/local/www/diag_packet_capture.php:207
+#: usr/local/www/vpn_ipsec_phase2.php:644
+#: usr/local/www/firewall_nat_edit.php:524
+#: usr/local/www/vpn_openvpn_client.php:434
+#: usr/local/www/vpn_openvpn_client.php:919
+#: usr/local/www/diag_ipsec_spd.php:90
+#: usr/local/www/vpn_openvpn_client.php:452
+#: usr/local/www/vpn_openvpn_client.php:938
+#: usr/local/www/firewall_rules_edit.php:846
+#: usr/local/www/firewall_nat_edit.php:187
+#: usr/local/www/firewall_nat_edit.php:190
+#: usr/local/www/firewall_nat_edit.php:519
+#: usr/local/www/interfaces_bridge_edit.php:302
+#: usr/local/www/firewall_nat_out_edit.php:134
+#: usr/local/www/firewall_nat_out_edit.php:473
+#: usr/local/www/vpn_openvpn_server.php:773
+#: usr/local/www/vpn_ipsec_phase2.php:665
msgid "Protocol"
msgstr "Protocolo"
@@ -5478,6 +6559,10 @@ msgstr "Protocolo"
#: usr/local/www/system_advanced_notifications.php:194
#: usr/local/www/load_balancer_virtual_server.php:131
#: usr/local/www/load_balancer_virtual_server_edit.php:169
+#: usr/local/www/interfaces_ppps_edit.php:661
+#: usr/local/www/load_balancer_virtual_server.php:129
+#: usr/local/www/load_balancer_virtual_server_edit.php:167
+#: usr/local/www/interfaces_ppps_edit.php:667
msgid "IP Address"
msgstr "Endereço IP"
@@ -5507,6 +6592,23 @@ msgstr "Endereço IP"
#: usr/local/www/diag_packet_capture.php:185
#: usr/local/www/load_balancer_pool_edit.php:211
#: usr/local/www/load_balancer_pool.php:135
+#: usr/local/www/firewall_aliases_edit.php:464
+#: usr/local/www/firewall_rules.php:362 usr/local/www/firewall_rules.php:364
+#: usr/local/www/load_balancer_virtual_server.php:130
+#: usr/local/www/services_captiveportal.php:641
+#: usr/local/www/services_captiveportal.php:662
+#: usr/local/www/services_captiveportal.php:684
+#: usr/local/www/services_captiveportal.php:703
+#: usr/local/www/status_upnp.php:86
+#: usr/local/www/load_balancer_virtual_server_edit.php:181
+#: usr/local/www/diag_packet_capture.php:232
+#: usr/local/www/load_balancer_pool_edit.php:209
+#: usr/local/www/load_balancer_pool.php:133 usr/local/www/diag_testport.php:60
+#: usr/local/www/diag_testport.php:123
+#: usr/local/www/services_captiveportal.php:642
+#: usr/local/www/services_captiveportal.php:663
+#: usr/local/www/services_captiveportal.php:685
+#: usr/local/www/services_captiveportal.php:704
msgid "Port"
msgstr "Porta"
@@ -5516,6 +6618,7 @@ msgstr "Porta"
#: usr/local/www/status_lb_pool.php:62
#: usr/local/www/load_balancer_virtual_server.php:133
#: usr/local/www/load_balancer_pool_edit.php:159
+#: usr/local/www/load_balancer_virtual_server.php:131
msgid "Pool"
msgstr "Pool"
@@ -5523,6 +6626,8 @@ msgstr "Pool"
#: usr/local/www/load_balancer_virtual_server_edit.php:228
#: usr/local/www/load_balancer_virtual_server.php:134
#: usr/local/www/load_balancer_virtual_server_edit.php:217
+#: usr/local/www/load_balancer_virtual_server.php:132
+#: usr/local/www/load_balancer_virtual_server_edit.php:215
msgid "Fall Back Pool"
msgstr "Pool de Fall Back"
@@ -5545,15 +6650,22 @@ msgstr "Pool de Fall Back"
#: usr/local/www/diag_backup.php:576 usr/local/www/reboot.php:48
#: usr/local/www/edit.php:42 usr/local/www/diag_dump_states.php:75
#: usr/local/www/halt.php:54 usr/local/www/diag_states_summary.php:174
+#: usr/local/www/fbegin.inc:331 usr/local/www/diag_sockets.php:44
+#: usr/local/www/exec.php:93 usr/local/www/diag_packet_capture.php:43
+#: usr/local/www/diag_states_summary.php:176
+#: usr/local/www/diag_testport.php:49 usr/local/www/diag_defaults.php:52
+#: usr/local/www/diag_backup.php:581 usr/local/www/edit.php:41
+#: usr/local/www/fbegin.inc:323
msgid "Diagnostics"
msgstr "Diagnósticos"
#: usr/local/www/diag_tables.php:44 usr/local/www/fbegin.inc:199
-#: usr/local/www/fbegin.inc:217
+#: usr/local/www/fbegin.inc:217 usr/local/www/fbegin.inc:225
+#: usr/local/www/fbegin.inc:216
msgid "Tables"
msgstr "Tabelas"
-#: usr/local/www/diag_tables.php:86
+#: usr/local/www/diag_tables.php:86 usr/local/www/diag_tables.php:87
msgid "The bogons database has been updated."
msgstr "O banco de dados bogons foi atualizado."
@@ -5562,6 +6674,7 @@ msgid "Table:"
msgstr "Tabela:"
#: usr/local/www/diag_tables.php:152 usr/local/www/diag_tables.php:151
+#: usr/local/www/diag_tables.php:153 usr/local/www/diag_tables.php:155
msgid "No entries exist in this table."
msgstr "Não existe entradas nesta tabela."
@@ -5569,10 +6682,13 @@ msgstr "Não existe entradas nesta tabela."
#: usr/local/www/exec.php:273 usr/local/www/exec.php:283
#: usr/local/www/system_firmware_restorefullbackup.php:166
#: usr/local/www/diag_tables.php:159 usr/local/www/diag_backup.php:250
+#: usr/local/www/exec.php:275 usr/local/www/exec.php:285
+#: usr/local/www/diag_tables.php:153 usr/local/www/diag_tables.php:162
msgid "Download"
msgstr "Download"
#: usr/local/www/diag_tables.php:160 usr/local/www/diag_tables.php:159
+#: usr/local/www/diag_tables.php:153 usr/local/www/diag_tables.php:162
msgid " the latest bogon data."
msgstr " dados de bogon mais recente."
@@ -5581,14 +6697,18 @@ msgstr " dados de bogon mais recente."
#: usr/local/www/services_dhcpv6.php:758
#: usr/local/www/system_firmware_restorefullbackup.php:163
#: usr/local/www/diag_tables.php:161 usr/local/www/services_dhcpv6.php:853
+#: usr/local/www/services_dhcpv6.php:784 usr/local/www/diag_tables.php:165
+#: usr/local/www/services_dhcpv6.php:801
msgid "Delete"
msgstr "Excluir"
#: usr/local/www/diag_tables.php:162 usr/local/www/diag_tables.php:161
+#: usr/local/www/diag_tables.php:165
msgid "all"
msgstr "todos"
#: usr/local/www/diag_tables.php:162 usr/local/www/diag_tables.php:161
+#: usr/local/www/diag_tables.php:165
msgid "entries in this table."
msgstr "entradas nesta tabela."
@@ -5635,10 +6755,27 @@ msgstr "ERRO: Nenhum pacote definido."
#: usr/local/www/firewall_nat_edit.php:445
#: usr/local/www/load_balancer_pool_edit.php:159
#: usr/local/www/firewall_virtual_ip_edit.php:268
+#: usr/local/www/firewall_nat_1to1_edit.php:221
+#: usr/local/www/firewall_nat_npt_edit.php:144 usr/local/www/pkg_edit.php:254
+#: usr/local/www/firewall_rules_edit.php:661
+#: usr/local/www/firewall_nat_edit.php:444
+#: usr/local/www/firewall_virtual_ip_edit.php:261
+#: usr/local/www/interfaces_wireless_edit.php:147
+#: usr/local/www/firewall_rules_edit.php:664
+#: usr/local/www/interfaces_vlan_edit.php:142
+#: usr/local/www/interfaces_ppps_edit.php:384
+#: usr/local/www/interfaces_lagg_edit.php:133
+#: usr/local/www/firewall_nat_edit.php:439
+#: usr/local/www/interfaces_gif_edit.php:133
+#: usr/local/www/firewall_virtual_ip_edit.php:253
+#: usr/local/www/vpn_pppoe_edit.php:237
+#: usr/local/www/interfaces_bridge_edit.php:236
+#: usr/local/www/firewall_nat_out_edit.php:317
msgid "Edit"
msgstr "Editar"
#: usr/local/www/pkg_edit.php:260 usr/local/www/pkg_edit.php:255
+#: usr/local/www/pkg_edit.php:258
msgid "Package Editor"
msgstr "Editor de Pacote"
@@ -5779,11 +6916,114 @@ msgstr "Editor de Pacote"
#: usr/local/www/interfaces_gre_edit.php:228
#: usr/local/www/vpn_ipsec_phase1.php:868 usr/local/www/diag_nanobsd.php:218
#: usr/local/www/services_dhcpv6.php:574 usr/local/www/services_dhcpv6.php:879
+#: usr/local/www/vpn_pppoe_edit.php:590
+#: usr/local/www/system_routes_edit.php:316
+#: usr/local/www/diag_logs_settings.php:348
+#: usr/local/www/system_gateway_groups_edit.php:343
+#: usr/local/www/interfaces_vlan_edit.php:190
+#: usr/local/www/services_dnsmasq.php:210
+#: usr/local/www/services_captiveportal_vouchers.php:618
+#: usr/local/www/firewall_nat_out.php:331
+#: usr/local/www/services_dnsmasq_edit.php:285
+#: usr/local/www/load_balancer_relay_protocol_edit.php:278
+#: usr/local/www/services_captiveportal_vouchers_edit.php:205
+#: usr/local/www/firewall_nat_1to1_edit.php:464
+#: usr/local/www/services_dhcpv6_edit.php:239
+#: usr/local/www/services_router_advertisements.php:400
+#: usr/local/www/firewall_nat_npt_edit.php:274
+#: usr/local/www/load_balancer_setting.php:160 usr/local/www/vpn_ipsec.php:167
+#: usr/local/www/services_dhcp_relay.php:190
+#: usr/local/www/services_captiveportal_hostname_edit.php:201
+#: usr/local/www/vpn_ipsec_mobile.php:657 usr/local/www/pkg_edit.php:416
+#: usr/local/www/interfaces_qinq_edit.php:395
+#: usr/local/www/interfaces_gif_edit.php:219
+#: usr/local/www/firewall_shaper.php:350
+#: usr/local/www/load_balancer_relay_action_edit.php:554
+#: usr/local/www/load_balancer_monitor_edit.php:354
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:160
+#: usr/local/www/services_captiveportal_mac_edit.php:201
+#: usr/local/www/firewall_schedule_edit.php:1155
+#: usr/local/www/interfaces_ppps_edit.php:784
+#: usr/local/www/system_crlmanager.php:295
+#: usr/local/www/system_crlmanager.php:388
+#: usr/local/www/system_crlmanager.php:420
+#: usr/local/www/firewall_aliases_edit.php:694 usr/local/www/vpn_pptp.php:474
+#: usr/local/www/interfaces_lagg_edit.php:219
+#: usr/local/www/vpn_openvpn_csc.php:657
+#: usr/local/www/system_advanced_misc.php:534
+#: usr/local/www/firewall_shaper_vinterface.php:319
+#: usr/local/www/services_captiveportal.php:964
+#: usr/local/www/system_gateways_edit.php:627
+#: usr/local/www/services_dhcpv6_relay.php:191
+#: usr/local/www/system_usermanager_passwordmg.php:120
+#: usr/local/www/interfaces_assign.php:495
+#: usr/local/www/services_captiveportal_ip_edit.php:229
+#: usr/local/www/vpn_openvpn_server.php:1616
+#: usr/local/www/services_dhcp.php:1113
+#: usr/local/www/system_firmware_settings.php:251
+#: usr/local/www/services_ntpd.php:151
+#: usr/local/www/interfaces_bridge_edit.php:593
+#: usr/local/www/interfaces_groups_edit.php:323
+#: usr/local/www/vpn_ipsec_phase2.php:770
+#: usr/local/www/firewall_nat_edit.php:853
+#: usr/local/www/vpn_pptp_users_edit.php:169
+#: usr/local/www/vpn_ipsec_keys_edit.php:143
+#: usr/local/www/services_dhcp_edit.php:262 usr/local/www/interfaces.php:2632
+#: usr/local/www/vpn_openvpn_client.php:903
+#: usr/local/www/load_balancer_pool_edit.php:326
+#: usr/local/www/vpn_l2tp_users_edit.php:177 usr/local/www/vpn_l2tp.php:446
+#: usr/local/www/firewall_virtual_ip_edit.php:479
+#: usr/local/www/services_snmp.php:415 usr/local/www/system.php:469
+#: usr/local/www/vpn_ipsec_phase1.php:865 usr/local/www/diag_nanobsd.php:209
+#: usr/local/www/diag_nanobsd.php:277 usr/local/www/services_dhcpv6.php:810
+#: usr/local/www/system_authservers.php:729 usr/local/www/vpn_l2tp.php:449
+#: usr/local/www/system_gateways_edit.php:632
+#: usr/local/www/system_camanager.php:366
+#: usr/local/www/system_camanager.php:577
+#: usr/local/www/services_captiveportal_ip_edit.php:223
+#: usr/local/www/interfaces_wireless_edit.php:197
+#: usr/local/www/vpn_openvpn_client.php:922
+#: usr/local/www/services_dhcpv6_edit.php:242
+#: usr/local/www/services_dyndns_edit.php:370
+#: usr/local/www/firewall_rules_edit.php:1115
+#: usr/local/www/firewall_rules_edit.php:1566
+#: usr/local/www/interfaces_vlan_edit.php:193
+#: usr/local/www/interfaces_ppps_edit.php:790 usr/local/www/vpn_ipsec.php:173
+#: usr/local/www/system_firmware_settings.php:260
+#: usr/local/www/interfaces_lagg_edit.php:232
+#: usr/local/www/firewall_nat_edit.php:849
+#: usr/local/www/interfaces_gif_edit.php:230
+#: usr/local/www/services_dhcp_edit.php:494
+#: usr/local/www/firewall_virtual_ip_edit.php:471
+#: usr/local/www/diag_smart.php:240
+#: usr/local/www/services_captiveportal_vouchers.php:627
+#: usr/local/www/vpn_pppoe_edit.php:593 usr/local/www/services_dhcp.php:1126
+#: usr/local/www/system_certmanager.php:186
+#: usr/local/www/system_certmanager.php:577
+#: usr/local/www/system_certmanager.php:995
+#: usr/local/www/system_advanced_misc.php:546
+#: usr/local/www/services_captiveportal_mac_edit.php:214
+#: usr/local/www/services_dhcpv6.php:827
+#: usr/local/www/system_usermanager_passwordmg.php:125
+#: usr/local/www/system_authservers.php:745
+#: usr/local/www/system_advanced_firewall.php:537
+#: usr/local/www/services_captiveportal.php:966 usr/local/www/vpn_pptp.php:477
+#: usr/local/www/pkg_edit.php:420 usr/local/www/edit.php:185
+#: usr/local/www/interfaces_bridge_edit.php:594
+#: usr/local/www/services_dnsmasq.php:235
+#: usr/local/www/vpn_ipsec_phase1.php:886
+#: usr/local/www/firewall_nat_out_edit.php:664
+#: usr/local/www/vpn_openvpn_server.php:1668
+#: usr/local/www/vpn_ipsec_phase2.php:791 usr/local/www/services_snmp.php:430
+#: usr/local/www/interfaces_qinq_edit.php:398
+#: usr/local/www/interfaces.php:2664
msgid "Save"
msgstr "Salvar"
#: usr/local/www/pkg_edit.php:415 usr/local/www/firewall_rules_edit.php:1077
#: usr/local/www/pkg_edit.php:424 usr/local/www/firewall_rules_edit.php:1112
+#: usr/local/www/pkg_edit.php:427 usr/local/www/firewall_rules_edit.php:1127
+#: usr/local/www/pkg_edit.php:431
msgid "Advanced features"
msgstr "Recursos avançados"
@@ -5796,6 +7036,15 @@ msgstr "Recursos avançados"
#: usr/local/www/status_graph.php:286 usr/local/www/pkg_edit.php:864
#: usr/local/www/status_queues.php:180
#: usr/local/www/diag_packet_capture.php:223
+#: usr/local/www/vpn_pppoe_edit.php:596 usr/local/www/carp_status.php:187
+#: usr/local/www/vpn_ipsec.php:432 usr/local/www/status_graph.php:297
+#: usr/local/www/pkg_edit.php:873 usr/local/www/status_queues.php:181
+#: usr/local/www/vpn_pptp.php:479 usr/local/www/interfaces_wireless.php:134
+#: usr/local/www/diag_packet_capture.php:270 usr/local/www/vpn_ipsec.php:438
+#: usr/local/www/status_graph.php:308
+#: usr/local/www/interfaces_wireless.php:136
+#: usr/local/www/vpn_pppoe_edit.php:599 usr/local/www/vpn_pptp.php:482
+#: usr/local/www/pkg_edit.php:917 usr/local/www/status_queues.php:163
msgid "Note"
msgstr "Nota"
@@ -5873,6 +7122,58 @@ msgstr "Nota"
#: usr/local/www/load_balancer_pool_edit.php:329
#: usr/local/www/firewall_virtual_ip_edit.php:534
#: usr/local/www/interfaces_gre_edit.php:228
+#: usr/local/www/vpn_pppoe_edit.php:591
+#: usr/local/www/system_routes_edit.php:288
+#: usr/local/www/system_routes_edit.php:316
+#: usr/local/www/system_gateway_groups_edit.php:343
+#: usr/local/www/interfaces_vlan_edit.php:190
+#: usr/local/www/services_captiveportal_vouchers.php:619
+#: usr/local/www/services_dnsmasq_edit.php:285
+#: usr/local/www/load_balancer_relay_protocol_edit.php:278
+#: usr/local/www/firewall_nat_1to1_edit.php:464
+#: usr/local/www/services_dhcpv6_edit.php:239
+#: usr/local/www/firewall_nat_npt_edit.php:274 usr/local/www/pkg_edit.php:879
+#: usr/local/www/interfaces_qinq_edit.php:396
+#: usr/local/www/interfaces_gif_edit.php:219
+#: usr/local/www/load_balancer_relay_action_edit.php:554
+#: usr/local/www/load_balancer_monitor_edit.php:354
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:160
+#: usr/local/www/firewall_schedule_edit.php:1156
+#: usr/local/www/interfaces_ppps_edit.php:785
+#: usr/local/www/firewall_aliases_edit.php:695
+#: usr/local/www/interfaces_lagg_edit.php:219
+#: usr/local/www/services_captiveportal.php:965
+#: usr/local/www/system_gateways_edit.php:627
+#: usr/local/www/load_balancer_virtual_server_edit.php:267
+#: usr/local/www/interfaces_bridge_edit.php:593
+#: usr/local/www/interfaces_groups_edit.php:324
+#: usr/local/www/firewall_nat_edit.php:853
+#: usr/local/www/services_dhcp_edit.php:262 usr/local/www/interfaces.php:1537
+#: usr/local/www/interfaces.php:1643 usr/local/www/interfaces.php:2633
+#: usr/local/www/load_balancer_pool_edit.php:327
+#: usr/local/www/vpn_l2tp_users_edit.php:178
+#: usr/local/www/firewall_virtual_ip_edit.php:479
+#: usr/local/www/system_gateways_edit.php:632
+#: usr/local/www/interfaces_wireless_edit.php:197
+#: usr/local/www/services_dhcpv6_edit.php:242
+#: usr/local/www/services_dyndns_edit.php:371
+#: usr/local/www/firewall_rules_edit.php:1115
+#: usr/local/www/firewall_rules_edit.php:1566
+#: usr/local/www/interfaces_vlan_edit.php:193
+#: usr/local/www/interfaces_ppps_edit.php:791
+#: usr/local/www/interfaces_lagg_edit.php:232
+#: usr/local/www/firewall_nat_edit.php:849
+#: usr/local/www/interfaces_gif_edit.php:230
+#: usr/local/www/services_dhcp_edit.php:494
+#: usr/local/www/firewall_virtual_ip_edit.php:471
+#: usr/local/www/services_captiveportal_vouchers.php:628
+#: usr/local/www/vpn_pppoe_edit.php:594
+#: usr/local/www/services_captiveportal.php:967 usr/local/www/pkg_edit.php:923
+#: usr/local/www/interfaces_bridge_edit.php:594
+#: usr/local/www/firewall_nat_out_edit.php:664
+#: usr/local/www/interfaces_qinq_edit.php:399
+#: usr/local/www/interfaces.php:1547 usr/local/www/interfaces.php:1652
+#: usr/local/www/interfaces.php:2665
msgid "Cancel"
msgstr "Cancelar"
@@ -5928,6 +7229,50 @@ msgstr "Cancelar"
#: usr/local/www/services_dhcpv6.php:744 usr/local/www/services_dhcpv6.php:760
#: usr/local/www/services_dhcpv6.php:773 usr/local/www/services_dhcpv6.php:786
#: usr/local/www/services_dhcpv6.php:798 usr/local/www/services_dhcpv6.php:820
+#: usr/local/www/services_dnsmasq.php:195
+#: usr/local/www/services_dnsmasq.php:198
+#: usr/local/www/services_dnsmasq.php:201 usr/local/www/fbegin.inc:108
+#: usr/local/www/pkg_edit.php:1063 usr/local/www/vpn_openvpn_csc.php:641
+#: usr/local/www/system_gateways_edit.php:542
+#: usr/local/www/vpn_openvpn_server.php:1596
+#: usr/local/www/services_dhcp.php:945 usr/local/www/services_dhcp.php:961
+#: usr/local/www/services_dhcp.php:975 usr/local/www/services_dhcp.php:987
+#: usr/local/www/services_dhcp.php:999 usr/local/www/services_dhcp.php:1011
+#: usr/local/www/services_dhcp.php:1034
+#: usr/local/www/firewall_nat_edit.php:537 usr/local/www/interfaces.php:1422
+#: usr/local/www/interfaces.php:2106 usr/local/www/vpn_openvpn_client.php:883
+#: usr/local/www/services_dhcpv6.php:675 usr/local/www/services_dhcpv6.php:704
+#: usr/local/www/services_dhcpv6.php:717 usr/local/www/services_dhcpv6.php:729
+#: usr/local/www/services_dhcpv6.php:751
+#: usr/local/www/system_gateways_edit.php:546
+#: usr/local/www/vpn_openvpn_client.php:902
+#: usr/local/www/firewall_rules_edit.php:952
+#: usr/local/www/firewall_rules_edit.php:1167
+#: usr/local/www/firewall_rules_edit.php:1183
+#: usr/local/www/firewall_rules_edit.php:1225
+#: usr/local/www/firewall_rules_edit.php:1267
+#: usr/local/www/firewall_rules_edit.php:1303
+#: usr/local/www/firewall_rules_edit.php:1346
+#: usr/local/www/firewall_rules_edit.php:1373
+#: usr/local/www/firewall_rules_edit.php:1428
+#: usr/local/www/firewall_rules_edit.php:1478
+#: usr/local/www/firewall_rules_edit.php:1532
+#: usr/local/www/firewall_nat_edit.php:532
+#: usr/local/www/services_dhcp_edit.php:454
+#: usr/local/www/services_dhcp_edit.php:470
+#: usr/local/www/services_dhcp_edit.php:482
+#: usr/local/www/services_dhcp.php:958 usr/local/www/services_dhcp.php:974
+#: usr/local/www/services_dhcp.php:988 usr/local/www/services_dhcp.php:1000
+#: usr/local/www/services_dhcp.php:1012 usr/local/www/services_dhcp.php:1024
+#: usr/local/www/services_dhcp.php:1047 usr/local/www/services_dhcpv6.php:692
+#: usr/local/www/services_dhcpv6.php:708 usr/local/www/services_dhcpv6.php:721
+#: usr/local/www/services_dhcpv6.php:734 usr/local/www/services_dhcpv6.php:746
+#: usr/local/www/services_dhcpv6.php:768 usr/local/www/pkg_edit.php:1107
+#: usr/local/www/fbegin.inc:100 usr/local/www/services_dnsmasq.php:220
+#: usr/local/www/services_dnsmasq.php:223
+#: usr/local/www/services_dnsmasq.php:226
+#: usr/local/www/vpn_openvpn_server.php:1648 usr/local/www/interfaces.php:1435
+#: usr/local/www/interfaces.php:2136
msgid "Advanced"
msgstr "Avançado"
@@ -5955,7 +7300,19 @@ msgstr "Avançado"
#: usr/local/www/firewall_rules_edit.php:1413
#: usr/local/www/firewall_rules_edit.php:1463
#: usr/local/www/firewall_rules_edit.php:1517
-#: usr/local/www/interfaces.php:1434
+#: usr/local/www/interfaces.php:1434 usr/local/www/services_dnsmasq.php:198
+#: usr/local/www/pkg_edit.php:1063 usr/local/www/interfaces.php:1422
+#: usr/local/www/firewall_rules_edit.php:1167
+#: usr/local/www/firewall_rules_edit.php:1183
+#: usr/local/www/firewall_rules_edit.php:1225
+#: usr/local/www/firewall_rules_edit.php:1267
+#: usr/local/www/firewall_rules_edit.php:1303
+#: usr/local/www/firewall_rules_edit.php:1346
+#: usr/local/www/firewall_rules_edit.php:1373
+#: usr/local/www/firewall_rules_edit.php:1428
+#: usr/local/www/firewall_rules_edit.php:1478
+#: usr/local/www/firewall_rules_edit.php:1532 usr/local/www/pkg_edit.php:1107
+#: usr/local/www/services_dnsmasq.php:223 usr/local/www/interfaces.php:1435
msgid "Show advanced option"
msgstr "Mostrar opções avançadas"
@@ -6021,6 +7378,36 @@ msgstr "Mostrar opções avançadas"
#: usr/local/www/system_hasync.php:96 usr/local/www/diag_logs_gateways.php:78
#: usr/local/www/diag_logs_filter_dynamic.php:98 usr/local/www/system.php:75
#: usr/local/www/system.php:242 usr/local/www/system.php:262
+#: usr/local/www/diag_logs_routing.php:66
+#: usr/local/www/diag_logs_settings.php:222
+#: usr/local/www/system_gateway_groups_edit.php:146
+#: usr/local/www/fbegin.inc:283 usr/local/www/fbegin.inc:428
+#: usr/local/www/diag_logs_relayd.php:67 usr/local/www/diag_logs_auth.php:66
+#: usr/local/www/diag_logs_ipsec.php:103
+#: usr/local/www/diag_logs_resolver.php:79 usr/local/www/diag_logs_ntpd.php:66
+#: usr/local/www/system_advanced_misc.php:218
+#: usr/local/www/diag_logs_dhcp.php:71
+#: usr/local/www/system_gateway_groups.php:89
+#: usr/local/www/system_gateways_edit.php:425
+#: usr/local/www/diag_logs_wireless.php:68
+#: usr/local/www/system_firmware.php:109 usr/local/www/system_firmware.php:210
+#: usr/local/www/diag_logs_filter_summary.php:185
+#: usr/local/www/system_firmware_settings.php:79
+#: usr/local/www/diag_logs_gateways.php:79
+#: usr/local/www/diag_logs_openvpn.php:70
+#: usr/local/www/diag_logs_filter_dynamic.php:99 usr/local/www/system.php:235
+#: usr/local/www/system.php:255 usr/local/www/diag_logs_filter.php:91
+#: usr/local/www/system_firmware.php:108 usr/local/www/system_camanager.php:51
+#: usr/local/www/status_rrd_graph_img.php:43
+#: usr/local/www/status_rrd_graph.php:402
+#: usr/local/www/diag_logs_filter_dynamic.php:97
+#: usr/local/www/system_routes.php:98 usr/local/www/system_hasync.php:97
+#: usr/local/www/system_certmanager.php:57
+#: usr/local/www/system_advanced_misc.php:222
+#: usr/local/www/diag_logs_ppp.php:68
+#: usr/local/www/system_advanced_firewall.php:221
+#: usr/local/www/pkg_mgr_install.php:55 usr/local/www/fbegin.inc:275
+#: usr/local/www/fbegin.inc:420
msgid "System"
msgstr "Sistema"
@@ -6031,7 +7418,8 @@ msgstr "Sistema"
#: usr/local/www/pkg_mgr.php:55 usr/local/www/pkg_mgr.php:93
#: usr/local/www/fbegin.inc:458 usr/local/www/diag_backup.php:190
#: usr/local/www/pkg_mgr_installed.php:51
-#: usr/local/www/pkg_mgr_installed.php:80
+#: usr/local/www/pkg_mgr_installed.php:80 usr/local/www/fbegin.inc:428
+#: usr/local/www/pkg_mgr_install.php:55 usr/local/www/fbegin.inc:420
msgid "Package Manager"
msgstr "Gerenciador de Pacotes"
@@ -6107,6 +7495,7 @@ msgstr "Reinstalar os componentes GUI desse pacote."
#: usr/local/www/pkg_mgr_installed.php:181
#: usr/local/www/pkg_mgr_installed.php:222
+#: usr/local/www/pkg_mgr_installed.php:225
msgid "There are no packages currently installed."
msgstr "Não há pacotes instalados atualmente."
@@ -6180,6 +7569,21 @@ msgstr ""
#: usr/local/www/status_ntpd.php:107 usr/local/www/status_dhcpv6_leases.php:50
#: usr/local/www/status_dhcp_leases.php:49
#: usr/local/www/diag_logs_gateways.php:66
+#: usr/local/www/status_openvpn.php:215 usr/local/www/status_openvpn.php:266
+#: usr/local/www/diag_logs_settings.php:143 usr/local/www/fbegin.inc:323
+#: usr/local/www/status_interfaces.php:60
+#: usr/local/www/status_interfaces.php:88 usr/local/www/carp_status.php:92
+#: usr/local/www/carp_status.php:133 usr/local/www/status_graph.php:90
+#: usr/local/www/diag_ipsec.php:108 usr/local/www/status_wireless.php:78
+#: usr/local/www/status_ntpd.php:109 usr/local/www/status_ntpd.php:123
+#: usr/local/www/status_services.php:222 usr/local/www/status_services.php:242
+#: usr/local/www/status_gateways.php:78 usr/local/www/diag_logs_filter.php:79
+#: usr/local/www/status_services.php:220 usr/local/www/status_services.php:240
+#: usr/local/www/status_openvpn.php:314
+#: usr/local/www/status_captiveportal_expire.php:58
+#: usr/local/www/status_graph.php:101 usr/local/www/diag_ipsec.php:110
+#: usr/local/www/status_rrd_graph.php:248 usr/local/www/diag_logs_ppp.php:57
+#: usr/local/www/status_queues.php:109 usr/local/www/fbegin.inc:315
msgid "Status"
msgstr "Status"
@@ -6232,6 +7636,34 @@ msgstr "Logs de Sistema, Firewall Tab"
#: usr/local/www/firewall_nat_edit.php:445
#: usr/local/www/firewall_virtual_ip_edit.php:268
#: usr/local/www/diag_logs_filter_dynamic.php:99
+#: usr/local/www/diag_logs_routing.php:67
+#: usr/local/www/diag_logs_settings.php:223 usr/local/www/fbegin.inc:299
+#: usr/local/www/diag_logs_relayd.php:68
+#: usr/local/www/firewall_nat_out.php:294
+#: usr/local/www/firewall_nat_1to1_edit.php:221
+#: usr/local/www/firewall_nat_npt_edit.php:144
+#: usr/local/www/firewall_nat.php:165 usr/local/www/diag_logs_auth.php:67
+#: usr/local/www/firewall_rules_edit.php:661
+#: usr/local/www/diag_logs_ipsec.php:104
+#: usr/local/www/diag_logs_resolver.php:80 usr/local/www/diag_logs_ntpd.php:67
+#: usr/local/www/firewall_rules.php:49 usr/local/www/diag_logs_dhcp.php:72
+#: usr/local/www/diag_logs_wireless.php:69
+#: usr/local/www/diag_logs_filter_summary.php:186
+#: usr/local/www/firewall_aliases.php:155
+#: usr/local/www/diag_logs_gateways.php:80
+#: usr/local/www/firewall_nat_edit.php:444
+#: usr/local/www/diag_logs_openvpn.php:71
+#: usr/local/www/firewall_virtual_ip_edit.php:261
+#: usr/local/www/diag_logs_filter_dynamic.php:100
+#: usr/local/www/firewall_virtual_ip.php:152
+#: usr/local/www/diag_logs_filter.php:79 usr/local/www/diag_logs_filter.php:92
+#: usr/local/www/firewall_rules_edit.php:664
+#: usr/local/www/firewall_virtual_ip.php:166
+#: usr/local/www/firewall_nat_edit.php:439
+#: usr/local/www/firewall_virtual_ip_edit.php:253
+#: usr/local/www/diag_logs_filter_dynamic.php:98
+#: usr/local/www/diag_logs_ppp.php:69 usr/local/www/fbegin.inc:291
+#: usr/local/www/firewall_nat_out_edit.php:317
msgid "Firewall"
msgstr "Firewall"
@@ -6242,6 +7674,8 @@ msgstr "Firewall"
#: usr/local/www/diag_backup.php:103 usr/local/www/fbegin.inc:110
#: usr/local/www/fbegin.inc:127 usr/local/www/services_dnsmasq_edit.php:225
#: usr/local/www/diag_backup.php:180 usr/local/www/firewall_aliases.php:153
+#: usr/local/www/fbegin.inc:136 usr/local/www/services_dnsmasq_edit.php:226
+#: usr/local/www/firewall_aliases.php:155 usr/local/www/fbegin.inc:128
msgid "Aliases"
msgstr "Aliases"
@@ -6307,6 +7741,25 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:528
#: usr/local/www/vpn_openvpn_client.php:582
#: usr/local/www/vpn_ipsec_phase1.php:593
+#: usr/local/www/services_captiveportal_hostname_edit.php:184
+#: usr/local/www/services_captiveportal_mac_edit.php:183
+#: usr/local/www/interfaces_lagg_edit.php:212
+#: usr/local/www/vpn_openvpn_csc.php:345
+#: usr/local/www/system_gateways_edit.php:622
+#: usr/local/www/services_captiveportal_ip_edit.php:209
+#: usr/local/www/vpn_openvpn_server.php:827
+#: usr/local/www/services_captiveportal_zones_edit.php:111
+#: usr/local/www/vpn_ipsec_phase2.php:630
+#: usr/local/www/vpn_openvpn_client.php:600
+#: usr/local/www/vpn_ipsec_phase1.php:592
+#: usr/local/www/system_gateways_edit.php:626
+#: usr/local/www/services_captiveportal_ip_edit.php:203
+#: usr/local/www/vpn_openvpn_client.php:619
+#: usr/local/www/interfaces_lagg_edit.php:225
+#: usr/local/www/services_captiveportal_mac_edit.php:196
+#: usr/local/www/vpn_ipsec_phase1.php:613
+#: usr/local/www/vpn_openvpn_server.php:854
+#: usr/local/www/vpn_ipsec_phase2.php:651
msgid "You may enter a description here for your reference (not parsed)"
msgstr ""
"Você pode inserir uma descrição aqui para sua referência (não analisado)"
@@ -6332,7 +7785,8 @@ msgstr "Esta lista pode conter apenas endereços IP."
#: usr/local/www/firewall_shaper_wizards.php:73
#: usr/local/www/firewall_shaper.php:54 usr/local/www/diag_backup.php:121
#: usr/local/www/fbegin.inc:114 usr/local/www/fbegin.inc:131
-#: usr/local/www/diag_backup.php:199
+#: usr/local/www/diag_backup.php:199 usr/local/www/fbegin.inc:140
+#: usr/local/www/fbegin.inc:132
msgid "Traffic Shaper"
msgstr "Traffic Shaper"
@@ -6345,6 +7799,9 @@ msgstr "Traffic Shaper"
#: usr/local/www/firewall_shaper_queues.php:196
#: usr/local/www/firewall_rules_edit.php:1514
#: usr/local/www/firewall_shaper_vinterface.php:385
+#: usr/local/www/firewall_shaper.php:413
+#: usr/local/www/firewall_shaper_vinterface.php:392
+#: usr/local/www/firewall_rules_edit.php:1529
msgid "Layer7"
msgstr "Layer7"
@@ -6359,6 +7816,12 @@ msgstr ""
#: usr/local/www/interfaces.php:2559 usr/local/www/carp_status.php:196
#: usr/local/www/status_queues.php:174 usr/local/www/status_queues.php:182
#: usr/local/www/interfaces.php:2752 usr/local/www/interfaces.php:2761
+#: usr/local/www/carp_status.php:189 usr/local/www/status_queues.php:183
+#: usr/local/www/interfaces.php:2740 usr/local/www/interfaces.php:2749
+#: usr/local/www/firewall_virtual_ip.php:249
+#: usr/local/www/firewall_virtual_ip.php:269
+#: usr/local/www/status_queues.php:165 usr/local/www/interfaces.php:2774
+#: usr/local/www/interfaces.php:2783
msgid "here"
msgstr "aqui"
@@ -6381,6 +7844,8 @@ msgstr "A configuração do traffic shaper foi modificada"
#: usr/local/www/firewall_shaper.php:409
#: usr/local/www/firewall_shaper_queues.php:193
#: usr/local/www/firewall_shaper_vinterface.php:382
+#: usr/local/www/firewall_shaper.php:410
+#: usr/local/www/firewall_shaper_vinterface.php:389
msgid "By Interface"
msgstr "Por Interface"
@@ -6390,6 +7855,8 @@ msgstr "Por Interface"
#: usr/local/www/firewall_shaper.php:410
#: usr/local/www/firewall_shaper_queues.php:194
#: usr/local/www/firewall_shaper_vinterface.php:383
+#: usr/local/www/firewall_shaper.php:411
+#: usr/local/www/firewall_shaper_vinterface.php:390
msgid "By Queue"
msgstr "Por Fila"
@@ -6400,6 +7867,8 @@ msgstr "Por Fila"
#: usr/local/www/firewall_shaper.php:411
#: usr/local/www/firewall_shaper_queues.php:195
#: usr/local/www/firewall_shaper_vinterface.php:384
+#: usr/local/www/firewall_shaper.php:412
+#: usr/local/www/firewall_shaper_vinterface.php:391
msgid "Limiter"
msgstr "Limitador"
@@ -6415,6 +7884,12 @@ msgstr "Limitador"
#: usr/local/www/firewall_shaper_vinterface.php:386
#: usr/local/www/vpn_openvpn_server.php:659
#: usr/local/www/vpn_openvpn_client.php:373
+#: usr/local/www/firewall_shaper.php:414 usr/local/www/vpn_openvpn_csc.php:295
+#: usr/local/www/firewall_shaper_vinterface.php:393
+#: usr/local/www/vpn_openvpn_server.php:677
+#: usr/local/www/vpn_openvpn_client.php:381
+#: usr/local/www/vpn_openvpn_client.php:399
+#: usr/local/www/vpn_openvpn_server.php:703
msgid "Wizards"
msgstr "Wizards"
@@ -6451,6 +7926,18 @@ msgstr "Comportamento"
#: usr/local/www/services_igmpproxy_edit.php:275
#: usr/local/www/firewall_aliases_edit.php:685
#: usr/local/www/services_dhcp.php:893 usr/local/www/services_dhcpv6.php:863
+#: usr/local/www/vpn_pppoe_edit.php:574
+#: usr/local/www/services_dnsmasq_edit.php:272
+#: usr/local/www/services_router_advertisements.php:358
+#: usr/local/www/interfaces_qinq_edit.php:388
+#: usr/local/www/firewall_aliases_edit.php:688
+#: usr/local/www/services_dhcp.php:1090
+#: usr/local/www/interfaces_groups_edit.php:316
+#: usr/local/www/services_dhcpv6.php:794 usr/local/www/vpn_pppoe_edit.php:577
+#: usr/local/www/services_dhcp.php:1103
+#: usr/local/www/system_certmanager.php:818
+#: usr/local/www/services_dhcpv6.php:811
+#: usr/local/www/interfaces_qinq_edit.php:391
msgid "add another entry"
msgstr "adicionar outra entrada"
@@ -6468,7 +7955,7 @@ msgid "No queue with name %s was found!"
msgstr "Nenhuma fila com o nome %s foi encontrada!"
#: usr/local/www/firewall_shaper_vinterface.php:160
-#: usr/local/www/firewall_shaper.php:159
+#: usr/local/www/firewall_shaper.php:159 usr/local/www/firewall_shaper.php:160
msgid "Could not create new queue/discipline!"
msgstr "Não pôde criar uma nova fila/disciplina!"
@@ -6479,35 +7966,49 @@ msgstr "Não pôde criar uma nova fila/disciplina!"
#: usr/local/www/firewall_shaper.php:193
#: usr/local/www/firewall_shaper_vinterface.php:182
#: usr/local/www/firewall_shaper_vinterface.php:192
+#: usr/local/www/firewall_shaper.php:176 usr/local/www/firewall_shaper.php:185
+#: usr/local/www/firewall_shaper.php:194
+#: usr/local/www/firewall_shaper_vinterface.php:173
+#: usr/local/www/firewall_shaper_vinterface.php:183
+#: usr/local/www/firewall_shaper_vinterface.php:193
msgid "Queue not found!"
msgstr "Fila não encontrada!"
#: usr/local/www/firewall_shaper_vinterface.php:235
#: usr/local/www/firewall_shaper.php:270
#: usr/local/www/firewall_shaper_vinterface.php:245
+#: usr/local/www/firewall_shaper.php:271
+#: usr/local/www/firewall_shaper_vinterface.php:247
msgid "Could not add new queue."
msgstr "Não pôde adicionar uma nova fila."
#: usr/local/www/firewall_shaper_vinterface.php:304
#: usr/local/www/firewall_shaper.php:346
#: usr/local/www/firewall_shaper_vinterface.php:314
+#: usr/local/www/firewall_shaper.php:347
+#: usr/local/www/firewall_shaper_vinterface.php:316
msgid "Queue Actions"
msgstr "Ações de Fila"
#: usr/local/www/firewall_shaper_vinterface.php:315
#: usr/local/www/firewall_shaper.php:357
#: usr/local/www/firewall_shaper_vinterface.php:325
+#: usr/local/www/firewall_shaper.php:358
+#: usr/local/www/firewall_shaper_vinterface.php:327
msgid "Add new queue"
msgstr "Adicionar nova fila"
#: usr/local/www/firewall_shaper_vinterface.php:326
#: usr/local/www/firewall_shaper.php:367
#: usr/local/www/firewall_shaper_vinterface.php:336
+#: usr/local/www/firewall_shaper.php:368
+#: usr/local/www/firewall_shaper_vinterface.php:338
msgid "Delete this queue"
msgstr "Apagar essa fila"
#: usr/local/www/firewall_shaper_vinterface.php:328
#: usr/local/www/firewall_shaper_vinterface.php:338
+#: usr/local/www/firewall_shaper_vinterface.php:340
msgid "Delete virtual interface"
msgstr "Apagar interface virtual"
@@ -6515,11 +8016,14 @@ msgstr "Apagar interface virtual"
#: usr/local/www/firewall_shaper_wizards.php:96
#: usr/local/www/firewall_shaper.php:403
#: usr/local/www/firewall_shaper_vinterface.php:376
+#: usr/local/www/firewall_shaper.php:404
+#: usr/local/www/firewall_shaper_vinterface.php:383
msgid "The traffic shaper configuration has been changed."
msgstr "A configuração do traffic shaper foi modificada."
#: usr/local/www/firewall_shaper_vinterface.php:395
#: usr/local/www/firewall_shaper_vinterface.php:405
+#: usr/local/www/firewall_shaper_vinterface.php:412
msgid "Create new limiter"
msgstr "Criar novo limitador"
@@ -6560,17 +8064,27 @@ msgstr "Link do Wizard"
#: usr/local/www/services_dnsmasq_edit.php:238
#: usr/local/www/services_unbound.php:280
#: usr/local/www/services_unbound.php:347 usr/local/www/system.php:114
-#: usr/local/www/system.php:276
+#: usr/local/www/system.php:276 usr/local/www/services_dnsmasq.php:245
+#: usr/local/www/services_dnsmasq.php:333
+#: usr/local/www/services_dnsmasq_edit.php:205
+#: usr/local/www/services_dnsmasq_edit.php:239
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:72
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:130
+#: usr/local/www/system.php:107 usr/local/www/system.php:269
+#: usr/local/www/services_dnsmasq.php:270
+#: usr/local/www/services_dnsmasq.php:358
msgid "Domain"
msgstr "Domínio"
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:70
#: usr/local/www/services_dnsmasq_edit.php:88
#: usr/local/www/services_dnsmasq_edit.php:89
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:87
msgid "A valid domain must be specified."
msgstr "Um domínio válido deve ser especificado."
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:73
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:90
msgid "A valid IP address must be specified, or # for an exclusion."
msgstr "Um endereço IP válido deve ser especificado, ou # para uma exclusão."
@@ -6580,14 +8094,20 @@ msgstr "Um endereço IP válido deve ser especificado, ou # para uma exclusão."
#: usr/local/www/services_dhcpv6.php:791
#: usr/local/www/services_dnsmasq_edit.php:166
#: usr/local/www/services_dhcp.php:916 usr/local/www/services_dhcpv6.php:886
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:118
+#: usr/local/www/services_dhcp.php:1120 usr/local/www/services_dhcpv6.php:817
+#: usr/local/www/services_dhcp.php:1133 usr/local/www/services_dhcpv6.php:834
+#: usr/local/www/services_dnsmasq.php:123
msgid "DNS forwarder"
msgstr "DNS forwarder"
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:96
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:118
msgid "Edit Domain Override"
msgstr "Editar Sobrescrita de domínio"
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:110
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:133
msgid "Domain to override (NOTE: this does not have to be a valid TLD!)"
msgstr "Domínio para sobrescrever (NOTA: isso não precisa ser um TLD válido!)"
@@ -6601,18 +8121,28 @@ msgstr "Domínio para sobrescrever (NOTA: isso não precisa ser um TLD válido!)"
#: usr/local/www/services_dnsmasq_edit.php:208
#: usr/local/www/services_dnsmasq_edit.php:215
#: usr/local/www/firewall_nat_edit.php:752 usr/local/www/system.php:282
+#: usr/local/www/services_dnsmasq_edit.php:202
+#: usr/local/www/services_dnsmasq_edit.php:209
+#: usr/local/www/services_dnsmasq_edit.php:216
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:134
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:141
+#: usr/local/www/firewall_nat_edit.php:751 usr/local/www/system.php:264
+#: usr/local/www/system.php:275 usr/local/www/firewall_nat_edit.php:746
msgid "e.g."
msgstr "ex."
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:111
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:134
msgid "test"
msgstr "teste"
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:117
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:140
msgid "IP address of the authoritative DNS server for this domain"
msgstr "Endereço IP do servidor DNS oficial para esse domínio"
#: usr/local/www/services_dnsmasq_domainoverride_edit.php:118
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:141
msgid ""
"Or enter # for an exclusion to pass through this host/subdomain to standard "
"nameservers instead of a previous override."
@@ -6652,6 +8182,37 @@ msgstr ""
#: usr/local/www/services_dhcp.php:851 usr/local/www/vpn_ipsec_phase2.php:449
#: usr/local/www/vpn_ipsec_phase2.php:491
#: usr/local/www/firewall_virtual_ip_edit.php:403
+#: usr/local/www/load_balancer_relay_protocol_edit.php:199
+#: usr/local/www/load_balancer_relay_action_edit.php:460
+#: usr/local/www/load_balancer_monitor_edit.php:245
+#: usr/local/www/firewall_aliases_edit.php:609
+#: usr/local/www/status_ntpd.php:127
+#: usr/local/www/services_captiveportal.php:817
+#: usr/local/www/load_balancer_monitor.php:122
+#: usr/local/www/load_balancer_relay_protocol.php:133
+#: usr/local/www/services_dhcp.php:1048
+#: usr/local/www/load_balancer_relay_action.php:139
+#: usr/local/www/vpn_ipsec_phase2.php:515
+#: usr/local/www/vpn_ipsec_phase2.php:551
+#: usr/local/www/vpn_ipsec_phase2.php:593
+#: usr/local/www/firewall_virtual_ip_edit.php:355
+#: usr/local/www/firewall_virtual_ip.php:190
+#: usr/local/www/system_authservers.php:162
+#: usr/local/www/system_authservers.php:185
+#: usr/local/www/system_authservers.php:454
+#: usr/local/www/system_authservers.php:744
+#: usr/local/www/firewall_virtual_ip.php:204
+#: usr/local/www/firewall_virtual_ip_edit.php:347
+#: usr/local/www/services_dhcp.php:1061
+#: usr/local/www/system_certmanager.php:787
+#: usr/local/www/system_authservers.php:163
+#: usr/local/www/system_authservers.php:186
+#: usr/local/www/system_authservers.php:461
+#: usr/local/www/system_authservers.php:760
+#: usr/local/www/services_captiveportal.php:805
+#: usr/local/www/vpn_ipsec_phase2.php:537
+#: usr/local/www/vpn_ipsec_phase2.php:572
+#: usr/local/www/vpn_ipsec_phase2.php:614
msgid "Type"
msgstr "Tipo"
@@ -6662,11 +8223,14 @@ msgstr "Tipo"
#: usr/local/www/services_dnsmasq_edit.php:92
#: usr/local/www/services_dhcp_edit.php:128
#: usr/local/www/firewall_virtual_ip_edit.php:114
+#: usr/local/www/services_dhcp_edit.php:162
+#: usr/local/www/firewall_virtual_ip_edit.php:115
msgid "A valid IP address must be specified."
msgstr "Um endereço de IP válido de ser especificado."
#: usr/local/www/firewall_virtual_ip_edit.php:116
#: usr/local/www/firewall_virtual_ip_edit.php:119
+#: usr/local/www/firewall_virtual_ip_edit.php:123
msgid ""
"The interface chosen for the VIP has no IPv4 or IPv6 address configured so "
"it cannot be used as a parent for the VIP."
@@ -6703,6 +8267,8 @@ msgstr "VHID %s já está em uso. Escolha um número único."
#: usr/local/www/firewall_virtual_ip_edit.php:154
#: usr/local/www/firewall_virtual_ip_edit.php:157
+#: usr/local/www/firewall_virtual_ip_edit.php:156
+#: usr/local/www/firewall_virtual_ip_edit.php:148
msgid ""
"You must specify a CARP password that is shared between the two VHID members."
msgstr ""
@@ -6715,6 +8281,11 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:164
#: usr/local/www/firewall_virtual_ip_edit.php:173
#: usr/local/www/firewall_virtual_ip_edit.php:185
+#: usr/local/www/firewall_virtual_ip_edit.php:163
+#: usr/local/www/firewall_virtual_ip_edit.php:172
+#: usr/local/www/firewall_virtual_ip_edit.php:184
+#: usr/local/www/firewall_virtual_ip_edit.php:155
+#: usr/local/www/firewall_virtual_ip_edit.php:176
#, php-format
msgid ""
"Sorry, we could not locate an interface with a matching subnet for %s. "
@@ -6725,11 +8296,15 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:174
#: usr/local/www/firewall_virtual_ip_edit.php:177
+#: usr/local/www/firewall_virtual_ip_edit.php:176
+#: usr/local/www/firewall_virtual_ip_edit.php:168
msgid "For this type of vip a carp parent is not allowed."
msgstr "Para este tipo de VIP, um carp pai não é permitido."
#: usr/local/www/firewall_virtual_ip_edit.php:188
#: usr/local/www/firewall_virtual_ip_edit.php:191
+#: usr/local/www/firewall_virtual_ip_edit.php:190
+#: usr/local/www/firewall_virtual_ip_edit.php:182
msgid "For this type of VIP, a CARP parent is not allowed."
msgstr "Para este tipo de VIP, um CARP pai não é permitido."
@@ -6741,6 +8316,8 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:281
#: usr/local/www/firewall_virtual_ip_edit.php:268
+#: usr/local/www/firewall_virtual_ip_edit.php:261
+#: usr/local/www/firewall_virtual_ip_edit.php:253
msgid "Virtual IP Address"
msgstr "Endereços de IP Virtuais"
@@ -6748,6 +8325,10 @@ msgstr "Endereços de IP Virtuais"
#: usr/local/www/firewall_virtual_ip_edit.php:302
#: usr/local/www/firewall_virtual_ip_edit.php:288
#: usr/local/www/firewall_virtual_ip_edit.php:290
+#: usr/local/www/firewall_virtual_ip_edit.php:287
+#: usr/local/www/firewall_virtual_ip_edit.php:289
+#: usr/local/www/firewall_virtual_ip_edit.php:279
+#: usr/local/www/firewall_virtual_ip_edit.php:281
msgid ""
"This must be the network's subnet mask. It does not specify a CIDR range."
msgstr ""
@@ -6756,32 +8337,45 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:301
#: usr/local/www/firewall_virtual_ip_edit.php:289
+#: usr/local/www/firewall_virtual_ip_edit.php:288
+#: usr/local/www/firewall_virtual_ip_edit.php:280
msgid "This is a CIDR block of proxy ARP addresses."
msgstr "Esse é um bloqueio CIDR de endereços Proxy ARP."
#: usr/local/www/firewall_virtual_ip_edit.php:412
#: usr/local/www/firewall_virtual_ip_edit.php:400
+#: usr/local/www/firewall_virtual_ip_edit.php:352
+#: usr/local/www/firewall_virtual_ip_edit.php:344
msgid "Edit Virtual IP"
msgstr "Editar IP Virtual"
#: usr/local/www/firewall_virtual_ip_edit.php:418
#: usr/local/www/firewall_virtual_ip_edit.php:406
+#: usr/local/www/firewall_virtual_ip_edit.php:362
+#: usr/local/www/firewall_virtual_ip_edit.php:354
msgid "Proxy ARP"
msgstr "Proxy ARP"
#: usr/local/www/firewall_virtual_ip_edit.php:420
#: usr/local/www/carp_status.php:100
#: usr/local/www/firewall_virtual_ip_edit.php:408
+#: usr/local/www/carp_status.php:92
+#: usr/local/www/firewall_virtual_ip_edit.php:360
+#: usr/local/www/firewall_virtual_ip_edit.php:352
msgid "CARP"
msgstr "CARP"
#: usr/local/www/firewall_virtual_ip_edit.php:422
#: usr/local/www/firewall_virtual_ip_edit.php:410
+#: usr/local/www/firewall_virtual_ip_edit.php:364
+#: usr/local/www/firewall_virtual_ip_edit.php:356
msgid "Other"
msgstr "Outro"
#: usr/local/www/firewall_virtual_ip_edit.php:424
#: usr/local/www/firewall_virtual_ip_edit.php:412
+#: usr/local/www/firewall_virtual_ip_edit.php:358
+#: usr/local/www/firewall_virtual_ip_edit.php:350
msgid "IP Alias"
msgstr "Alias do IP"
@@ -6840,11 +8434,54 @@ msgstr "Alias do IP"
#: usr/local/www/firewall_nat_edit.php:483
#: usr/local/www/vpn_openvpn_client.php:456
#: usr/local/www/firewall_virtual_ip_edit.php:423
+#: usr/local/www/vpn_pppoe_edit.php:373 usr/local/www/firewall_nat_out.php:352
+#: usr/local/www/firewall_nat_1to1_edit.php:285
+#: usr/local/www/firewall_nat_npt_edit.php:170 usr/local/www/vpn_pppoe.php:102
+#: usr/local/www/status_graph.php:183 usr/local/www/interfaces_qinq.php:117
+#: usr/local/www/interfaces_ppps.php:109
+#: usr/local/www/interfaces_bridge.php:108
+#: usr/local/www/interfaces_lagg.php:113 usr/local/www/interfaces_gre.php:108
+#: usr/local/www/interfaces_wireless.php:107
+#: usr/local/www/services_captiveportal.php:153
+#: usr/local/www/system_gateways_edit.php:100
+#: usr/local/www/system_gateways_edit.php:459
+#: usr/local/www/interfaces_assign.php:414
+#: usr/local/www/vpn_openvpn_server.php:782
+#: usr/local/www/interfaces_groups_edit.php:275
+#: usr/local/www/diag_packet_capture.php:181
+#: usr/local/www/interfaces_vlan.php:109
+#: usr/local/www/firewall_nat_edit.php:482
+#: usr/local/www/vpn_openvpn_client.php:464 usr/local/www/vpn_l2tp.php:305
+#: usr/local/www/firewall_virtual_ip_edit.php:368
+#: usr/local/www/interfaces_gif.php:107
+#: usr/local/www/firewall_virtual_ip.php:189
+#: usr/local/www/vpn_ipsec_phase1.php:537 usr/local/www/vpn_l2tp.php:308
+#: usr/local/www/vpn_pppoe.php:103 usr/local/www/vpn_openvpn_client.php:482
+#: usr/local/www/diag_testport.php:143
+#: usr/local/www/firewall_rules_edit.php:763
+#: usr/local/www/interfaces_qinq.php:120
+#: usr/local/www/firewall_virtual_ip.php:203
+#: usr/local/www/firewall_nat_edit.php:187
+#: usr/local/www/firewall_nat_edit.php:190
+#: usr/local/www/firewall_nat_edit.php:477 usr/local/www/status_graph.php:196
+#: usr/local/www/interfaces_lagg.php:117 usr/local/www/interfaces_vlan.php:115
+#: usr/local/www/firewall_virtual_ip_edit.php:360
+#: usr/local/www/interfaces_bridge.php:114
+#: usr/local/www/interfaces_wireless.php:109
+#: usr/local/www/system_routes.php:132 usr/local/www/vpn_pppoe_edit.php:376
+#: usr/local/www/services_captiveportal.php:155
+#: usr/local/www/vpn_ipsec_phase1.php:558 usr/local/www/interfaces_gre.php:112
+#: usr/local/www/firewall_nat_out_edit.php:134
+#: usr/local/www/firewall_nat_out_edit.php:434
+#: usr/local/www/vpn_openvpn_server.php:808
+#: usr/local/www/services_dyndns.php:89 usr/local/www/interfaces_gif.php:111
msgid "Interface"
msgstr "Interface"
#: usr/local/www/firewall_virtual_ip_edit.php:452
#: usr/local/www/firewall_virtual_ip_edit.php:440
+#: usr/local/www/firewall_virtual_ip_edit.php:385
+#: usr/local/www/firewall_virtual_ip_edit.php:377
msgid "IP Address(es)"
msgstr "Endereço(s) IP"
@@ -6866,11 +8503,25 @@ msgstr "Endereço(s) IP"
#: usr/local/www/firewall_nat_edit.php:552
#: usr/local/www/firewall_nat_edit.php:641
#: usr/local/www/firewall_virtual_ip_edit.php:444
+#: usr/local/www/firewall_nat_1to1_edit.php:343
+#: usr/local/www/firewall_nat_1to1_edit.php:398
+#: usr/local/www/firewall_nat_edit.php:551
+#: usr/local/www/firewall_nat_edit.php:640
+#: usr/local/www/firewall_virtual_ip_edit.php:389
+#: usr/local/www/firewall_rules_edit.php:903
+#: usr/local/www/firewall_rules_edit.php:1002
+#: usr/local/www/firewall_nat_edit.php:546
+#: usr/local/www/firewall_nat_edit.php:635
+#: usr/local/www/firewall_virtual_ip_edit.php:381
+#: usr/local/www/firewall_nat_out_edit.php:489
+#: usr/local/www/firewall_nat_out_edit.php:523
msgid "Type:"
msgstr "Tipo:"
#: usr/local/www/firewall_virtual_ip_edit.php:459
#: usr/local/www/firewall_virtual_ip_edit.php:447
+#: usr/local/www/firewall_virtual_ip_edit.php:392
+#: usr/local/www/firewall_virtual_ip_edit.php:384
msgid "Single address"
msgstr "Endereço único"
@@ -6904,6 +8555,28 @@ msgstr "Endereço único"
#: usr/local/www/firewall_nat_edit.php:559
#: usr/local/www/firewall_nat_edit.php:648
#: usr/local/www/firewall_virtual_ip_edit.php:449
+#: usr/local/www/firewall_nat_1to1_edit.php:350
+#: usr/local/www/firewall_nat_1to1_edit.php:405
+#: usr/local/www/vpn_ipsec_mobile.php:433
+#: usr/local/www/firewall_aliases_edit.php:457
+#: usr/local/www/firewall_aliases_edit.php:632
+#: usr/local/www/vpn_ipsec_phase2.php:520
+#: usr/local/www/vpn_ipsec_phase2.php:556
+#: usr/local/www/vpn_ipsec_phase2.php:598
+#: usr/local/www/firewall_nat_edit.php:558
+#: usr/local/www/firewall_nat_edit.php:647
+#: usr/local/www/firewall_virtual_ip_edit.php:394
+#: usr/local/www/firewall_rules_edit.php:916
+#: usr/local/www/firewall_rules_edit.php:1015
+#: usr/local/www/firewall_nat_edit.php:553
+#: usr/local/www/firewall_nat_edit.php:642
+#: usr/local/www/firewall_virtual_ip_edit.php:386
+#: usr/local/www/system_routes.php:130
+#: usr/local/www/firewall_nat_out_edit.php:493
+#: usr/local/www/firewall_nat_out_edit.php:528
+#: usr/local/www/vpn_ipsec_phase2.php:542
+#: usr/local/www/vpn_ipsec_phase2.php:577
+#: usr/local/www/vpn_ipsec_phase2.php:619
msgid "Network"
msgstr "Rede"
@@ -6933,41 +8606,74 @@ msgstr "Rede"
#: usr/local/www/firewall_nat_edit.php:582
#: usr/local/www/firewall_nat_edit.php:692
#: usr/local/www/firewall_virtual_ip_edit.php:455
+#: usr/local/www/firewall_nat_1to1_edit.php:372
+#: usr/local/www/firewall_nat_1to1_edit.php:427
+#: usr/local/www/firewall_nat_npt_edit.php:220
+#: usr/local/www/firewall_nat_npt_edit.php:248
+#: usr/local/www/vpn_ipsec_phase2.php:532
+#: usr/local/www/vpn_ipsec_phase2.php:568
+#: usr/local/www/firewall_nat_edit.php:581
+#: usr/local/www/firewall_nat_edit.php:691
+#: usr/local/www/firewall_virtual_ip_edit.php:400
+#: usr/local/www/firewall_rules_edit.php:939
+#: usr/local/www/firewall_rules_edit.php:1038
+#: usr/local/www/firewall_nat_edit.php:576
+#: usr/local/www/firewall_nat_edit.php:686
+#: usr/local/www/firewall_virtual_ip_edit.php:392
+#: usr/local/www/firewall_nat_out_edit.php:496
+#: usr/local/www/firewall_nat_out_edit.php:532
+#: usr/local/www/firewall_nat_out_edit.php:559
+#: usr/local/www/vpn_ipsec_phase2.php:553
+#: usr/local/www/vpn_ipsec_phase2.php:589
msgid "Address:"
msgstr "Endereço:"
#: usr/local/www/firewall_virtual_ip_edit.php:479
#: usr/local/www/firewall_virtual_ip_edit.php:467
+#: usr/local/www/firewall_virtual_ip_edit.php:412
+#: usr/local/www/firewall_virtual_ip_edit.php:404
msgid "Expansion:"
msgstr "Expansão:"
#: usr/local/www/firewall_virtual_ip_edit.php:499
#: usr/local/www/firewall_virtual_ip_edit.php:487
+#: usr/local/www/firewall_virtual_ip_edit.php:432
+#: usr/local/www/firewall_virtual_ip_edit.php:424
msgid "Virtual IP Password"
msgstr "Senha de IP Virtual"
#: usr/local/www/firewall_virtual_ip_edit.php:501
#: usr/local/www/firewall_virtual_ip_edit.php:489
+#: usr/local/www/firewall_virtual_ip_edit.php:434
+#: usr/local/www/firewall_virtual_ip_edit.php:426
msgid "Enter the VHID group password."
msgstr "Informe a senha de grupo VHID."
#: usr/local/www/firewall_virtual_ip_edit.php:505
#: usr/local/www/firewall_virtual_ip_edit.php:493
+#: usr/local/www/firewall_virtual_ip_edit.php:438
+#: usr/local/www/firewall_virtual_ip_edit.php:430
msgid "VHID Group"
msgstr "Grupo VHID"
#: usr/local/www/firewall_virtual_ip_edit.php:513
#: usr/local/www/firewall_virtual_ip_edit.php:501
+#: usr/local/www/firewall_virtual_ip_edit.php:446
+#: usr/local/www/firewall_virtual_ip_edit.php:438
msgid "Enter the VHID group that the machines will share"
msgstr "Informe o grupo VHID que a máquina irá compartilhar"
#: usr/local/www/firewall_virtual_ip_edit.php:517
#: usr/local/www/firewall_virtual_ip_edit.php:505
+#: usr/local/www/firewall_virtual_ip_edit.php:450
+#: usr/local/www/firewall_virtual_ip_edit.php:442
msgid "Advertising Frequency"
msgstr "Frequência de anúncio"
#: usr/local/www/firewall_virtual_ip_edit.php:534
#: usr/local/www/firewall_virtual_ip_edit.php:522
+#: usr/local/www/firewall_virtual_ip_edit.php:467
+#: usr/local/www/firewall_virtual_ip_edit.php:459
msgid ""
"The frequency that this machine will advertise. 0 means usually master. "
"Otherwise the lowest combination of both values in the cluster determines "
@@ -7034,11 +8740,65 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:215 usr/local/www/interfaces.php:2023
#: usr/local/www/firewall_virtual_ip_edit.php:545
#: usr/local/www/services_dhcpv6.php:732 usr/local/www/services_dhcpv6.php:884
+#: usr/local/www/diag_logs_settings.php:353
+#: usr/local/www/services_dnsmasq.php:215
+#: usr/local/www/services_captiveportal_vouchers.php:624
+#: usr/local/www/firewall_nat_out.php:471
+#: usr/local/www/services_captiveportal_ip.php:168
+#: usr/local/www/interfaces_groups.php:149 usr/local/www/diag_ipsec.php:222
+#: usr/local/www/interfaces_qinq.php:152 usr/local/www/diag_ipsec_sad.php:135
+#: usr/local/www/services_captiveportal_mac.php:188
+#: usr/local/www/interfaces_bridge.php:145
+#: usr/local/www/interfaces_ppps_edit.php:621
+#: usr/local/www/interfaces_lagg.php:139
+#: usr/local/www/services_captiveportal_hostname.php:169
+#: usr/local/www/interfaces_gre.php:134 usr/local/www/diag_routes.php:73
+#: usr/local/www/system_gateway_groups.php:196
+#: usr/local/www/services_captiveportal.php:970
+#: usr/local/www/services_captiveportal_filemanager.php:212
+#: usr/local/www/services_dhcp.php:907 usr/local/www/services_dhcp.php:932
+#: usr/local/www/services_dhcp.php:1118
+#: usr/local/www/load_balancer_virtual_server_edit.php:276
+#: usr/local/www/interfaces_bridge_edit.php:456
+#: usr/local/www/interfaces_bridge_edit.php:500
+#: usr/local/www/interfaces_bridge_edit.php:544
+#: usr/local/www/firewall_aliases.php:284
+#: usr/local/www/diag_packet_capture.php:262
+#: usr/local/www/interfaces_vlan.php:135 usr/local/www/interfaces.php:2011
+#: usr/local/www/vpn_l2tp.php:452
+#: usr/local/www/firewall_virtual_ip_edit.php:490
+#: usr/local/www/interfaces_gif.php:133 usr/local/www/diag_ipsec_spd.php:144
+#: usr/local/www/firewall_virtual_ip.php:247
+#: usr/local/www/services_dhcpv6.php:663 usr/local/www/services_dhcpv6.php:815
+#: usr/local/www/vpn_l2tp.php:455 usr/local/www/services_dyndns_edit.php:276
+#: usr/local/www/services_dyndns_edit.php:380
+#: usr/local/www/interfaces_qinq.php:155
+#: usr/local/www/interfaces_ppps_edit.php:627
+#: usr/local/www/firewall_virtual_ip.php:267
+#: usr/local/www/interfaces_lagg.php:143 usr/local/www/interfaces_vlan.php:141
+#: usr/local/www/firewall_virtual_ip_edit.php:482
+#: usr/local/www/diag_ipsec.php:223 usr/local/www/interfaces_bridge.php:151
+#: usr/local/www/services_captiveportal_vouchers.php:633
+#: usr/local/www/system_routes.php:203 usr/local/www/services_dhcp.php:921
+#: usr/local/www/services_dhcp.php:946 usr/local/www/services_dhcp.php:1131
+#: usr/local/www/services_dhcpv6.php:680 usr/local/www/services_dhcpv6.php:832
+#: usr/local/www/firewall_nat_out.php:468
+#: usr/local/www/services_captiveportal.php:972
+#: usr/local/www/diag_backup.php:741
+#: usr/local/www/interfaces_bridge_edit.php:457
+#: usr/local/www/interfaces_bridge_edit.php:501
+#: usr/local/www/interfaces_bridge_edit.php:545
+#: usr/local/www/services_dnsmasq.php:240
+#: usr/local/www/services_captiveportal_mac.php:198
+#: usr/local/www/interfaces_gre.php:138 usr/local/www/interfaces_gif.php:137
+#: usr/local/www/interfaces.php:2038
msgid "Note:"
msgstr "Nota:"
#: usr/local/www/firewall_virtual_ip_edit.php:559
#: usr/local/www/firewall_virtual_ip_edit.php:547
+#: usr/local/www/firewall_virtual_ip_edit.php:492
+#: usr/local/www/firewall_virtual_ip_edit.php:484
msgid ""
"Proxy ARP and Other type Virtual IPs cannot be bound to by anything running "
"on the firewall, such as IPsec, OpenVPN, etc. Use a CARP or IP Alias type "
@@ -7050,11 +8810,15 @@ msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:560
#: usr/local/www/firewall_virtual_ip_edit.php:548
+#: usr/local/www/firewall_virtual_ip_edit.php:493
+#: usr/local/www/firewall_virtual_ip_edit.php:485
msgid "For more information on CARP and the above values, visit the OpenBSD "
msgstr "Para mais informações sobre CARP e os valores acima, visite o OpenBSD "
#: usr/local/www/firewall_virtual_ip_edit.php:560
#: usr/local/www/firewall_virtual_ip_edit.php:548
+#: usr/local/www/firewall_virtual_ip_edit.php:493
+#: usr/local/www/firewall_virtual_ip_edit.php:485
msgid "CARP FAQ"
msgstr "FAQ do CARP"
@@ -7072,6 +8836,7 @@ msgid "Relay Action"
msgstr "Ação Relay"
#: usr/local/www/load_balancer_relay_action.php:118
+#: usr/local/www/load_balancer_relay_action.php:116
msgid ""
"The load balancer configuration has been changed.<br>You must apply the "
"changes in order for them to take effect."
@@ -7080,10 +8845,12 @@ msgstr ""
"as mudanças para que elas tenham efeito."
#: usr/local/www/load_balancer_relay_action.php:128
+#: usr/local/www/load_balancer_relay_action.php:126
msgid "Relay Actions"
msgstr "Ações Relay"
#: usr/local/www/load_balancer_relay_action.php:129
+#: usr/local/www/load_balancer_relay_action.php:127
msgid "Relay Protocols"
msgstr "Protocolos Relay"
@@ -7094,6 +8861,12 @@ msgstr "Protocolos Relay"
#: usr/local/www/load_balancer_relay_protocol.php:136
#: usr/local/www/load_balancer_relay_action_edit.php:514
#: usr/local/www/load_balancer_relay_action_edit.php:534
+#: usr/local/www/interfaces_qinq_edit.php:319
+#: usr/local/www/load_balancer_relay_action_edit.php:512
+#: usr/local/www/load_balancer_relay_action_edit.php:532
+#: usr/local/www/load_balancer_relay_protocol.php:134
+#: usr/local/www/load_balancer_relay_action.php:140
+#: usr/local/www/interfaces_qinq_edit.php:322
msgid "Options"
msgstr "Opções"
@@ -7105,11 +8878,11 @@ msgstr ""
"O sistema foi restaurado para o padrão de fabrica e está sendo reiniciado "
"agora. Isto pode levar uns minutos."
-#: usr/local/www/diag_defaults.php:58
+#: usr/local/www/diag_defaults.php:58 usr/local/www/diag_defaults.php:52
msgid "Factory defaults"
msgstr "Padrão de fábrica"
-#: usr/local/www/diag_defaults.php:67
+#: usr/local/www/diag_defaults.php:67 usr/local/www/diag_defaults.php:70
msgid "If you click"
msgstr "Se você clicar"
@@ -7119,31 +8892,34 @@ msgstr "Se você clicar"
#: usr/local/www/reboot.php:61 usr/local/www/reboot.php:72
#: usr/local/www/pkg.php:424 usr/local/www/reboot.php:53
#: usr/local/www/reboot.php:64 usr/local/www/halt.php:60
+#: usr/local/www/system_firmware.php:236 usr/local/www/system_firmware.php:239
+#: usr/local/www/diag_defaults.php:60 usr/local/www/diag_defaults.php:70
+#: usr/local/www/diag_defaults.php:82
msgid "Yes"
msgstr "Sim"
-#: usr/local/www/diag_defaults.php:67
+#: usr/local/www/diag_defaults.php:67 usr/local/www/diag_defaults.php:70
msgid "the firewall will:"
msgstr "o firewall irá:"
-#: usr/local/www/diag_defaults.php:70
+#: usr/local/www/diag_defaults.php:70 usr/local/www/diag_defaults.php:72
msgid "Reset to factory defaults"
msgstr "Restaurar o padrão de fábrica"
-#: usr/local/www/diag_defaults.php:71
+#: usr/local/www/diag_defaults.php:71 usr/local/www/diag_defaults.php:73
msgid "LAN IP address will be reset to 192.168.1.1"
msgstr "Endereço IP da LAN será redefinido para 192.168.1.1"
-#: usr/local/www/diag_defaults.php:72
+#: usr/local/www/diag_defaults.php:72 usr/local/www/diag_defaults.php:74
msgid "System will be configured as a DHCP server on the default LAN interface"
msgstr ""
"O sistema será configurado como um servidor DHCP na interface LAN padrão"
-#: usr/local/www/diag_defaults.php:73
+#: usr/local/www/diag_defaults.php:73 usr/local/www/diag_defaults.php:75
msgid "Reboot after changes are installed"
msgstr "Reiniciar após instalar alterações"
-#: usr/local/www/diag_defaults.php:74
+#: usr/local/www/diag_defaults.php:74 usr/local/www/diag_defaults.php:76
msgid ""
"WAN interface will be set to obtain an address automatically from a DHCP "
"server"
@@ -7151,15 +8927,15 @@ msgstr ""
"Interface WAN será definida para obter um endereço automaticamente de um "
"servidor DHCP"
-#: usr/local/www/diag_defaults.php:75
+#: usr/local/www/diag_defaults.php:75 usr/local/www/diag_defaults.php:77
msgid "webConfigurator admin username will be reset to 'admin'"
msgstr "Usuário admin do webConfigurator será redefinido para 'admin'"
-#: usr/local/www/diag_defaults.php:76
+#: usr/local/www/diag_defaults.php:76 usr/local/www/diag_defaults.php:78
msgid "webConfigurator admin password will be reset to"
msgstr "Senha para webConfigurator admin será redefinida para"
-#: usr/local/www/diag_defaults.php:79
+#: usr/local/www/diag_defaults.php:79 usr/local/www/diag_defaults.php:80
msgid "Are you sure you want to proceed?"
msgstr "Você tem certeza que deseja prosseguir?"
@@ -7168,6 +8944,8 @@ msgstr "Você tem certeza que deseja prosseguir?"
#: usr/local/www/system_firmware.php:230 usr/local/www/reboot.php:62
#: usr/local/www/pkg.php:422 usr/local/www/reboot.php:43
#: usr/local/www/reboot.php:65 usr/local/www/halt.php:49
+#: usr/local/www/system_firmware.php:237 usr/local/www/system_firmware.php:240
+#: usr/local/www/diag_defaults.php:47 usr/local/www/diag_defaults.php:83
msgid "No"
msgstr "Não"
@@ -7184,6 +8962,8 @@ msgstr "Não"
#: usr/local/www/diag_logs_settings.php:136
#: usr/local/www/diag_logs_resolver.php:66
#: usr/local/www/diag_logs_gateways.php:66
+#: usr/local/www/diag_logs_settings.php:143
+#: usr/local/www/diag_logs_filter.php:79 usr/local/www/diag_logs_ppp.php:57
msgid "System logs"
msgstr "Registros do sistema"
@@ -7205,6 +8985,20 @@ msgstr "Registros do sistema"
#: usr/local/www/diag_logs_gateways.php:80
#: usr/local/www/services_dhcp_edit.php:193 usr/local/www/interfaces.php:1118
#: usr/local/www/diag_logs_filter_dynamic.php:100
+#: usr/local/www/diag_logs_routing.php:68
+#: usr/local/www/diag_logs_settings.php:224
+#: usr/local/www/diag_logs_relayd.php:69 usr/local/www/diag_logs_auth.php:68
+#: usr/local/www/diag_logs_ipsec.php:105
+#: usr/local/www/diag_logs_resolver.php:81 usr/local/www/diag_logs_ntpd.php:68
+#: usr/local/www/diag_logs_dhcp.php:73 usr/local/www/diag_logs_wireless.php:70
+#: usr/local/www/diag_logs_filter_summary.php:187
+#: usr/local/www/diag_logs_gateways.php:81
+#: usr/local/www/diag_logs_openvpn.php:72 usr/local/www/interfaces.php:1106
+#: usr/local/www/diag_logs_filter_dynamic.php:101
+#: usr/local/www/diag_logs_filter.php:93
+#: usr/local/www/services_dhcp_edit.php:301
+#: usr/local/www/diag_logs_filter_dynamic.php:99
+#: usr/local/www/diag_logs_ppp.php:70 usr/local/www/interfaces.php:1120
msgid "DHCP"
msgstr "DHCP"
@@ -7224,6 +9018,19 @@ msgstr "DHCP"
#: usr/local/www/diag_logs_resolver.php:81
#: usr/local/www/diag_logs_gateways.php:81
#: usr/local/www/diag_logs_filter_dynamic.php:101
+#: usr/local/www/diag_logs_routing.php:69
+#: usr/local/www/diag_logs_settings.php:225
+#: usr/local/www/diag_logs_relayd.php:70 usr/local/www/diag_logs_auth.php:69
+#: usr/local/www/diag_logs_ipsec.php:106
+#: usr/local/www/diag_logs_resolver.php:82 usr/local/www/diag_logs_ntpd.php:69
+#: usr/local/www/diag_logs_dhcp.php:74 usr/local/www/diag_logs_wireless.php:71
+#: usr/local/www/diag_logs_filter_summary.php:188
+#: usr/local/www/diag_logs_gateways.php:82
+#: usr/local/www/diag_logs_openvpn.php:73
+#: usr/local/www/diag_logs_filter_dynamic.php:102
+#: usr/local/www/diag_logs_filter.php:94
+#: usr/local/www/diag_logs_filter_dynamic.php:100
+#: usr/local/www/diag_logs_ppp.php:71
msgid "Portal Auth"
msgstr "Portal Autorização"
@@ -7252,6 +9059,26 @@ msgstr "Portal Autorização"
#: usr/local/www/vpn_ipsec_phase2.php:270
#: usr/local/www/diag_logs_gateways.php:82
#: usr/local/www/diag_logs_filter_dynamic.php:102
+#: usr/local/www/diag_logs_routing.php:70
+#: usr/local/www/diag_logs_settings.php:226 usr/local/www/fbegin.inc:172
+#: usr/local/www/fbegin.inc:189 usr/local/www/diag_logs_relayd.php:71
+#: usr/local/www/vpn_ipsec_mobile.php:240 usr/local/www/diag_logs_auth.php:70
+#: usr/local/www/diag_logs_ipsec.php:107
+#: usr/local/www/diag_logs_resolver.php:83 usr/local/www/diag_logs_ntpd.php:70
+#: usr/local/www/diag_logs_dhcp.php:75 usr/local/www/diag_logs_wireless.php:72
+#: usr/local/www/diag_logs_filter_summary.php:189
+#: usr/local/www/vpn_ipsec_phase2.php:294
+#: usr/local/www/vpn_ipsec_phase2.php:296
+#: usr/local/www/diag_logs_gateways.php:83
+#: usr/local/www/diag_logs_openvpn.php:74
+#: usr/local/www/diag_logs_filter_dynamic.php:103
+#: usr/local/www/diag_logs_filter.php:95 usr/local/www/vpn_ipsec.php:125
+#: usr/local/www/diag_logs_filter_dynamic.php:101
+#: usr/local/www/diag_logs_ppp.php:72 usr/local/www/fbegin.inc:163
+#: usr/local/www/fbegin.inc:180 usr/local/www/vpn_ipsec_phase1.php:379
+#: usr/local/www/vpn_ipsec_phase1.php:381
+#: usr/local/www/vpn_ipsec_phase2.php:316
+#: usr/local/www/vpn_ipsec_phase2.php:318
msgid "IPsec"
msgstr "IPsec"
@@ -7273,6 +9100,21 @@ msgstr "IPsec"
#: usr/local/www/diag_logs_resolver.php:83
#: usr/local/www/diag_logs_gateways.php:83 usr/local/www/interfaces.php:1118
#: usr/local/www/diag_logs_filter_dynamic.php:103
+#: usr/local/www/diag_logs_routing.php:71
+#: usr/local/www/diag_logs_settings.php:227
+#: usr/local/www/diag_logs_relayd.php:72
+#: usr/local/www/status_interfaces.php:175 usr/local/www/diag_logs_auth.php:71
+#: usr/local/www/diag_logs_ipsec.php:108
+#: usr/local/www/diag_logs_resolver.php:84 usr/local/www/diag_logs_ntpd.php:71
+#: usr/local/www/diag_logs_dhcp.php:76 usr/local/www/diag_logs_wireless.php:73
+#: usr/local/www/diag_logs_filter_summary.php:190
+#: usr/local/www/diag_logs_gateways.php:84
+#: usr/local/www/diag_logs_openvpn.php:75 usr/local/www/interfaces.php:1106
+#: usr/local/www/diag_logs_filter_dynamic.php:104
+#: usr/local/www/diag_logs_filter.php:96
+#: usr/local/www/diag_logs_filter_dynamic.php:102
+#: usr/local/www/diag_logs_ppp.php:57 usr/local/www/diag_logs_ppp.php:73
+#: usr/local/www/interfaces.php:1120
msgid "PPP"
msgstr "PPP"
@@ -7305,6 +9147,27 @@ msgstr "PPP"
#: usr/local/www/vpn_ipsec_phase2.php:270
#: usr/local/www/diag_logs_gateways.php:84
#: usr/local/www/diag_logs_filter_dynamic.php:104
+#: usr/local/www/diag_logs_routing.php:72
+#: usr/local/www/diag_logs_settings.php:228 usr/local/www/fbegin.inc:315
+#: usr/local/www/diag_logs_relayd.php:73
+#: usr/local/www/vpn_ipsec_mobile.php:240 usr/local/www/diag_logs_auth.php:72
+#: usr/local/www/diag_logs_ipsec.php:109
+#: usr/local/www/diag_logs_resolver.php:85 usr/local/www/diag_logs_ntpd.php:72
+#: usr/local/www/diag_logs_dhcp.php:77 usr/local/www/diag_logs_wireless.php:74
+#: usr/local/www/diag_logs_filter_summary.php:191
+#: usr/local/www/vpn_ipsec_phase2.php:294
+#: usr/local/www/vpn_ipsec_phase2.php:296
+#: usr/local/www/diag_logs_gateways.php:85
+#: usr/local/www/diag_logs_openvpn.php:76
+#: usr/local/www/diag_logs_filter_dynamic.php:105
+#: usr/local/www/diag_logs_filter.php:97 usr/local/www/vpn_pppoe.php:87
+#: usr/local/www/vpn_ipsec.php:125
+#: usr/local/www/diag_logs_filter_dynamic.php:103
+#: usr/local/www/diag_logs_ppp.php:74 usr/local/www/vpn_pptp.php:196
+#: usr/local/www/fbegin.inc:307 usr/local/www/vpn_ipsec_phase1.php:379
+#: usr/local/www/vpn_ipsec_phase1.php:381
+#: usr/local/www/vpn_ipsec_phase2.php:316
+#: usr/local/www/vpn_ipsec_phase2.php:318
msgid "VPN"
msgstr "VPN"
@@ -7334,6 +9197,23 @@ msgstr "VPN"
#: usr/local/www/diag_packet_capture.php:134
#: usr/local/www/diag_logs_gateways.php:86
#: usr/local/www/diag_logs_filter_dynamic.php:106
+#: etc/inc/service-utils.inc:333 usr/local/www/diag_logs_routing.php:74
+#: usr/local/www/diag_logs_settings.php:230 usr/local/www/fbegin.inc:173
+#: usr/local/www/fbegin.inc:192 usr/local/www/diag_logs_relayd.php:75
+#: usr/local/www/diag_logs_auth.php:74 usr/local/www/diag_logs_ipsec.php:111
+#: usr/local/www/diag_logs_resolver.php:87 usr/local/www/diag_logs_ntpd.php:74
+#: usr/local/www/diag_logs_dhcp.php:79 usr/local/www/diag_logs_wireless.php:76
+#: usr/local/www/vpn_openvpn_server.php:423
+#: usr/local/www/diag_logs_filter_summary.php:193
+#: usr/local/www/diag_packet_capture.php:64
+#: usr/local/www/diag_logs_gateways.php:87
+#: usr/local/www/diag_logs_openvpn.php:78
+#: usr/local/www/diag_logs_filter_dynamic.php:107
+#: usr/local/www/diag_logs_filter.php:99
+#: usr/local/www/diag_logs_filter_dynamic.php:105
+#: usr/local/www/diag_logs_ppp.php:76 usr/local/www/fbegin.inc:164
+#: usr/local/www/fbegin.inc:183 usr/local/www/vpn_openvpn_server.php:445
+#: etc/inc/service-utils.inc:332
msgid "OpenVPN"
msgstr "OpenVPN"
@@ -7379,6 +9259,26 @@ msgstr "OpenNTPD"
#: usr/local/www/diag_logs_wireless.php:88
#: usr/local/www/diag_logs_gateways.php:100
#: usr/local/www/diag_logs_filter_dynamic.php:108
+#: usr/local/www/diag_logs_routing.php:87 usr/local/www/fbegin.inc:209
+#: usr/local/www/interfaces_groups.php:78
+#: usr/local/www/interfaces_qinq.php:101 usr/local/www/interfaces_ppps.php:93
+#: usr/local/www/interfaces_bridge.php:92
+#: usr/local/www/diag_logs_resolver.php:101
+#: usr/local/www/interfaces_lagg.php:97 usr/local/www/interfaces_gre.php:92
+#: usr/local/www/interfaces_wireless.php:91
+#: usr/local/www/diag_logs_wireless.php:89
+#: usr/local/www/interfaces_assign.php:398
+#: usr/local/www/diag_logs_gateways.php:101
+#: usr/local/www/interfaces_vlan.php:93
+#: usr/local/www/diag_logs_filter_dynamic.php:109
+#: usr/local/www/interfaces_gif.php:91
+#: usr/local/www/interfaces_wireless_edit.php:147
+#: usr/local/www/interfaces_qinq.php:104 usr/local/www/interfaces_lagg.php:101
+#: usr/local/www/interfaces_vlan.php:99 usr/local/www/status_rrd_graph.php:417
+#: usr/local/www/interfaces_bridge.php:98
+#: usr/local/www/interfaces_wireless.php:78
+#: usr/local/www/interfaces_wireless.php:93 usr/local/www/fbegin.inc:200
+#: usr/local/www/interfaces_gre.php:96 usr/local/www/interfaces_gif.php:95
msgid "Wireless"
msgstr "Sem fio"
@@ -7424,11 +9324,29 @@ msgstr "Sem fio"
#: usr/local/www/diag_logs_filter_dynamic.php:109
#: usr/local/www/load_balancer_pool.php:121
#: usr/local/www/diag_logs_filter.php:111
+#: usr/local/www/diag_logs_routing.php:76
+#: usr/local/www/diag_logs_settings.php:143
+#: usr/local/www/diag_logs_settings.php:232
+#: usr/local/www/load_balancer_setting.php:121
+#: usr/local/www/diag_logs_resolver.php:89
+#: usr/local/www/load_balancer_virtual_server.php:116
+#: usr/local/www/load_balancer_monitor.php:110
+#: usr/local/www/system_firmware_settings.php:79
+#: usr/local/www/diag_logs_gateways.php:89
+#: usr/local/www/diag_logs_filter_dynamic.php:110
+#: usr/local/www/load_balancer_pool.php:119
+#: usr/local/www/system_authservers.php:428
+#: usr/local/www/diag_logs_filter.php:101
+#: usr/local/www/status_rrd_graph.php:434
+#: usr/local/www/diag_logs_filter_dynamic.php:107
+#: usr/local/www/diag_logs_ppp.php:78 usr/local/www/system_authservers.php:435
msgid "Settings"
msgstr "Configurações"
#: usr/local/www/diag_logs.php:98 usr/local/www/diag_logs_resolver.php:110
#: usr/local/www/diag_logs.php:109 usr/local/www/diag_logs_gateways.php:110
+#: usr/local/www/diag_logs_resolver.php:111
+#: usr/local/www/diag_logs_gateways.php:111
#, php-format
msgid "Last %s system log entries"
msgstr "Últimas %s entradas de evento no sistema"
@@ -7450,6 +9368,12 @@ msgstr "Últimas %s entradas de evento no sistema"
#: usr/local/www/diag_logs_gateways.php:121
#: usr/local/www/diag_logs_openvpn.php:96
#: usr/local/www/diag_logs_filter.php:205
+#: usr/local/www/diag_logs_routing.php:102
+#: usr/local/www/diag_logs_resolver.php:122
+#: usr/local/www/diag_logs_wireless.php:104
+#: usr/local/www/diag_logs_gateways.php:122
+#: usr/local/www/diag_logs_filter.php:264 usr/local/www/diag_logs_ppp.php:95
+#: usr/local/www/diag_logs_ipsec.php:151
msgid "Clear log"
msgstr "Limpar log"
@@ -7460,6 +9384,11 @@ msgstr "Limpar log"
#: usr/local/www/diag_dump_states.php:153
#: usr/local/www/diag_logs_gateways.php:127
#: usr/local/www/diag_logs_filter.php:127
+#: usr/local/www/diag_logs_resolver.php:128
+#: usr/local/www/diag_dump_states_sources.php:132
+#: usr/local/www/diag_dump_states.php:152
+#: usr/local/www/diag_logs_gateways.php:128
+#: usr/local/www/diag_logs_filter.php:147
msgid "Filter"
msgstr "Filtro"
@@ -7473,7 +9402,7 @@ msgstr "Último %s evento de entrada no Portal de autenticação"
msgid "Last %s DHCP service log entries"
msgstr "Últimos %s logs de entrada do serviço DHCP"
-#: usr/local/www/diag_logs_filter.php:56
+#: usr/local/www/diag_logs_filter.php:56 usr/local/www/diag_logs_filter.php:63
msgid "The rule that triggered this action is"
msgstr "A regra que desencadeou esta ação é"
@@ -7483,6 +9412,8 @@ msgstr "A regra que desencadeou esta ação é"
#: usr/local/www/diag_logs_filter_summary.php:203
#: usr/local/www/diag_logs_filter_dynamic.php:117
#: usr/local/www/diag_logs_filter.php:121
+#: usr/local/www/diag_logs_filter_dynamic.php:118
+#: usr/local/www/diag_logs_filter.php:152
msgid "Normal View"
msgstr "Visão Normal"
@@ -7492,6 +9423,8 @@ msgstr "Visão Normal"
#: usr/local/www/diag_logs_filter_summary.php:203
#: usr/local/www/diag_logs_filter_dynamic.php:117
#: usr/local/www/diag_logs_filter.php:121
+#: usr/local/www/diag_logs_filter_dynamic.php:118
+#: usr/local/www/diag_logs_filter.php:152
msgid "Dynamic View"
msgstr "Visão Dinâmica"
@@ -7501,22 +9434,27 @@ msgstr "Visão Dinâmica"
#: usr/local/www/diag_logs_filter_summary.php:203
#: usr/local/www/diag_logs_filter_dynamic.php:117
#: usr/local/www/diag_logs_filter.php:121
+#: usr/local/www/diag_logs_filter_dynamic.php:118
+#: usr/local/www/diag_logs_filter.php:152
msgid "Summary View"
msgstr "Ver resumo"
#: usr/local/www/diag_logs_filter.php:139
#: usr/local/www/diag_logs_filter.php:138
+#: usr/local/www/diag_logs_filter.php:170
#, php-format
msgid "Last %s firewall log entries."
msgstr "Últimos %s logs de entrada do firewall."
#: usr/local/www/diag_logs_filter.php:141
#: usr/local/www/diag_logs_filter.php:140
+#: usr/local/www/diag_logs_filter.php:172
msgid "matched log entries."
msgstr "entradas de log encontradas."
#: usr/local/www/diag_logs_filter.php:143
#: usr/local/www/diag_logs_filter.php:142
+#: usr/local/www/diag_logs_filter.php:173
#, php-format
msgid "Max(%s)"
msgstr "Máximo(%s)"
@@ -7525,6 +9463,10 @@ msgstr "Máximo(%s)"
#: usr/local/www/diag_logs_filter_dynamic.php:126
#: usr/local/www/diag_logs_filter_dynamic.php:124
#: usr/local/www/diag_logs_filter.php:145
+#: usr/local/www/diag_logs_filter_dynamic.php:125
+#: usr/local/www/diag_logs_filter.php:177
+#: usr/local/www/diag_logs_filter_dynamic.php:128
+#: usr/local/www/widgets/widgets/log.widget.php:163
msgid "Act"
msgstr "Ação"
@@ -7535,6 +9477,11 @@ msgstr "Ação"
#: usr/local/www/diag_logs_vpn.php:174
#: usr/local/www/diag_logs_filter_dynamic.php:125
#: usr/local/www/diag_logs_filter.php:146
+#: usr/local/www/firewall_schedule_edit.php:909
+#: usr/local/www/diag_logs_filter_dynamic.php:126
+#: usr/local/www/diag_logs_filter.php:178
+#: usr/local/www/diag_logs_filter_dynamic.php:129
+#: usr/local/www/diag_system_pftop.php:143
msgid "Time"
msgstr "Tempo"
@@ -7542,7 +9489,10 @@ msgstr "Tempo"
#: usr/local/www/diag_logs_filter_dynamic.php:128
#: usr/local/www/firewall_nat.php:195
#: usr/local/www/diag_logs_filter_dynamic.php:126
-#: usr/local/www/diag_logs_filter.php:147
+#: usr/local/www/diag_logs_filter.php:147 usr/local/www/firewall_nat.php:200
+#: usr/local/www/diag_logs_filter_dynamic.php:127
+#: usr/local/www/diag_logs_filter.php:179
+#: usr/local/www/diag_logs_filter_dynamic.php:130
msgid "If"
msgstr "Se"
@@ -7565,6 +9515,19 @@ msgstr "Se"
#: usr/local/www/firewall_nat_edit.php:542
#: usr/local/www/diag_logs_filter_dynamic.php:127
#: usr/local/www/diag_logs_filter.php:148
+#: usr/local/www/firewall_nat_out.php:353
+#: usr/local/www/vpn_ipsec_mobile.php:383
+#: usr/local/www/vpn_ipsec_mobile.php:401 usr/local/www/diag_ipsec_sad.php:88
+#: usr/local/www/firewall_rules.php:361
+#: usr/local/www/firewall_nat_edit.php:541
+#: usr/local/www/diag_logs_filter_dynamic.php:128
+#: usr/local/www/diag_ipsec_spd.php:87 usr/local/www/diag_logs_filter.php:183
+#: usr/local/www/firewall_rules_edit.php:893
+#: usr/local/www/firewall_nat_edit.php:530
+#: usr/local/www/diag_logs_filter_dynamic.php:131
+#: usr/local/www/widgets/widgets/log.widget.php:165
+#: usr/local/www/firewall_nat_out_edit.php:134
+#: usr/local/www/firewall_nat_out_edit.php:485
msgid "Source"
msgstr "Origem"
@@ -7586,6 +9549,18 @@ msgstr "Origem"
#: usr/local/www/firewall_nat_edit.php:631
#: usr/local/www/diag_logs_filter_dynamic.php:128
#: usr/local/www/diag_logs_filter.php:149
+#: usr/local/www/firewall_nat_out.php:355
+#: usr/local/www/firewall_nat_1to1_edit.php:388
+#: usr/local/www/diag_ipsec_sad.php:89 usr/local/www/firewall_rules.php:363
+#: usr/local/www/firewall_nat_edit.php:630
+#: usr/local/www/diag_logs_filter_dynamic.php:129
+#: usr/local/www/diag_ipsec_spd.php:88 usr/local/www/diag_logs_filter.php:184
+#: usr/local/www/firewall_rules_edit.php:992
+#: usr/local/www/firewall_nat_edit.php:625
+#: usr/local/www/diag_logs_filter_dynamic.php:132
+#: usr/local/www/widgets/widgets/log.widget.php:166
+#: usr/local/www/firewall_nat_out_edit.php:134
+#: usr/local/www/firewall_nat_out_edit.php:515
msgid "Destination"
msgstr "Destino"
@@ -7597,7 +9572,12 @@ msgstr "Destino"
#: usr/local/www/diag_dump_states.php:168
#: usr/local/www/diag_logs_filter_dynamic.php:129
#: usr/local/www/diag_states_summary.php:141
-#: usr/local/www/diag_logs_filter.php:150
+#: usr/local/www/diag_logs_filter.php:150 usr/local/www/firewall_nat.php:201
+#: usr/local/www/firewall_rules.php:360 usr/local/www/diag_dump_states.php:167
+#: usr/local/www/diag_logs_filter_dynamic.php:130
+#: usr/local/www/diag_states_summary.php:143
+#: usr/local/www/diag_logs_filter.php:185
+#: usr/local/www/diag_logs_filter_dynamic.php:133
msgid "Proto"
msgstr "Proto"
@@ -7606,16 +9586,21 @@ msgstr "Proto"
#: usr/local/www/diag_logs_filter_summary.php:81
#: usr/local/www/diag_logs_filter.php:175
#: usr/local/www/diag_logs_filter.php:180
+#: usr/local/www/diag_logs_filter_summary.php:82
+#: usr/local/www/diag_logs_filter.php:221
+#: usr/local/www/diag_logs_filter.php:228
msgid "Reverse Resolve with DNS"
msgstr "Solução reversa com DNS"
#: usr/local/www/diag_logs_filter.php:179
#: usr/local/www/diag_logs_filter.php:176
+#: usr/local/www/diag_logs_filter.php:223
msgid "Easy Rule: Add to Block List"
msgstr "Easy Rule: Adicione para a lista de bloqueados"
#: usr/local/www/diag_logs_filter.php:179
#: usr/local/www/diag_logs_filter.php:176
+#: usr/local/www/diag_logs_filter.php:223
msgid "Do you really want to add this BLOCK rule?"
msgstr "Você realmente quer adicionar essa regra de BLOQUEIO?"
@@ -7623,6 +9608,8 @@ msgstr "Você realmente quer adicionar essa regra de BLOQUEIO?"
#: usr/local/www/diag_logs_filter.php:184
#: usr/local/www/diag_logs_filter.php:176
#: usr/local/www/diag_logs_filter.php:181
+#: usr/local/www/diag_logs_filter.php:223
+#: usr/local/www/diag_logs_filter.php:230
msgid "Easy Rule is still experimental."
msgstr "Easy Rule é experimental ainda."
@@ -7630,6 +9617,8 @@ msgstr "Easy Rule é experimental ainda."
#: usr/local/www/diag_logs_filter.php:184
#: usr/local/www/diag_logs_filter.php:176
#: usr/local/www/diag_logs_filter.php:181
+#: usr/local/www/diag_logs_filter.php:223
+#: usr/local/www/diag_logs_filter.php:230
msgid "Continue at risk of your own peril."
msgstr "Continuar por sua conta e risco."
@@ -7637,21 +9626,26 @@ msgstr "Continuar por sua conta e risco."
#: usr/local/www/diag_logs_filter.php:184
#: usr/local/www/diag_logs_filter.php:176
#: usr/local/www/diag_logs_filter.php:181
+#: usr/local/www/diag_logs_filter.php:223
+#: usr/local/www/diag_logs_filter.php:230
msgid "Backups are also nice."
msgstr "Backups também são bons."
#: usr/local/www/diag_logs_filter.php:184
#: usr/local/www/diag_logs_filter.php:181
+#: usr/local/www/diag_logs_filter.php:230
msgid "Easy Rule: Pass this traffic"
msgstr "Easy Rule: liberar esse tráfego"
#: usr/local/www/diag_logs_filter.php:184
#: usr/local/www/diag_logs_filter.php:181
+#: usr/local/www/diag_logs_filter.php:230
msgid "Do you really want to add this PASS rule?"
msgstr "Você realmente quer adicionar essa regra de liberação?"
#: usr/local/www/diag_logs_filter.php:196
#: usr/local/www/diag_logs_filter.php:193
+#: usr/local/www/diag_logs_filter.php:251
#, php-format
msgid "Last %s firewall log entries"
msgstr "Últimos %s logs de entrada do firewall"
@@ -7662,22 +9656,29 @@ msgstr "Firewall (Visão Dinâmica)"
#: usr/local/www/diag_logs_filter_dynamic.php:122
#: usr/local/www/diag_logs_filter_dynamic.php:120
+#: usr/local/www/diag_logs_filter_dynamic.php:121
+#: usr/local/www/diag_logs_filter_dynamic.php:124
#, php-format
msgid "Last %s records"
msgstr "Últimos %s registros"
#: usr/local/www/diag_logs_filter_dynamic.php:122
#: usr/local/www/diag_logs_filter_dynamic.php:120
+#: usr/local/www/diag_logs_filter_dynamic.php:121
+#: usr/local/www/diag_logs_filter_dynamic.php:124
msgid "Pause:"
msgstr "Pausa:"
#: usr/local/www/diag_logs_filter_dynamic.php:153
#: usr/local/www/diag_logs_filter_dynamic.php:151
+#: usr/local/www/diag_logs_filter_dynamic.php:152
+#: usr/local/www/diag_logs_filter_dynamic.php:165
msgid "TCP Flags"
msgstr "Flags de TCP"
#: usr/local/www/diag_logs_ipsec.php:91 usr/local/www/status_services.php:330
#: usr/local/www/widgets/widgets/services_status.widget.php:135
+#: etc/inc/service-utils.inc:320 etc/inc/service-utils.inc:319
msgid "IPsec VPN"
msgstr "IPsec VPN"
@@ -7688,6 +9689,7 @@ msgstr "Últimos %s logs de entrada do IPsec"
#: usr/local/www/diag_logs_ipsec.php:135 usr/local/www/diag_logs_ppp.php:99
#: usr/local/www/diag_logs_ipsec.php:134 usr/local/www/diag_logs_ppp.php:98
+#: usr/local/www/diag_logs_ipsec.php:136
msgid "Unknown Gateway/Dynamic"
msgstr "Gateway/Dinâmico desconhecido"
@@ -7706,6 +9708,7 @@ msgstr "Últimas %s entradas de log do OpenVPN"
#: usr/local/www/widgets/widgets/openvpn.widget.php:16
#: usr/local/www/diag_dump_states_sources.php:51
#: usr/local/www/widgets/widgets/openvpn.widget.php:17
+#: usr/local/www/status_openvpn.php:61
msgid "invalid input"
msgstr "entrada inválida"
@@ -7718,6 +9721,9 @@ msgstr "Mostrar Estados"
#: usr/local/www/diag_dump_states_sources.php:95
#: usr/local/www/diag_dump_states.php:105
#: usr/local/www/widgets/widgets/openvpn.widget.php:85
+#: usr/local/www/status_openvpn.php:131
+#: usr/local/www/diag_dump_states_sources.php:94
+#: usr/local/www/diag_dump_states.php:104
msgid "An error occurred."
msgstr "Ocorreu um erro."
@@ -7730,19 +9736,28 @@ msgstr "Ocorreu um erro."
#: usr/local/www/system_advanced_misc.php:441
#: usr/local/www/diag_dump_states.php:120
#: usr/local/www/diag_states_summary.php:140
-#: usr/local/www/diag_states_summary.php:142
+#: usr/local/www/diag_states_summary.php:142 usr/local/www/fbegin.inc:233
+#: usr/local/www/system_advanced_misc.php:490
+#: usr/local/www/diag_dump_states_sources.php:109
+#: usr/local/www/diag_dump_states.php:119
+#: usr/local/www/diag_states_summary.php:144
+#: usr/local/www/system_advanced_misc.php:502 usr/local/www/fbegin.inc:225
msgid "States"
msgstr "Estados"
#: usr/local/www/diag_dump_states.php:112 usr/local/www/diag_resetstate.php:79
#: usr/local/www/diag_dump_states_sources.php:111
#: usr/local/www/diag_dump_states.php:122
+#: usr/local/www/diag_dump_states_sources.php:110
+#: usr/local/www/diag_dump_states.php:121
msgid "Source Tracking"
msgstr "Rastreamento de Origem"
#: usr/local/www/diag_dump_states.php:113 usr/local/www/diag_resetstate.php:80
#: usr/local/www/diag_dump_states_sources.php:112
#: usr/local/www/diag_dump_states.php:123
+#: usr/local/www/diag_dump_states_sources.php:111
+#: usr/local/www/diag_dump_states.php:122
msgid "Reset States"
msgstr "Reiniciar Estados"
@@ -7753,22 +9768,30 @@ msgstr "Contagem de estado atual:"
#: usr/local/www/diag_dump_states.php:136
#: usr/local/www/diag_dump_states_sources.php:131
#: usr/local/www/diag_dump_states.php:151
+#: usr/local/www/diag_dump_states_sources.php:130
+#: usr/local/www/diag_dump_states.php:150
msgid "Filter expression:"
msgstr "Expressão de filtro:"
#: usr/local/www/diag_dump_states.php:151
#: usr/local/www/diag_dump_states.php:169
+#: usr/local/www/diag_dump_states.php:168
msgid "Source -> Router -> Destination"
msgstr "Origem -> Roteador -> Destino"
#: usr/local/www/diag_dump_states.php:152
#: usr/local/www/status_dhcpv6_leases.php:486
#: usr/local/www/diag_dump_states.php:170
+#: usr/local/www/status_dhcpv6_leases.php:487
+#: usr/local/www/diag_dump_states.php:169
+#: usr/local/www/status_dhcpv6_leases.php:490
+#: usr/local/www/diag_system_pftop.php:142
msgid "State"
msgstr "Estado"
#: usr/local/www/diag_dump_states.php:185
#: usr/local/www/diag_dump_states.php:203
+#: usr/local/www/diag_dump_states.php:202
msgid "Remove all state entries from"
msgstr "Remove todas as entradas de estado de"
@@ -7784,11 +9807,22 @@ msgstr "Remove todas as entradas de estado de"
#: usr/local/www/firewall_nat_edit.php:627
#: usr/local/www/firewall_nat_edit.php:742
#: usr/local/www/services_dhcpv6.php:645 usr/local/www/services_dhcpv6.php:652
+#: usr/local/www/services_captiveportal_ip.php:174
+#: usr/local/www/services_captiveportal_hostname.php:175
+#: usr/local/www/diag_dump_states_sources.php:179
+#: usr/local/www/diag_dump_states.php:202 usr/local/www/services_dhcp.php:770
+#: usr/local/www/firewall_nat_edit.php:626
+#: usr/local/www/firewall_nat_edit.php:741
+#: usr/local/www/services_dhcpv6.php:576 usr/local/www/services_dhcpv6.php:583
+#: usr/local/www/firewall_nat_edit.php:621
+#: usr/local/www/firewall_nat_edit.php:736 usr/local/www/services_dhcp.php:780
+#: usr/local/www/services_dhcpv6.php:593 usr/local/www/services_dhcpv6.php:600
msgid "to"
msgstr "para"
#: usr/local/www/diag_dump_states.php:194
#: usr/local/www/diag_dump_states.php:212
+#: usr/local/www/diag_dump_states.php:211
msgid "No states were found."
msgstr "Nenhum estado foi encontrado."
@@ -7812,11 +9846,13 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:92
#: usr/local/www/diag_logs_settings.php:96
+#: usr/local/www/diag_logs_settings.php:97
msgid "Number of log entries to show must be between 5 and 2000."
msgstr "O número de logs de entrada para mostra deve estar entre 5 e 2000."
#: usr/local/www/diag_logs_settings.php:232
#: usr/local/www/diag_logs_settings.php:239
+#: usr/local/www/diag_logs_settings.php:246
msgid "Show log entries in reverse order (newest entries on top)"
msgstr ""
"Mostrar logs de entrada em ordem reversa (entradas mais recentes no topo)"
@@ -7827,6 +9863,7 @@ msgstr "Número de logs de entrada para mostra:"
#: usr/local/www/diag_logs_settings.php:242
#: usr/local/www/diag_logs_settings.php:250
+#: usr/local/www/diag_logs_settings.php:257
msgid "Log packets blocked by the default rule"
msgstr "Pacotes de log bloqueados pela regra padrão"
@@ -7842,6 +9879,7 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:250
#: usr/local/www/diag_logs_settings.php:258
+#: usr/local/www/diag_logs_settings.php:265
msgid "Show raw filter logs"
msgstr "Mostrar filtros de log base"
@@ -7856,6 +9894,7 @@ msgstr ""
#: usr/local/www/diag_logs_settings.php:256
#: usr/local/www/diag_logs_settings.php:267
+#: usr/local/www/diag_logs_settings.php:287
msgid "Disable writing log files to the local RAM disk"
msgstr "Desabilitar gravação de arquivos de log no RAM disk local"
@@ -7908,6 +9947,42 @@ msgstr "Servidores syslog remotos"
#: usr/local/www/vpn_openvpn_server.php:1536
#: usr/local/www/vpn_openvpn_client.php:370
#: usr/local/www/vpn_openvpn_client.php:867
+#: usr/local/www/diag_logs_settings.php:306
+#: usr/local/www/diag_logs_settings.php:310
+#: usr/local/www/diag_logs_settings.php:314
+#: usr/local/www/vpn_ipsec_mobile.php:545
+#: usr/local/www/vpn_ipsec_mobile.php:551
+#: usr/local/www/vpn_ipsec_mobile.php:557
+#: usr/local/www/vpn_ipsec_mobile.php:563
+#: usr/local/www/vpn_ipsec_mobile.php:587
+#: usr/local/www/vpn_ipsec_mobile.php:593
+#: usr/local/www/vpn_openvpn_csc.php:292 usr/local/www/vpn_openvpn_csc.php:476
+#: usr/local/www/vpn_openvpn_csc.php:484 usr/local/www/vpn_openvpn_csc.php:492
+#: usr/local/www/vpn_openvpn_csc.php:500 usr/local/www/vpn_openvpn_csc.php:528
+#: usr/local/www/vpn_openvpn_csc.php:536 usr/local/www/vpn_openvpn_csc.php:624
+#: usr/local/www/vpn_openvpn_csc.php:632 usr/local/www/status_ntpd.php:124
+#: usr/local/www/vpn_openvpn_server.php:423
+#: usr/local/www/vpn_openvpn_server.php:674
+#: usr/local/www/vpn_openvpn_server.php:1422
+#: usr/local/www/vpn_openvpn_server.php:1430
+#: usr/local/www/vpn_openvpn_server.php:1438
+#: usr/local/www/vpn_openvpn_server.php:1446
+#: usr/local/www/vpn_openvpn_server.php:1474
+#: usr/local/www/vpn_openvpn_server.php:1482
+#: usr/local/www/vpn_openvpn_server.php:1570
+#: usr/local/www/vpn_openvpn_server.php:1578
+#: usr/local/www/vpn_openvpn_client.php:378
+#: usr/local/www/vpn_openvpn_client.php:920
+#: usr/local/www/vpn_openvpn_client.php:396
+#: usr/local/www/vpn_openvpn_client.php:939
+#: usr/local/www/vpn_openvpn_server.php:445
+#: usr/local/www/vpn_openvpn_server.php:700
+#: usr/local/www/vpn_openvpn_server.php:1490
+#: usr/local/www/vpn_openvpn_server.php:1498
+#: usr/local/www/vpn_openvpn_server.php:1526
+#: usr/local/www/vpn_openvpn_server.php:1534
+#: usr/local/www/vpn_openvpn_server.php:1622
+#: usr/local/www/vpn_openvpn_server.php:1630
msgid "Server"
msgstr "Servidor"
@@ -7917,46 +9992,55 @@ msgstr "Endereços IP de servidores syslog remotos"
#: usr/local/www/diag_logs_settings.php:300
#: usr/local/www/diag_logs_settings.php:309
+#: usr/local/www/diag_logs_settings.php:329
msgid "System events"
msgstr "Eventos do sistema"
#: usr/local/www/diag_logs_settings.php:302
#: usr/local/www/diag_logs_settings.php:311
+#: usr/local/www/diag_logs_settings.php:331
msgid "Firewall events"
msgstr "Eventos do firewall"
#: usr/local/www/diag_logs_settings.php:304
#: usr/local/www/diag_logs_settings.php:313
+#: usr/local/www/diag_logs_settings.php:333
msgid "DHCP service events"
msgstr "eventos do serviço DHCP"
#: usr/local/www/diag_logs_settings.php:306
#: usr/local/www/diag_logs_settings.php:315
+#: usr/local/www/diag_logs_settings.php:335
msgid "Portal Auth events"
msgstr "Eventos de autenticação do portal"
#: usr/local/www/diag_logs_settings.php:308
#: usr/local/www/diag_logs_settings.php:317
+#: usr/local/www/diag_logs_settings.php:337
msgid "VPN (PPTP, IPsec, OpenVPN) events"
msgstr "Eventos VPN (PPTP, IPsec, OpenVPN)"
#: usr/local/www/diag_logs_settings.php:310
#: usr/local/www/diag_logs_settings.php:319
+#: usr/local/www/diag_logs_settings.php:339
msgid "Gateway Monitor events"
msgstr "Eventos do Monitor de Gateway"
#: usr/local/www/diag_logs_settings.php:312
#: usr/local/www/diag_logs_settings.php:321
+#: usr/local/www/diag_logs_settings.php:341
msgid "Server Load Balancer events"
msgstr "Eventos do Servidor Load Balancer"
#: usr/local/www/diag_logs_settings.php:314
#: usr/local/www/diag_logs_settings.php:323
+#: usr/local/www/diag_logs_settings.php:343
msgid "Wireless events"
msgstr "Eventos Wireless"
#: usr/local/www/diag_logs_settings.php:316
#: usr/local/www/diag_logs_settings.php:307
+#: usr/local/www/diag_logs_settings.php:327
msgid "Everything"
msgstr "Tudo"
@@ -8008,6 +10092,8 @@ msgstr "Últimos %1$s %2$s logs de entrada VPN"
#: usr/local/www/load_balancer_relay_action_edit.php:483
#: usr/local/www/firewall_rules_edit.php:692
#: usr/local/www/diag_logs_vpn.php:175
+#: usr/local/www/load_balancer_relay_action_edit.php:481
+#: usr/local/www/firewall_rules_edit.php:695
msgid "Action"
msgstr "Ação"
@@ -8020,11 +10106,14 @@ msgstr "Ação"
#: usr/local/www/vpn_l2tp_users_edit.php:38
#: usr/local/www/system_usermanager.php:806
#: usr/local/www/diag_logs_vpn.php:176
+#: usr/local/www/system_groupmanager.php:429
+#: usr/local/www/system_usermanager.php:809
msgid "User"
msgstr "Usuário"
#: usr/local/www/diag_nanobsd.php:49 usr/local/www/fbegin.inc:212
-#: usr/local/www/fbegin.inc:230
+#: usr/local/www/fbegin.inc:230 usr/local/www/fbegin.inc:239
+#: usr/local/www/fbegin.inc:231
msgid "NanoBSD"
msgstr "NanoBSD"
@@ -8075,7 +10164,17 @@ msgstr "Ocorreu um erro durante a duplicação do slice. Operação abortada."
#: usr/local/www/load_balancer_virtual_server_edit.php:220
#: usr/local/www/load_balancer_virtual_server_edit.php:233
#: usr/local/www/interfaces.php:2752 usr/local/www/interfaces.php:2761
-#: usr/local/www/diag_nanobsd.php:127
+#: usr/local/www/diag_nanobsd.php:127 usr/local/www/system_routes_edit.php:375
+#: usr/local/www/system_advanced_misc.php:266
+#: usr/local/www/load_balancer_virtual_server_edit.php:199
+#: usr/local/www/load_balancer_virtual_server_edit.php:218
+#: usr/local/www/system_firmware_settings.php:156
+#: usr/local/www/interfaces.php:2740 usr/local/www/interfaces.php:2749
+#: usr/local/www/diag_nanobsd.php:148
+#: usr/local/www/system_firmware_settings.php:165
+#: usr/local/www/system_advanced_misc.php:270
+#: usr/local/www/system_advanced_firewall.php:274
+#: usr/local/www/interfaces.php:2774 usr/local/www/interfaces.php:2783
msgid "NOTE:"
msgstr "NOTA:"
@@ -8088,44 +10187,57 @@ msgstr "NOTA:"
#: usr/local/www/system_advanced_firewall.php:247
#: usr/local/www/system_advanced_misc.php:249
#: usr/local/www/diag_nanobsd.php:129
+#: usr/local/www/system_advanced_misc.php:268
+#: usr/local/www/diag_nanobsd.php:150
+#: usr/local/www/system_advanced_misc.php:272
+#: usr/local/www/system_advanced_firewall.php:276
msgid "The options on this page are intended for use by advanced users only."
msgstr ""
"As opções nesta página são destinados somente para o uso de usuários "
"avançados."
#: usr/local/www/diag_nanobsd.php:136 usr/local/www/diag_nanobsd.php:135
+#: usr/local/www/diag_nanobsd.php:156
msgid "Bootup information"
msgstr "Informação de boot"
#: usr/local/www/diag_nanobsd.php:139 usr/local/www/diag_nanobsd.php:138
+#: usr/local/www/diag_nanobsd.php:159
msgid "NanoBSD Image size"
msgstr "Tamanho da imagem NanoBSD"
#: usr/local/www/diag_nanobsd.php:145 usr/local/www/diag_nanobsd.php:144
+#: usr/local/www/diag_nanobsd.php:165
msgid "Bootup"
msgstr "Bootup"
#: usr/local/www/diag_nanobsd.php:148 usr/local/www/diag_nanobsd.php:147
+#: usr/local/www/diag_nanobsd.php:168
msgid "Bootup slice is currently:"
msgstr "Bootup slice atualmente é:"
#: usr/local/www/diag_nanobsd.php:149 usr/local/www/diag_nanobsd.php:148
+#: usr/local/www/diag_nanobsd.php:169
msgid "This will switch the bootup slice to the alternate slice."
msgstr "Isto irá trocar o boot slice para o slice substituto."
#: usr/local/www/diag_nanobsd.php:159 usr/local/www/diag_nanobsd.php:158
+#: usr/local/www/diag_nanobsd.php:217
msgid "Duplicate bootup slice to alternate"
msgstr "Duplicar bootup slice para alternar"
#: usr/local/www/diag_nanobsd.php:162 usr/local/www/diag_nanobsd.php:161
+#: usr/local/www/diag_nanobsd.php:220
msgid "Duplicate bootup slice"
msgstr "Duplicar bootup slice"
#: usr/local/www/diag_nanobsd.php:165 usr/local/www/diag_nanobsd.php:164
+#: usr/local/www/diag_nanobsd.php:223
msgid "Destination slice:"
msgstr "Fatia de destino:"
#: usr/local/www/diag_nanobsd.php:172 usr/local/www/diag_nanobsd.php:171
+#: usr/local/www/diag_nanobsd.php:230
msgid ""
"This will duplicate the bootup slice to the alternate slice. Use this if "
"you would like to duplicate the known good working boot partition to the "
@@ -8136,15 +10248,18 @@ msgstr ""
"alternativa."
#: usr/local/www/diag_nanobsd.php:182 usr/local/www/diag_nanobsd.php:181
+#: usr/local/www/diag_nanobsd.php:240
msgid "Periodic Data Backup"
msgstr "Cópia de dados periódica"
#: usr/local/www/diag_nanobsd.php:185 usr/local/www/diag_nanobsd.php:184
+#: usr/local/www/diag_nanobsd.php:243
msgid "RRD Backup"
msgstr "RRD Backup"
#: usr/local/www/diag_nanobsd.php:188 usr/local/www/diag_nanobsd.php:205
#: usr/local/www/diag_nanobsd.php:187 usr/local/www/diag_nanobsd.php:204
+#: usr/local/www/diag_nanobsd.php:246 usr/local/www/diag_nanobsd.php:263
msgid "Frequency:"
msgstr "Frequência:"
@@ -8156,16 +10271,25 @@ msgstr "Frequência:"
#: usr/local/www/system_advanced_firewall.php:410
#: usr/local/www/firewall_nat_edit.php:796
#: usr/local/www/vpn_ipsec_phase1.php:825 usr/local/www/diag_nanobsd.php:189
-#: usr/local/www/diag_nanobsd.php:206
+#: usr/local/www/diag_nanobsd.php:206 usr/local/www/system_firmware.php:140
+#: usr/local/www/firewall_nat_edit.php:795
+#: usr/local/www/vpn_ipsec_phase1.php:822 usr/local/www/diag_nanobsd.php:248
+#: usr/local/www/diag_nanobsd.php:265 usr/local/www/system_firmware.php:135
+#: usr/local/www/services_dyndns_edit.php:214
+#: usr/local/www/firewall_nat_edit.php:790
+#: usr/local/www/system_advanced_firewall.php:472
+#: usr/local/www/vpn_ipsec_phase1.php:843
msgid "Disable"
msgstr "Desabilitar"
#: usr/local/www/diag_nanobsd.php:192 usr/local/www/diag_nanobsd.php:209
#: usr/local/www/diag_nanobsd.php:191 usr/local/www/diag_nanobsd.php:208
+#: usr/local/www/diag_nanobsd.php:250 usr/local/www/diag_nanobsd.php:267
msgid "hour"
msgstr "hora"
#: usr/local/www/diag_nanobsd.php:196 usr/local/www/diag_nanobsd.php:195
+#: usr/local/www/diag_nanobsd.php:254
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 "
@@ -8176,10 +10300,12 @@ msgstr ""
"frequente o backup, mais escritas serão feitas na midia."
#: usr/local/www/diag_nanobsd.php:202 usr/local/www/diag_nanobsd.php:201
+#: usr/local/www/diag_nanobsd.php:260
msgid "DHCP Leases Backup"
msgstr "Backup de Concessões DHCP"
#: usr/local/www/diag_nanobsd.php:213 usr/local/www/diag_nanobsd.php:212
+#: usr/local/www/diag_nanobsd.php:271
msgid ""
"This will periodically backup the DHCP leases data so it can be restored "
"automatically on the next boot. Keep in mind that the more frequent the "
@@ -8190,21 +10316,26 @@ msgstr ""
"que quanto mais frequente o backup, mais escritas irão ocorrer na midia."
#: usr/local/www/diag_nanobsd.php:226 usr/local/www/diag_nanobsd.php:225
+#: usr/local/www/diag_nanobsd.php:284
msgid "View upgrade log"
msgstr "Ver log de upgrade"
#: usr/local/www/diag_nanobsd.php:229 usr/local/www/diag_nanobsd.php:228
+#: usr/local/www/diag_nanobsd.php:287
msgid "View previous upgrade log"
msgstr "Ver log de upgrade anterior"
#: usr/local/www/diag_packet_capture.php:38
#: usr/local/www/diag_packet_capture.php:225
#: usr/local/www/diag_packet_capture.php:246
+#: usr/local/www/diag_packet_capture.php:40
+#: usr/local/www/diag_packet_capture.php:293
msgid "Download Capture"
msgstr "Baixar captura"
#: usr/local/www/diag_packet_capture.php:41 usr/local/www/fbegin.inc:210
-#: usr/local/www/fbegin.inc:228
+#: usr/local/www/fbegin.inc:228 usr/local/www/fbegin.inc:237
+#: usr/local/www/diag_packet_capture.php:43 usr/local/www/fbegin.inc:229
msgid "Packet Capture"
msgstr "Captura de pacotes"
@@ -8219,6 +10350,14 @@ msgstr "Captura de pacotes"
#: usr/local/www/diag_packet_capture.php:75
#: usr/local/www/diag_packet_capture.php:240
#: usr/local/www/diag_packet_capture.php:294
+#: usr/local/www/status_dhcpv6_leases.php:408
+#: usr/local/www/status_dhcpv6_leases.php:485
+#: usr/local/www/status_dhcp_leases.php:344
+#: usr/local/www/diag_packet_capture.php:129
+#: usr/local/www/diag_packet_capture.php:287
+#: usr/local/www/diag_packet_capture.php:341
+#: usr/local/www/status_dhcpv6_leases.php:411
+#: usr/local/www/status_dhcpv6_leases.php:488
msgid "Start"
msgstr "Iniciar"
@@ -8228,27 +10367,35 @@ msgstr "Iniciar"
#: usr/local/www/diag_packet_capture.php:82
#: usr/local/www/diag_packet_capture.php:239
#: usr/local/www/diag_packet_capture.php:242
+#: usr/local/www/diag_packet_capture.php:136
+#: usr/local/www/diag_packet_capture.php:286
+#: usr/local/www/diag_packet_capture.php:289
msgid "Stop"
msgstr "Parar"
#: usr/local/www/diag_packet_capture.php:116
#: usr/local/www/diag_packet_capture.php:120
+#: usr/local/www/diag_packet_capture.php:178
msgid "Packet capture"
msgstr "Captura de pacotes"
#: usr/local/www/diag_packet_capture.php:141
#: usr/local/www/diag_packet_capture.php:145
+#: usr/local/www/diag_packet_capture.php:192
msgid "Select the interface on which to capture traffic."
msgstr "Selecione a interface onde capturar o tráfego."
#: usr/local/www/diag_packet_capture.php:145
#: usr/local/www/system_gateways_edit.php:376
#: usr/local/www/diag_packet_capture.php:149
+#: usr/local/www/system_gateways_edit.php:482
+#: usr/local/www/diag_packet_capture.php:196
msgid "Address Family"
msgstr "Família de Endereços"
#: usr/local/www/diag_packet_capture.php:152
#: usr/local/www/diag_packet_capture.php:156
+#: usr/local/www/diag_packet_capture.php:203
msgid ""
"Select the type of traffic to be captured, either Any, IPv4 only or IPv6 "
"only."
@@ -8258,11 +10405,13 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:156
#: usr/local/www/diag_packet_capture.php:176
+#: usr/local/www/diag_packet_capture.php:223
msgid "Host Address"
msgstr "Endereço do Host"
#: usr/local/www/diag_packet_capture.php:159
#: usr/local/www/diag_packet_capture.php:179
+#: usr/local/www/diag_packet_capture.php:226
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."
@@ -8273,6 +10422,7 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:160
#: usr/local/www/diag_packet_capture.php:180
+#: usr/local/www/diag_packet_capture.php:227
msgid ""
"This value can be a domain name or IP address, or subnet in CIDR notation."
msgstr ""
@@ -8281,6 +10431,7 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:161
#: usr/local/www/diag_packet_capture.php:181
+#: usr/local/www/diag_packet_capture.php:228
msgid ""
"If you leave this field blank, all packets on the specified interface will "
"be captured."
@@ -8290,6 +10441,7 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:168
#: usr/local/www/diag_packet_capture.php:188
+#: usr/local/www/diag_packet_capture.php:235
msgid ""
"The port can be either the source or destination port. The packet capture "
"will look for this port in either field."
@@ -8299,16 +10451,19 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:169
#: usr/local/www/diag_packet_capture.php:189
+#: usr/local/www/diag_packet_capture.php:236
msgid "Leave blank if you do not want to filter by port."
msgstr "Deixe em branco se você não desejar filtrar por porta."
#: usr/local/www/diag_packet_capture.php:173
#: usr/local/www/diag_packet_capture.php:193
+#: usr/local/www/diag_packet_capture.php:240
msgid "Packet Length"
msgstr "Tamanho do Pacote"
#: usr/local/www/diag_packet_capture.php:176
#: usr/local/www/diag_packet_capture.php:196
+#: usr/local/www/diag_packet_capture.php:243
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 "
@@ -8323,11 +10478,15 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers_edit.php:94
#: usr/local/www/services_captiveportal_vouchers_edit.php:189
#: usr/local/www/diag_packet_capture.php:200
+#: usr/local/www/services_captiveportal_vouchers_edit.php:92
+#: usr/local/www/services_captiveportal_vouchers_edit.php:187
+#: usr/local/www/diag_packet_capture.php:247
msgid "Count"
msgstr "Contagem"
#: usr/local/www/diag_packet_capture.php:183
#: usr/local/www/diag_packet_capture.php:203
+#: usr/local/www/diag_packet_capture.php:250
msgid ""
"This is the number of packets the packet capture will grab. Default value is "
"100."
@@ -8337,36 +10496,43 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:183
#: usr/local/www/diag_packet_capture.php:203
+#: usr/local/www/diag_packet_capture.php:250
msgid "Enter 0 (zero) for no count limit."
msgstr "Digite 0 (zero) para não ter limite de contagem."
#: usr/local/www/diag_packet_capture.php:186
#: usr/local/www/diag_packet_capture.php:206
+#: usr/local/www/diag_packet_capture.php:253
msgid "Level of Detail"
msgstr "Nível de detalhe"
#: usr/local/www/diag_packet_capture.php:189
#: usr/local/www/diag_packet_capture.php:209
+#: usr/local/www/diag_packet_capture.php:256
msgid "Normal"
msgstr "Normal"
#: usr/local/www/diag_packet_capture.php:190
#: usr/local/www/diag_packet_capture.php:210
+#: usr/local/www/diag_packet_capture.php:257
msgid "Medium"
msgstr "Médio"
#: usr/local/www/diag_packet_capture.php:191
#: usr/local/www/diag_packet_capture.php:211
+#: usr/local/www/diag_packet_capture.php:258
msgid "High"
msgstr "Alto"
#: usr/local/www/diag_packet_capture.php:192
#: usr/local/www/diag_packet_capture.php:212
+#: usr/local/www/diag_packet_capture.php:259
msgid "Full"
msgstr "Total"
#: usr/local/www/diag_packet_capture.php:194
#: usr/local/www/diag_packet_capture.php:214
+#: usr/local/www/diag_packet_capture.php:261
msgid ""
"This is the level of detail that will be displayed after hitting 'Stop' when "
"the packets have been captured."
@@ -8376,6 +10542,7 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:196
#: usr/local/www/diag_packet_capture.php:216
+#: usr/local/www/diag_packet_capture.php:263
msgid ""
"This option does not affect the level of detail when downloading the packet "
"capture."
@@ -8384,11 +10551,13 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:199
#: usr/local/www/diag_packet_capture.php:219
+#: usr/local/www/diag_packet_capture.php:266
msgid "Reverse DNS Lookup"
msgstr "DNS Lookup Reverso"
#: usr/local/www/diag_packet_capture.php:202
#: usr/local/www/diag_packet_capture.php:222
+#: usr/local/www/diag_packet_capture.php:269
msgid ""
"This check box will cause the packet capture to perform a reverse DNS lookup "
"associated with all IP addresses."
@@ -8398,11 +10567,13 @@ msgstr ""
#: usr/local/www/diag_packet_capture.php:203
#: usr/local/www/diag_packet_capture.php:223
+#: usr/local/www/diag_packet_capture.php:270
msgid "This option can cause delays for large packet captures."
msgstr "Esta opção pode causar atrasos na captura de grandes pacotes."
#: usr/local/www/diag_packet_capture.php:226
#: usr/local/www/diag_packet_capture.php:247
+#: usr/local/www/diag_packet_capture.php:294
msgid "The packet capture file was last updated:"
msgstr "A última atualização da captura de pacotes foi:"
@@ -8410,16 +10581,20 @@ msgstr "A última atualização da captura de pacotes foi:"
#: usr/local/www/diag_packet_capture.php:267
#: usr/local/www/diag_packet_capture.php:260
#: usr/local/www/diag_packet_capture.php:296
+#: usr/local/www/diag_packet_capture.php:307
+#: usr/local/www/diag_packet_capture.php:343
msgid "Packet Capture is running."
msgstr "Captura de pacotes está em execução."
#: usr/local/www/diag_packet_capture.php:272
#: usr/local/www/diag_packet_capture.php:301
+#: usr/local/www/diag_packet_capture.php:347
msgid "Packet Capture stopped."
msgstr "Captura de pacotes parado."
#: usr/local/www/diag_packet_capture.php:272
#: usr/local/www/diag_packet_capture.php:301
+#: usr/local/www/diag_packet_capture.php:347
msgid "Packets Captured:"
msgstr "Pacotes capturados:"
@@ -8465,16 +10640,20 @@ msgid "Processing..."
msgstr "Processando..."
#: usr/local/www/crash_reporter.php:108 usr/local/www/crash_reporter.php:110
+#: usr/local/www/crash_reporter.php:112
msgid "Uploading..."
msgstr "Enviando..."
#: usr/local/www/crash_reporter.php:116
#: usr/local/www/services_captiveportal_zones_edit.php:115
#: usr/local/www/crash_reporter.php:120
+#: usr/local/www/services_captiveportal_zones_edit.php:117
+#: usr/local/www/crash_reporter.php:122
msgid "Continue"
msgstr "Continue"
#: usr/local/www/crash_reporter.php:116 usr/local/www/crash_reporter.php:120
+#: usr/local/www/crash_reporter.php:122
msgid " and delete crash report files from local disk."
msgstr "e apagar relatório do disco local."
@@ -8503,13 +10682,21 @@ msgstr "Autenticação falhou."
#: usr/local/www/services_captiveportal.php:893 usr/local/www/fbegin.inc:189
#: usr/local/www/fbegin.inc:207 usr/local/www/services_captiveportal.php:583
#: usr/local/www/services_captiveportal.php:938
-#: usr/local/www/interfaces.php:2505
+#: usr/local/www/interfaces.php:2505 usr/local/www/fbegin.inc:215
+#: usr/local/www/services_captiveportal.php:581
+#: usr/local/www/services_captiveportal.php:934
+#: usr/local/www/interfaces.php:2493
+#: usr/local/www/services_captiveportal.php:575
+#: usr/local/www/services_captiveportal.php:936 usr/local/www/fbegin.inc:206
+#: usr/local/www/interfaces.php:2523
msgid "Authentication"
msgstr "Autenticação"
#: usr/local/www/diag_authentication.php:90
#: usr/local/www/system_authservers.php:82
#: usr/local/www/system_usermanager_settings.php:140
+#: usr/local/www/diag_authentication.php:91
+#: usr/local/www/system_authservers.php:83
msgid "Authentication Server"
msgstr "Servidor de autenticação"
@@ -8548,6 +10735,31 @@ msgstr "Servidor de autenticação"
#: usr/local/www/firewall_aliases_edit.php:473
#: usr/local/www/interfaces.php:1902 usr/local/www/interfaces.php:1967
#: usr/local/www/interfaces.php:2073 usr/local/www/vpn_openvpn_client.php:536
+#: usr/local/www/vpn_pppoe_edit.php:537
+#: usr/local/www/system_usermanager.php:786
+#: usr/local/www/interfaces_ppps_edit.php:511
+#: usr/local/www/firewall_aliases_edit.php:475
+#: usr/local/www/vpn_l2tp_users.php:102
+#: usr/local/www/diag_authentication.php:107
+#: usr/local/www/vpn_pptp_users_edit.php:147 usr/local/www/interfaces.php:1890
+#: usr/local/www/interfaces.php:1955 usr/local/www/interfaces.php:2061
+#: usr/local/www/vpn_openvpn_client.php:554
+#: usr/local/www/vpn_l2tp_users_edit.php:79
+#: usr/local/www/vpn_l2tp_users_edit.php:82
+#: usr/local/www/vpn_l2tp_users_edit.php:155
+#: usr/local/www/widgets/widgets/captive_portal_status.widget.php:97
+#: usr/local/www/vpn_pptp_users.php:99
+#: usr/local/www/vpn_openvpn_client.php:573
+#: usr/local/www/services_dyndns_edit.php:300
+#: usr/local/www/interfaces_ppps_edit.php:194
+#: usr/local/www/interfaces_ppps_edit.php:197
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
+#: usr/local/www/interfaces_ppps_edit.php:517
+#: usr/local/www/vpn_pppoe_edit.php:540
+#: usr/local/www/status_captiveportal.php:148
+#: usr/local/www/interfaces.php:1914 usr/local/www/interfaces.php:1982
+#: usr/local/www/interfaces.php:2091
msgid "Username"
msgstr "Usuário"
@@ -8579,29 +10791,57 @@ msgstr "Usuário"
#: usr/local/www/system_advanced_notifications.php:201
#: usr/local/www/interfaces.php:1908 usr/local/www/interfaces.php:1973
#: usr/local/www/interfaces.php:2079 usr/local/www/vpn_openvpn_client.php:546
+#: usr/local/www/vpn_pppoe_edit.php:538
+#: usr/local/www/interfaces_ppps_edit.php:517
+#: usr/local/www/system_usermanager_passwordmg.php:99
+#: usr/local/www/system_usermanager_passwordmg.php:102
+#: usr/local/www/diag_authentication.php:113
+#: usr/local/www/vpn_pptp_users_edit.php:152 usr/local/www/interfaces.php:1896
+#: usr/local/www/interfaces.php:1961 usr/local/www/interfaces.php:2067
+#: usr/local/www/vpn_openvpn_client.php:564
+#: usr/local/www/vpn_l2tp_users_edit.php:82
+#: usr/local/www/vpn_l2tp_users_edit.php:160
+#: usr/local/www/vpn_openvpn_client.php:583
+#: usr/local/www/services_dyndns_edit.php:309
+#: usr/local/www/interfaces_ppps_edit.php:194
+#: usr/local/www/interfaces_ppps_edit.php:197
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
+#: usr/local/www/interfaces_ppps_edit.php:523
+#: usr/local/www/vpn_pppoe_edit.php:541
+#: usr/local/www/system_usermanager_passwordmg.php:104
+#: usr/local/www/system_usermanager_passwordmg.php:107
+#: usr/local/www/interfaces.php:1920 usr/local/www/interfaces.php:1988
+#: usr/local/www/interfaces.php:2097
msgid "Password"
msgstr "Senha"
#: usr/local/www/diag_authentication.php:120 usr/local/www/diag_smart.php:346
+#: usr/local/www/diag_authentication.php:121
+#: usr/local/www/diag_testport.php:179 usr/local/www/diag_smart.php:367
msgid "Test"
msgstr "Teste"
#: usr/local/www/services_dyndns.php:76 usr/local/www/services_dyndns.php:85
+#: usr/local/www/services_dyndns.php:64
msgid "Dynamic DNS clients"
msgstr "Clientes DNS dinâmicos"
#: usr/local/www/services_dyndns.php:89 usr/local/www/services_rfc2136.php:68
-#: usr/local/www/services_dyndns.php:98
+#: usr/local/www/services_dyndns.php:98 usr/local/www/services_dyndns.php:78
msgid "DynDns"
msgstr "DNS Dinâmico"
#: usr/local/www/services_dyndns.php:90 usr/local/www/services_rfc2136.php:69
-#: usr/local/www/services_dyndns.php:99
+#: usr/local/www/services_dyndns.php:99 usr/local/www/services_dyndns.php:79
msgid "RFC 2136"
msgstr "RFC 2136"
#: usr/local/www/services_dyndns.php:100 usr/local/www/status_services.php:244
-#: usr/local/www/services_dyndns.php:109
+#: usr/local/www/services_dyndns.php:109 usr/local/www/status_services.php:240
+#: usr/local/www/status_services.php:238
+#: usr/local/www/widgets/widgets/dyn_dns_status.widget.php:52
+#: usr/local/www/services_dyndns.php:90
msgid "Service"
msgstr "Serviço"
@@ -8628,10 +10868,27 @@ msgstr "Serviço"
#: usr/local/www/services_dhcp_edit.php:231 usr/local/www/interfaces.php:1690
#: usr/local/www/system.php:114 usr/local/www/system.php:265
#: usr/local/www/services_dhcpv6.php:900
+#: usr/local/www/services_dhcpv6_edit.php:210
+#: usr/local/www/services_captiveportal_hostname_edit.php:174
+#: usr/local/www/services_captiveportal_hostname_edit.php:178
+#: usr/local/www/services_captiveportal_hostname.php:120
+#: usr/local/www/status_dhcp_leases.php:343
+#: usr/local/www/services_dhcp.php:1134
+#: usr/local/www/services_dhcp_edit.php:233 usr/local/www/interfaces.php:1678
+#: usr/local/www/system.php:107 usr/local/www/system.php:258
+#: usr/local/www/services_dhcpv6.php:831 usr/local/www/services_rfc2136.php:80
+#: usr/local/www/services_dhcpv6_edit.php:213
+#: usr/local/www/services_dyndns_edit.php:271
+#: usr/local/www/services_dhcp_edit.php:361
+#: usr/local/www/services_dhcp.php:1153 usr/local/www/services_dhcpv6.php:852
+#: usr/local/www/widgets/widgets/dyn_dns_status.widget.php:53
+#: usr/local/www/services_dyndns.php:91
msgid "Hostname"
msgstr "Hostname"
#: usr/local/www/services_dyndns.php:102 usr/local/www/services_dyndns.php:111
+#: usr/local/www/widgets/widgets/dyn_dns_status.widget.php:54
+#: usr/local/www/services_dyndns.php:92
msgid "Cached IP"
msgstr "IP em cache"
@@ -8640,6 +10897,10 @@ msgstr "IP em cache"
#: usr/local/www/system_advanced_sysctl.php:199
#: usr/local/www/services_captiveportal_zones.php:89
#: usr/local/www/services_dyndns.php:172
+#: usr/local/www/services_captiveportal_zones.php:90
+#: usr/local/www/firewall_virtual_ip.php:227
+#: usr/local/www/firewall_virtual_ip.php:247
+#: usr/local/www/services_dyndns.php:171
msgid "Do you really want to delete this entry?"
msgstr "Você realmente quer apagar essa entrada?"
@@ -8670,74 +10931,84 @@ msgstr "Nenhuma função de callback para getURL"
msgid "Both getURL and XMLHttpRequest are undefined"
msgstr "Ambas getURL e XMLHttpRequest estão indefinidas"
-#: usr/local/www/services_snmp.php:87
+#: usr/local/www/services_snmp.php:87 usr/local/www/services_snmp.php:91
msgid "Invalid character '#' in system location"
msgstr "Caractere '#' inválido no local do sistema"
-#: usr/local/www/services_snmp.php:88
+#: usr/local/www/services_snmp.php:88 usr/local/www/services_snmp.php:92
msgid "Invalid character '#' in system contact"
msgstr "Caractere '#' inválido no contato do sistema"
-#: usr/local/www/services_snmp.php:89
+#: usr/local/www/services_snmp.php:89 usr/local/www/services_snmp.php:93
msgid "Invalid character '#' in read community string"
msgstr "Caractere inválido '#' em ler string da comunidade"
-#: usr/local/www/services_snmp.php:92
+#: usr/local/www/services_snmp.php:92 usr/local/www/services_snmp.php:96
msgid "Community"
msgstr "Comunidade"
-#: usr/local/www/services_snmp.php:96
+#: usr/local/www/services_snmp.php:96 usr/local/www/services_snmp.php:100
msgid "Polling Port"
msgstr "Porta de Polling"
-#: usr/local/www/services_snmp.php:103
+#: usr/local/www/services_snmp.php:103 usr/local/www/services_snmp.php:107
msgid "Invalid character '#' in SNMP trap string"
msgstr "Caractere inválido '#' na string de SNMP trap"
#: usr/local/www/services_snmp.php:106 usr/local/www/services_snmp.php:342
-#: usr/local/www/services_snmp.php:340
+#: usr/local/www/services_snmp.php:340 usr/local/www/services_snmp.php:341
+#: usr/local/www/services_snmp.php:110 usr/local/www/services_snmp.php:351
msgid "Trap server"
msgstr "Servidor Trap"
-#: usr/local/www/services_snmp.php:110
+#: usr/local/www/services_snmp.php:110 usr/local/www/services_snmp.php:114
msgid "Trap server port"
msgstr "Porta do servidor Trap"
#: usr/local/www/services_snmp.php:114 usr/local/www/services_snmp.php:361
-#: usr/local/www/services_snmp.php:359
+#: usr/local/www/services_snmp.php:359 usr/local/www/services_snmp.php:360
+#: usr/local/www/services_snmp.php:118 usr/local/www/services_snmp.php:370
msgid "Trap string"
msgstr "String do Trap"
#: usr/local/www/services_snmp.php:159 usr/local/www/fbegin.inc:134
-#: usr/local/www/fbegin.inc:152
+#: usr/local/www/fbegin.inc:152 usr/local/www/fbegin.inc:160
+#: usr/local/www/fbegin.inc:151 usr/local/www/services_snmp.php:165
msgid "SNMP"
msgstr "SNMP"
#: usr/local/www/services_snmp.php:275 usr/local/www/services_snmp.php:273
+#: usr/local/www/services_snmp.php:274 usr/local/www/services_snmp.php:284
msgid "SNMP Daemon"
msgstr "Daemon SNMP"
#: usr/local/www/services_snmp.php:281 usr/local/www/services_snmp.php:279
+#: usr/local/www/services_snmp.php:280 usr/local/www/services_snmp.php:290
msgid "Polling Port "
msgstr "Porta de Polling"
#: usr/local/www/services_snmp.php:284 usr/local/www/services_snmp.php:282
+#: usr/local/www/services_snmp.php:283 usr/local/www/services_snmp.php:293
msgid "Enter the port to accept polling events on (default 161)"
msgstr "Informe a porta para aceitar eventos de polling (padrão 161)"
#: usr/local/www/services_snmp.php:289 usr/local/www/services_snmp.php:287
+#: usr/local/www/services_snmp.php:288 usr/local/www/services_snmp.php:298
msgid "System location"
msgstr "Localização do sistema"
#: usr/local/www/services_snmp.php:296 usr/local/www/services_snmp.php:294
+#: usr/local/www/services_snmp.php:295 usr/local/www/services_snmp.php:305
msgid "System contact"
msgstr "Contato do sistema"
#: usr/local/www/services_snmp.php:303 usr/local/www/services_snmp.php:301
+#: usr/local/www/services_snmp.php:302 usr/local/www/services_snmp.php:312
msgid "Read Community String"
msgstr "Ler string de comunidade"
#: usr/local/www/services_snmp.php:306 usr/local/www/services_snmp.php:304
+#: usr/local/www/services_snmp.php:305 usr/local/www/services_snmp.php:315
msgid ""
"The community string is like a password, restricting access to querying SNMP "
"to hosts knowing the community string. Use a strong value here to protect "
@@ -8748,47 +11019,58 @@ msgstr ""
"proteger-se contra divulgação de informações não autorizada."
#: usr/local/www/services_snmp.php:335 usr/local/www/services_snmp.php:333
+#: usr/local/www/services_snmp.php:334 usr/local/www/services_snmp.php:344
msgid "SNMP Traps"
msgstr "Traps SNMP"
#: usr/local/www/services_snmp.php:345 usr/local/www/services_snmp.php:343
+#: usr/local/www/services_snmp.php:344 usr/local/www/services_snmp.php:354
msgid "Enter trap server name"
msgstr "Informe o nome do servidor Trap"
#: usr/local/www/services_snmp.php:350 usr/local/www/services_snmp.php:348
+#: usr/local/www/services_snmp.php:349 usr/local/www/services_snmp.php:359
msgid "Trap server port "
msgstr "Porta de Servidor Trap"
#: usr/local/www/services_snmp.php:353 usr/local/www/services_snmp.php:351
+#: usr/local/www/services_snmp.php:352 usr/local/www/services_snmp.php:362
msgid "Enter the port to send the traps to (default 162)"
msgstr "Informe a porta para a qual enviar traps (padrão 162)"
#: usr/local/www/services_snmp.php:358 usr/local/www/services_snmp.php:356
+#: usr/local/www/services_snmp.php:357 usr/local/www/services_snmp.php:367
msgid "Enter the SNMP trap string"
msgstr "Informe a string de Trap SNMP"
#: usr/local/www/services_snmp.php:370 usr/local/www/services_snmp.php:368
+#: usr/local/www/services_snmp.php:369 usr/local/www/services_snmp.php:379
msgid "Modules"
msgstr "Módulos"
#: usr/local/www/services_snmp.php:376 usr/local/www/services_snmp.php:374
+#: usr/local/www/services_snmp.php:375 usr/local/www/services_snmp.php:385
msgid "SNMP Modules"
msgstr "Módulos SNMP"
#: usr/local/www/services_snmp.php:378 usr/local/www/services_snmp.php:376
+#: usr/local/www/services_snmp.php:377 usr/local/www/services_snmp.php:387
msgid "MibII"
msgstr "MibII"
#: usr/local/www/services_snmp.php:380 usr/local/www/services_snmp.php:378
+#: usr/local/www/services_snmp.php:379 usr/local/www/services_snmp.php:389
msgid "Netgraph"
msgstr "Netgraph"
#: usr/local/www/services_snmp.php:382 usr/local/www/license.php:171
-#: usr/local/www/services_snmp.php:380
+#: usr/local/www/services_snmp.php:380 usr/local/www/services_snmp.php:381
+#: usr/local/www/services_snmp.php:391
msgid "PF"
msgstr "PF"
#: usr/local/www/services_snmp.php:384 usr/local/www/services_snmp.php:382
+#: usr/local/www/services_snmp.php:383 usr/local/www/services_snmp.php:393
msgid "Host Resources (Requires MibII)"
msgstr "Recursos de Host (Requer Mibll)"
@@ -8806,6 +11088,8 @@ msgstr ""
#: usr/local/www/headjs.php:143 usr/local/www/firewall_rules.php:315
#: usr/local/www/firewall_rules.php:319 usr/local/www/guiconfig.inc:302
+#: usr/local/www/firewall_rules.php:312 usr/local/www/guiconfig.inc:291
+#: usr/local/www/guiconfig.inc:290 usr/local/www/headjs.php:146
msgid "Apply changes"
msgstr "Aplicar modificações"
@@ -8826,6 +11110,8 @@ msgstr ""
#: usr/local/www/services_wol.php:86 usr/local/www/services_wol_edit.php:90
#: usr/local/www/interfaces.php:541 usr/local/www/services_dhcp_edit.php:129
#: usr/local/www/services_dhcp_edit.php:131 usr/local/www/interfaces.php:611
+#: usr/local/www/interfaces.php:608 usr/local/www/services_dhcp_edit.php:165
+#: usr/local/www/interfaces.php:623
msgid "A valid MAC address must be specified."
msgstr "Um endereço MAC válido deve ser especificado."
@@ -8854,7 +11140,8 @@ msgstr ""
#: usr/local/www/services_wol.php:115 usr/local/www/services_wol.php:127
#: usr/local/www/services_wol_edit.php:112 usr/local/www/diag_backup.php:123
#: usr/local/www/fbegin.inc:142 usr/local/www/fbegin.inc:159
-#: usr/local/www/diag_backup.php:201
+#: usr/local/www/diag_backup.php:201 usr/local/www/fbegin.inc:167
+#: usr/local/www/fbegin.inc:158
msgid "Wake on LAN"
msgstr "Wake on LAN"
@@ -8880,6 +11167,20 @@ msgstr "Escolha em qual interface o host a ser ligado está conectado."
#: usr/local/www/services_dhcp.php:928
#: usr/local/www/services_dhcp_edit.php:108
#: usr/local/www/services_dhcp_edit.php:210 usr/local/www/interfaces.php:1387
+#: usr/local/www/status_interfaces.php:255
+#: usr/local/www/services_captiveportal_mac.php:165
+#: usr/local/www/services_captiveportal_mac_edit.php:96
+#: usr/local/www/services_captiveportal_mac_edit.php:173
+#: usr/local/www/status_dhcp_leases.php:342
+#: usr/local/www/services_dhcp.php:1132
+#: usr/local/www/services_dhcp_edit.php:209 usr/local/www/interfaces.php:1375
+#: usr/local/www/services_dhcp_edit.php:142
+#: usr/local/www/services_dhcp_edit.php:337
+#: usr/local/www/services_dhcp.php:1151
+#: usr/local/www/services_captiveportal_mac_edit.php:180
+#: usr/local/www/status_captiveportal.php:147
+#: usr/local/www/services_captiveportal_mac.php:175
+#: usr/local/www/interfaces.php:1388
msgid "MAC address"
msgstr "Endereço MAC"
@@ -8892,6 +11193,7 @@ msgid "in the following format: xx:xx:xx:xx:xx:xx"
msgstr "no seguinte formato: xx:xx:xx:xx:xx:xx"
#: usr/local/www/services_wol.php:152 usr/local/www/diag_smart.php:244
+#: usr/local/www/diag_smart.php:265
msgid "Send"
msgstr "Enviar"
@@ -8942,6 +11244,13 @@ msgstr "Status: Portal Captive"
#: usr/local/www/status_captiveportal_test.php:70
#: usr/local/www/status_captiveportal_voucher_rolls.php:73
#: usr/local/www/status_captiveportal_vouchers.php:103
+#: usr/local/www/status_captiveportal_vouchers.php:104
+#: usr/local/www/status_captiveportal_test.php:71
+#: usr/local/www/status_captiveportal_voucher_rolls.php:74
+#: usr/local/www/status_captiveportal_expire.php:69
+#: usr/local/www/status_captiveportal_vouchers.php:108
+#: usr/local/www/status_captiveportal.php:106
+#: usr/local/www/status_captiveportal_voucher_rolls.php:75
msgid "Active Users"
msgstr "Usuários ativos"
@@ -8949,6 +11258,13 @@ msgstr "Usuários ativos"
#: usr/local/www/status_captiveportal_test.php:71
#: usr/local/www/status_captiveportal_voucher_rolls.php:74
#: usr/local/www/status_captiveportal_vouchers.php:104
+#: usr/local/www/status_captiveportal_vouchers.php:105
+#: usr/local/www/status_captiveportal_test.php:72
+#: usr/local/www/status_captiveportal_voucher_rolls.php:75
+#: usr/local/www/status_captiveportal_expire.php:70
+#: usr/local/www/status_captiveportal_vouchers.php:109
+#: usr/local/www/status_captiveportal.php:107
+#: usr/local/www/status_captiveportal_voucher_rolls.php:76
msgid "Active Vouchers"
msgstr "Vouchers ativos"
@@ -8959,6 +11275,15 @@ msgstr "Vouchers ativos"
#: usr/local/www/status_captiveportal_voucher_rolls.php:75
#: usr/local/www/status_captiveportal_vouchers.php:105
#: usr/local/www/services_captiveportal_vouchers.php:433
+#: usr/local/www/status_captiveportal_vouchers.php:106
+#: usr/local/www/services_captiveportal_vouchers.php:446
+#: usr/local/www/status_captiveportal_test.php:73
+#: usr/local/www/status_captiveportal_voucher_rolls.php:76
+#: usr/local/www/status_captiveportal_expire.php:71
+#: usr/local/www/services_captiveportal_vouchers.php:455
+#: usr/local/www/status_captiveportal_vouchers.php:110
+#: usr/local/www/status_captiveportal.php:108
+#: usr/local/www/status_captiveportal_voucher_rolls.php:77
msgid "Voucher Rolls"
msgstr "Listas de Voucher"
@@ -8967,29 +11292,44 @@ msgstr "Listas de Voucher"
#: usr/local/www/status_captiveportal_test.php:73
#: usr/local/www/status_captiveportal_voucher_rolls.php:76
#: usr/local/www/status_captiveportal_vouchers.php:106
+#: usr/local/www/status_captiveportal_vouchers.php:107
+#: usr/local/www/status_captiveportal_test.php:74
+#: usr/local/www/status_captiveportal_voucher_rolls.php:77
+#: usr/local/www/status_captiveportal_expire.php:72
+#: usr/local/www/status_captiveportal_vouchers.php:111
+#: usr/local/www/status_captiveportal.php:109
+#: usr/local/www/status_captiveportal_voucher_rolls.php:78
msgid "Test Vouchers"
msgstr "Vouchers de teste"
#: usr/local/www/status_captiveportal.php:135
+#: usr/local/www/status_captiveportal.php:121
msgid "Captive Portal Zone"
msgstr "Zona Captive Portal"
#: usr/local/www/status_captiveportal.php:157
+#: usr/local/www/status_captiveportal.php:143
msgid "Captiveportal status"
msgstr "Status Captive Portal"
#: usr/local/www/status_captiveportal.php:164
#: usr/local/www/status_captiveportal.php:167
#: usr/local/www/widgets/widgets/captive_portal_status.widget.php:97
+#: usr/local/www/widgets/widgets/captive_portal_status.widget.php:99
+#: usr/local/www/status_captiveportal.php:150
+#: usr/local/www/status_captiveportal.php:153
msgid "Session start"
msgstr "Início de sessão"
#: usr/local/www/status_captiveportal.php:165
#: usr/local/www/widgets/widgets/captive_portal_status.widget.php:98
+#: usr/local/www/widgets/widgets/captive_portal_status.widget.php:100
+#: usr/local/www/status_captiveportal.php:151
msgid "Last activity"
msgstr "Última atividade"
#: usr/local/www/status_captiveportal.php:181
+#: usr/local/www/status_captiveportal.php:168
msgid "Do you really want to disconnect this client?"
msgstr "Você realmente deseja desconectar esse cliente?"
@@ -9002,14 +11342,21 @@ msgstr "Você realmente deseja desconectar esse cliente?"
#: usr/local/www/status_interfaces.php:147
#: usr/local/www/status_interfaces.php:162
#: usr/local/www/status_interfaces.php:177
+#: usr/local/www/status_interfaces.php:135
+#: usr/local/www/status_interfaces.php:150
+#: usr/local/www/status_interfaces.php:165
+#: usr/local/www/status_interfaces.php:180
+#: usr/local/www/status_captiveportal.php:168
msgid "Disconnect"
msgstr "Desconectar"
#: usr/local/www/status_captiveportal.php:198
+#: usr/local/www/status_captiveportal.php:185
msgid "Don't show last activity"
msgstr "Não exibir a última atividade"
#: usr/local/www/status_captiveportal.php:201
+#: usr/local/www/status_captiveportal.php:188
msgid "Show last activity"
msgstr "Exibir última atividade"
@@ -9036,6 +11383,7 @@ msgid "ERROR: Could not find any suitable disks for installation."
msgstr "ERRO: Não pôde encontrar um disco apropriado para instalação."
#: usr/local/www/interfaces_bridge.php:64
+#: usr/local/www/interfaces_bridge.php:68
msgid "This bridge cannot be deleted because it is assigned as an interface."
msgstr ""
"Essa ponte não pode ser removida porque ela está atribuída como uma "
@@ -9068,13 +11416,32 @@ msgstr ""
#: usr/local/www/diag_backup.php:186
#: usr/local/www/services_captiveportal.php:443
#: usr/local/www/interfaces_bridge_edit.php:235
-#: usr/local/www/interfaces.php:1113
+#: usr/local/www/interfaces.php:1113 usr/local/www/fbegin.inc:188
+#: usr/local/www/fbegin.inc:291 usr/local/www/status_interfaces.php:60
+#: usr/local/www/services_captiveportal.php:441
+#: usr/local/www/diag_logs_filter_summary.php:47
+#: usr/local/www/interfaces.php:1101
+#: usr/local/www/services_captiveportal_zones.php:54
+#: usr/local/www/interfaces_wireless_edit.php:147
+#: usr/local/www/interfaces_qinq.php:89
+#: usr/local/www/interfaces_vlan_edit.php:142
+#: usr/local/www/interfaces_ppps_edit.php:384
+#: usr/local/www/interfaces_lagg_edit.php:133
+#: usr/local/www/interfaces_lagg.php:86 usr/local/www/interfaces_vlan.php:84
+#: usr/local/www/interfaces_gif_edit.php:133
+#: usr/local/www/interfaces_bridge.php:83
+#: usr/local/www/interfaces_wireless.php:78
+#: usr/local/www/interfaces_bridge_edit.php:236 usr/local/www/fbegin.inc:179
+#: usr/local/www/fbegin.inc:283 usr/local/www/interfaces_gre.php:81
+#: usr/local/www/interfaces_gif.php:80 usr/local/www/interfaces.php:1115
msgid "Interfaces"
msgstr "Interfaces"
#: usr/local/www/interfaces_bridge.php:77
#: usr/local/www/interfaces_bridge_edit.php:226
#: usr/local/www/interfaces_bridge_edit.php:235
+#: usr/local/www/interfaces_bridge.php:83
+#: usr/local/www/interfaces_bridge_edit.php:236
msgid "Bridge"
msgstr "Ponte"
@@ -9084,6 +11451,16 @@ msgstr "Ponte"
#: usr/local/www/interfaces_vlan.php:90 usr/local/www/interfaces_lagg.php:94
#: usr/local/www/interfaces_ppps.php:90 usr/local/www/interfaces_qinq.php:98
#: usr/local/www/interfaces_wireless.php:88
+#: usr/local/www/interfaces_groups.php:76 usr/local/www/interfaces_qinq.php:99
+#: usr/local/www/interfaces_ppps.php:91 usr/local/www/interfaces_bridge.php:90
+#: usr/local/www/interfaces_lagg.php:95 usr/local/www/interfaces_gre.php:90
+#: usr/local/www/interfaces_wireless.php:89
+#: usr/local/www/interfaces_assign.php:396
+#: usr/local/www/interfaces_vlan.php:91 usr/local/www/interfaces_gif.php:89
+#: usr/local/www/interfaces_qinq.php:102 usr/local/www/interfaces_lagg.php:99
+#: usr/local/www/interfaces_vlan.php:97 usr/local/www/interfaces_bridge.php:96
+#: usr/local/www/interfaces_wireless.php:91
+#: usr/local/www/interfaces_gre.php:94 usr/local/www/interfaces_gif.php:93
msgid "Interface assignments"
msgstr "Atribuições de interface"
@@ -9093,6 +11470,17 @@ msgstr "Atribuições de interface"
#: usr/local/www/interfaces_vlan.php:91 usr/local/www/interfaces_lagg.php:95
#: usr/local/www/interfaces_ppps.php:91 usr/local/www/interfaces_qinq.php:99
#: usr/local/www/interfaces_wireless.php:89
+#: usr/local/www/interfaces_groups.php:77
+#: usr/local/www/interfaces_qinq.php:100 usr/local/www/interfaces_ppps.php:92
+#: usr/local/www/interfaces_bridge.php:91 usr/local/www/interfaces_lagg.php:96
+#: usr/local/www/interfaces_gre.php:91
+#: usr/local/www/interfaces_wireless.php:90
+#: usr/local/www/interfaces_assign.php:397
+#: usr/local/www/interfaces_vlan.php:92 usr/local/www/interfaces_gif.php:90
+#: usr/local/www/interfaces_qinq.php:103 usr/local/www/interfaces_lagg.php:100
+#: usr/local/www/interfaces_vlan.php:98 usr/local/www/interfaces_bridge.php:97
+#: usr/local/www/interfaces_wireless.php:92
+#: usr/local/www/interfaces_gre.php:95 usr/local/www/interfaces_gif.php:94
msgid "Interface Groups"
msgstr "Grupos de Interface"
@@ -9102,6 +11490,18 @@ msgstr "Grupos de Interface"
#: usr/local/www/interfaces_vlan.php:93 usr/local/www/interfaces_lagg.php:97
#: usr/local/www/interfaces_ppps.php:93 usr/local/www/interfaces_qinq.php:101
#: usr/local/www/interfaces_wireless.php:91
+#: usr/local/www/interfaces_groups.php:79
+#: usr/local/www/interfaces_qinq.php:102 usr/local/www/interfaces_ppps.php:94
+#: usr/local/www/interfaces_bridge.php:93 usr/local/www/interfaces_lagg.php:98
+#: usr/local/www/interfaces_gre.php:93
+#: usr/local/www/interfaces_wireless.php:92
+#: usr/local/www/interfaces_assign.php:399
+#: usr/local/www/interfaces_vlan.php:94 usr/local/www/interfaces_gif.php:92
+#: usr/local/www/interfaces_qinq.php:105 usr/local/www/interfaces_lagg.php:102
+#: usr/local/www/interfaces_vlan.php:100
+#: usr/local/www/interfaces_bridge.php:99
+#: usr/local/www/interfaces_wireless.php:94
+#: usr/local/www/interfaces_gre.php:97 usr/local/www/interfaces_gif.php:96
msgid "VLANs"
msgstr "VLANs"
@@ -9111,6 +11511,18 @@ msgstr "VLANs"
#: usr/local/www/interfaces_vlan.php:94 usr/local/www/interfaces_lagg.php:98
#: usr/local/www/interfaces_ppps.php:94 usr/local/www/interfaces_qinq.php:102
#: usr/local/www/interfaces_wireless.php:92
+#: usr/local/www/interfaces_groups.php:80
+#: usr/local/www/interfaces_qinq.php:103 usr/local/www/interfaces_ppps.php:95
+#: usr/local/www/interfaces_bridge.php:94 usr/local/www/interfaces_lagg.php:99
+#: usr/local/www/interfaces_gre.php:94
+#: usr/local/www/interfaces_wireless.php:93
+#: usr/local/www/interfaces_assign.php:400
+#: usr/local/www/interfaces_vlan.php:95 usr/local/www/interfaces_gif.php:93
+#: usr/local/www/interfaces_qinq.php:106 usr/local/www/interfaces_lagg.php:103
+#: usr/local/www/interfaces_vlan.php:101
+#: usr/local/www/interfaces_bridge.php:100
+#: usr/local/www/interfaces_wireless.php:95
+#: usr/local/www/interfaces_gre.php:98 usr/local/www/interfaces_gif.php:97
msgid "QinQs"
msgstr "QinQs"
@@ -9122,6 +11534,19 @@ msgstr "QinQs"
#: usr/local/www/interfaces_ppps_edit.php:378
#: usr/local/www/interfaces_qinq.php:103
#: usr/local/www/interfaces_wireless.php:93
+#: usr/local/www/interfaces_groups.php:81
+#: usr/local/www/interfaces_qinq.php:104 usr/local/www/interfaces_ppps.php:96
+#: usr/local/www/interfaces_bridge.php:95
+#: usr/local/www/interfaces_lagg.php:100 usr/local/www/interfaces_gre.php:95
+#: usr/local/www/interfaces_wireless.php:94
+#: usr/local/www/interfaces_assign.php:401
+#: usr/local/www/interfaces_vlan.php:96 usr/local/www/interfaces_gif.php:94
+#: usr/local/www/interfaces_qinq.php:107
+#: usr/local/www/interfaces_ppps_edit.php:384
+#: usr/local/www/interfaces_lagg.php:104 usr/local/www/interfaces_vlan.php:102
+#: usr/local/www/interfaces_bridge.php:101
+#: usr/local/www/interfaces_wireless.php:96
+#: usr/local/www/interfaces_gre.php:99 usr/local/www/interfaces_gif.php:98
msgid "PPPs"
msgstr "PPPs"
@@ -9133,6 +11558,19 @@ msgstr "PPPs"
#: usr/local/www/interfaces_vlan.php:96 usr/local/www/interfaces_lagg.php:100
#: usr/local/www/interfaces_ppps.php:96 usr/local/www/interfaces_qinq.php:104
#: usr/local/www/interfaces_wireless.php:94
+#: usr/local/www/interfaces_groups.php:82
+#: usr/local/www/interfaces_qinq.php:105 usr/local/www/interfaces_ppps.php:97
+#: usr/local/www/interfaces_bridge.php:96
+#: usr/local/www/interfaces_lagg.php:101 usr/local/www/interfaces_gre.php:96
+#: usr/local/www/interfaces_wireless.php:95
+#: usr/local/www/interfaces_assign.php:402
+#: usr/local/www/interfaces_vlan.php:97 usr/local/www/interfaces_gif.php:95
+#: usr/local/www/interfaces_qinq.php:108 usr/local/www/interfaces_lagg.php:105
+#: usr/local/www/interfaces_vlan.php:103
+#: usr/local/www/interfaces_bridge.php:102
+#: usr/local/www/interfaces_wireless.php:97
+#: usr/local/www/interfaces_gre.php:81 usr/local/www/interfaces_gre.php:100
+#: usr/local/www/interfaces_gif.php:99
msgid "GRE"
msgstr "GRE"
@@ -9144,6 +11582,20 @@ msgstr "GRE"
#: usr/local/www/interfaces_vlan.php:97 usr/local/www/interfaces_lagg.php:101
#: usr/local/www/interfaces_ppps.php:97 usr/local/www/interfaces_qinq.php:105
#: usr/local/www/interfaces_wireless.php:95
+#: usr/local/www/interfaces_groups.php:83
+#: usr/local/www/interfaces_qinq.php:106 usr/local/www/interfaces_ppps.php:98
+#: usr/local/www/interfaces_bridge.php:97
+#: usr/local/www/interfaces_lagg.php:102 usr/local/www/interfaces_gre.php:97
+#: usr/local/www/interfaces_wireless.php:96
+#: usr/local/www/interfaces_assign.php:403
+#: usr/local/www/interfaces_vlan.php:98 usr/local/www/interfaces_gif.php:96
+#: usr/local/www/interfaces_qinq.php:109 usr/local/www/interfaces_lagg.php:106
+#: usr/local/www/interfaces_vlan.php:104
+#: usr/local/www/interfaces_gif_edit.php:133
+#: usr/local/www/interfaces_bridge.php:103
+#: usr/local/www/interfaces_wireless.php:98
+#: usr/local/www/interfaces_gre.php:101 usr/local/www/interfaces_gif.php:80
+#: usr/local/www/interfaces_gif.php:100
msgid "GIF"
msgstr "GIF"
@@ -9153,6 +11605,18 @@ msgstr "GIF"
#: usr/local/www/interfaces_vlan.php:98 usr/local/www/interfaces_lagg.php:102
#: usr/local/www/interfaces_ppps.php:98 usr/local/www/interfaces_qinq.php:106
#: usr/local/www/interfaces_wireless.php:96
+#: usr/local/www/interfaces_groups.php:84
+#: usr/local/www/interfaces_qinq.php:107 usr/local/www/interfaces_ppps.php:99
+#: usr/local/www/interfaces_bridge.php:98
+#: usr/local/www/interfaces_lagg.php:103 usr/local/www/interfaces_gre.php:98
+#: usr/local/www/interfaces_wireless.php:97
+#: usr/local/www/interfaces_assign.php:404
+#: usr/local/www/interfaces_vlan.php:99 usr/local/www/interfaces_gif.php:97
+#: usr/local/www/interfaces_qinq.php:110 usr/local/www/interfaces_lagg.php:107
+#: usr/local/www/interfaces_vlan.php:105
+#: usr/local/www/interfaces_bridge.php:104
+#: usr/local/www/interfaces_wireless.php:99
+#: usr/local/www/interfaces_gre.php:102 usr/local/www/interfaces_gif.php:101
msgid "Bridges"
msgstr "Pontes"
@@ -9164,6 +11628,20 @@ msgstr "Pontes"
#: usr/local/www/interfaces_lagg_edit.php:120
#: usr/local/www/interfaces_ppps.php:99 usr/local/www/interfaces_qinq.php:107
#: usr/local/www/interfaces_wireless.php:97
+#: usr/local/www/interfaces_groups.php:85
+#: usr/local/www/interfaces_qinq.php:108 usr/local/www/interfaces_ppps.php:100
+#: usr/local/www/interfaces_bridge.php:99
+#: usr/local/www/interfaces_lagg.php:104 usr/local/www/interfaces_gre.php:99
+#: usr/local/www/interfaces_wireless.php:98
+#: usr/local/www/interfaces_assign.php:405
+#: usr/local/www/interfaces_vlan.php:100 usr/local/www/interfaces_gif.php:98
+#: usr/local/www/interfaces_qinq.php:111
+#: usr/local/www/interfaces_lagg_edit.php:133
+#: usr/local/www/interfaces_lagg.php:86 usr/local/www/interfaces_lagg.php:108
+#: usr/local/www/interfaces_vlan.php:106
+#: usr/local/www/interfaces_bridge.php:105
+#: usr/local/www/interfaces_wireless.php:100
+#: usr/local/www/interfaces_gre.php:103 usr/local/www/interfaces_gif.php:102
msgid "LAGG"
msgstr "LAGG"
@@ -9173,14 +11651,24 @@ msgstr "LAGG"
#: usr/local/www/load_balancer_pool_edit.php:257
#: usr/local/www/system_groupmanager.php:317
#: usr/local/www/load_balancer_pool_edit.php:274
+#: usr/local/www/interfaces_groups.php:96
+#: usr/local/www/interfaces_bridge.php:109
+#: usr/local/www/interfaces_lagg.php:114
+#: usr/local/www/load_balancer_pool_edit.php:272
+#: usr/local/www/interfaces_lagg.php:118
+#: usr/local/www/interfaces_bridge.php:115
msgid "Members"
msgstr "Membros"
#: usr/local/www/interfaces_bridge.php:135
+#: usr/local/www/interfaces_bridge.php:136
+#: usr/local/www/interfaces_bridge.php:142
msgid "Do you really want to delete this bridge?"
msgstr "Você realmente quer apagar essa ponte?"
#: usr/local/www/interfaces_bridge.php:146
+#: usr/local/www/interfaces_bridge.php:147
+#: usr/local/www/interfaces_bridge.php:153
msgid "Here you can configure bridging of interfaces."
msgstr "Aqui você pode configurar as pontes de interfaces."
@@ -9246,12 +11734,14 @@ msgstr "Você deve selecionar pelo menos 2 interfaces membro para uma ponte."
#: usr/local/www/interfaces_bridge_edit.php:147
#: usr/local/www/interfaces_bridge_edit.php:155
+#: usr/local/www/interfaces_bridge_edit.php:157
msgid "Bridging a wireless interface is only possible in hostap mode."
msgstr ""
"Fazer uma ponte com uma interface sem fio somente é possível no modo hostap."
#: usr/local/www/interfaces_bridge_edit.php:149
#: usr/local/www/interfaces_bridge_edit.php:157
+#: usr/local/www/interfaces_bridge_edit.php:159
msgid ""
"Span interface cannot be part of the bridge. Remove the span interface from "
"bridge members to continue."
@@ -9265,47 +11755,68 @@ msgstr ""
#: usr/local/www/interfaces_vlan_edit.php:121
#: usr/local/www/interfaces_lagg_edit.php:101
#: usr/local/www/interfaces_bridge_edit.php:215
+#: usr/local/www/interfaces_vlan_edit.php:124
+#: usr/local/www/interfaces_lagg_edit.php:114
+#: usr/local/www/interfaces_gif_edit.php:114
+#: usr/local/www/interfaces_bridge_edit.php:217
msgid "Error occured creating interface, please retry."
msgstr "Um erro ocorreu ao criar a interface. Por favor, tente novamente."
#: usr/local/www/interfaces_bridge_edit.php:253
#: usr/local/www/interfaces_bridge_edit.php:262
+#: usr/local/www/interfaces_bridge_edit.php:263
+#: usr/local/www/interfaces_bridge_edit.php:264
msgid "Bridge configuration"
msgstr "Configuração de ponte"
#: usr/local/www/interfaces_bridge_edit.php:256
#: usr/local/www/interfaces_lagg_edit.php:86
#: usr/local/www/interfaces_bridge_edit.php:265
+#: usr/local/www/interfaces_bridge_edit.php:266
+#: usr/local/www/interfaces_lagg_edit.php:88
+#: usr/local/www/interfaces_bridge_edit.php:267
msgid "Member interfaces"
msgstr "Interfaces membro"
#: usr/local/www/interfaces_bridge_edit.php:269
#: usr/local/www/interfaces_bridge_edit.php:278
+#: usr/local/www/interfaces_bridge_edit.php:279
+#: usr/local/www/interfaces_bridge_edit.php:280
msgid "Interfaces participating in the bridge."
msgstr "Interfaces participando da ponte."
#: usr/local/www/interfaces_bridge_edit.php:285
#: usr/local/www/interfaces_bridge_edit.php:294
+#: usr/local/www/interfaces_bridge_edit.php:295
+#: usr/local/www/interfaces_bridge_edit.php:296
msgid "RSTP/STP"
msgstr "RSTP/STP"
#: usr/local/www/interfaces_bridge_edit.php:288
#: usr/local/www/interfaces_bridge_edit.php:297
+#: usr/local/www/interfaces_bridge_edit.php:298
+#: usr/local/www/interfaces_bridge_edit.php:299
msgid "Enable spanning tree options for this bridge."
msgstr "Habilitar opções de árvore expansível para essa ponte."
#: usr/local/www/interfaces_bridge_edit.php:304
#: usr/local/www/interfaces_bridge_edit.php:313
+#: usr/local/www/interfaces_bridge_edit.php:314
+#: usr/local/www/interfaces_bridge_edit.php:315
msgid "Protocol used for spanning tree."
msgstr "Protocolo usado para árvore expansível."
#: usr/local/www/interfaces_bridge_edit.php:306
#: usr/local/www/interfaces_bridge_edit.php:315
+#: usr/local/www/interfaces_bridge_edit.php:316
+#: usr/local/www/interfaces_bridge_edit.php:317
msgid "STP interfaces"
msgstr "Interfaces STP"
#: usr/local/www/interfaces_bridge_edit.php:320
#: usr/local/www/interfaces_bridge_edit.php:329
+#: usr/local/www/interfaces_bridge_edit.php:330
+#: usr/local/www/interfaces_bridge_edit.php:331
msgid ""
"Enable Spanning Tree Protocol on interface. The if_bridge(4) driver has "
"support for the IEEE 802.1D Spanning Tree Protocol (STP). STP is used to "
@@ -9317,6 +11828,8 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:326
#: usr/local/www/interfaces_bridge_edit.php:335
+#: usr/local/www/interfaces_bridge_edit.php:336
+#: usr/local/www/interfaces_bridge_edit.php:337
msgid "Valid time"
msgstr "Tempo válido"
@@ -9340,11 +11853,33 @@ msgstr "Tempo válido"
#: usr/local/www/interfaces.php:2114 usr/local/www/vpn_ipsec_phase1.php:774
#: usr/local/www/vpn_ipsec_phase1.php:844
#: usr/local/www/services_dhcpv6.php:692 usr/local/www/services_dhcpv6.php:702
+#: usr/local/www/services_dhcp.php:868 usr/local/www/services_dhcp.php:878
+#: usr/local/www/interfaces_bridge_edit.php:348
+#: usr/local/www/interfaces_bridge_edit.php:357
+#: usr/local/www/interfaces_bridge_edit.php:426
+#: usr/local/www/vpn_ipsec_phase2.php:744 usr/local/www/interfaces.php:1983
+#: usr/local/www/interfaces.php:2102 usr/local/www/vpn_ipsec_phase1.php:771
+#: usr/local/www/vpn_ipsec_phase1.php:841
+#: usr/local/www/services_dhcpv6.php:623 usr/local/www/services_dhcpv6.php:633
+#: usr/local/www/services_dhcp_edit.php:434
+#: usr/local/www/services_dhcp_edit.php:444
+#: usr/local/www/services_dhcp.php:882 usr/local/www/services_dhcp.php:892
+#: usr/local/www/services_dhcpv6.php:640 usr/local/www/services_dhcpv6.php:650
+#: usr/local/www/interfaces_bridge_edit.php:339
+#: usr/local/www/interfaces_bridge_edit.php:349
+#: usr/local/www/interfaces_bridge_edit.php:358
+#: usr/local/www/interfaces_bridge_edit.php:427
+#: usr/local/www/vpn_ipsec_phase1.php:792
+#: usr/local/www/vpn_ipsec_phase1.php:862
+#: usr/local/www/vpn_ipsec_phase2.php:765 usr/local/www/interfaces.php:2010
+#: usr/local/www/interfaces.php:2132
msgid "seconds"
msgstr "segundos"
#: usr/local/www/interfaces_bridge_edit.php:331
#: usr/local/www/interfaces_bridge_edit.php:340
+#: usr/local/www/interfaces_bridge_edit.php:341
+#: usr/local/www/interfaces_bridge_edit.php:342
msgid ""
"Set the time that a Spanning Tree Protocol configuration is valid. The "
"default is 20 seconds. The minimum is 6 seconds and the maximum is 40 "
@@ -9355,11 +11890,15 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:336
#: usr/local/www/interfaces_bridge_edit.php:345
+#: usr/local/www/interfaces_bridge_edit.php:346
+#: usr/local/www/interfaces_bridge_edit.php:347
msgid "Forward time"
msgstr "Tempo de reenvio"
#: usr/local/www/interfaces_bridge_edit.php:341
#: usr/local/www/interfaces_bridge_edit.php:350
+#: usr/local/www/interfaces_bridge_edit.php:351
+#: usr/local/www/interfaces_bridge_edit.php:352
msgid ""
"Set the time that must pass before an interface begins forwarding packets "
"when Spanning Tree is enabled. The default is 15 seconds. The minimum is 4 "
@@ -9371,11 +11910,15 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:345
#: usr/local/www/interfaces_bridge_edit.php:354
+#: usr/local/www/interfaces_bridge_edit.php:355
+#: usr/local/www/interfaces_bridge_edit.php:356
msgid "Hello time"
msgstr "Hello time"
#: usr/local/www/interfaces_bridge_edit.php:350
#: usr/local/www/interfaces_bridge_edit.php:359
+#: usr/local/www/interfaces_bridge_edit.php:360
+#: usr/local/www/interfaces_bridge_edit.php:361
msgid ""
"Set the time between broadcasting of Spanning Tree Protocol configuration "
"messages. The hello time may only be changed when operating in legacy STP "
@@ -9389,6 +11932,8 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:359
#: usr/local/www/interfaces_bridge_edit.php:368
+#: usr/local/www/interfaces_bridge_edit.php:369
+#: usr/local/www/interfaces_bridge_edit.php:370
msgid ""
"Set the bridge priority for Spanning Tree. The default is 32768. The "
"minimum is 0 and the maximum is 61440."
@@ -9398,11 +11943,15 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:363
#: usr/local/www/interfaces_bridge_edit.php:372
+#: usr/local/www/interfaces_bridge_edit.php:373
+#: usr/local/www/interfaces_bridge_edit.php:374
msgid "Hold count"
msgstr "Contagem de espera"
#: usr/local/www/interfaces_bridge_edit.php:368
#: usr/local/www/interfaces_bridge_edit.php:377
+#: usr/local/www/interfaces_bridge_edit.php:378
+#: usr/local/www/interfaces_bridge_edit.php:379
msgid ""
"Set the transmit hold count for Spanning Tree. This is the num- ber of "
"packets transmitted before being rate limited. The default is 6. The "
@@ -9422,11 +11971,15 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:386
#: usr/local/www/interfaces_bridge_edit.php:395
+#: usr/local/www/interfaces_bridge_edit.php:396
+#: usr/local/www/interfaces_bridge_edit.php:397
msgid "Path cost"
msgstr "Custo do caminho"
#: usr/local/www/interfaces_bridge_edit.php:395
#: usr/local/www/interfaces_bridge_edit.php:404
+#: usr/local/www/interfaces_bridge_edit.php:405
+#: usr/local/www/interfaces_bridge_edit.php:406
msgid ""
"Set the Spanning Tree path cost of interface to value. The default is "
"calculated from the link speed. To change a previously selected path cost "
@@ -9440,16 +11993,22 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:404
#: usr/local/www/interfaces_bridge_edit.php:413
+#: usr/local/www/interfaces_bridge_edit.php:414
+#: usr/local/www/interfaces_bridge_edit.php:415
msgid "Cache size"
msgstr "Tamanho do Cache"
#: usr/local/www/interfaces_bridge_edit.php:406
#: usr/local/www/interfaces_bridge_edit.php:415
+#: usr/local/www/interfaces_bridge_edit.php:416
+#: usr/local/www/interfaces_bridge_edit.php:417
msgid "entries"
msgstr "entradas"
#: usr/local/www/interfaces_bridge_edit.php:408
#: usr/local/www/interfaces_bridge_edit.php:417
+#: usr/local/www/interfaces_bridge_edit.php:418
+#: usr/local/www/interfaces_bridge_edit.php:419
msgid ""
"Set the size of the bridge address cache to size.\tThe default is .100 "
"entries."
@@ -9459,11 +12018,15 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:414
#: usr/local/www/interfaces_bridge_edit.php:423
+#: usr/local/www/interfaces_bridge_edit.php:424
+#: usr/local/www/interfaces_bridge_edit.php:425
msgid "Cache entry expire time"
msgstr "Tempo de expiração de entrada do Cache"
#: usr/local/www/interfaces_bridge_edit.php:418
#: usr/local/www/interfaces_bridge_edit.php:427
+#: usr/local/www/interfaces_bridge_edit.php:428
+#: usr/local/www/interfaces_bridge_edit.php:429
msgid ""
"Set the timeout of address cache entries to this number of seconds. If "
"seconds is zero, then address cache entries will not be expired. The default "
@@ -9475,11 +12038,15 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:425
#: usr/local/www/interfaces_bridge_edit.php:434
+#: usr/local/www/interfaces_bridge_edit.php:435
+#: usr/local/www/interfaces_bridge_edit.php:436
msgid "Span port"
msgstr "Porta Span"
#: usr/local/www/interfaces_bridge_edit.php:439
#: usr/local/www/interfaces_bridge_edit.php:448
+#: usr/local/www/interfaces_bridge_edit.php:449
+#: usr/local/www/interfaces_bridge_edit.php:450
msgid ""
"Add the interface named by interface as a span port on the bridge. Span "
"ports transmit a copy of every frame received by the bridge. This is most "
@@ -9493,16 +12060,22 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:448
#: usr/local/www/interfaces_bridge_edit.php:457
+#: usr/local/www/interfaces_bridge_edit.php:458
+#: usr/local/www/interfaces_bridge_edit.php:459
msgid "The span interface cannot be part of the bridge member interfaces."
msgstr "A interface span não pode ser parte das interfaces membros da ponte."
#: usr/local/www/interfaces_bridge_edit.php:453
#: usr/local/www/interfaces_bridge_edit.php:462
+#: usr/local/www/interfaces_bridge_edit.php:463
+#: usr/local/www/interfaces_bridge_edit.php:464
msgid "Edge ports"
msgstr "Portas Edge"
#: usr/local/www/interfaces_bridge_edit.php:467
#: usr/local/www/interfaces_bridge_edit.php:476
+#: usr/local/www/interfaces_bridge_edit.php:477
+#: usr/local/www/interfaces_bridge_edit.php:478
msgid ""
"Set interface as an edge port. An edge port connects directly to end "
"stations and cannot create bridging loops in the network; this allows it to "
@@ -9514,11 +12087,15 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:473
#: usr/local/www/interfaces_bridge_edit.php:482
+#: usr/local/www/interfaces_bridge_edit.php:483
+#: usr/local/www/interfaces_bridge_edit.php:484
msgid "Auto Edge ports"
msgstr "Portas Edge Auto"
#: usr/local/www/interfaces_bridge_edit.php:487
#: usr/local/www/interfaces_bridge_edit.php:496
+#: usr/local/www/interfaces_bridge_edit.php:497
+#: usr/local/www/interfaces_bridge_edit.php:498
msgid ""
"Allow interface to automatically detect edge status. This is the default "
"for all interfaces added to a bridge."
@@ -9528,16 +12105,22 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:492
#: usr/local/www/interfaces_bridge_edit.php:501
+#: usr/local/www/interfaces_bridge_edit.php:502
+#: usr/local/www/interfaces_bridge_edit.php:503
msgid "This will disable the autoedge status of interfaces."
msgstr "Isso irá desabilitar o status edge automático das interfaces."
#: usr/local/www/interfaces_bridge_edit.php:496
#: usr/local/www/interfaces_bridge_edit.php:505
+#: usr/local/www/interfaces_bridge_edit.php:506
+#: usr/local/www/interfaces_bridge_edit.php:507
msgid "PTP ports"
msgstr "Portas PTP"
#: usr/local/www/interfaces_bridge_edit.php:510
#: usr/local/www/interfaces_bridge_edit.php:519
+#: usr/local/www/interfaces_bridge_edit.php:520
+#: usr/local/www/interfaces_bridge_edit.php:521
msgid ""
"Set the interface as a point-to-point link. This is required for straight "
"transitions to forwarding and should be enabled on a direct link to another "
@@ -9549,11 +12132,15 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:516
#: usr/local/www/interfaces_bridge_edit.php:525
+#: usr/local/www/interfaces_bridge_edit.php:526
+#: usr/local/www/interfaces_bridge_edit.php:527
msgid "Auto PTP ports"
msgstr "Portas PTP Auto"
#: usr/local/www/interfaces_bridge_edit.php:530
#: usr/local/www/interfaces_bridge_edit.php:539
+#: usr/local/www/interfaces_bridge_edit.php:540
+#: usr/local/www/interfaces_bridge_edit.php:541
msgid ""
"Automatically detect the point-to-point status on interface by checking the "
"full duplex link status. This is the default for interfaces added to the "
@@ -9565,6 +12152,8 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:536
#: usr/local/www/interfaces_bridge_edit.php:545
+#: usr/local/www/interfaces_bridge_edit.php:546
+#: usr/local/www/interfaces_bridge_edit.php:547
msgid ""
"The interfaces selected here will be removed from default autoedge status."
msgstr ""
@@ -9573,11 +12162,15 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:540
#: usr/local/www/interfaces_bridge_edit.php:549
+#: usr/local/www/interfaces_bridge_edit.php:550
+#: usr/local/www/interfaces_bridge_edit.php:551
msgid "Sticky ports"
msgstr "Portas Sticky"
#: usr/local/www/interfaces_bridge_edit.php:554
#: usr/local/www/interfaces_bridge_edit.php:563
+#: usr/local/www/interfaces_bridge_edit.php:564
+#: usr/local/www/interfaces_bridge_edit.php:565
msgid ""
"Mark an interface as a \"sticky\" interface. Dynamically learned address "
"entries are treated as static once entered into the cache. Sticky entries "
@@ -9591,11 +12184,15 @@ msgstr ""
#: usr/local/www/interfaces_bridge_edit.php:561
#: usr/local/www/interfaces_bridge_edit.php:570
+#: usr/local/www/interfaces_bridge_edit.php:571
+#: usr/local/www/interfaces_bridge_edit.php:572
msgid "Private ports"
msgstr "Portas privadas"
#: usr/local/www/interfaces_bridge_edit.php:575
#: usr/local/www/interfaces_bridge_edit.php:584
+#: usr/local/www/interfaces_bridge_edit.php:585
+#: usr/local/www/interfaces_bridge_edit.php:586
msgid ""
"Mark an interface as a \"private\" interface. A private interface does not "
"forward any traffic to any other port that is also a private interface."
@@ -9603,7 +12200,7 @@ msgstr ""
"Marca uma interface como \"privada\". A interface privada não encaminha "
"nenhum tráfego para nenhuma outra porta que também é uma interface privada."
-#: usr/local/www/interfaces_gif.php:64
+#: usr/local/www/interfaces_gif.php:64 usr/local/www/interfaces_gif.php:68
msgid ""
"This gif TUNNEL cannot be deleted because it is still being used as an "
"interface."
@@ -9612,18 +12209,23 @@ msgstr ""
"interface."
#: usr/local/www/interfaces_gif.php:107 usr/local/www/interfaces_gre.php:108
+#: usr/local/www/interfaces_gre.php:109 usr/local/www/interfaces_gif.php:108
+#: usr/local/www/interfaces_gre.php:113 usr/local/www/interfaces_gif.php:112
msgid "Tunnel to..."
msgstr "Túnel para..."
-#: usr/local/www/interfaces_gif.php:123
+#: usr/local/www/interfaces_gif.php:123 usr/local/www/interfaces_gif.php:124
+#: usr/local/www/interfaces_gif.php:128
msgid "Do you really want to delete this gif tunnel?"
msgstr "Você realmente quer apagar esse túnel gif?"
-#: usr/local/www/interfaces_gif.php:134
+#: usr/local/www/interfaces_gif.php:134 usr/local/www/interfaces_gif.php:135
+#: usr/local/www/interfaces_gif.php:139
msgid "GIF tunnels are configured here."
msgstr "Túneis GIF são configurados aqui."
#: usr/local/www/interfaces_gif_edit.php:72
+#: usr/local/www/interfaces_gif_edit.php:75
msgid ""
"Parent interface,Local address, Remote tunnel address, Remote tunnel "
"network, Local tunnel address"
@@ -9633,16 +12235,20 @@ msgstr ""
#: usr/local/www/interfaces_gif_edit.php:78
#: usr/local/www/interfaces_gre_edit.php:80
+#: usr/local/www/interfaces_gif_edit.php:81
msgid "The tunnel local and tunnel remote fields must have valid IP addresses."
msgstr "Os campos túnel local e remoto devem conter endereços IP válidos."
#: usr/local/www/interfaces_gif_edit.php:87
+#: usr/local/www/interfaces_gif_edit.php:95
#, php-format
msgid "A gif with the network %s is already defined."
msgstr "Um gif com a rede %s já foi definido."
#: usr/local/www/interfaces_gif_edit.php:136
#: usr/local/www/interfaces_gif_edit.php:137
+#: usr/local/www/interfaces_gif_edit.php:138
+#: usr/local/www/interfaces_gif_edit.php:146
msgid "GIF configuration"
msgstr "Configuração GIF"
@@ -9656,11 +12262,24 @@ msgstr "Configuração GIF"
#: usr/local/www/interfaces_wireless_edit.php:84
#: usr/local/www/interfaces_wireless_edit.php:159
#: usr/local/www/interfaces_gif_edit.php:140
+#: usr/local/www/interfaces_vlan_edit.php:154
+#: usr/local/www/interfaces_qinq_edit.php:289
+#: usr/local/www/interfaces_gif_edit.php:141
+#: usr/local/www/interfaces_lagg_edit.php:135
+#: usr/local/www/interfaces_gre_edit.php:142
+#: usr/local/www/interfaces_wireless_edit.php:86
+#: usr/local/www/interfaces_wireless_edit.php:161
+#: usr/local/www/interfaces_vlan_edit.php:157
+#: usr/local/www/interfaces_lagg_edit.php:148
+#: usr/local/www/interfaces_gif_edit.php:149
+#: usr/local/www/interfaces_qinq_edit.php:292
msgid "Parent interface"
msgstr "Interface pai"
#: usr/local/www/interfaces_gif_edit.php:156
#: usr/local/www/interfaces_gif_edit.php:157
+#: usr/local/www/interfaces_gif_edit.php:158
+#: usr/local/www/interfaces_gif_edit.php:169
msgid ""
"The interface here servers as the local address to be used for the gif "
"tunnel."
@@ -9669,30 +12288,42 @@ msgstr ""
#: usr/local/www/interfaces_gif_edit.php:159
#: usr/local/www/interfaces_gif_edit.php:160
+#: usr/local/www/interfaces_gif_edit.php:161
+#: usr/local/www/interfaces_gif_edit.php:172
msgid "gif remote address"
msgstr "endereço gif remoto"
#: usr/local/www/interfaces_gif_edit.php:163
#: usr/local/www/interfaces_gif_edit.php:164
+#: usr/local/www/interfaces_gif_edit.php:165
+#: usr/local/www/interfaces_gif_edit.php:176
msgid "Peer address where encapsulated gif packets will be sent. "
msgstr "Endereços peer onde pacotes gif encapsulados serão enviados."
#: usr/local/www/interfaces_gif_edit.php:166
#: usr/local/www/interfaces_gif_edit.php:167
+#: usr/local/www/interfaces_gif_edit.php:168
+#: usr/local/www/interfaces_gif_edit.php:179
msgid "gif tunnel local address"
msgstr "endereço local do túnel gif"
#: usr/local/www/interfaces_gif_edit.php:170
#: usr/local/www/interfaces_gif_edit.php:171
+#: usr/local/www/interfaces_gif_edit.php:172
+#: usr/local/www/interfaces_gif_edit.php:183
msgid "Local gif tunnel endpoint"
msgstr "Ponto final de túnel gif local"
#: usr/local/www/interfaces_gif_edit.php:173
#: usr/local/www/interfaces_gif_edit.php:174
+#: usr/local/www/interfaces_gif_edit.php:175
+#: usr/local/www/interfaces_gif_edit.php:186
msgid "gif tunnel remote address "
msgstr "endereço remoto de túnel gif "
#: usr/local/www/interfaces_gif_edit.php:188
+#: usr/local/www/interfaces_gif_edit.php:189
+#: usr/local/www/interfaces_gif_edit.php:200
msgid ""
"Remote gif address endpoint. The subnet part is used for determining the "
"network that is tunnelled."
@@ -9701,10 +12332,14 @@ msgstr ""
"determinar a rede que está sendo usada no túnel."
#: usr/local/www/interfaces_gif_edit.php:191
+#: usr/local/www/interfaces_gif_edit.php:192
+#: usr/local/www/interfaces_gif_edit.php:203
msgid "Route caching "
msgstr "Cache de rota"
#: usr/local/www/interfaces_gif_edit.php:195
+#: usr/local/www/interfaces_gif_edit.php:196
+#: usr/local/www/interfaces_gif_edit.php:207
msgid ""
"Specify if route caching can be enabled. Be careful with these settings on "
"dynamic networks. "
@@ -9713,10 +12348,14 @@ msgstr ""
"configurações em redes dinâmicas."
#: usr/local/www/interfaces_gif_edit.php:198
+#: usr/local/www/interfaces_gif_edit.php:199
+#: usr/local/www/interfaces_gif_edit.php:210
msgid "ECN friendly behaviour"
msgstr "Comportamento amigável ECN"
#: usr/local/www/interfaces_gif_edit.php:203
+#: usr/local/www/interfaces_gif_edit.php:204
+#: usr/local/www/interfaces_gif_edit.php:215
msgid ""
"Note that the ECN friendly behavior violates RFC2893. This should be used "
"in mutual agreement with the peer."
@@ -9724,7 +12363,7 @@ msgstr ""
"Note que o comportamento amigável ECN viola a RFC2893. Isso deve ser usado "
"em comum acordo com o peer."
-#: usr/local/www/interfaces_gre.php:65
+#: usr/local/www/interfaces_gre.php:65 usr/local/www/interfaces_gre.php:69
msgid ""
"This GRE tunnel cannot be deleted because it is still being used as an "
"interface."
@@ -9732,11 +12371,13 @@ msgstr ""
"Esse túbel GRE não pode ser apagado porque ele ainda está sendo usado como "
"uma interface."
-#: usr/local/www/interfaces_gre.php:124
+#: usr/local/www/interfaces_gre.php:124 usr/local/www/interfaces_gre.php:125
+#: usr/local/www/interfaces_gre.php:129
msgid "Do you really want to delete this GRE tunnel?"
msgstr "Você realmente quer apagar esse túnel GRE?"
-#: usr/local/www/interfaces_gre.php:133
+#: usr/local/www/interfaces_gre.php:133 usr/local/www/interfaces_gre.php:134
+#: usr/local/www/interfaces_gre.php:138
msgid ""
"Here you can configure Generic Routing Encapsulation (GRE - RFC 2784) "
"tunnels."
@@ -9766,32 +12407,39 @@ msgid "A GRE tunnel with the network %s is already defined."
msgstr "Uma GRE com a rede %s já foi definida."
#: usr/local/www/interfaces_gre_edit.php:138
+#: usr/local/www/interfaces_gre_edit.php:139
msgid "GRE configuration"
msgstr "Configuração GRE"
#: usr/local/www/interfaces_gre_edit.php:158
+#: usr/local/www/interfaces_gre_edit.php:159
msgid ""
"The interface here serves as the local address to be used for the GRE tunnel."
msgstr ""
"A interface aqui serve como o endereço local para ser usado para o túnel GRE."
#: usr/local/www/interfaces_gre_edit.php:161
+#: usr/local/www/interfaces_gre_edit.php:162
msgid "GRE remote address"
msgstr "Endereço remoto GRE"
#: usr/local/www/interfaces_gre_edit.php:165
+#: usr/local/www/interfaces_gre_edit.php:166
msgid "Peer address where encapsulated GRE packets will be sent "
msgstr "Endereço peer onde os pacotes GRE encapsulados serão enviados "
#: usr/local/www/interfaces_gre_edit.php:168
+#: usr/local/www/interfaces_gre_edit.php:169
msgid "GRE tunnel local address "
msgstr "Endereço local de túnel GRE"
#: usr/local/www/interfaces_gre_edit.php:172
+#: usr/local/www/interfaces_gre_edit.php:173
msgid "Local GRE tunnel endpoint"
msgstr "Ponta fim de túnel GRE local"
#: usr/local/www/interfaces_gre_edit.php:175
+#: usr/local/www/interfaces_gre_edit.php:176
msgid "GRE tunnel remote address "
msgstr "Endereço remoto de túnel GRE "
@@ -9861,15 +12509,23 @@ msgstr ""
#: usr/local/www/system_usermanager.php:439
#: usr/local/www/system_usermanager.php:788
#: usr/local/www/system_groupmanager_addprivs.php:167
+#: usr/local/www/system_usermanager.php:789
+#: usr/local/www/system_gateway_groups.php:111
+#: usr/local/www/system_authservers.php:427
+#: usr/local/www/system_routes.php:121
+#: usr/local/www/system_authservers.php:434
msgid "Groups"
msgstr "Grupos"
#: usr/local/www/interfaces_groups.php:127
#: usr/local/www/system_groupmanager.php:443
+#: usr/local/www/system_groupmanager.php:446
+#: usr/local/www/interfaces_groups.php:128
msgid "edit group"
msgstr "editar grupo"
#: usr/local/www/interfaces_groups.php:128
+#: usr/local/www/interfaces_groups.php:129
msgid ""
"Do you really want to delete this group? All elements that still use it will "
"become invalid (e.g. filter rules)!"
@@ -9878,14 +12534,17 @@ msgstr ""
"serão invalidados (e.g. regras de filtro)!"
#: usr/local/www/interfaces_groups.php:128
+#: usr/local/www/interfaces_groups.php:129
msgid "delete ifgroupentry"
msgstr "apagar ifgroupentry"
#: usr/local/www/interfaces_groups.php:140
+#: usr/local/www/interfaces_groups.php:141
msgid "add a new group"
msgstr "adicionar novo grupo"
#: usr/local/www/interfaces_groups.php:148
+#: usr/local/www/interfaces_groups.php:149
msgid ""
"Interface Groups allow you to create rules that apply to multiple interfaces "
"without duplicating the rules. If you remove members from an interface "
@@ -9896,14 +12555,17 @@ msgstr ""
"interface, as regras do grupo não mais serão aplicadas àquela interface."
#: usr/local/www/interfaces_groups_edit.php:71
+#: usr/local/www/interfaces_groups_edit.php:72
msgid "Group name already exists!"
msgstr "Nome do grupo já existe!"
#: usr/local/www/interfaces_groups_edit.php:74
+#: usr/local/www/interfaces_groups_edit.php:75
msgid "Only letters A-Z are allowed as the group name."
msgstr "Somente as letras de A-Z são permitidas como nome do grupo."
#: usr/local/www/interfaces_groups_edit.php:248
+#: usr/local/www/interfaces_groups_edit.php:249
msgid "Interface Groups Edit"
msgstr "Edição de Grupos de Interface"
@@ -9915,32 +12577,44 @@ msgstr "Edição de Grupos de Interface"
#: usr/local/www/system_groupmanager.php:117
#: usr/local/www/system_gateway_groups_edit.php:169
#: usr/local/www/system_gateway_groups_edit.php:172
+#: usr/local/www/system_gateway_groups_edit.php:228
+#: usr/local/www/system_gateway_groups_edit.php:231
+#: usr/local/www/system_gateway_groups.php:121
+#: usr/local/www/interfaces_groups_edit.php:252
+#: usr/local/www/status_gateway_groups.php:75
msgid "Group Name"
msgstr "Nome do Grupo"
#: usr/local/www/interfaces_groups_edit.php:255
+#: usr/local/www/interfaces_groups_edit.php:256
msgid "No numbers or spaces are allowed. Only characters in a-zA-Z"
msgstr "Não são permitidos números e espaços. Somente caracteres de a-z, A-Z"
#: usr/local/www/interfaces_groups_edit.php:269
#: usr/local/www/interfaces_qinq_edit.php:347
+#: usr/local/www/interfaces_qinq_edit.php:348
+#: usr/local/www/interfaces_groups_edit.php:270
+#: usr/local/www/interfaces_qinq_edit.php:351
msgid "Member (s)"
msgstr "Membro(s)"
#: usr/local/www/firewall_aliases.php:103
#: usr/local/www/firewall_aliases.php:106
+#: usr/local/www/firewall_aliases.php:107
#, php-format
msgid "Cannot delete alias. Currently in use by %s"
msgstr "Não é possível excluir este alias. Atualmente em uso por %s"
#: usr/local/www/firewall_aliases.php:160
#: usr/local/www/firewall_aliases.php:163
+#: usr/local/www/firewall_aliases.php:167
msgid "The alias list has been changed."
msgstr "A lista de alias foi alterada."
#: usr/local/www/firewall_aliases.php:166
#: usr/local/www/services_igmpproxy.php:97
#: usr/local/www/firewall_aliases.php:169
+#: usr/local/www/firewall_aliases.php:189
msgid "Values"
msgstr "Valores"
@@ -9959,6 +12633,7 @@ msgstr "editar alias"
#: usr/local/www/firewall_aliases.php:205
#: usr/local/www/firewall_aliases.php:208
+#: usr/local/www/firewall_aliases.php:256
msgid ""
"Do you really want to delete this alias? All elements that still use it will "
"become invalid (e.g. filter rules)!"
@@ -9974,11 +12649,13 @@ msgstr "excluir alias"
#: usr/local/www/firewall_aliases.php:221
#: usr/local/www/firewall_aliases.php:224
+#: usr/local/www/firewall_aliases.php:275
msgid "Bulk import aliases from list"
msgstr "Importação em massa de alias da lista"
#: usr/local/www/firewall_aliases.php:229
#: usr/local/www/firewall_aliases.php:232
+#: usr/local/www/firewall_aliases.php:284
msgid ""
"Aliases act as placeholders for real hosts, networks or ports. They can be "
"used to minimize the number of changes that have to be made if a host, "
@@ -10060,6 +12737,8 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:605
#: usr/local/www/firewall_aliases_edit.php:456
#: usr/local/www/firewall_aliases_edit.php:610
+#: usr/local/www/firewall_aliases_edit.php:458
+#: usr/local/www/firewall_aliases_edit.php:613
msgid "Network(s)"
msgstr "Rede(s)"
@@ -10068,6 +12747,7 @@ msgstr "Rede(s)"
#: usr/local/www/services_unbound_acls.php:237
#: usr/local/www/services_igmpproxy_edit.php:226
#: usr/local/www/firewall_aliases_edit.php:457
+#: usr/local/www/firewall_aliases_edit.php:459
msgid "CIDR"
msgstr "CIDR"
@@ -10077,6 +12757,9 @@ msgstr "CIDR"
#: usr/local/www/firewall_aliases_edit.php:459
#: usr/local/www/firewall_aliases_edit.php:609
#: usr/local/www/firewall_aliases_edit.php:619
+#: usr/local/www/firewall_aliases_edit.php:461
+#: usr/local/www/firewall_aliases_edit.php:612
+#: usr/local/www/firewall_aliases_edit.php:622
msgid "Host(s)"
msgstr "Host(s)"
@@ -10089,6 +12772,13 @@ msgstr "Host(s)"
#: usr/local/www/services_unbound.php:348
#: usr/local/www/firewall_aliases_edit.php:460
#: usr/local/www/diag_states_summary.php:139
+#: usr/local/www/vpn_pppoe_edit.php:539 usr/local/www/services_dnsmasq.php:246
+#: usr/local/www/services_dnsmasq.php:334
+#: usr/local/www/firewall_aliases_edit.php:462
+#: usr/local/www/firewall_aliases.php:176
+#: usr/local/www/diag_states_summary.php:141
+#: usr/local/www/vpn_pppoe_edit.php:542 usr/local/www/services_dnsmasq.php:271
+#: usr/local/www/services_dnsmasq.php:359
msgid "IP"
msgstr "IP"
@@ -10096,6 +12786,8 @@ msgstr "IP"
#: usr/local/www/firewall_aliases_edit.php:606
#: usr/local/www/firewall_aliases_edit.php:461
#: usr/local/www/firewall_aliases_edit.php:611
+#: usr/local/www/firewall_aliases_edit.php:463
+#: usr/local/www/firewall_aliases_edit.php:614
msgid "Port(s)"
msgstr "Porta(s)"
@@ -10105,6 +12797,10 @@ msgstr "Porta(s)"
#: usr/local/www/firewall_aliases_edit.php:463
#: usr/local/www/firewall_aliases_edit.php:613
#: usr/local/www/services_dhcp.php:845 usr/local/www/services_dhcpv6.php:828
+#: usr/local/www/firewall_aliases_edit.php:465
+#: usr/local/www/firewall_aliases_edit.php:616
+#: usr/local/www/services_dhcp.php:1042 usr/local/www/services_dhcpv6.php:759
+#: usr/local/www/services_dhcp.php:1055 usr/local/www/services_dhcpv6.php:776
msgid "URL"
msgstr "URL"
@@ -10112,16 +12808,20 @@ msgstr "URL"
#: usr/local/www/firewall_aliases_edit.php:609
#: usr/local/www/firewall_aliases_edit.php:464
#: usr/local/www/firewall_aliases_edit.php:614
+#: usr/local/www/firewall_aliases_edit.php:466
+#: usr/local/www/firewall_aliases_edit.php:617
msgid "URL Table"
msgstr "Tabela URL"
#: usr/local/www/firewall_aliases_edit.php:462
#: usr/local/www/firewall_aliases_edit.php:465
+#: usr/local/www/firewall_aliases_edit.php:467
msgid "Update Freq."
msgstr "Atualizar Freq."
#: usr/local/www/firewall_aliases_edit.php:464
#: usr/local/www/firewall_aliases_edit.php:467
+#: usr/local/www/firewall_aliases_edit.php:469
msgid ""
"Networks are specified in CIDR format. Select the CIDR mask that pertains "
"to each entry. /32 specifies a single IPv4 host, /128 specifies a single "
@@ -10149,6 +12849,7 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:466
#: usr/local/www/firewall_aliases_edit.php:469
+#: usr/local/www/firewall_aliases_edit.php:471
msgid ""
"Enter as many ports as you wish. Port ranges can be expressed by seperating "
"with a colon."
@@ -10158,6 +12859,7 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:467
#: usr/local/www/firewall_aliases_edit.php:470
+#: usr/local/www/firewall_aliases_edit.php:472
#, php-format
msgid ""
"Enter as many URLs as you wish. After saving %s will download the URL and "
@@ -10170,6 +12872,7 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:468
#: usr/local/www/firewall_aliases_edit.php:471
+#: usr/local/www/firewall_aliases_edit.php:473
#, php-format
msgid ""
"Enter a single URL containing a large number of IPs and/or Subnets. After "
@@ -10186,21 +12889,26 @@ msgstr ""
#: usr/local/www/firewall_aliases_edit.php:607
#: usr/local/www/firewall_aliases_edit.php:474
#: usr/local/www/firewall_aliases_edit.php:612
+#: usr/local/www/firewall_aliases_edit.php:476
+#: usr/local/www/firewall_aliases_edit.php:615
msgid "OpenVPN Users"
msgstr "Usuários OpenVPN"
#: usr/local/www/firewall_aliases_edit.php:472
#: usr/local/www/firewall_aliases_edit.php:475
+#: usr/local/www/firewall_aliases_edit.php:477
msgid "Enter as many usernames as you wish."
msgstr "Insira quantos usuários você desejar."
#: usr/local/www/firewall_aliases_edit.php:573
#: usr/local/www/firewall_aliases_edit.php:578
+#: usr/local/www/firewall_aliases_edit.php:581
msgid "Alias Edit"
msgstr "Editar Alias"
#: usr/local/www/firewall_aliases_edit.php:620
#: usr/local/www/firewall_aliases_edit.php:625
+#: usr/local/www/firewall_aliases_edit.php:628
msgid "Item information"
msgstr "Informações do Item"
@@ -10208,6 +12916,10 @@ msgstr "Informações do Item"
#: usr/local/www/services_dnsmasq_edit.php:260
#: usr/local/www/system_certmanager.php:782
#: usr/local/www/firewall_aliases_edit.php:670
+#: usr/local/www/services_dnsmasq_edit.php:261
+#: usr/local/www/services_router_advertisements.php:343
+#: usr/local/www/firewall_aliases_edit.php:673
+#: usr/local/www/system_certmanager.php:807
msgid "remove this entry"
msgstr "remova essa entrada"
@@ -10225,6 +12937,14 @@ msgstr "remova essa entrada"
#: usr/local/www/firewall_nat_npt_edit.php:145
#: usr/local/www/firewall_nat_out_edit.php:313
#: usr/local/www/diag_backup.php:188 usr/local/www/firewall_nat_edit.php:445
+#: usr/local/www/fbegin.inc:137 usr/local/www/firewall_nat_out.php:294
+#: usr/local/www/firewall_nat_1to1_edit.php:221
+#: usr/local/www/firewall_nat_npt_edit.php:144
+#: usr/local/www/firewall_nat.php:165 usr/local/www/firewall_nat_edit.php:444
+#: usr/local/www/firewall_virtual_ip.php:248
+#: usr/local/www/firewall_virtual_ip.php:268
+#: usr/local/www/firewall_nat_edit.php:439 usr/local/www/fbegin.inc:129
+#: usr/local/www/firewall_nat_out_edit.php:317
msgid "NAT"
msgstr "NAT"
@@ -10235,11 +12955,14 @@ msgstr "NAT"
#: usr/local/www/firewall_nat_npt.php:93
#: usr/local/www/firewall_nat_out.php:310
#: usr/local/www/firewall_nat_1to1_edit.php:223
+#: usr/local/www/firewall_nat_out.php:311
+#: usr/local/www/firewall_nat_1to1_edit.php:221
+#: usr/local/www/firewall_nat.php:187
msgid "1:1"
msgstr "1:1"
#: usr/local/www/firewall_nat_1to1.php:87 usr/local/www/firewall_nat.php:175
-#: usr/local/www/firewall_nat_npt.php:87
+#: usr/local/www/firewall_nat_npt.php:87 usr/local/www/firewall_nat.php:180
msgid "The NAT configuration has been changed"
msgstr "A configuração NAT foi modificada"
@@ -10249,6 +12972,9 @@ msgstr "A configuração NAT foi modificada"
#: usr/local/www/firewall_nat.php:181 usr/local/www/firewall_nat_npt.php:92
#: usr/local/www/firewall_nat_out.php:309
#: usr/local/www/firewall_nat_edit.php:445
+#: usr/local/www/firewall_nat_out.php:310 usr/local/www/firewall_nat.php:165
+#: usr/local/www/firewall_nat.php:186 usr/local/www/firewall_nat_edit.php:444
+#: usr/local/www/firewall_nat_edit.php:439
msgid "Port Forward"
msgstr "Encaminhamento de Portas"
@@ -10260,6 +12986,9 @@ msgstr "Encaminhamento de Portas"
#: usr/local/www/firewall_nat_out.php:293
#: usr/local/www/firewall_nat_out.php:311
#: usr/local/www/firewall_nat_out_edit.php:313
+#: usr/local/www/firewall_nat_out.php:294
+#: usr/local/www/firewall_nat_out.php:312 usr/local/www/firewall_nat.php:188
+#: usr/local/www/firewall_nat_out_edit.php:317
msgid "Outbound"
msgstr "Saída"
@@ -10269,6 +12998,9 @@ msgstr "Saída"
#: usr/local/www/firewall_nat_npt_edit.php:140
#: usr/local/www/firewall_nat_out.php:312
#: usr/local/www/firewall_nat_npt_edit.php:145
+#: usr/local/www/firewall_nat_out.php:313
+#: usr/local/www/firewall_nat_npt_edit.php:144
+#: usr/local/www/firewall_nat.php:189
msgid "NPt"
msgstr "NPt"
@@ -10280,6 +13012,8 @@ msgstr "IP externo"
#: usr/local/www/firewall_nat_1to1_edit.php:328
#: usr/local/www/status_upnp.php:87
#: usr/local/www/firewall_nat_1to1_edit.php:335
+#: usr/local/www/firewall_nat_1to1_edit.php:333
+#: usr/local/www/status_upnp.php:88
msgid "Internal IP"
msgstr "IP interno"
@@ -10300,13 +13034,18 @@ msgstr "adicionar regra"
#: usr/local/www/firewall_nat.php:310 usr/local/www/firewall_nat_npt.php:157
#: usr/local/www/firewall_rules.php:430 usr/local/www/firewall_rules.php:459
#: usr/local/www/firewall_rules.php:487 usr/local/www/firewall_rules.php:773
+#: usr/local/www/firewall_nat.php:323 usr/local/www/firewall_rules.php:423
+#: usr/local/www/firewall_rules.php:452 usr/local/www/firewall_rules.php:480
+#: usr/local/www/firewall_rules.php:766
msgid "edit rule"
msgstr "editar regra"
#: usr/local/www/firewall_nat_1to1.php:160 usr/local/www/services_dhcp.php:923
#: usr/local/www/firewall_nat_npt.php:158
#: usr/local/www/services_dhcpv6.php:836 usr/local/www/services_dhcp.php:961
-#: usr/local/www/services_dhcpv6.php:931
+#: usr/local/www/services_dhcpv6.php:931 usr/local/www/services_dhcp.php:1165
+#: usr/local/www/services_dhcpv6.php:862 usr/local/www/services_dhcp.php:1189
+#: usr/local/www/services_dhcpv6.php:883
msgid "Do you really want to delete this mapping?"
msgstr "Você realmente deseja remover este mapeamento?"
@@ -10314,6 +13053,8 @@ msgstr "Você realmente deseja remover este mapeamento?"
#: usr/local/www/firewall_rules.php:779 usr/local/www/firewall_nat.php:313
#: usr/local/www/firewall_nat_npt.php:158
#: usr/local/www/firewall_nat_out.php:450 usr/local/www/firewall_rules.php:776
+#: usr/local/www/firewall_nat_out.php:451 usr/local/www/firewall_nat.php:326
+#: usr/local/www/firewall_rules.php:769 usr/local/www/firewall_nat_out.php:448
msgid "delete rule"
msgstr "excluir regra"
@@ -10341,6 +13082,7 @@ msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:109
#: usr/local/www/firewall_nat_out_edit.php:125
+#: usr/local/www/firewall_nat_out_edit.php:129
#, php-format
msgid ""
"Invalid characters detected (%s). Please remove invalid characters and save "
@@ -10355,11 +13097,13 @@ msgstr "Sub-rede externa"
#: usr/local/www/firewall_nat_1to1_edit.php:117
#: usr/local/www/firewall_nat_edit.php:190
+#: usr/local/www/firewall_nat_edit.php:195
msgid "Source address"
msgstr "Endereço de origem"
#: usr/local/www/firewall_nat_1to1_edit.php:121
#: usr/local/www/firewall_nat_edit.php:194
+#: usr/local/www/firewall_nat_edit.php:199
msgid "Destination address"
msgstr "Endereço de destino"
@@ -10376,6 +13120,11 @@ msgstr "Uma sub-rede externa válida deve ser especificada."
#: usr/local/www/firewall_rules_edit.php:385
#: usr/local/www/firewall_rules_edit.php:389
#: usr/local/www/firewall_nat_edit.php:239
+#: usr/local/www/firewall_rules_edit.php:384
+#: usr/local/www/firewall_rules_edit.php:388
+#: usr/local/www/firewall_rules_edit.php:387
+#: usr/local/www/firewall_rules_edit.php:391
+#: usr/local/www/firewall_nat_edit.php:244
msgid "You must specify single host or alias for alias entries."
msgstr "Você deve especificar um único host ou alias para entradas de alias."
@@ -10396,6 +13145,9 @@ msgstr "Uma sub-rede interna válida deve ser especificada."
#: usr/local/www/firewall_nat_1to1_edit.php:171
#: usr/local/www/firewall_rules_edit.php:402
#: usr/local/www/firewall_nat_edit.php:252
+#: usr/local/www/firewall_rules_edit.php:401
+#: usr/local/www/firewall_rules_edit.php:404
+#: usr/local/www/firewall_nat_edit.php:257
#, php-format
msgid "%s is not a valid destination IP address or alias."
msgstr "%s não é um endereço IP de destino válido."
@@ -10408,11 +13160,16 @@ msgstr "%s não é um endereço IP de destino válido."
#: usr/local/www/firewall_nat_out_edit.php:172
#: usr/local/www/firewall_rules_edit.php:405
#: usr/local/www/firewall_nat_edit.php:255
+#: usr/local/www/firewall_rules_edit.php:404
+#: usr/local/www/firewall_rules_edit.php:407
+#: usr/local/www/firewall_nat_edit.php:260
+#: usr/local/www/firewall_nat_out_edit.php:176
msgid "A valid destination bit count must be specified."
msgstr "Um bit count de destino válido deve ser especificado."
#: usr/local/www/firewall_nat_1to1_edit.php:270
#: usr/local/www/firewall_nat_1to1_edit.php:277
+#: usr/local/www/firewall_nat_1to1_edit.php:275
msgid "Edit NAT 1:1 entry"
msgstr "Editar entrada NAT 1:1"
@@ -10442,6 +13199,28 @@ msgstr "Editar entrada NAT 1:1"
#: usr/local/www/firewall_nat_edit.php:467 usr/local/www/interfaces.php:2006
#: usr/local/www/vpn_openvpn_client.php:391
#: usr/local/www/vpn_openvpn_client.php:865
+#: usr/local/www/system_routes_edit.php:300
+#: usr/local/www/firewall_nat_1to1_edit.php:278
+#: usr/local/www/firewall_nat_npt_edit.php:163
+#: usr/local/www/system_usermanager.php:788
+#: usr/local/www/interfaces_ppps_edit.php:604
+#: usr/local/www/vpn_openvpn_csc.php:313 usr/local/www/vpn_openvpn_csc.php:671
+#: usr/local/www/vpn_openvpn_server.php:695
+#: usr/local/www/vpn_openvpn_server.php:1631
+#: usr/local/www/vpn_ipsec_phase2.php:485
+#: usr/local/www/firewall_nat_edit.php:466 usr/local/www/interfaces.php:1994
+#: usr/local/www/vpn_openvpn_client.php:399
+#: usr/local/www/vpn_openvpn_client.php:918
+#: usr/local/www/vpn_ipsec_phase1.php:511
+#: usr/local/www/vpn_openvpn_client.php:417
+#: usr/local/www/vpn_openvpn_client.php:937
+#: usr/local/www/firewall_rules_edit.php:715
+#: usr/local/www/interfaces_ppps_edit.php:610
+#: usr/local/www/firewall_nat_edit.php:461
+#: usr/local/www/vpn_ipsec_phase1.php:532
+#: usr/local/www/vpn_openvpn_server.php:721
+#: usr/local/www/vpn_openvpn_server.php:1683
+#: usr/local/www/vpn_ipsec_phase2.php:507 usr/local/www/interfaces.php:2021
msgid "Disabled"
msgstr "Desabilitado"
@@ -10453,6 +13232,11 @@ msgstr "Desabilitado"
#: usr/local/www/firewall_nat_npt_edit.php:167
#: usr/local/www/firewall_rules_edit.php:715
#: usr/local/www/firewall_nat_edit.php:470
+#: usr/local/www/firewall_nat_1to1_edit.php:281
+#: usr/local/www/firewall_nat_npt_edit.php:166
+#: usr/local/www/firewall_nat_edit.php:469
+#: usr/local/www/firewall_rules_edit.php:718
+#: usr/local/www/firewall_nat_edit.php:464
msgid "Disable this rule"
msgstr "Desabilita essa regra"
@@ -10464,6 +13248,11 @@ msgstr "Desabilita essa regra"
#: usr/local/www/firewall_nat_npt_edit.php:168
#: usr/local/www/firewall_rules_edit.php:716
#: usr/local/www/firewall_nat_edit.php:471
+#: usr/local/www/firewall_nat_1to1_edit.php:282
+#: usr/local/www/firewall_nat_npt_edit.php:167
+#: usr/local/www/firewall_nat_edit.php:470
+#: usr/local/www/firewall_rules_edit.php:719
+#: usr/local/www/firewall_nat_edit.php:465
msgid "Set this option to disable this rule without removing it from the list."
msgstr "Defina esta opção para desativar esta regra sem removê-la da lista."
@@ -10471,6 +13260,8 @@ msgstr "Defina esta opção para desativar esta regra sem removê-la da lista."
#: usr/local/www/firewall_nat_npt_edit.php:202
#: usr/local/www/firewall_nat_1to1_edit.php:322
#: usr/local/www/firewall_nat_npt_edit.php:207
+#: usr/local/www/firewall_nat_1to1_edit.php:320
+#: usr/local/www/firewall_nat_npt_edit.php:206
msgid "Choose which interface this rule applies to"
msgstr "Escolha a qual interface esta regra se aplica"
@@ -10478,16 +13269,20 @@ msgstr "Escolha a qual interface esta regra se aplica"
#: usr/local/www/firewall_nat_npt_edit.php:203
#: usr/local/www/firewall_nat_1to1_edit.php:323
#: usr/local/www/firewall_nat_npt_edit.php:208
+#: usr/local/www/firewall_nat_1to1_edit.php:321
+#: usr/local/www/firewall_nat_npt_edit.php:207
msgid "Hint: in most cases, you'll want to use WAN here"
msgstr "Sugestão: na maioria dos casos, você vai querer utilizar WAN aqui"
#: usr/local/www/firewall_nat_1to1_edit.php:319
#: usr/local/www/firewall_nat_1to1_edit.php:326
+#: usr/local/www/firewall_nat_1to1_edit.php:324
msgid "External subnet IP"
msgstr "IP de subrede externa"
#: usr/local/www/firewall_nat_1to1_edit.php:323
#: usr/local/www/firewall_nat_1to1_edit.php:330
+#: usr/local/www/firewall_nat_1to1_edit.php:328
msgid ""
"Enter the external (usually on a WAN) subnet's starting address for the 1:1 "
"mapping. The subnet mask from the internal address below will be applied to "
@@ -10499,6 +13294,7 @@ msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:324
#: usr/local/www/firewall_nat_1to1_edit.php:331
+#: usr/local/www/firewall_nat_1to1_edit.php:329
msgid ""
"Hint: this is generally an address owned by the router itself on the "
"selected interface."
@@ -10524,6 +13320,17 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:986
#: usr/local/www/firewall_nat_edit.php:545
#: usr/local/www/firewall_nat_edit.php:634
+#: usr/local/www/firewall_nat_1to1_edit.php:336
+#: usr/local/www/firewall_nat_1to1_edit.php:391
+#: usr/local/www/firewall_nat_npt_edit.php:213
+#: usr/local/www/firewall_nat_npt_edit.php:241
+#: usr/local/www/firewall_nat_edit.php:544
+#: usr/local/www/firewall_nat_edit.php:633
+#: usr/local/www/firewall_rules_edit.php:896
+#: usr/local/www/firewall_rules_edit.php:995
+#: usr/local/www/firewall_nat_edit.php:539
+#: usr/local/www/firewall_nat_edit.php:628
+#: usr/local/www/firewall_nat_out_edit.php:518
msgid "not"
msgstr "não"
@@ -10545,6 +13352,17 @@ msgstr "não"
#: usr/local/www/firewall_rules_edit.php:988
#: usr/local/www/firewall_nat_edit.php:547
#: usr/local/www/firewall_nat_edit.php:636
+#: usr/local/www/firewall_nat_1to1_edit.php:338
+#: usr/local/www/firewall_nat_1to1_edit.php:393
+#: usr/local/www/firewall_nat_npt_edit.php:215
+#: usr/local/www/firewall_nat_npt_edit.php:243
+#: usr/local/www/firewall_nat_edit.php:546
+#: usr/local/www/firewall_nat_edit.php:635
+#: usr/local/www/firewall_rules_edit.php:898
+#: usr/local/www/firewall_rules_edit.php:997
+#: usr/local/www/firewall_nat_edit.php:541
+#: usr/local/www/firewall_nat_edit.php:630
+#: usr/local/www/firewall_nat_out_edit.php:519
msgid "Use this option to invert the sense of the match."
msgstr "Use essa opção para inverter o sentido da correspondência."
@@ -10589,11 +13407,38 @@ msgstr "Use essa opção para inverter o sentido da correspondência."
#: usr/local/www/firewall_nat_edit.php:604
#: usr/local/www/firewall_nat_edit.php:617
#: usr/local/www/firewall_nat_edit.php:646
+#: usr/local/www/firewall_nat_1to1_edit.php:348
+#: usr/local/www/firewall_nat_1to1_edit.php:403
+#: usr/local/www/services_captiveportal_ip.php:173
+#: usr/local/www/services_captiveportal_ip.php:180
+#: usr/local/www/services_captiveportal_hostname.php:174
+#: usr/local/www/services_captiveportal_hostname.php:181
+#: usr/local/www/firewall_rules.php:126
+#: usr/local/www/firewall_nat_edit.php:556
+#: usr/local/www/firewall_nat_edit.php:603
+#: usr/local/www/firewall_nat_edit.php:616
+#: usr/local/www/firewall_nat_edit.php:645
+#: usr/local/www/firewall_rules_edit.php:865
+#: usr/local/www/firewall_rules_edit.php:908
+#: usr/local/www/firewall_rules_edit.php:965
+#: usr/local/www/firewall_rules_edit.php:978
+#: usr/local/www/firewall_rules_edit.php:988
+#: usr/local/www/firewall_rules_edit.php:1007
+#: usr/local/www/firewall_rules_edit.php:1063
+#: usr/local/www/firewall_rules_edit.php:1076
+#: usr/local/www/firewall_rules_edit.php:1140
+#: usr/local/www/firewall_nat_edit.php:551
+#: usr/local/www/firewall_nat_edit.php:598
+#: usr/local/www/firewall_nat_edit.php:611
+#: usr/local/www/firewall_nat_edit.php:640
+#: usr/local/www/firewall_nat_out_edit.php:492
+#: usr/local/www/firewall_nat_out_edit.php:526
msgid "any"
msgstr "qualquer"
#: usr/local/www/firewall_nat_1to1_edit.php:344
#: usr/local/www/firewall_nat_1to1_edit.php:351
+#: usr/local/www/firewall_nat_1to1_edit.php:349
msgid "Single host"
msgstr "Host único"
@@ -10609,6 +13454,14 @@ msgstr "Host único"
#: usr/local/www/firewall_rules_edit.php:1002
#: usr/local/www/firewall_nat_edit.php:561
#: usr/local/www/firewall_nat_edit.php:650
+#: usr/local/www/firewall_nat_1to1_edit.php:352
+#: usr/local/www/firewall_nat_1to1_edit.php:407
+#: usr/local/www/firewall_nat_edit.php:560
+#: usr/local/www/firewall_nat_edit.php:649
+#: usr/local/www/firewall_rules_edit.php:918
+#: usr/local/www/firewall_rules_edit.php:1017
+#: usr/local/www/firewall_nat_edit.php:555
+#: usr/local/www/firewall_nat_edit.php:644
msgid "PPTP clients"
msgstr "Cliente PPTP"
@@ -10624,6 +13477,14 @@ msgstr "Cliente PPTP"
#: usr/local/www/firewall_rules_edit.php:1005
#: usr/local/www/firewall_nat_edit.php:564
#: usr/local/www/firewall_nat_edit.php:653
+#: usr/local/www/firewall_nat_1to1_edit.php:355
+#: usr/local/www/firewall_nat_1to1_edit.php:410
+#: usr/local/www/firewall_nat_edit.php:563
+#: usr/local/www/firewall_nat_edit.php:652
+#: usr/local/www/firewall_rules_edit.php:921
+#: usr/local/www/firewall_rules_edit.php:1020
+#: usr/local/www/firewall_nat_edit.php:558
+#: usr/local/www/firewall_nat_edit.php:647
msgid "PPPoE clients"
msgstr "Cliente PPPoE"
@@ -10639,6 +13500,14 @@ msgstr "Cliente PPPoE"
#: usr/local/www/firewall_rules_edit.php:1008
#: usr/local/www/firewall_nat_edit.php:567
#: usr/local/www/firewall_nat_edit.php:656
+#: usr/local/www/firewall_nat_1to1_edit.php:358
+#: usr/local/www/firewall_nat_1to1_edit.php:413
+#: usr/local/www/firewall_nat_edit.php:566
+#: usr/local/www/firewall_nat_edit.php:655
+#: usr/local/www/firewall_rules_edit.php:924
+#: usr/local/www/firewall_rules_edit.php:1023
+#: usr/local/www/firewall_nat_edit.php:561
+#: usr/local/www/firewall_nat_edit.php:650
msgid "L2TP clients"
msgstr "Cliente L2TP"
@@ -10652,6 +13521,13 @@ msgstr "Cliente L2TP"
#: usr/local/www/firewall_rules_edit.php:1013
#: usr/local/www/firewall_nat_edit.php:572
#: usr/local/www/firewall_nat_edit.php:661
+#: usr/local/www/firewall_nat_1to1_edit.php:363
+#: usr/local/www/firewall_nat_1to1_edit.php:418
+#: usr/local/www/firewall_nat_edit.php:571
+#: usr/local/www/firewall_nat_edit.php:660
+#: usr/local/www/firewall_rules_edit.php:1028
+#: usr/local/www/firewall_nat_edit.php:566
+#: usr/local/www/firewall_nat_edit.php:655
msgid "subnet"
msgstr "sub-rede"
@@ -10667,11 +13543,20 @@ msgstr "sub-rede"
#: usr/local/www/firewall_rules_edit.php:1015
#: usr/local/www/firewall_nat_edit.php:574
#: usr/local/www/firewall_nat_edit.php:663
+#: usr/local/www/firewall_nat_1to1_edit.php:365
+#: usr/local/www/firewall_nat_1to1_edit.php:420
+#: usr/local/www/firewall_nat_edit.php:573
+#: usr/local/www/firewall_nat_edit.php:662
+#: usr/local/www/firewall_rules_edit.php:931
+#: usr/local/www/firewall_rules_edit.php:1030
+#: usr/local/www/firewall_nat_edit.php:568
+#: usr/local/www/firewall_nat_edit.php:657
msgid "address"
msgstr "endereço"
#: usr/local/www/firewall_nat_1to1_edit.php:379
#: usr/local/www/firewall_nat_1to1_edit.php:386
+#: usr/local/www/firewall_nat_1to1_edit.php:384
msgid ""
"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."
@@ -10689,11 +13574,19 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:999
#: usr/local/www/firewall_nat_edit.php:558
#: usr/local/www/firewall_nat_edit.php:647
+#: usr/local/www/firewall_nat_1to1_edit.php:404
+#: usr/local/www/firewall_nat_edit.php:557
+#: usr/local/www/firewall_nat_edit.php:646
+#: usr/local/www/firewall_rules_edit.php:915
+#: usr/local/www/firewall_rules_edit.php:1014
+#: usr/local/www/firewall_nat_edit.php:552
+#: usr/local/www/firewall_nat_edit.php:641
msgid "Single host or alias"
msgstr "Host único ou alias"
#: usr/local/www/firewall_nat_1to1_edit.php:436
#: usr/local/www/firewall_nat_1to1_edit.php:443
+#: usr/local/www/firewall_nat_1to1_edit.php:441
msgid ""
"The 1:1 mapping will only be used for connections to or from the specified "
"destination."
@@ -10702,6 +13595,7 @@ msgstr ""
#: usr/local/www/firewall_nat_1to1_edit.php:437
#: usr/local/www/firewall_nat_1to1_edit.php:444
+#: usr/local/www/firewall_nat_1to1_edit.php:442
msgid "Hint: this is usually 'any'."
msgstr "Dica: isso é normalmente 'qualquer'."
@@ -10709,28 +13603,35 @@ msgstr "Dica: isso é normalmente 'qualquer'."
#: usr/local/www/firewall_nat_edit.php:783
#: usr/local/www/firewall_nat_1to1_edit.php:454
#: usr/local/www/firewall_nat_edit.php:790
+#: usr/local/www/firewall_nat_1to1_edit.php:452
+#: usr/local/www/firewall_nat_edit.php:789
+#: usr/local/www/firewall_nat_edit.php:784
msgid "NAT reflection"
msgstr "Reflexão NAT"
#: usr/local/www/firewall_nat_1to1_edit.php:450
#: usr/local/www/firewall_nat_edit.php:786
#: usr/local/www/firewall_nat_1to1_edit.php:457
+#: usr/local/www/firewall_nat_1to1_edit.php:455
msgid "use system default"
msgstr "usar padrão do sistema"
#: usr/local/www/firewall_nat_1to1_edit.php:451
#: usr/local/www/firewall_nat_edit.php:787
#: usr/local/www/firewall_nat_1to1_edit.php:458
+#: usr/local/www/firewall_nat_1to1_edit.php:456
msgid "enable"
msgstr "habilitar"
#: usr/local/www/firewall_nat_1to1_edit.php:452
#: usr/local/www/firewall_nat_edit.php:788
#: usr/local/www/firewall_nat_1to1_edit.php:459
+#: usr/local/www/firewall_nat_1to1_edit.php:457
msgid "disable"
msgstr "desabilitar"
#: usr/local/www/firewall_nat_edit.php:109
+#: usr/local/www/firewall_nat_edit.php:114
#, php-format
msgid ""
"Invalid characters detected %s. Please remove invalid characters and save "
@@ -10740,21 +13641,27 @@ msgstr ""
"inválidos e salve novamente."
#: usr/local/www/firewall_nat_edit.php:182
+#: usr/local/www/firewall_nat_edit.php:187
msgid "Destination port from"
msgstr "Porta de destino de"
#: usr/local/www/firewall_nat_edit.php:182
+#: usr/local/www/firewall_nat_edit.php:187
msgid "Destination port to"
msgstr "Porta de destino até"
#: usr/local/www/firewall_nat_edit.php:198
#: usr/local/www/firewall_nat_edit.php:740
#: usr/local/www/firewall_nat_edit.php:747
+#: usr/local/www/firewall_nat_edit.php:746
+#: usr/local/www/firewall_nat_edit.php:203
+#: usr/local/www/firewall_nat_edit.php:741
msgid "Redirect target IP"
msgstr "Redirecionar IP de destino"
#: usr/local/www/firewall_nat_edit.php:213
#: usr/local/www/firewall_nat_edit.php:220
+#: usr/local/www/firewall_nat_edit.php:225
#, php-format
msgid "\"%s\" is not a valid redirect target IP address or host alias."
msgstr "\"%s\" não é um endereço IP alvo válido ou um alias de host."
@@ -10763,6 +13670,9 @@ msgstr "\"%s\" não é um endereço IP alvo válido ou um alias de host."
#: usr/local/www/firewall_rules_edit.php:325
#: usr/local/www/firewall_rules_edit.php:349
#: usr/local/www/firewall_nat_edit.php:224
+#: usr/local/www/firewall_rules_edit.php:348
+#: usr/local/www/firewall_rules_edit.php:351
+#: usr/local/www/firewall_nat_edit.php:229
#, php-format
msgid ""
"%s is not a valid start source port. It must be a port alias or integer "
@@ -10773,6 +13683,7 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:219
#: usr/local/www/firewall_nat_edit.php:226
+#: usr/local/www/firewall_nat_edit.php:231
#, php-format
msgid ""
"%s is not a valid end source port. It must be a port alias or integer "
@@ -10785,6 +13696,9 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:329
#: usr/local/www/firewall_rules_edit.php:353
#: usr/local/www/firewall_nat_edit.php:228
+#: usr/local/www/firewall_rules_edit.php:352
+#: usr/local/www/firewall_rules_edit.php:355
+#: usr/local/www/firewall_nat_edit.php:233
#, php-format
msgid ""
"%s is not a valid start destination port. It must be a port alias or integer "
@@ -10797,6 +13711,9 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:331
#: usr/local/www/firewall_rules_edit.php:355
#: usr/local/www/firewall_nat_edit.php:230
+#: usr/local/www/firewall_rules_edit.php:354
+#: usr/local/www/firewall_rules_edit.php:357
+#: usr/local/www/firewall_nat_edit.php:235
#, php-format
msgid ""
"%s is not a valid end destination port. It must be a port alias or integer "
@@ -10818,6 +13735,9 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:365
#: usr/local/www/firewall_rules_edit.php:394
#: usr/local/www/firewall_nat_edit.php:244
+#: usr/local/www/firewall_rules_edit.php:393
+#: usr/local/www/firewall_rules_edit.php:396
+#: usr/local/www/firewall_nat_edit.php:249
#, php-format
msgid "%s is not a valid source IP address or alias."
msgstr "%s não é um endereço IP válido ou alias."
@@ -10828,31 +13748,43 @@ msgstr "%s não é um endereço IP válido ou alias."
#: usr/local/www/firewall_nat_out_edit.php:164
#: usr/local/www/firewall_rules_edit.php:397
#: usr/local/www/firewall_nat_edit.php:247
+#: usr/local/www/firewall_rules_edit.php:396
+#: usr/local/www/firewall_rules_edit.php:399
+#: usr/local/www/firewall_nat_edit.php:252
+#: usr/local/www/firewall_nat_out_edit.php:168
msgid "A valid source bit count must be specified."
msgstr "Um bit count de origem válido deve ser especificado."
#: usr/local/www/firewall_nat_edit.php:267
#: usr/local/www/firewall_nat_edit.php:274
+#: usr/local/www/firewall_nat_edit.php:279
msgid "The target port range must be an integer between 1 and 65535."
msgstr "O intervalo de porta de destino deve ser um inteiro entre 1 e 65535."
#: usr/local/www/firewall_nat_edit.php:288
#: usr/local/www/firewall_nat_edit.php:295
+#: usr/local/www/firewall_nat_edit.php:300
msgid "The destination port range overlaps with an existing entry."
msgstr "O intervalo de porta de destino sobrepõe uma entrada existente."
#: usr/local/www/firewall_nat_edit.php:453
#: usr/local/www/firewall_nat_edit.php:460
+#: usr/local/www/firewall_nat_edit.php:459
+#: usr/local/www/firewall_nat_edit.php:454
msgid "Edit Redirect entry"
msgstr "Editar entrada de redirecionamento"
#: usr/local/www/firewall_nat_edit.php:468
#: usr/local/www/firewall_nat_edit.php:475
+#: usr/local/www/firewall_nat_edit.php:474
+#: usr/local/www/firewall_nat_edit.php:469
msgid "No RDR (NOT)"
msgstr "Sem RDR (NÃO)"
#: usr/local/www/firewall_nat_edit.php:471
#: usr/local/www/firewall_nat_edit.php:478
+#: usr/local/www/firewall_nat_edit.php:477
+#: usr/local/www/firewall_nat_edit.php:472
msgid ""
"Enabling this option will disable redirection for traffic matching this rule."
msgstr ""
@@ -10861,6 +13793,8 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:472
#: usr/local/www/firewall_nat_edit.php:479
+#: usr/local/www/firewall_nat_edit.php:478
+#: usr/local/www/firewall_nat_edit.php:473
msgid ""
"Hint: this option is rarely needed, don't use this unless you know what "
"you're doing."
@@ -10872,6 +13806,9 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:452
#: usr/local/www/firewall_nat_out_edit.php:465
#: usr/local/www/firewall_nat_edit.php:521
+#: usr/local/www/firewall_nat_edit.php:520
+#: usr/local/www/firewall_nat_edit.php:515
+#: usr/local/www/firewall_nat_out_edit.php:469
msgid "Choose which interface this rule applies to."
msgstr "Escolha qual interface esta regra se aplica."
@@ -10879,6 +13816,9 @@ msgstr "Escolha qual interface esta regra se aplica."
#: usr/local/www/firewall_nat_out_edit.php:453
#: usr/local/www/firewall_nat_out_edit.php:466
#: usr/local/www/firewall_nat_edit.php:522
+#: usr/local/www/firewall_nat_edit.php:521
+#: usr/local/www/firewall_nat_edit.php:516
+#: usr/local/www/firewall_nat_out_edit.php:470
msgid "Hint: in most cases, you'll want to use WAN here."
msgstr "Dica: na maioria dos casos, você vai querer usar WAN aqui."
@@ -10886,11 +13826,16 @@ msgstr "Dica: na maioria dos casos, você vai querer usar WAN aqui."
#: usr/local/www/firewall_rules_edit.php:818
#: usr/local/www/firewall_rules_edit.php:853
#: usr/local/www/firewall_nat_edit.php:531
+#: usr/local/www/firewall_nat_edit.php:530
+#: usr/local/www/firewall_rules_edit.php:856
+#: usr/local/www/firewall_nat_edit.php:525
msgid "Choose which IP protocol this rule should match."
msgstr "Escolha qual protocolo IP essa regra deve corresponder."
#: usr/local/www/firewall_nat_edit.php:526
#: usr/local/www/firewall_nat_edit.php:533
+#: usr/local/www/firewall_nat_edit.php:532
+#: usr/local/www/firewall_nat_edit.php:527
msgid "Hint: in most cases, you should specify"
msgstr "Dica: na maioria dos casos, você deve especificar"
@@ -10899,6 +13844,11 @@ msgstr "Dica: na maioria dos casos, você deve especificar"
#: usr/local/www/load_balancer_relay_action_edit.php:186
#: usr/local/www/load_balancer_relay_protocol_edit.php:144
#: usr/local/www/firewall_nat_edit.php:533
+#: usr/local/www/load_balancer_relay_protocol_edit.php:142
+#: usr/local/www/load_balancer_relay_action_edit.php:184
+#: usr/local/www/load_balancer_monitor_edit.php:197
+#: usr/local/www/firewall_nat_edit.php:532
+#: usr/local/www/firewall_nat_edit.php:527
msgid "TCP"
msgstr "TCP"
@@ -10907,11 +13857,18 @@ msgstr "TCP"
#: usr/local/www/diag_ipsec_sad.php:135 usr/local/www/diag_ipsec_spd.php:144
#: usr/local/www/firewall_rules_edit.php:853
#: usr/local/www/firewall_nat_edit.php:533
+#: usr/local/www/diag_ipsec_sad.php:136
+#: usr/local/www/firewall_nat_edit.php:532
+#: usr/local/www/diag_ipsec_spd.php:145
+#: usr/local/www/firewall_rules_edit.php:856
+#: usr/local/www/firewall_nat_edit.php:527
msgid "here."
msgstr "aqui."
#: usr/local/www/firewall_nat_edit.php:531
#: usr/local/www/firewall_nat_edit.php:538
+#: usr/local/www/firewall_nat_edit.php:537
+#: usr/local/www/firewall_nat_edit.php:532
msgid "Show source address and port range"
msgstr "Mostrar endereço de origem e intervalo de portas"
@@ -10919,6 +13876,9 @@ msgstr "Mostrar endereço de origem e intervalo de portas"
#: usr/local/www/firewall_rules_edit.php:913
#: usr/local/www/firewall_rules_edit.php:948
#: usr/local/www/firewall_nat_edit.php:596
+#: usr/local/www/firewall_nat_edit.php:595
+#: usr/local/www/firewall_rules_edit.php:957
+#: usr/local/www/firewall_nat_edit.php:590
msgid "Source port range"
msgstr "Intervalo da porta de origem"
@@ -10930,6 +13890,12 @@ msgstr "Intervalo da porta de origem"
#: usr/local/www/firewall_rules_edit.php:1044
#: usr/local/www/firewall_nat_edit.php:600
#: usr/local/www/firewall_nat_edit.php:712
+#: usr/local/www/firewall_nat_edit.php:599
+#: usr/local/www/firewall_nat_edit.php:711
+#: usr/local/www/firewall_rules_edit.php:961
+#: usr/local/www/firewall_rules_edit.php:1059
+#: usr/local/www/firewall_nat_edit.php:594
+#: usr/local/www/firewall_nat_edit.php:706
msgid "from:"
msgstr "a partir de:"
@@ -10951,6 +13917,20 @@ msgstr "a partir de:"
#: usr/local/www/firewall_nat_edit.php:715
#: usr/local/www/firewall_nat_edit.php:728
#: usr/local/www/firewall_nat_edit.php:758
+#: usr/local/www/firewall_nat_edit.php:602
+#: usr/local/www/firewall_nat_edit.php:615
+#: usr/local/www/firewall_nat_edit.php:714
+#: usr/local/www/firewall_nat_edit.php:727
+#: usr/local/www/firewall_nat_edit.php:757
+#: usr/local/www/firewall_rules_edit.php:964
+#: usr/local/www/firewall_rules_edit.php:977
+#: usr/local/www/firewall_rules_edit.php:1062
+#: usr/local/www/firewall_rules_edit.php:1075
+#: usr/local/www/firewall_nat_edit.php:597
+#: usr/local/www/firewall_nat_edit.php:610
+#: usr/local/www/firewall_nat_edit.php:709
+#: usr/local/www/firewall_nat_edit.php:722
+#: usr/local/www/firewall_nat_edit.php:752
msgid "other"
msgstr "outros"
@@ -10962,11 +13942,19 @@ msgstr "outros"
#: usr/local/www/firewall_rules_edit.php:1057
#: usr/local/www/firewall_nat_edit.php:613
#: usr/local/www/firewall_nat_edit.php:725
+#: usr/local/www/firewall_nat_edit.php:612
+#: usr/local/www/firewall_nat_edit.php:724
+#: usr/local/www/firewall_rules_edit.php:974
+#: usr/local/www/firewall_rules_edit.php:1072
+#: usr/local/www/firewall_nat_edit.php:607
+#: usr/local/www/firewall_nat_edit.php:719
msgid "to:"
msgstr "para:"
#: usr/local/www/firewall_nat_edit.php:620
#: usr/local/www/firewall_nat_edit.php:627
+#: usr/local/www/firewall_nat_edit.php:626
+#: usr/local/www/firewall_nat_edit.php:621
msgid "Specify the source port or port range for this rule"
msgstr "Especifique a porta de origem ou intervalo de portas para esta regra"
@@ -10974,6 +13962,9 @@ msgstr "Especifique a porta de origem ou intervalo de portas para esta regra"
#: usr/local/www/firewall_rules_edit.php:944
#: usr/local/www/firewall_rules_edit.php:979
#: usr/local/www/firewall_nat_edit.php:627
+#: usr/local/www/firewall_nat_edit.php:626
+#: usr/local/www/firewall_rules_edit.php:988
+#: usr/local/www/firewall_nat_edit.php:621
msgid "This is usually"
msgstr "Isto normalmente é"
@@ -10981,11 +13972,16 @@ msgstr "Isto normalmente é"
#: usr/local/www/firewall_rules_edit.php:944
#: usr/local/www/firewall_rules_edit.php:979
#: usr/local/www/firewall_nat_edit.php:627
+#: usr/local/www/firewall_nat_edit.php:626
+#: usr/local/www/firewall_rules_edit.php:988
+#: usr/local/www/firewall_nat_edit.php:621
msgid "random"
msgstr "aleatório"
#: usr/local/www/firewall_nat_edit.php:620
#: usr/local/www/firewall_nat_edit.php:627
+#: usr/local/www/firewall_nat_edit.php:626
+#: usr/local/www/firewall_nat_edit.php:621
msgid ""
"and almost never equal to the destination port range (and should usually be "
"'any')"
@@ -11001,6 +13997,12 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1074
#: usr/local/www/firewall_nat_edit.php:627
#: usr/local/www/firewall_nat_edit.php:742
+#: usr/local/www/firewall_nat_edit.php:626
+#: usr/local/www/firewall_nat_edit.php:741
+#: usr/local/www/firewall_rules_edit.php:988
+#: usr/local/www/firewall_rules_edit.php:1089
+#: usr/local/www/firewall_nat_edit.php:621
+#: usr/local/www/firewall_nat_edit.php:736
msgid "Hint: you can leave the"
msgstr "Dica: você pode deixar o"
@@ -11008,16 +14010,23 @@ msgstr "Dica: você pode deixar o"
#: usr/local/www/firewall_rules_edit.php:944
#: usr/local/www/firewall_rules_edit.php:979
#: usr/local/www/firewall_nat_edit.php:627
+#: usr/local/www/firewall_nat_edit.php:626
+#: usr/local/www/firewall_rules_edit.php:988
+#: usr/local/www/firewall_nat_edit.php:621
msgid "field empty if you only want to filter a single port."
msgstr "campo vazio se você apenas deseja filtrar uma única porta."
#: usr/local/www/firewall_nat_edit.php:701
#: usr/local/www/firewall_nat_edit.php:708
+#: usr/local/www/firewall_nat_edit.php:707
+#: usr/local/www/firewall_nat_edit.php:702
msgid "Destination port range"
msgstr "Destino intervalo de portas"
#: usr/local/www/firewall_nat_edit.php:733
#: usr/local/www/firewall_nat_edit.php:740
+#: usr/local/www/firewall_nat_edit.php:739
+#: usr/local/www/firewall_nat_edit.php:734
msgid ""
"Specify the port or port range for the destination of the packet for this "
"mapping."
@@ -11027,11 +14036,15 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:735
#: usr/local/www/firewall_nat_edit.php:742
+#: usr/local/www/firewall_nat_edit.php:741
+#: usr/local/www/firewall_nat_edit.php:736
msgid "field empty if you only want to map a single port"
msgstr "campo vazio se você apenas deseja mapear uma única porta"
#: usr/local/www/firewall_nat_edit.php:743
#: usr/local/www/firewall_nat_edit.php:750
+#: usr/local/www/firewall_nat_edit.php:749
+#: usr/local/www/firewall_nat_edit.php:744
msgid ""
"Enter the internal IP address of the server on which you want to map the "
"ports."
@@ -11040,11 +14053,15 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:748
#: usr/local/www/firewall_nat_edit.php:755
+#: usr/local/www/firewall_nat_edit.php:754
+#: usr/local/www/firewall_nat_edit.php:749
msgid "Redirect target port"
msgstr "Redirecionar porta de destino"
#: usr/local/www/firewall_nat_edit.php:762
#: usr/local/www/firewall_nat_edit.php:769
+#: usr/local/www/firewall_nat_edit.php:768
+#: usr/local/www/firewall_nat_edit.php:763
msgid ""
"Specify the port on the machine with the IP address entered above. In case "
"of a port range, specify the beginning port of the range (the end port will "
@@ -11056,6 +14073,8 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:766
#: usr/local/www/firewall_nat_edit.php:773
+#: usr/local/www/firewall_nat_edit.php:772
+#: usr/local/www/firewall_nat_edit.php:767
msgid "Hint: this is usually identical to the 'from' port above"
msgstr "Dica: isso normalmente é identico à porta 'De' acima"
@@ -11065,11 +14084,16 @@ msgstr "Dica: isso normalmente é identico à porta 'De' acima"
#: usr/local/www/firewall_nat_out_edit.php:642
#: usr/local/www/firewall_rules_edit.php:1273
#: usr/local/www/firewall_nat_edit.php:783
+#: usr/local/www/firewall_nat_edit.php:782
+#: usr/local/www/firewall_rules_edit.php:1288
+#: usr/local/www/firewall_nat_edit.php:777
+#: usr/local/www/firewall_nat_out_edit.php:644
msgid "No XMLRPC Sync"
msgstr "Sem XMLRPC Sync"
#: usr/local/www/firewall_nat_edit.php:779
#: usr/local/www/firewall_nat_edit.php:786
+#: usr/local/www/firewall_nat_edit.php:785
msgid ""
"HINT: This prevents the rule from automatically syncing to other CARP members"
msgstr ""
@@ -11080,6 +14104,10 @@ msgstr ""
#: usr/local/www/firewall_nat_edit.php:825
#: usr/local/www/firewall_nat_edit.php:802
#: usr/local/www/firewall_nat_edit.php:833
+#: usr/local/www/firewall_nat_edit.php:801
+#: usr/local/www/firewall_nat_edit.php:832
+#: usr/local/www/firewall_nat_edit.php:796
+#: usr/local/www/firewall_nat_edit.php:827
msgid "Filter rule association"
msgstr "Associação de regra de filtro"
@@ -11087,26 +14115,38 @@ msgstr "Associação de regra de filtro"
#: usr/local/www/firewall_nat_edit.php:831
#: usr/local/www/firewall_nat_edit.php:806
#: usr/local/www/firewall_nat_edit.php:839
+#: usr/local/www/firewall_nat_edit.php:805
+#: usr/local/www/firewall_nat_edit.php:838
+#: usr/local/www/firewall_nat_edit.php:800
+#: usr/local/www/firewall_nat_edit.php:833
msgid "Pass"
msgstr "Liberar"
#: usr/local/www/firewall_nat_edit.php:808
#: usr/local/www/firewall_nat_edit.php:816
+#: usr/local/www/firewall_nat_edit.php:815
+#: usr/local/www/firewall_nat_edit.php:810
msgid "View the filter rule"
msgstr "Ver regra do filtro"
#: usr/local/www/firewall_nat_edit.php:816
#: usr/local/www/firewall_nat_edit.php:824
+#: usr/local/www/firewall_nat_edit.php:823
+#: usr/local/www/firewall_nat_edit.php:818
msgid "Create new associated filter rule"
msgstr "Criar nova regra de filtro associada"
#: usr/local/www/firewall_nat_edit.php:829
#: usr/local/www/firewall_nat_edit.php:837
+#: usr/local/www/firewall_nat_edit.php:836
+#: usr/local/www/firewall_nat_edit.php:831
msgid "Add associated filter rule"
msgstr "Adicionar regra de filtro associada"
#: usr/local/www/firewall_nat_edit.php:830
#: usr/local/www/firewall_nat_edit.php:838
+#: usr/local/www/firewall_nat_edit.php:837
+#: usr/local/www/firewall_nat_edit.php:832
msgid "Add unassociated filter rule"
msgstr "Adicionar regra de filtro não associada"
@@ -11126,82 +14166,101 @@ msgid "Auto created rule for localhost to %1$s"
msgstr "Regra criada automaticamente para %1$s"
#: usr/local/www/firewall_nat_out.php:147
+#: usr/local/www/firewall_nat_out.php:148
msgid "Auto created rule for PPTP server"
msgstr "Regra criada automaticamente para servidor PPTP"
#: usr/local/www/firewall_nat_out.php:167
+#: usr/local/www/firewall_nat_out.php:168
msgid "Auto created rule for PPPoE server"
msgstr "Regra criada automaticamente para servidor PPPoE"
#: usr/local/www/firewall_nat_out.php:187
+#: usr/local/www/firewall_nat_out.php:188
msgid "Auto created rule for L2TP server"
msgstr "Regra criada automaticamente para servidor L2TP"
#: usr/local/www/firewall_nat_out.php:201
+#: usr/local/www/firewall_nat_out.php:202
msgid "Auto created rule for OpenVPN server"
msgstr "Regra criada automaticamente para servidor OpenVPN"
#: usr/local/www/firewall_nat_out.php:212
+#: usr/local/www/firewall_nat_out.php:213
msgid "Default rules for each interface have been created."
msgstr "Regras padrão para cada interface foram criadas."
#: usr/local/www/firewall_nat_out.php:294
#: usr/local/www/firewall_nat_out.php:304
+#: usr/local/www/firewall_nat_out.php:305
msgid "The NAT configuration has been changed."
msgstr "Configuração de NAT foi alterado."
#: usr/local/www/firewall_nat_out.php:310
#: usr/local/www/firewall_nat_out.php:320
+#: usr/local/www/firewall_nat_out.php:321
msgid "Mode:"
msgstr "Modo:"
#: usr/local/www/firewall_nat_out.php:313
#: usr/local/www/firewall_nat_out.php:323
+#: usr/local/www/firewall_nat_out.php:324
msgid "Automatic outbound NAT rule generation"
msgstr "Geração de regras automáticas de outbound NAT"
#: usr/local/www/firewall_nat_out.php:313
#: usr/local/www/firewall_nat_out.php:323
+#: usr/local/www/firewall_nat_out.php:324
msgid "(IPsec passthrough included)"
msgstr "(IPsex passthrough incluso)"
#: usr/local/www/firewall_nat_out.php:318
#: usr/local/www/firewall_nat_out.php:328
+#: usr/local/www/firewall_nat_out.php:329
msgid "Manual Outbound NAT rule generation"
msgstr "Geração manual de regra de Outbound NAT"
#: usr/local/www/firewall_nat_out.php:318
#: usr/local/www/firewall_nat_out.php:328
+#: usr/local/www/firewall_nat_out.php:329
msgid "(AON - Advanced Outbound NAT)"
msgstr "(AON - Outbound NAT Avançado)"
#: usr/local/www/firewall_nat_out.php:336
#: usr/local/www/firewall_nat_out.php:346
+#: usr/local/www/firewall_nat_out.php:347
msgid "Mappings:"
msgstr "Mapeamentos:"
#: usr/local/www/firewall_nat_out.php:343
#: usr/local/www/firewall_nat_out.php:353
+#: usr/local/www/firewall_nat_out.php:354 usr/local/www/diag_testport.php:129
+#: usr/local/www/diag_system_pftop.php:160
msgid "Source Port"
msgstr "Porta de Origem"
#: usr/local/www/firewall_nat_out.php:345
#: usr/local/www/firewall_nat_out.php:355
+#: usr/local/www/firewall_nat_out.php:356
+#: usr/local/www/diag_system_pftop.php:153
msgid "Destination Port"
msgstr "Porta de destino"
#: usr/local/www/firewall_nat_out.php:346
#: usr/local/www/firewall_nat_out.php:356
+#: usr/local/www/firewall_nat_out.php:357
msgid "NAT Address"
msgstr "Endereço NAT"
#: usr/local/www/firewall_nat_out.php:347
#: usr/local/www/firewall_nat_out.php:357
+#: usr/local/www/firewall_nat_out.php:358
msgid "NAT Port"
msgstr "Porta NAT"
#: usr/local/www/firewall_nat_out.php:348
#: usr/local/www/firewall_nat_out.php:358
+#: usr/local/www/firewall_nat_out.php:359
msgid "Static Port"
msgstr "Porta estática"
@@ -11209,21 +14268,30 @@ msgstr "Porta estática"
#: usr/local/www/firewall_nat_out.php:450
#: usr/local/www/firewall_nat_out.php:364
#: usr/local/www/firewall_nat_out.php:461
+#: usr/local/www/firewall_nat_out.php:365
+#: usr/local/www/firewall_nat_out.php:462
+#: usr/local/www/firewall_nat_out.php:459
msgid "add new mapping"
msgstr "adicionar nova mapeamento"
#: usr/local/www/firewall_nat_out.php:425
#: usr/local/www/firewall_nat_out.php:435
+#: usr/local/www/firewall_nat_out.php:436
+#: usr/local/www/firewall_nat_out.php:433
msgid "YES"
msgstr "SIM"
#: usr/local/www/firewall_nat_out.php:427
#: usr/local/www/firewall_nat_out.php:437
+#: usr/local/www/firewall_nat_out.php:438
+#: usr/local/www/firewall_nat_out.php:435
msgid "NO"
msgstr "Não"
#: usr/local/www/firewall_nat_out.php:436
#: usr/local/www/firewall_nat_out.php:447
+#: usr/local/www/firewall_nat_out.php:448
+#: usr/local/www/firewall_nat_out.php:445
msgid "edit mapping"
msgstr "editar mapeamento"
@@ -11232,17 +14300,24 @@ msgstr "editar mapeamento"
#: usr/local/www/firewall_rules.php:775 usr/local/www/firewall_nat.php:309
#: usr/local/www/firewall_nat_out.php:446 usr/local/www/firewall_rules.php:429
#: usr/local/www/firewall_rules.php:458 usr/local/www/firewall_rules.php:486
-#: usr/local/www/firewall_rules.php:772
+#: usr/local/www/firewall_rules.php:772 usr/local/www/firewall_nat_out.php:447
+#: usr/local/www/firewall_nat.php:322 usr/local/www/firewall_rules.php:422
+#: usr/local/www/firewall_rules.php:451 usr/local/www/firewall_rules.php:479
+#: usr/local/www/firewall_rules.php:765 usr/local/www/firewall_nat_out.php:444
msgid "move selected rules before this rule"
msgstr "mover as regras selecionada para antes desta regra"
#: usr/local/www/firewall_nat_out.php:440 usr/local/www/firewall_nat.php:314
#: usr/local/www/firewall_nat_out.php:451
+#: usr/local/www/firewall_nat_out.php:452 usr/local/www/firewall_nat.php:327
+#: usr/local/www/firewall_nat_out.php:449
msgid "add a new nat based on this one"
msgstr "adicionar um nova regra de nat baseada nesta"
#: usr/local/www/firewall_nat_out.php:449
#: usr/local/www/firewall_nat_out.php:460
+#: usr/local/www/firewall_nat_out.php:461
+#: usr/local/www/firewall_nat_out.php:458
msgid "move selected mappings to end"
msgstr "mover os mapeamentos selecionados para final"
@@ -11252,22 +14327,33 @@ msgstr "mover os mapeamentos selecionados para final"
#: usr/local/www/firewall_nat.php:211 usr/local/www/firewall_nat.php:332
#: usr/local/www/firewall_nat.php:334 usr/local/www/firewall_nat_out.php:464
#: usr/local/www/firewall_rules.php:395 usr/local/www/firewall_rules.php:396
-#: usr/local/www/firewall_rules.php:825
+#: usr/local/www/firewall_rules.php:825 usr/local/www/firewall_nat_out.php:465
+#: usr/local/www/firewall_nat.php:214 usr/local/www/firewall_nat.php:216
+#: usr/local/www/firewall_nat.php:345 usr/local/www/firewall_nat.php:347
+#: usr/local/www/firewall_rules.php:388 usr/local/www/firewall_rules.php:389
+#: usr/local/www/firewall_rules.php:817 usr/local/www/firewall_rules.php:818
+#: usr/local/www/firewall_nat_out.php:462
msgid "delete selected rules"
msgstr "excluir regras selecionadas"
#: usr/local/www/firewall_nat_out.php:453
#: usr/local/www/firewall_nat_out.php:464
+#: usr/local/www/firewall_nat_out.php:465
+#: usr/local/www/firewall_nat_out.php:462
msgid "delete selected mappings"
msgstr "excluir mapeamentos selecionados"
#: usr/local/www/firewall_nat_out.php:453
#: usr/local/www/firewall_nat_out.php:464
+#: usr/local/www/firewall_nat_out.php:465
+#: usr/local/www/firewall_nat_out.php:462
msgid "Do you really want to delete the selected mappings?"
msgstr "Você realmente deseja excluir os mapeamentos selecionados?"
#: usr/local/www/firewall_nat_out.php:461
#: usr/local/www/firewall_nat_out.php:472
+#: usr/local/www/firewall_nat_out.php:473
+#: usr/local/www/firewall_nat_out.php:470
msgid ""
"With automatic outbound NAT enabled, a mapping is automatically created for "
"each interface's subnet (except WAN-type connections) and the rules on this "
@@ -11291,16 +14377,24 @@ msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:252
#: usr/local/www/firewall_nat_out.php:480
#: usr/local/www/firewall_nat_out_edit.php:601
+#: usr/local/www/system_gateway_groups_edit.php:312
+#: usr/local/www/firewall_nat_out.php:481 usr/local/www/carp_status.php:132
+#: usr/local/www/firewall_nat_out.php:478
+#: usr/local/www/firewall_nat_out_edit.php:604
msgid "Virtual IP"
msgstr "IP Virtual"
#: usr/local/www/firewall_nat_out.php:470
#: usr/local/www/firewall_nat_out.php:481
+#: usr/local/www/firewall_nat_out.php:482
+#: usr/local/www/firewall_nat_out.php:479
msgid " may also be required."
msgstr "pode ser necessário."
#: usr/local/www/firewall_nat_out.php:472
#: usr/local/www/firewall_nat_out.php:483
+#: usr/local/www/firewall_nat_out.php:484
+#: usr/local/www/firewall_nat_out.php:481
msgid ""
"To completely disable outbound NAT, switch to Manual Outbound NAT then "
"delete any NAT rules that appear in the list."
@@ -11309,17 +14403,22 @@ msgstr ""
"então exclua qualquer regra NAT que apareça na lista."
#: usr/local/www/firewall_nat_out_edit.php:130
+#: usr/local/www/firewall_nat_out_edit.php:134
msgid "Source bit count"
msgstr "Contagem de bits de origem"
#: usr/local/www/firewall_nat_out_edit.php:130
#: usr/local/www/firewall_rules_edit.php:310
#: usr/local/www/firewall_rules_edit.php:334
+#: usr/local/www/firewall_rules_edit.php:333
+#: usr/local/www/firewall_rules_edit.php:336
+#: usr/local/www/firewall_nat_out_edit.php:134
msgid "Destination bit count"
msgstr "Contagem de bits de destino"
#: usr/local/www/firewall_nat_out_edit.php:137
#: usr/local/www/firewall_nat_out_edit.php:150
+#: usr/local/www/firewall_nat_out_edit.php:154
msgid ""
"You must supply either a valid port or port alias for the source port entry."
msgstr ""
@@ -11328,6 +14427,7 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:140
#: usr/local/www/firewall_nat_out_edit.php:153
+#: usr/local/www/firewall_nat_out_edit.php:157
msgid ""
"You must supply either a valid port or port alias for the destination port "
"entry."
@@ -11337,31 +14437,37 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:143
#: usr/local/www/firewall_nat_out_edit.php:156
+#: usr/local/www/firewall_nat_out_edit.php:160
msgid "You must supply a valid port for the nat port entry."
msgstr "Você deve fornecer uma porta válida para a entrada porta NAT."
#: usr/local/www/firewall_nat_out_edit.php:147
#: usr/local/www/firewall_nat_out_edit.php:160
+#: usr/local/www/firewall_nat_out_edit.php:164
msgid "A valid source must be specified."
msgstr "Uma fonte válida deve ser especificada."
#: usr/local/www/firewall_nat_out_edit.php:155
#: usr/local/www/firewall_nat_out_edit.php:168
+#: usr/local/www/firewall_nat_out_edit.php:172
msgid "A valid destination must be specified."
msgstr "Um destino válido deve ser especificado."
#: usr/local/www/firewall_nat_out_edit.php:163
#: usr/local/www/firewall_nat_out_edit.php:176
+#: usr/local/www/firewall_nat_out_edit.php:180
msgid "Negating destination address of \"any\" is invalid."
msgstr "Negando o endereço de destino de \"qualquer\" é inválido."
#: usr/local/www/firewall_nat_out_edit.php:168
#: usr/local/www/firewall_nat_out_edit.php:181
+#: usr/local/www/firewall_nat_out_edit.php:185
msgid "A valid target IP address must be specified."
msgstr "Endereço de IP de destino deve ser especificado."
#: usr/local/www/firewall_nat_out_edit.php:173
#: usr/local/www/firewall_nat_out_edit.php:186
+#: usr/local/www/firewall_nat_out_edit.php:190
msgid "A valid target IP must be specified when using the 'Other Subnet' type."
msgstr ""
"Um endereço IP válido deve ser especificado quando usado 'Outros tipos de "
@@ -11369,6 +14475,7 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:176
#: usr/local/www/firewall_nat_out_edit.php:189
+#: usr/local/www/firewall_nat_out_edit.php:193
msgid ""
"A valid target bit count must be specified when using the 'Other Subnet' "
"type."
@@ -11378,6 +14485,7 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:189
#: usr/local/www/firewall_nat_out_edit.php:202
+#: usr/local/www/firewall_nat_out_edit.php:206
msgid "Only Round Robin pool options may be chosen when selecting an alias."
msgstr ""
"Somente opções de pool Round Robin podem ser escolhidos quando selecionado "
@@ -11385,16 +14493,19 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:403
#: usr/local/www/firewall_nat_out_edit.php:416
+#: usr/local/www/firewall_nat_out_edit.php:420
msgid "Edit Advanced Outbound NAT entry"
msgstr "Editar entradas avançadas de Outbound NAT"
#: usr/local/www/firewall_nat_out_edit.php:410
#: usr/local/www/firewall_nat_out_edit.php:423
+#: usr/local/www/firewall_nat_out_edit.php:427
msgid "Do not NAT"
msgstr "Não faça NAT"
#: usr/local/www/firewall_nat_out_edit.php:413
#: usr/local/www/firewall_nat_out_edit.php:426
+#: usr/local/www/firewall_nat_out_edit.php:430
msgid ""
"Enabling this option will disable NAT for traffic matching this rule and "
"stop processing Outbound NAT rules."
@@ -11404,16 +14515,19 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:414
#: usr/local/www/firewall_nat_out_edit.php:427
+#: usr/local/www/firewall_nat_out_edit.php:431
msgid "Hint: in most cases, you won't use this option."
msgstr "Dica: na maioria dos casos, você não vai usar esta opção."
#: usr/local/www/firewall_nat_out_edit.php:463
#: usr/local/www/firewall_nat_out_edit.php:476
+#: usr/local/www/firewall_nat_out_edit.php:480
msgid "Choose which protocol this rule should match."
msgstr "Escolha qual protocolo essa regra deve corresponder."
#: usr/local/www/firewall_nat_out_edit.php:464
#: usr/local/www/firewall_nat_out_edit.php:477
+#: usr/local/www/firewall_nat_out_edit.php:481
#, php-format
msgid "Hint: in most cases, you should specify %s any %s here."
msgstr ""
@@ -11421,16 +14535,19 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:488
#: usr/local/www/firewall_nat_out_edit.php:501
+#: usr/local/www/firewall_nat_out_edit.php:505
msgid "Enter the source network for the outbound NAT mapping."
msgstr "Informe a porta de origem para o mapeamento outbound NAT."
#: usr/local/www/firewall_nat_out_edit.php:491
#: usr/local/www/firewall_nat_out_edit.php:504
+#: usr/local/www/firewall_nat_out_edit.php:508
msgid "Source port:"
msgstr "Porta de origem:"
#: usr/local/www/firewall_nat_out_edit.php:492
#: usr/local/www/firewall_nat_out_edit.php:505
+#: usr/local/www/firewall_nat_out_edit.php:509
msgid ""
"(leave \n"
"blank for any)"
@@ -11440,16 +14557,19 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:526
#: usr/local/www/firewall_nat_out_edit.php:539
+#: usr/local/www/firewall_nat_out_edit.php:543
msgid "Enter the destination network for the outbound NAT mapping."
msgstr "Digite a rede de destino para o mapeamento NAT de saída."
#: usr/local/www/firewall_nat_out_edit.php:530
#: usr/local/www/firewall_nat_out_edit.php:543
+#: usr/local/www/firewall_nat_out_edit.php:547
msgid "Destination port:"
msgstr "Porta de destino:"
#: usr/local/www/firewall_nat_out_edit.php:531
#: usr/local/www/firewall_nat_out_edit.php:544
+#: usr/local/www/firewall_nat_out_edit.php:548
msgid ""
"(leave blank for \n"
"any)"
@@ -11459,26 +14579,31 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:538
#: usr/local/www/firewall_nat_out_edit.php:551
+#: usr/local/www/firewall_nat_out_edit.php:555
msgid "Translation"
msgstr "Tradução"
#: usr/local/www/firewall_nat_out_edit.php:544
#: usr/local/www/firewall_nat_out_edit.php:557
+#: usr/local/www/firewall_nat_out_edit.php:561
msgid "Interface address"
msgstr "Endereço da Interface"
#: usr/local/www/firewall_nat_out_edit.php:568
#: usr/local/www/firewall_nat_out_edit.php:581
+#: usr/local/www/firewall_nat_out_edit.php:585
msgid "Other Subnet (Enter Below)"
msgstr "Outra Sub-rede (Digite abaixo)"
#: usr/local/www/firewall_nat_out_edit.php:575
#: usr/local/www/firewall_nat_out_edit.php:588
+#: usr/local/www/firewall_nat_out_edit.php:591
msgid "Other Subnet:"
msgstr "Outra Sub-rede:"
#: usr/local/www/firewall_nat_out_edit.php:586
#: usr/local/www/firewall_nat_out_edit.php:599
+#: usr/local/www/firewall_nat_out_edit.php:602
msgid "Packets matching this rule will be mapped to the IP address given here."
msgstr ""
"Pacotes que correspondam a essa regra serão mapeados para o endereço IP dado "
@@ -11486,6 +14611,7 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:587
#: usr/local/www/firewall_nat_out_edit.php:600
+#: usr/local/www/firewall_nat_out_edit.php:603
msgid ""
"If you want this rule to apply to another IP address rather than the IP "
"address of the interface chosen above, select it here (you will need to "
@@ -11497,6 +14623,7 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:588
#: usr/local/www/firewall_nat_out_edit.php:601
+#: usr/local/www/firewall_nat_out_edit.php:604
msgid "addresses on the interface first)."
msgstr "endereço na interface primeiro)."
@@ -11511,6 +14638,7 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:605
#: usr/local/www/firewall_nat_out_edit.php:618
+#: usr/local/www/firewall_nat_out_edit.php:620
msgid ""
"Only Round Robin types work with Host Aliases. Any type can be used with a "
"Subnet."
@@ -11520,16 +14648,19 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:606
#: usr/local/www/firewall_nat_out_edit.php:619
+#: usr/local/www/firewall_nat_out_edit.php:621
msgid "Round Robin: Loops through the translation addresses."
msgstr "Round Robin: Loops através de tradução de endereços."
#: usr/local/www/firewall_nat_out_edit.php:607
#: usr/local/www/firewall_nat_out_edit.php:620
+#: usr/local/www/firewall_nat_out_edit.php:622
msgid "Random: Selects an address from the translation address pool at random."
msgstr "Randômico: Seleciona um endereço para traduzir ao pool."
#: usr/local/www/firewall_nat_out_edit.php:608
#: usr/local/www/firewall_nat_out_edit.php:621
+#: usr/local/www/firewall_nat_out_edit.php:623
msgid ""
"Source Hash: Uses a hash of the source address to determine the translation "
"address, ensuring that the redirection address is always the same for a "
@@ -11541,6 +14672,7 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:609
#: usr/local/www/firewall_nat_out_edit.php:622
+#: usr/local/www/firewall_nat_out_edit.php:624
msgid ""
"Bitmask: Applies the subnet mask and keeps the last portion identical; "
"10.0.1.50 -&gt; x.x.x.50."
@@ -11550,6 +14682,7 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:610
#: usr/local/www/firewall_nat_out_edit.php:623
+#: usr/local/www/firewall_nat_out_edit.php:625
msgid ""
"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 "
@@ -11561,16 +14694,19 @@ msgstr ""
#: usr/local/www/firewall_nat_out_edit.php:615
#: usr/local/www/firewall_nat_out_edit.php:628
+#: usr/local/www/firewall_nat_out_edit.php:630
msgid "Port:"
msgstr "Porta:"
#: usr/local/www/firewall_nat_out_edit.php:619
#: usr/local/www/firewall_nat_out_edit.php:632
+#: usr/local/www/firewall_nat_out_edit.php:634
msgid "Enter the source port for the outbound NAT mapping."
msgstr "Informe a porta de origem para o mapeamento outbound NAT."
#: usr/local/www/firewall_nat_out_edit.php:622
#: usr/local/www/firewall_nat_out_edit.php:635
+#: usr/local/www/firewall_nat_out_edit.php:637
msgid "Static-port:"
msgstr "Porta-estática:"
@@ -11586,106 +14722,143 @@ msgstr ""
#: usr/local/www/firewall_rules.php:52
#: usr/local/www/firewall_rules_edit.php:628 usr/local/www/fbegin.inc:112
#: usr/local/www/fbegin.inc:129 usr/local/www/firewall_rules_edit.php:660
+#: usr/local/www/fbegin.inc:138 usr/local/www/firewall_rules_edit.php:661
+#: usr/local/www/firewall_rules.php:49
+#: usr/local/www/firewall_rules_edit.php:664
+#: usr/local/www/diag_system_pftop.php:139 usr/local/www/fbegin.inc:130
msgid "Rules"
msgstr "Regras"
#: usr/local/www/firewall_rules.php:129
#: usr/local/www/firewall_rules_edit.php:828
#: usr/local/www/firewall_rules_edit.php:863
+#: usr/local/www/firewall_rules.php:127
+#: usr/local/www/firewall_rules_edit.php:866
msgid "Echo request"
msgstr "Requisição Echo"
#: usr/local/www/firewall_rules.php:130
#: usr/local/www/firewall_rules_edit.php:829
#: usr/local/www/firewall_rules_edit.php:864
+#: usr/local/www/firewall_rules.php:128
+#: usr/local/www/firewall_rules_edit.php:867
msgid "Echo reply"
msgstr "Resposta Echo"
#: usr/local/www/firewall_rules.php:131
#: usr/local/www/firewall_rules_edit.php:830
#: usr/local/www/firewall_rules_edit.php:865
+#: usr/local/www/firewall_rules.php:129
+#: usr/local/www/firewall_rules_edit.php:868
msgid "Destination unreachable"
msgstr "Destino inalcansável"
#: usr/local/www/firewall_rules.php:132
#: usr/local/www/firewall_rules_edit.php:831
#: usr/local/www/firewall_rules_edit.php:866
+#: usr/local/www/firewall_rules.php:130
+#: usr/local/www/firewall_rules_edit.php:869
msgid "Source quench"
msgstr "Source quench"
#: usr/local/www/firewall_rules.php:133
#: usr/local/www/firewall_rules_edit.php:832
#: usr/local/www/firewall_rules_edit.php:867
+#: usr/local/www/firewall_rules.php:131
+#: usr/local/www/firewall_rules_edit.php:870
msgid "Redirect"
msgstr "Redirecionamento"
#: usr/local/www/firewall_rules.php:134
#: usr/local/www/firewall_rules_edit.php:833
#: usr/local/www/firewall_rules_edit.php:868
+#: usr/local/www/firewall_rules.php:132
+#: usr/local/www/firewall_rules_edit.php:871
msgid "Alternate Host"
msgstr "Host alternativo"
#: usr/local/www/firewall_rules.php:135
#: usr/local/www/firewall_rules_edit.php:834
#: usr/local/www/firewall_rules_edit.php:869
+#: usr/local/www/firewall_rules.php:133
+#: usr/local/www/firewall_rules_edit.php:872
msgid "Router advertisement"
msgstr "Router advertisement"
#: usr/local/www/firewall_rules.php:136
#: usr/local/www/firewall_rules_edit.php:835
#: usr/local/www/firewall_rules_edit.php:870
+#: usr/local/www/firewall_rules.php:134
+#: usr/local/www/firewall_rules_edit.php:873
msgid "Router solicitation"
msgstr "Solicitação do roteador"
#: usr/local/www/firewall_rules.php:137
#: usr/local/www/firewall_rules_edit.php:836
#: usr/local/www/firewall_rules_edit.php:871
+#: usr/local/www/firewall_rules.php:135
+#: usr/local/www/firewall_rules_edit.php:874
msgid "Time exceeded"
msgstr "Tempo excedido"
#: usr/local/www/firewall_rules.php:138
#: usr/local/www/firewall_rules_edit.php:837
#: usr/local/www/firewall_rules_edit.php:872
+#: usr/local/www/firewall_rules.php:136
+#: usr/local/www/firewall_rules_edit.php:875
msgid "Invalid IP header"
msgstr "Cabeçalho de IP inválido"
#: usr/local/www/firewall_rules.php:139
#: usr/local/www/firewall_rules_edit.php:838
#: usr/local/www/firewall_rules_edit.php:873
+#: usr/local/www/firewall_rules.php:137
+#: usr/local/www/firewall_rules_edit.php:876
msgid "Timestamp"
msgstr "Timestamp"
#: usr/local/www/firewall_rules.php:140
#: usr/local/www/firewall_rules_edit.php:839
#: usr/local/www/firewall_rules_edit.php:874
+#: usr/local/www/firewall_rules.php:138
+#: usr/local/www/firewall_rules_edit.php:877
msgid "Timestamp reply"
msgstr "Resposta de timestamp"
#: usr/local/www/firewall_rules.php:141
#: usr/local/www/firewall_rules_edit.php:840
#: usr/local/www/firewall_rules_edit.php:875
+#: usr/local/www/firewall_rules.php:139
+#: usr/local/www/firewall_rules_edit.php:878
msgid "Information request"
msgstr "Requisição de informação"
#: usr/local/www/firewall_rules.php:142
#: usr/local/www/firewall_rules_edit.php:841
#: usr/local/www/firewall_rules_edit.php:876
+#: usr/local/www/firewall_rules.php:140
+#: usr/local/www/firewall_rules_edit.php:879
msgid "Information reply"
msgstr "Resposta de informação"
#: usr/local/www/firewall_rules.php:143
#: usr/local/www/firewall_rules_edit.php:842
#: usr/local/www/firewall_rules_edit.php:877
+#: usr/local/www/firewall_rules.php:141
+#: usr/local/www/firewall_rules_edit.php:880
msgid "Address mask request"
msgstr "Requisição de máscara de endereço"
#: usr/local/www/firewall_rules.php:144
#: usr/local/www/firewall_rules_edit.php:843
#: usr/local/www/firewall_rules_edit.php:878
+#: usr/local/www/firewall_rules.php:142
+#: usr/local/www/firewall_rules_edit.php:881
msgid "Address mask reply"
msgstr "Resposta de máscara de endereço"
#: usr/local/www/firewall_rules.php:201 usr/local/www/firewall_rules.php:205
+#: usr/local/www/firewall_rules.php:203
#, php-format
msgid ""
"The settings have been applied. The firewall rules are now reloading in the "
@@ -11696,6 +14869,7 @@ msgstr ""
#: usr/local/www/firewall_rules.php:315 usr/local/www/firewall_rules.php:317
#: usr/local/www/firewall_rules.php:319 usr/local/www/firewall_rules.php:321
+#: usr/local/www/firewall_rules.php:312 usr/local/www/firewall_rules.php:314
msgid ""
"The firewall rule configuration has been changed.<br>You must apply the "
"changes in order for them to take effect."
@@ -11704,6 +14878,7 @@ msgstr ""
"modificações para que elas tenham efeito."
#: usr/local/www/firewall_rules.php:338 usr/local/www/firewall_rules.php:342
+#: usr/local/www/firewall_rules.php:335
msgid "Floating"
msgstr "Flutuante"
@@ -11711,6 +14886,8 @@ msgstr "Flutuante"
#: usr/local/www/load_balancer_relay_action_edit.php:510
#: usr/local/www/load_balancer_relay_action_edit.php:509
#: usr/local/www/firewall_rules.php:363
+#: usr/local/www/load_balancer_relay_action_edit.php:507
+#: usr/local/www/firewall_rules.php:356
msgid "ID"
msgstr "ID"
@@ -11730,34 +14907,54 @@ msgstr "ID"
#: usr/local/www/system_gateways_edit.php:397
#: usr/local/www/services_dhcp.php:668 usr/local/www/interfaces.php:456
#: usr/local/www/interfaces.php:509 usr/local/www/interfaces.php:1486
+#: usr/local/www/system_routes_edit.php:232
+#: usr/local/www/firewall_rules.php:365
+#: usr/local/www/system_gateways_edit.php:503
+#: usr/local/www/status_gateways.php:74 usr/local/www/services_dhcp.php:844
+#: usr/local/www/interfaces.php:453 usr/local/www/interfaces.php:506
+#: usr/local/www/interfaces.php:1474
+#: usr/local/www/system_gateways_edit.php:506
+#: usr/local/www/firewall_rules_edit.php:1370
+#: usr/local/www/services_dhcp_edit.php:410
+#: usr/local/www/diag_traceroute.php:98 usr/local/www/system_routes.php:131
+#: usr/local/www/services_dhcp.php:858 usr/local/www/interfaces.php:441
+#: usr/local/www/interfaces.php:494 usr/local/www/interfaces.php:1487
msgid "Gateway"
msgstr "Gateway"
#: usr/local/www/firewall_rules.php:369 usr/local/www/status_queues.php:135
#: usr/local/www/status_queues.php:142 usr/local/www/firewall_rules.php:373
+#: usr/local/www/status_queues.php:143 usr/local/www/firewall_rules.php:366
+#: usr/local/www/diag_system_pftop.php:138 usr/local/www/status_queues.php:148
msgid "Queue"
msgstr "FILA"
#: usr/local/www/firewall_rules.php:370
#: usr/local/www/firewall_rules_edit.php:1261
#: usr/local/www/firewall_rules_edit.php:1328
-#: usr/local/www/firewall_rules.php:374
+#: usr/local/www/firewall_rules.php:374 usr/local/www/firewall_rules.php:367
+#: usr/local/www/firewall_rules_edit.php:1343
msgid "Schedule"
msgstr "Agenda"
#: usr/local/www/firewall_rules.php:392 usr/local/www/firewall_rules.php:824
#: usr/local/www/firewall_nat.php:211 usr/local/www/firewall_nat.php:334
#: usr/local/www/firewall_rules.php:396 usr/local/www/firewall_rules.php:825
+#: usr/local/www/firewall_nat.php:216 usr/local/www/firewall_nat.php:347
+#: usr/local/www/firewall_rules.php:389 usr/local/www/firewall_rules.php:818
msgid "Do you really want to delete the selected rules?"
msgstr "Você realmente quer apagar as regras selecionadas?"
#: usr/local/www/firewall_rules.php:394 usr/local/www/firewall_rules.php:794
#: usr/local/www/firewall_rules.php:826 usr/local/www/firewall_rules.php:398
#: usr/local/www/firewall_rules.php:795 usr/local/www/firewall_rules.php:827
+#: usr/local/www/firewall_rules.php:391 usr/local/www/firewall_rules.php:788
+#: usr/local/www/firewall_rules.php:820
msgid "add new rule"
msgstr "adicionar nova regra"
#: usr/local/www/firewall_rules.php:431 usr/local/www/firewall_rules.php:425
+#: usr/local/www/firewall_rules.php:418
msgid "Anti-Lockout Rule"
msgstr "Regra Anti-Lockout"
@@ -11765,32 +14962,42 @@ msgstr "Regra Anti-Lockout"
#: usr/local/www/firewall_rules.php:497 usr/local/www/firewall_rules.php:780
#: usr/local/www/firewall_rules.php:434 usr/local/www/firewall_rules.php:463
#: usr/local/www/firewall_rules.php:491 usr/local/www/firewall_rules.php:777
+#: usr/local/www/firewall_rules.php:427 usr/local/www/firewall_rules.php:456
+#: usr/local/www/firewall_rules.php:484 usr/local/www/firewall_rules.php:770
msgid "add a new rule based on this one"
msgstr "adicionar uma nova regra baseada nesta"
#: usr/local/www/firewall_rules.php:453 usr/local/www/firewall_rules.php:447
+#: usr/local/www/firewall_rules.php:440
msgid "RFC 1918 networks"
msgstr "Redes RFC 1918"
#: usr/local/www/firewall_rules.php:460 usr/local/www/interfaces.php:2414
#: usr/local/www/firewall_rules.php:454 usr/local/www/interfaces.php:2615
+#: usr/local/www/firewall_rules.php:447 usr/local/www/interfaces.php:2603
+#: usr/local/www/interfaces.php:2633
msgid "Block private networks"
msgstr "Bloquear redes privadas"
#: usr/local/www/firewall_rules.php:481 usr/local/www/firewall_rules.php:475
+#: usr/local/www/firewall_rules.php:468
msgid "Reserved/not assigned by IANA"
msgstr "Reservado/não atribuído por IANA"
#: usr/local/www/firewall_rules.php:488 usr/local/www/interfaces.php:2426
#: usr/local/www/firewall_rules.php:482 usr/local/www/interfaces.php:2627
+#: usr/local/www/firewall_rules.php:475 usr/local/www/interfaces.php:2615
+#: usr/local/www/interfaces.php:2645
msgid "Block bogon networks"
msgstr "Bloquear redes bogon"
#: usr/local/www/firewall_rules.php:513 usr/local/www/firewall_rules.php:507
+#: usr/local/www/firewall_rules.php:500
msgid "advanced settings set"
msgstr "conjunto de configurações avançadas"
#: usr/local/www/firewall_rules.php:537 usr/local/www/firewall_rules.php:531
+#: usr/local/www/firewall_rules.php:524
msgid "click to toggle enabled/disabled status"
msgstr "clique para alternar o status entre habilitado/desabilitado"
@@ -11798,12 +15005,14 @@ msgstr "clique para alternar o status entre habilitado/desabilitado"
#: usr/local/www/firewall_schedule_edit.php:69
#: usr/local/www/firewall_schedule_edit.php:846
#: usr/local/www/firewall_rules.php:567
+#: usr/local/www/firewall_schedule_edit.php:845
+#: usr/local/www/firewall_rules.php:560
msgid "Mon"
msgstr "Seg"
#: usr/local/www/firewall_rules.php:573 usr/local/www/firewall_schedule.php:43
#: usr/local/www/firewall_schedule_edit.php:69
-#: usr/local/www/firewall_rules.php:567
+#: usr/local/www/firewall_rules.php:567 usr/local/www/firewall_rules.php:560
msgid "Tues"
msgstr "Ter"
@@ -11811,12 +15020,14 @@ msgstr "Ter"
#: usr/local/www/firewall_schedule_edit.php:69
#: usr/local/www/firewall_schedule_edit.php:848
#: usr/local/www/firewall_rules.php:567
+#: usr/local/www/firewall_schedule_edit.php:847
+#: usr/local/www/firewall_rules.php:560
msgid "Wed"
msgstr "Qua"
#: usr/local/www/firewall_rules.php:573 usr/local/www/firewall_schedule.php:43
#: usr/local/www/firewall_schedule_edit.php:69
-#: usr/local/www/firewall_rules.php:567
+#: usr/local/www/firewall_rules.php:567 usr/local/www/firewall_rules.php:560
msgid "Thur"
msgstr "Qui"
@@ -11824,6 +15035,8 @@ msgstr "Qui"
#: usr/local/www/firewall_schedule_edit.php:69
#: usr/local/www/firewall_schedule_edit.php:850
#: usr/local/www/firewall_rules.php:567
+#: usr/local/www/firewall_schedule_edit.php:849
+#: usr/local/www/firewall_rules.php:560
msgid "Fri"
msgstr "Sex"
@@ -11831,6 +15044,8 @@ msgstr "Sex"
#: usr/local/www/firewall_schedule_edit.php:69
#: usr/local/www/firewall_schedule_edit.php:851
#: usr/local/www/firewall_rules.php:567
+#: usr/local/www/firewall_schedule_edit.php:850
+#: usr/local/www/firewall_rules.php:560
msgid "Sat"
msgstr "Sab"
@@ -11838,98 +15053,103 @@ msgstr "Sab"
#: usr/local/www/firewall_schedule_edit.php:69
#: usr/local/www/firewall_schedule_edit.php:852
#: usr/local/www/firewall_rules.php:567
+#: usr/local/www/firewall_schedule_edit.php:851
+#: usr/local/www/firewall_rules.php:560
msgid "Sun"
msgstr "Dom"
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
msgid "January"
msgstr "Janeiro"
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
msgid "February"
msgstr "Fevereiro"
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
msgid "March"
msgstr "Março"
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
msgid "April"
msgstr "Abril"
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
msgid "May"
msgstr "Maio"
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
msgid "June"
msgstr "Junho"
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
msgid "July"
msgstr "Julho"
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
msgid "August"
msgstr "Agosto"
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
msgid "September"
msgstr "Setembro"
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
msgid "October"
msgstr "Outubro"
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
msgid "November"
msgstr "Novembro"
#: usr/local/www/firewall_rules.php:574 usr/local/www/firewall_schedule.php:44
#: usr/local/www/firewall_schedule_edit.php:70
-#: usr/local/www/firewall_rules.php:568
+#: usr/local/www/firewall_rules.php:568 usr/local/www/firewall_rules.php:561
msgid "December"
msgstr "Dezembro"
#: usr/local/www/firewall_rules.php:685 usr/local/www/firewall_rules.php:679
+#: usr/local/www/firewall_rules.php:672
msgid "Traffic matching this rule is currently being denied"
msgstr "Tráfego correspondente a essa regra está atualmente sendo negado"
#: usr/local/www/firewall_rules.php:690 usr/local/www/firewall_rules.php:684
+#: usr/local/www/firewall_rules.php:677
msgid "Traffic matching this rule is currently being allowed"
msgstr "Tráfego correspondente a essa regra está sendo atualmente permitido"
#: usr/local/www/firewall_rules.php:700 usr/local/www/firewall_rules.php:694
+#: usr/local/www/firewall_rules.php:687
msgid "This rule is not currently active because its period has expired"
msgstr "Essa regra não está ativa no momento porque seu período expirou"
-#: usr/local/www/firewall_rules.php:792
+#: usr/local/www/firewall_rules.php:792 usr/local/www/firewall_rules.php:785
msgid "No rules are currently defined for this interface"
msgstr "Nenhuma regra está definida para essa interface atualmente"
-#: usr/local/www/firewall_rules.php:793
+#: usr/local/www/firewall_rules.php:793 usr/local/www/firewall_rules.php:786
msgid ""
"All incoming connections on this interface will be blocked until you add "
"pass rules."
@@ -11938,49 +15158,59 @@ msgstr ""
"adicione regras de liberação."
#: usr/local/www/firewall_rules.php:794 usr/local/www/firewall_rules.php:795
+#: usr/local/www/firewall_rules.php:788
msgid "Click the"
msgstr "Clique em"
#: usr/local/www/firewall_rules.php:794 usr/local/www/firewall_rules.php:795
+#: usr/local/www/firewall_rules.php:788
msgid " button to add a new rule."
msgstr " para adicionar uma nova regra."
#: usr/local/www/firewall_rules.php:817 usr/local/www/firewall_nat.php:327
-#: usr/local/www/firewall_rules.php:818
+#: usr/local/www/firewall_rules.php:818 usr/local/www/firewall_nat.php:340
+#: usr/local/www/firewall_rules.php:811
msgid "move selected rules to end"
msgstr "mover regras selecionadas para o fim"
#: usr/local/www/firewall_rules.php:835 usr/local/www/firewall_nat.php:345
-#: usr/local/www/firewall_rules.php:836
+#: usr/local/www/firewall_rules.php:836 usr/local/www/firewall_nat.php:358
+#: usr/local/www/firewall_rules.php:829
msgid "pass"
msgstr "liberar"
#: usr/local/www/firewall_rules.php:838 usr/local/www/firewall_rules.php:839
+#: usr/local/www/firewall_rules.php:832
msgid "block"
msgstr "bloquear"
#: usr/local/www/firewall_rules.php:841 usr/local/www/license.php:125
-#: usr/local/www/firewall_rules.php:842
+#: usr/local/www/firewall_rules.php:842 usr/local/www/firewall_rules.php:835
msgid "reject"
msgstr "rejeitar"
#: usr/local/www/firewall_rules.php:844 usr/local/www/firewall_rules.php:845
+#: usr/local/www/firewall_rules.php:838
msgid "log"
msgstr "log"
#: usr/local/www/firewall_rules.php:848 usr/local/www/firewall_rules.php:849
+#: usr/local/www/firewall_rules.php:842
msgid "pass (disabled)"
msgstr "liberação (desabilitado)"
#: usr/local/www/firewall_rules.php:851 usr/local/www/firewall_rules.php:852
+#: usr/local/www/firewall_rules.php:845
msgid "block (disabled)"
msgstr "bloqueio (desabilitado)"
#: usr/local/www/firewall_rules.php:854 usr/local/www/firewall_rules.php:855
+#: usr/local/www/firewall_rules.php:848
msgid "reject (disabled)"
msgstr "rejeitado (desabilitado)"
#: usr/local/www/firewall_rules.php:857 usr/local/www/firewall_rules.php:858
+#: usr/local/www/firewall_rules.php:851
msgid "log (disabled)"
msgstr "log (desabilitado)"
@@ -11988,10 +15218,14 @@ msgstr "log (desabilitado)"
#: usr/local/www/load_balancer_pool.php:148 usr/local/www/vpn_l2tp.php:354
#: usr/local/www/vpn_l2tp.php:371 usr/local/www/firewall_rules.php:864
#: usr/local/www/load_balancer_pool.php:149
+#: usr/local/www/firewall_rules.php:857 usr/local/www/vpn_l2tp.php:355
+#: usr/local/www/vpn_l2tp.php:372 usr/local/www/load_balancer_pool.php:147
+#: usr/local/www/vpn_l2tp.php:358 usr/local/www/vpn_l2tp.php:375
msgid "Hint:"
msgstr "Dica:"
#: usr/local/www/firewall_rules.php:867 usr/local/www/firewall_rules.php:868
+#: usr/local/www/firewall_rules.php:861
msgid ""
"Rules are evaluated on a first-match basis (i.e. the action of the first "
"rule to match a packet will be executed). This means that if you use block "
@@ -12004,6 +15238,7 @@ msgstr ""
"regras. Tudo que não estiver explícitamente liberado é bloqueado por padrão."
#: usr/local/www/firewall_rules.php:874 usr/local/www/firewall_rules.php:875
+#: usr/local/www/firewall_rules.php:868
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 "
@@ -12027,11 +15262,14 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:204
#: usr/local/www/firewall_rules_edit.php:213
+#: usr/local/www/firewall_rules_edit.php:210
msgid "Queue type rules only work with queues."
msgstr "Regras do tipo fila só funcionam com filas."
#: usr/local/www/firewall_rules_edit.php:212
#: usr/local/www/firewall_rules_edit.php:227
+#: usr/local/www/firewall_rules_edit.php:225
+#: usr/local/www/firewall_rules_edit.php:222
msgid "You can not assign a IPv4 gateway group on IPv6 Address Family rule"
msgstr ""
"Você não pode associar um grupo de gateways IPv4 a um endereço da família "
@@ -12039,6 +15277,8 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:215
#: usr/local/www/firewall_rules_edit.php:230
+#: usr/local/www/firewall_rules_edit.php:228
+#: usr/local/www/firewall_rules_edit.php:225
msgid "You can not assign a IPv6 gateway group on IPv4 Address Family rule"
msgstr ""
"Você não pode associar um grupo de gateways IPv6 a um endereço da família "
@@ -12046,28 +15286,38 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:222
#: usr/local/www/firewall_rules_edit.php:240
+#: usr/local/www/firewall_rules_edit.php:239
+#: usr/local/www/firewall_rules_edit.php:236
msgid "You can not assign the IPv4 Gateway to a IPv6 Filter rule"
msgstr "Você não pode associar um gateway IPv4 a uma regra de filtro IPv6"
#: usr/local/www/firewall_rules_edit.php:225
#: usr/local/www/firewall_rules_edit.php:243
+#: usr/local/www/firewall_rules_edit.php:242
+#: usr/local/www/firewall_rules_edit.php:239
msgid "You can not assign the IPv6 Gateway to a IPv4 Filter rule"
msgstr "Você não pode associar um gateway IPv6 a uma regra de filtro IPv4"
#: usr/local/www/firewall_rules_edit.php:297
#: usr/local/www/firewall_rules_edit.php:321
+#: usr/local/www/firewall_rules_edit.php:320
+#: usr/local/www/firewall_rules_edit.php:323
#, php-format
msgid "%s is only valid with protocol tcp."
msgstr "%s é válido somente com o protocolo TCP."
#: usr/local/www/firewall_rules_edit.php:299
#: usr/local/www/firewall_rules_edit.php:323
+#: usr/local/www/firewall_rules_edit.php:322
+#: usr/local/www/firewall_rules_edit.php:325
#, php-format
msgid "%s is only valid if the gateway is set to 'default'."
msgstr "%s somente é valido se o gateway estiver configurado para 'padrão'."
#: usr/local/www/firewall_rules_edit.php:327
#: usr/local/www/firewall_rules_edit.php:351
+#: usr/local/www/firewall_rules_edit.php:350
+#: usr/local/www/firewall_rules_edit.php:353
#, php-format
msgid ""
"%s is not a valid end source port. It must be a port alias or integer "
@@ -12078,6 +15328,8 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:381
#: usr/local/www/firewall_rules_edit.php:410
+#: usr/local/www/firewall_rules_edit.php:409
+#: usr/local/www/firewall_rules_edit.php:412
#, php-format
msgid ""
"The Source IP address %s Address Family differs from the destination %s."
@@ -12085,32 +15337,44 @@ msgstr "A família do endereço IP de origem %s defere do destino %s."
#: usr/local/www/firewall_rules_edit.php:383
#: usr/local/www/firewall_rules_edit.php:412
+#: usr/local/www/firewall_rules_edit.php:411
+#: usr/local/www/firewall_rules_edit.php:414
msgid "You can not use IPv6 addresses in IPv4 rules."
msgstr "Você não pode usar endereços IPv6 em regras IPv4."
#: usr/local/www/firewall_rules_edit.php:385
#: usr/local/www/firewall_rules_edit.php:414
+#: usr/local/www/firewall_rules_edit.php:413
+#: usr/local/www/firewall_rules_edit.php:416
msgid "You can not use IPv4 addresses in IPv6 rules."
msgstr "Você não pode utilizar endereços IPv4 em regras IPv6."
#: usr/local/www/firewall_rules_edit.php:402
#: usr/local/www/firewall_rules_edit.php:434
+#: usr/local/www/firewall_rules_edit.php:433
+#: usr/local/www/firewall_rules_edit.php:436
msgid "OS detection is only valid with protocol tcp."
msgstr "Detecção de OS somente é válida com o protocolo tcp."
#: usr/local/www/firewall_rules_edit.php:406
#: usr/local/www/firewall_rules_edit.php:438
+#: usr/local/www/firewall_rules_edit.php:437
+#: usr/local/www/firewall_rules_edit.php:440
msgid "You have to select a queue when you select an acknowledge queue too."
msgstr ""
"Você selecionou uma fila quando selecionou uma fila de reconhecimento também."
#: usr/local/www/firewall_rules_edit.php:408
#: usr/local/www/firewall_rules_edit.php:440
+#: usr/local/www/firewall_rules_edit.php:439
+#: usr/local/www/firewall_rules_edit.php:442
msgid "Acknowledge queue and Queue cannot be the same."
msgstr "Fila de reconhecimento e a Fila não podem ser a mesma."
#: usr/local/www/firewall_rules_edit.php:411
#: usr/local/www/firewall_rules_edit.php:443
+#: usr/local/www/firewall_rules_edit.php:442
+#: usr/local/www/firewall_rules_edit.php:445
msgid ""
"You can not use limiters in Floating rules without choosing a direction."
msgstr ""
@@ -12118,6 +15382,8 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:413
#: usr/local/www/firewall_rules_edit.php:445
+#: usr/local/www/firewall_rules_edit.php:444
+#: usr/local/www/firewall_rules_edit.php:447
msgid ""
"You can not use gateways in Floating rules without choosing a direction."
msgstr ""
@@ -12125,6 +15391,8 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:416
#: usr/local/www/firewall_rules_edit.php:448
+#: usr/local/www/firewall_rules_edit.php:447
+#: usr/local/www/firewall_rules_edit.php:450
msgid ""
"You must select a queue for the In direction before selecting one for Out "
"too."
@@ -12134,6 +15402,8 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:418
#: usr/local/www/firewall_rules_edit.php:450
+#: usr/local/www/firewall_rules_edit.php:449
+#: usr/local/www/firewall_rules_edit.php:452
msgid "In and Out Queue cannot be the same."
msgstr "Filas para Dentro e Fora não podem ser a mesma."
@@ -12141,6 +15411,9 @@ msgstr "Filas para Dentro e Fora não podem ser a mesma."
#: usr/local/www/firewall_rules_edit.php:422
#: usr/local/www/firewall_rules_edit.php:452
#: usr/local/www/firewall_rules_edit.php:454
+#: usr/local/www/firewall_rules_edit.php:451
+#: usr/local/www/firewall_rules_edit.php:453
+#: usr/local/www/firewall_rules_edit.php:456
msgid ""
"You cannot select one queue and one virtual interface for IN and Out. both "
"must be from the same type."
@@ -12150,17 +15423,23 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:425
#: usr/local/www/firewall_rules_edit.php:457
+#: usr/local/www/firewall_rules_edit.php:458
+#: usr/local/www/firewall_rules_edit.php:461
msgid "ID must be an integer"
msgstr "ID deve ser um inteiro"
#: usr/local/www/firewall_rules_edit.php:428
#: usr/local/www/firewall_rules_edit.php:460
+#: usr/local/www/firewall_rules_edit.php:461
+#: usr/local/www/firewall_rules_edit.php:464
msgid "You can only select a layer7 container for TCP and/or UDP protocols"
msgstr ""
"Você somente pode selecionar um conteiner layer7 para TCP e/ou protocolos UDP"
#: usr/local/www/firewall_rules_edit.php:430
#: usr/local/www/firewall_rules_edit.php:462
+#: usr/local/www/firewall_rules_edit.php:463
+#: usr/local/www/firewall_rules_edit.php:466
msgid "You can only select a layer7 container for Pass type rules."
msgstr ""
"Você somente pode selecionar um conteiner layer7 para regras de tipo "
@@ -12168,6 +15447,8 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:443
#: usr/local/www/firewall_rules_edit.php:475
+#: usr/local/www/firewall_rules_edit.php:476
+#: usr/local/www/firewall_rules_edit.php:479
msgid ""
"If you specify TCP flags that should be set you should specify out of which "
"flags as well."
@@ -12177,11 +15458,13 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:652
#: usr/local/www/firewall_rules_edit.php:685
+#: usr/local/www/firewall_rules_edit.php:688
msgid "Edit Firewall rule"
msgstr "Editar regras de Firewall"
#: usr/local/www/firewall_rules_edit.php:673
#: usr/local/www/firewall_rules_edit.php:706
+#: usr/local/www/firewall_rules_edit.php:709
msgid "Choose what to do with packets that match the criteria specified below."
msgstr ""
"Escolha o que fazer com os pacotes que correspondem aos critérios "
@@ -12189,6 +15472,7 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:674
#: usr/local/www/firewall_rules_edit.php:707
+#: usr/local/www/firewall_rules_edit.php:710
msgid ""
"Hint: the difference between block and reject is that with reject, a packet "
"(TCP RST or ICMP port unreachable for UDP) is returned to the sender, "
@@ -12202,16 +15486,19 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:689
#: usr/local/www/firewall_rules_edit.php:722
+#: usr/local/www/firewall_rules_edit.php:725
msgid "Quick"
msgstr "Rápido"
#: usr/local/www/firewall_rules_edit.php:693
#: usr/local/www/firewall_rules_edit.php:726
+#: usr/local/www/firewall_rules_edit.php:729
msgid "Apply the action immediately on match."
msgstr "Aplicar a ação imediatamente após correspondência."
#: usr/local/www/firewall_rules_edit.php:694
#: usr/local/www/firewall_rules_edit.php:727
+#: usr/local/www/firewall_rules_edit.php:730
msgid ""
"Set this option if you need to apply this action to traffic that matches "
"this rule immediately."
@@ -12221,22 +15508,27 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:701
#: usr/local/www/firewall_rules_edit.php:734
+#: usr/local/www/firewall_rules_edit.php:737
msgid "Associated filter rule"
msgstr "Regra de filtro associada"
#: usr/local/www/firewall_rules_edit.php:703
#: usr/local/www/diag_traceroute.php:117 usr/local/www/diag_traceroute.php:137
#: usr/local/www/firewall_rules_edit.php:736
+#: usr/local/www/firewall_rules_edit.php:739
+#: usr/local/www/diag_traceroute.php:141
msgid "Note: "
msgstr "Nota:"
#: usr/local/www/firewall_rules_edit.php:703
#: usr/local/www/firewall_rules_edit.php:736
+#: usr/local/www/firewall_rules_edit.php:739
msgid "This is associated to a NAT rule."
msgstr "Isto está associado à regra NAT."
#: usr/local/www/firewall_rules_edit.php:704
#: usr/local/www/firewall_rules_edit.php:737
+#: usr/local/www/firewall_rules_edit.php:740
msgid ""
"You cannot edit the interface, protocol, source, or destination of "
"associated filter rules."
@@ -12246,11 +15538,13 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:711
#: usr/local/www/firewall_rules_edit.php:744
+#: usr/local/www/firewall_rules_edit.php:747
msgid "View the NAT rule"
msgstr "Veja a regra NAT"
#: usr/local/www/firewall_rules_edit.php:768
#: usr/local/www/firewall_rules_edit.php:803
+#: usr/local/www/firewall_rules_edit.php:806
msgid "Choose on which interface packets must come in to match this rule."
msgstr ""
"Escolha quais pacotes de interface devem entrar para corresponder a essa "
@@ -12264,31 +15558,41 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname_edit.php:160
#: usr/local/www/load_balancer_relay_action_edit.php:442
#: usr/local/www/firewall_rules_edit.php:809
+#: usr/local/www/services_captiveportal_hostname_edit.php:158
+#: usr/local/www/load_balancer_relay_action_edit.php:440
+#: usr/local/www/services_captiveportal_ip_edit.php:176
+#: usr/local/www/diag_ipsec_spd.php:89
+#: usr/local/www/firewall_rules_edit.php:812
msgid "Direction"
msgstr "Direção"
#: usr/local/www/firewall_rules_edit.php:792
#: usr/local/www/firewall_rules_edit.php:827
+#: usr/local/www/firewall_rules_edit.php:830
msgid "TCP/IP Version"
msgstr "Versão TCP/IP"
#: usr/local/www/firewall_rules_edit.php:804
#: usr/local/www/firewall_rules_edit.php:839
+#: usr/local/www/firewall_rules_edit.php:842
msgid "Select the Internet Protocol version this rule applies to"
msgstr "Selecione a versão do Internet Protocol a qual esta regra se aplica"
#: usr/local/www/firewall_rules_edit.php:818
#: usr/local/www/firewall_rules_edit.php:853
+#: usr/local/www/firewall_rules_edit.php:856
msgid "Hint: in most cases, you should specify "
msgstr "Dica: na maioria dos casos, você deve especificar "
#: usr/local/www/firewall_rules_edit.php:822
#: usr/local/www/firewall_rules_edit.php:857
+#: usr/local/www/firewall_rules_edit.php:860
msgid "ICMP type"
msgstr "Tipo ICMP"
#: usr/local/www/firewall_rules_edit.php:851
#: usr/local/www/firewall_rules_edit.php:886
+#: usr/local/www/firewall_rules_edit.php:889
msgid ""
"If you selected ICMP for the protocol above, you may specify an ICMP type "
"here."
@@ -12298,21 +15602,25 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:885
#: usr/local/www/firewall_rules_edit.php:920
+#: usr/local/www/firewall_rules_edit.php:929
msgid " subnet"
msgstr " subrede"
#: usr/local/www/firewall_rules_edit.php:908
#: usr/local/www/firewall_rules_edit.php:943
+#: usr/local/www/firewall_rules_edit.php:952
msgid "Show source port range"
msgstr "Mostrar intervalo de porta de origem"
#: usr/local/www/firewall_rules_edit.php:944
#: usr/local/www/firewall_rules_edit.php:979
+#: usr/local/www/firewall_rules_edit.php:988
msgid "Specify the source port or port range for this rule."
msgstr "Especificar a porta de origem ou o intervalo de porta para essa regra."
#: usr/local/www/firewall_rules_edit.php:944
#: usr/local/www/firewall_rules_edit.php:979
+#: usr/local/www/firewall_rules_edit.php:988
msgid ""
"and almost never equal to the destination port range (and should usually be"
msgstr ""
@@ -12322,16 +15630,20 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1039
#: usr/local/www/firewall_rules_edit.php:979
#: usr/local/www/firewall_rules_edit.php:1074
+#: usr/local/www/firewall_rules_edit.php:988
+#: usr/local/www/firewall_rules_edit.php:1089
msgid "'to'"
msgstr "'para'"
#: usr/local/www/firewall_rules_edit.php:1005
#: usr/local/www/firewall_rules_edit.php:1040
+#: usr/local/www/firewall_rules_edit.php:1055
msgid "Destination port range "
msgstr "Intervalo de porta de destino "
#: usr/local/www/firewall_rules_edit.php:1037
#: usr/local/www/firewall_rules_edit.php:1072
+#: usr/local/www/firewall_rules_edit.php:1087
msgid ""
"Specify the port or port range for the destination of the packet for this "
"rule."
@@ -12341,21 +15653,25 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1039
#: usr/local/www/firewall_rules_edit.php:1074
+#: usr/local/www/firewall_rules_edit.php:1089
msgid "field empty if you only want to filter a single port"
msgstr "campo vazio se você somente quiser filtrar uma única porta"
#: usr/local/www/firewall_rules_edit.php:1044
#: usr/local/www/firewall_rules_edit.php:1079
+#: usr/local/www/firewall_rules_edit.php:1094
msgid "Log"
msgstr "Log"
#: usr/local/www/firewall_rules_edit.php:1047
#: usr/local/www/firewall_rules_edit.php:1082
+#: usr/local/www/firewall_rules_edit.php:1097
msgid "Log packets that are handled by this rule"
msgstr "Pacotes de log que são tratados por essa regra"
#: usr/local/www/firewall_rules_edit.php:1049
#: usr/local/www/firewall_rules_edit.php:1084
+#: usr/local/www/firewall_rules_edit.php:1099
msgid ""
"Hint: the firewall has limited local log space. Don't turn on logging for "
"everything. If you want to do a lot of logging, consider using a remote "
@@ -12367,11 +15683,13 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1049
#: usr/local/www/firewall_rules_edit.php:1084
+#: usr/local/www/firewall_rules_edit.php:1099
msgid "see the"
msgstr "veja o"
#: usr/local/www/firewall_rules_edit.php:1049
#: usr/local/www/firewall_rules_edit.php:1084
+#: usr/local/www/firewall_rules_edit.php:1099
msgid "Diagnostics: System logs: Settings"
msgstr "Diagnóstico: Logs de sistema: Configurações"
@@ -12381,32 +15699,41 @@ msgstr "Diagnóstico: Logs de sistema: Configurações"
#: usr/local/www/firewall_rules_edit.php:1084
#: usr/local/www/system_advanced_firewall.php:303
#: usr/local/www/services_captiveportal.php:953
+#: usr/local/www/services_captiveportal.php:949
+#: usr/local/www/firewall_rules_edit.php:1099
+#: usr/local/www/system_advanced_firewall.php:332
+#: usr/local/www/services_captiveportal.php:951
msgid "page"
msgstr "página"
#: usr/local/www/firewall_rules_edit.php:1057
#: usr/local/www/services_unbound_acls.php:296
#: usr/local/www/firewall_rules_edit.php:1092
+#: usr/local/www/firewall_rules_edit.php:1107
msgid "You may enter a description here for your reference."
msgstr "Você deve informar com uma descrição para sua referência."
#: usr/local/www/firewall_rules_edit.php:1080
#: usr/local/www/firewall_rules_edit.php:1115
+#: usr/local/www/firewall_rules_edit.php:1130
msgid "Source OS"
msgstr "Fonte OS"
#: usr/local/www/firewall_rules_edit.php:1086
#: usr/local/www/firewall_rules_edit.php:1121
+#: usr/local/www/firewall_rules_edit.php:1136
msgid "OS Type:"
msgstr "Tipo OS:"
#: usr/local/www/firewall_rules_edit.php:1109
#: usr/local/www/firewall_rules_edit.php:1144
+#: usr/local/www/firewall_rules_edit.php:1159
msgid "Note: this only works for TCP rules"
msgstr "Nota: isso somente funciona para regras TCP"
#: usr/local/www/firewall_rules_edit.php:1114
#: usr/local/www/firewall_rules_edit.php:1149
+#: usr/local/www/firewall_rules_edit.php:1164
msgid "Diffserv Code Point"
msgstr "Diff Code Point"
@@ -12417,11 +15744,19 @@ msgstr "Diff Code Point"
#: usr/local/www/firewall_rules_edit.php:1165
#: usr/local/www/vpn_ipsec_phase2.php:655
#: usr/local/www/vpn_ipsec_phase1.php:819
+#: usr/local/www/interfaces_ppps_edit.php:676
+#: usr/local/www/vpn_ipsec_phase2.php:751
+#: usr/local/www/vpn_ipsec_phase1.php:816
+#: usr/local/www/firewall_rules_edit.php:1180
+#: usr/local/www/interfaces_ppps_edit.php:682
+#: usr/local/www/vpn_ipsec_phase1.php:837
+#: usr/local/www/vpn_ipsec_phase2.php:772
msgid "Advanced Options"
msgstr "Opções Avançadas"
#: usr/local/www/firewall_rules_edit.php:1137
#: usr/local/www/firewall_rules_edit.php:1172
+#: usr/local/www/firewall_rules_edit.php:1187
msgid ""
"This allows packets with IP options to pass. Otherwise they are blocked by "
"default. This is usually only seen with multicast traffic."
@@ -12432,11 +15767,13 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1140
#: usr/local/www/firewall_rules_edit.php:1175
+#: usr/local/www/firewall_rules_edit.php:1190
msgid "This will disable auto generated reply-to for this rule."
msgstr "Isso irá desabilitar auto geração de respostas para essa regra."
#: usr/local/www/firewall_rules_edit.php:1143
#: usr/local/www/firewall_rules_edit.php:1178
+#: usr/local/www/firewall_rules_edit.php:1193
msgid ""
"You can mark a packet matching this rule and use this mark to match on other "
"NAT/filter rules. It is called"
@@ -12446,62 +15783,74 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1143
#: usr/local/www/firewall_rules_edit.php:1178
+#: usr/local/www/firewall_rules_edit.php:1193
msgid "Policy filtering"
msgstr "Política de filtro"
#: usr/local/www/firewall_rules_edit.php:1146
#: usr/local/www/firewall_rules_edit.php:1181
+#: usr/local/www/firewall_rules_edit.php:1196
msgid "You can match packet on a mark placed before on another rule."
msgstr ""
"Você pode combinar pacotes com uma marca colocada antes em outra regra."
#: usr/local/www/firewall_rules_edit.php:1148
#: usr/local/www/firewall_rules_edit.php:1183
+#: usr/local/www/firewall_rules_edit.php:1198
msgid " Maximum state entries this rule can create"
msgstr " Máximo de entradas de estado que essa regra pode criar"
#: usr/local/www/firewall_rules_edit.php:1149
#: usr/local/www/firewall_rules_edit.php:1184
+#: usr/local/www/firewall_rules_edit.php:1199
msgid " Maximum number of unique source hosts"
msgstr " Número máximo de hosts fonte únicos"
#: usr/local/www/firewall_rules_edit.php:1150
#: usr/local/www/firewall_rules_edit.php:1185
+#: usr/local/www/firewall_rules_edit.php:1200
msgid " Maximum number of established connections per host"
msgstr " Número máximo de conexões estabelecidas por host"
#: usr/local/www/firewall_rules_edit.php:1151
#: usr/local/www/firewall_rules_edit.php:1186
+#: usr/local/www/firewall_rules_edit.php:1201
msgid " Maximum state entries per host"
msgstr " Máximo de entradas de estado por host"
#: usr/local/www/firewall_rules_edit.php:1160
#: usr/local/www/firewall_rules_edit.php:1195
+#: usr/local/www/firewall_rules_edit.php:1210
msgid "Maximum new connections / per second(s)"
msgstr "Máximo de novas conexões / por segundo(s)"
#: usr/local/www/firewall_rules_edit.php:1164
#: usr/local/www/firewall_rules_edit.php:1199
+#: usr/local/www/firewall_rules_edit.php:1214
msgid "State Timeout in seconds"
msgstr "Tempo de espera de estado em segundos"
#: usr/local/www/firewall_rules_edit.php:1167
#: usr/local/www/firewall_rules_edit.php:1202
+#: usr/local/www/firewall_rules_edit.php:1217
msgid "Note: Leave fields blank to disable that feature."
msgstr "Nota: Deixe os campos em branco para desabilitar essa função."
#: usr/local/www/firewall_rules_edit.php:1172
#: usr/local/www/firewall_rules_edit.php:1207
+#: usr/local/www/firewall_rules_edit.php:1222
msgid "TCP flags"
msgstr "TCP flags"
#: usr/local/www/firewall_rules_edit.php:1206
#: usr/local/www/firewall_rules_edit.php:1241
+#: usr/local/www/firewall_rules_edit.php:1256
msgid "Any flags."
msgstr "Qualquer flag."
#: usr/local/www/firewall_rules_edit.php:1208
#: usr/local/www/firewall_rules_edit.php:1243
+#: usr/local/www/firewall_rules_edit.php:1258
msgid ""
"Use this to choose TCP flags that must be set or cleared for this rule to "
"match."
@@ -12511,6 +15860,7 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1214
#: usr/local/www/firewall_rules_edit.php:1249
+#: usr/local/www/firewall_rules_edit.php:1264
msgid "State Type"
msgstr "Tipo de Estado"
@@ -12518,6 +15868,8 @@ msgstr "Tipo de Estado"
#: usr/local/www/firewall_rules_edit.php:1228
#: usr/local/www/firewall_rules_edit.php:1256
#: usr/local/www/firewall_rules_edit.php:1263
+#: usr/local/www/firewall_rules_edit.php:1271
+#: usr/local/www/firewall_rules_edit.php:1278
msgid "keep state"
msgstr "manter estado"
@@ -12525,6 +15877,8 @@ msgstr "manter estado"
#: usr/local/www/firewall_rules_edit.php:1229
#: usr/local/www/firewall_rules_edit.php:1257
#: usr/local/www/firewall_rules_edit.php:1264
+#: usr/local/www/firewall_rules_edit.php:1272
+#: usr/local/www/firewall_rules_edit.php:1279
msgid "sloppy state"
msgstr "estado sloppy"
@@ -12532,11 +15886,14 @@ msgstr "estado sloppy"
#: usr/local/www/firewall_rules_edit.php:1230
#: usr/local/www/firewall_rules_edit.php:1258
#: usr/local/www/firewall_rules_edit.php:1265
+#: usr/local/www/firewall_rules_edit.php:1273
+#: usr/local/www/firewall_rules_edit.php:1280
msgid "synproxy state"
msgstr "estado synproxy"
#: usr/local/www/firewall_rules_edit.php:1225
#: usr/local/www/firewall_rules_edit.php:1260
+#: usr/local/www/firewall_rules_edit.php:1275
msgid ""
"Hint: Select which type of state tracking mechanism you would like to use. "
"If in doubt, use keep state."
@@ -12548,11 +15905,14 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1229
#: usr/local/www/firewall_rules_edit.php:1263
#: usr/local/www/firewall_rules_edit.php:1264
+#: usr/local/www/firewall_rules_edit.php:1278
+#: usr/local/www/firewall_rules_edit.php:1279
msgid "Works with all IP protocols."
msgstr "Funciona com todos os protocolos IP."
#: usr/local/www/firewall_rules_edit.php:1230
#: usr/local/www/firewall_rules_edit.php:1265
+#: usr/local/www/firewall_rules_edit.php:1280
msgid ""
"Proxies incoming TCP connections to help protect servers from spoofed TCP "
"SYN floods. This option includes the functionality of keep state and "
@@ -12564,6 +15924,7 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1231
#: usr/local/www/firewall_rules_edit.php:1266
+#: usr/local/www/firewall_rules_edit.php:1281
msgid ""
"Do not use state mechanisms to keep track. This is only useful if you're "
"doing advanced queueing in certain situations. Please check the "
@@ -12584,6 +15945,7 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1283
#: usr/local/www/firewall_rules_edit.php:1350
+#: usr/local/www/firewall_rules_edit.php:1365
msgid "Leave as 'none' to leave the rule enabled all the time."
msgstr "Deixa como 'nenhum' para deixar a regra habilitada o tempo todo."
@@ -12593,11 +15955,17 @@ msgstr "Deixa como 'nenhum' para deixar a regra habilitada o tempo todo."
#: usr/local/www/firewall_rules_edit.php:1362
#: usr/local/www/services_captiveportal.php:821
#: usr/local/www/services_captiveportal.php:841
+#: usr/local/www/services_captiveportal.php:819
+#: usr/local/www/services_captiveportal.php:839
+#: usr/local/www/firewall_rules_edit.php:1377
+#: usr/local/www/services_captiveportal.php:807
+#: usr/local/www/services_captiveportal.php:837
msgid "default"
msgstr "padrão"
#: usr/local/www/firewall_rules_edit.php:1334
#: usr/local/www/firewall_rules_edit.php:1405
+#: usr/local/www/firewall_rules_edit.php:1420
msgid ""
"Leave as 'default' to use the system routing table. Or choose a gateway to "
"utilize policy based routing."
@@ -12607,11 +15975,13 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1339
#: usr/local/www/firewall_rules_edit.php:1410
+#: usr/local/www/firewall_rules_edit.php:1425
msgid "In/Out"
msgstr "Entrada/Saída"
#: usr/local/www/firewall_rules_edit.php:1383
#: usr/local/www/firewall_rules_edit.php:1454
+#: usr/local/www/firewall_rules_edit.php:1469
msgid ""
"Choose the Out queue/Virtual interface only if you have also selected In."
msgstr ""
@@ -12620,6 +15990,7 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1383
#: usr/local/www/firewall_rules_edit.php:1454
+#: usr/local/www/firewall_rules_edit.php:1469
msgid ""
"The Out selection is applied to traffic leaving the interface where the rule "
"is created, In is applied to traffic coming into the chosen interface."
@@ -12630,6 +16001,7 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1383
#: usr/local/www/firewall_rules_edit.php:1454
+#: usr/local/www/firewall_rules_edit.php:1469
msgid ""
"If you are creating a floating rule, if the direction is In then the same "
"rules apply, if the direction is out the selections are reverted Out is for "
@@ -12643,16 +16015,19 @@ msgstr ""
#: usr/local/www/firewall_rules_edit.php:1389
#: usr/local/www/firewall_rules_edit.php:1460
+#: usr/local/www/firewall_rules_edit.php:1475
msgid "Ackqueue/Queue"
msgstr "Reconhecimento/Fila"
#: usr/local/www/firewall_rules_edit.php:1439
#: usr/local/www/firewall_rules_edit.php:1510
+#: usr/local/www/firewall_rules_edit.php:1525
msgid "Choose the Acknowledge Queue only if you have selected Queue."
msgstr "Escolha a Fila de Acordo somente se você selecionou Fila."
#: usr/local/www/firewall_rules_edit.php:1466
#: usr/local/www/firewall_rules_edit.php:1537
+#: usr/local/www/firewall_rules_edit.php:1552
msgid ""
"Choose a Layer7 container to apply application protocol inspection rules. "
"These are valid for TCP and UDP protocols only."
@@ -12663,7 +16038,9 @@ msgstr ""
#: usr/local/www/firewall_schedule.php:50
#: usr/local/www/firewall_schedule_edit.php:61 usr/local/www/fbegin.inc:113
#: usr/local/www/system_advanced_misc.php:380 usr/local/www/fbegin.inc:130
-#: usr/local/www/system_advanced_misc.php:423
+#: usr/local/www/system_advanced_misc.php:423 usr/local/www/fbegin.inc:139
+#: usr/local/www/system_advanced_misc.php:472
+#: usr/local/www/system_advanced_misc.php:484 usr/local/www/fbegin.inc:131
msgid "Schedules"
msgstr "Agendas"
@@ -12726,37 +16103,45 @@ msgid "The schedule must have at least one time range configured."
msgstr "A agenda deve ter, pelo menos, um intervalo de tempo configurado."
#: usr/local/www/firewall_schedule_edit.php:770
+#: usr/local/www/firewall_schedule_edit.php:769
msgid "Schedule information"
msgstr "Informação da agenda"
#: usr/local/www/firewall_schedule_edit.php:776
+#: usr/local/www/firewall_schedule_edit.php:775
msgid "Schedule Name"
msgstr "Nome da agenda"
#: usr/local/www/firewall_schedule_edit.php:782
+#: usr/local/www/firewall_schedule_edit.php:781
msgid "NOTE: This schedule is in use so the name may not be modified!"
msgstr ""
"NOTA: Essa agenda está em uso e, portanto, o nome não pode ser modificado!"
#: usr/local/www/firewall_schedule_edit.php:787
+#: usr/local/www/firewall_schedule_edit.php:786
msgid ""
"The name of the alias may only consist of the characters a-z, A-Z and 0-9"
msgstr ""
"O nome do alias somente deve consistir nos caracteres de a-z, A-Z e 0-9"
#: usr/local/www/firewall_schedule_edit.php:804
+#: usr/local/www/firewall_schedule_edit.php:803
msgid "Month"
msgstr "Mês"
#: usr/local/www/firewall_schedule_edit.php:847
+#: usr/local/www/firewall_schedule_edit.php:846
msgid "Tue"
msgstr "Ter"
#: usr/local/www/firewall_schedule_edit.php:849
+#: usr/local/www/firewall_schedule_edit.php:848
msgid "Thu"
msgstr "Qui"
#: usr/local/www/firewall_schedule_edit.php:906
+#: usr/local/www/firewall_schedule_edit.php:905
msgid ""
"Click individual date to select that date only. Click the appropriate "
"weekday Header to select all occurences of that weekday."
@@ -12767,25 +16152,34 @@ msgstr ""
#: usr/local/www/firewall_schedule_edit.php:914
#: usr/local/www/firewall_schedule_edit.php:996
+#: usr/local/www/firewall_schedule_edit.php:913
+#: usr/local/www/firewall_schedule_edit.php:995
msgid "Start Time"
msgstr "Hora de início"
#: usr/local/www/firewall_schedule_edit.php:914
#: usr/local/www/firewall_schedule_edit.php:997
+#: usr/local/www/firewall_schedule_edit.php:913
+#: usr/local/www/firewall_schedule_edit.php:996
msgid "Stop Time"
msgstr "Hora de término"
#: usr/local/www/firewall_schedule_edit.php:927
#: usr/local/www/firewall_schedule_edit.php:952
+#: usr/local/www/firewall_schedule_edit.php:926
+#: usr/local/www/firewall_schedule_edit.php:951
msgid "Hr"
msgstr "Hr"
#: usr/local/www/firewall_schedule_edit.php:934
#: usr/local/www/firewall_schedule_edit.php:959
+#: usr/local/www/firewall_schedule_edit.php:933
+#: usr/local/www/firewall_schedule_edit.php:958
msgid "Min"
msgstr "Min"
#: usr/local/www/firewall_schedule_edit.php:963
+#: usr/local/www/firewall_schedule_edit.php:962
msgid ""
"Select the time range for the day(s) selected on the Month(s) above. A full "
"day is 0:00-23:59."
@@ -12794,34 +16188,40 @@ msgstr ""
"acima. Um dia completo é 0:00-23:59."
#: usr/local/www/firewall_schedule_edit.php:967
+#: usr/local/www/firewall_schedule_edit.php:966
msgid "Time Range Description"
msgstr "Descrição do Intervalo de Tempo"
#: usr/local/www/firewall_schedule_edit.php:977
+#: usr/local/www/firewall_schedule_edit.php:976
msgid "Add Time"
msgstr "Adicionar Tempo"
#: usr/local/www/firewall_schedule_edit.php:978
+#: usr/local/www/firewall_schedule_edit.php:977
msgid "Clear Selection"
msgstr "Limpar seleção"
#: usr/local/www/firewall_schedule_edit.php:987
+#: usr/local/www/firewall_schedule_edit.php:986
msgid "Schedule repeat"
msgstr "Repetição de agenda"
#: usr/local/www/firewall_schedule_edit.php:990
+#: usr/local/www/firewall_schedule_edit.php:989
msgid "Configured Ranges"
msgstr "Intervalos configurados"
#: usr/local/www/firewall_schedule_edit.php:995
+#: usr/local/www/firewall_schedule_edit.php:994
msgid "Day(s)"
msgstr "Dia(s)"
-#: usr/local/www/firewall_shaper.php:369
+#: usr/local/www/firewall_shaper.php:369 usr/local/www/firewall_shaper.php:370
msgid "Disable shaper on interface"
msgstr "Desabilitar modelador na interface"
-#: usr/local/www/firewall_shaper.php:424
+#: usr/local/www/firewall_shaper.php:424 usr/local/www/firewall_shaper.php:425
msgid "Remove Shaper"
msgstr "Remover Modelador"
@@ -12836,7 +16236,10 @@ msgstr "Restaurado menu base_package após restauração da configuração."
#: usr/local/www/widgets/widgets/services_status.widget.php:80
#: usr/local/www/fbegin.inc:137 usr/local/www/fbegin.inc:173
#: usr/local/www/status_rrd_graph_settings.php:156
-#: usr/local/www/diag_backup.php:181
+#: usr/local/www/diag_backup.php:181 etc/inc/service-utils.inc:256
+#: usr/local/www/fbegin.inc:146 usr/local/www/fbegin.inc:181
+#: usr/local/www/fbegin.inc:138 usr/local/www/fbegin.inc:172
+#: etc/inc/service-utils.inc:255
msgid "Captive Portal"
msgstr "Portal Captive"
@@ -12848,11 +16251,14 @@ msgstr "Vouchers do Portal Captive"
#: usr/local/www/status_services.php:263
#: usr/local/www/widgets/widgets/services_status.widget.php:68
#: usr/local/www/fbegin.inc:138 usr/local/www/diag_backup.php:183
+#: etc/inc/service-utils.inc:241 usr/local/www/fbegin.inc:147
+#: usr/local/www/fbegin.inc:139 etc/inc/service-utils.inc:240
msgid "DNS Forwarder"
msgstr "DNS Forwarder"
#: usr/local/www/diag_backup.php:107 usr/local/www/fbegin.inc:125
#: usr/local/www/fbegin.inc:142 usr/local/www/diag_backup.php:184
+#: usr/local/www/fbegin.inc:151 usr/local/www/fbegin.inc:143
msgid "DHCP Server"
msgstr "Servidor DHCP"
@@ -12899,6 +16305,7 @@ msgstr "TODOS"
#: usr/local/www/diag_backup.php:157 usr/local/www/diag_backup.php:619
#: usr/local/www/diag_backup.php:654 usr/local/www/diag_backup.php:244
#: usr/local/www/diag_backup.php:698 usr/local/www/diag_backup.php:735
+#: usr/local/www/diag_backup.php:703 usr/local/www/diag_backup.php:740
msgid "Restore configuration"
msgstr "Restaurar configuração"
@@ -12908,6 +16315,7 @@ msgstr "Reinstalar"
#: usr/local/www/diag_backup.php:161 usr/local/www/diag_backup.php:673
#: usr/local/www/diag_backup.php:248 usr/local/www/diag_backup.php:754
+#: usr/local/www/diag_backup.php:762
msgid "Clear Package Lock"
msgstr "Limpar trava de Pacotes"
@@ -12976,15 +16384,18 @@ msgstr "A configuração m0n0wall foi restaurada e atualizada para pfSense."
#: usr/local/www/diag_backup.php:461 usr/local/www/diag_backup.php:485
#: usr/local/www/diag_backup.php:538 usr/local/www/diag_backup.php:562
+#: usr/local/www/diag_backup.php:543 usr/local/www/diag_backup.php:567
msgid "The configuration could not be restored."
msgstr "A configuração não poderá ser restaurada."
#: usr/local/www/diag_backup.php:466 usr/local/www/diag_backup.php:543
+#: usr/local/www/diag_backup.php:548
msgid "The configuration could not be restored (file upload error)."
msgstr ""
"A configuração não pode ser restaurada (erro de carregamento de arquivo)."
#: usr/local/www/diag_backup.php:479 usr/local/www/diag_backup.php:556
+#: usr/local/www/diag_backup.php:561
msgid ""
"XXX - this feature may hose your config (do NOT backrev configs!) - billm"
msgstr ""
@@ -12992,59 +16403,68 @@ msgstr ""
"versão de suas configurações!) - billm"
#: usr/local/www/diag_backup.php:488 usr/local/www/diag_backup.php:565
+#: usr/local/www/diag_backup.php:570
msgid "No version selected."
msgstr "Nenhuma versão selecionada."
#: usr/local/www/diag_backup.php:499 usr/local/www/diag_backup.php:576
+#: usr/local/www/diag_backup.php:581
msgid "Backup/restore"
msgstr "Backup/restauração"
#: usr/local/www/diag_backup.php:540
#: usr/local/www/system_firmware_restorefullbackup.php:116
-#: usr/local/www/diag_backup.php:619
+#: usr/local/www/diag_backup.php:619 usr/local/www/diag_backup.php:624
msgid "The firewall configuration has been changed."
msgstr "A configuração do firewall foi alterada."
#: usr/local/www/diag_backup.php:540
#: usr/local/www/system_firmware_restorefullbackup.php:116
-#: usr/local/www/diag_backup.php:619
+#: usr/local/www/diag_backup.php:619 usr/local/www/diag_backup.php:624
msgid "The firewall is now rebooting."
msgstr "O firewall está reiniciando agora."
#: usr/local/www/diag_backup.php:549 usr/local/www/diag_confbak.php:139
-#: usr/local/www/diag_backup.php:628
+#: usr/local/www/diag_backup.php:628 usr/local/www/diag_backup.php:633
msgid "Config History"
msgstr "Histórico de configuração"
#: usr/local/www/diag_backup.php:550 usr/local/www/diag_confbak.php:140
#: usr/local/www/fbegin.inc:190 usr/local/www/fbegin.inc:208
-#: usr/local/www/diag_backup.php:629
+#: usr/local/www/diag_backup.php:629 usr/local/www/fbegin.inc:216
+#: usr/local/www/diag_backup.php:634 usr/local/www/fbegin.inc:207
msgid "Backup/Restore"
msgstr "Backup/Restauração"
#: usr/local/www/diag_backup.php:560 usr/local/www/diag_backup.php:639
+#: usr/local/www/diag_backup.php:644
msgid "Backup configuration"
msgstr "Configuração do backup"
#: usr/local/www/diag_backup.php:565 usr/local/www/diag_backup.php:644
+#: usr/local/www/diag_backup.php:649
msgid "Click this button to download the system configuration in XML format."
msgstr ""
"Clique neste botão para fazer download da configuração do sistema em formato "
"XML."
#: usr/local/www/diag_backup.php:565 usr/local/www/diag_backup.php:644
+#: usr/local/www/diag_backup.php:649
msgid "Backup area:"
msgstr "Área de backup:"
#: usr/local/www/diag_backup.php:572 usr/local/www/diag_backup.php:651
+#: usr/local/www/diag_backup.php:656
msgid "Do not backup package information."
msgstr "Não fazer backup de informações de pacotes."
#: usr/local/www/diag_backup.php:582 usr/local/www/diag_backup.php:661
+#: usr/local/www/diag_backup.php:666
msgid "Encrypt this configuration file."
msgstr "Criptografar este arquivo de configuração."
#: usr/local/www/diag_backup.php:590 usr/local/www/diag_backup.php:669
+#: usr/local/www/diag_backup.php:674
msgid ""
"Do not backup RRD data (NOTE: RRD Data can consume 4+ megabytes of config."
"xml space!)"
@@ -13053,18 +16473,22 @@ msgstr ""
"de espaço no config.xml!)"
#: usr/local/www/diag_backup.php:605 usr/local/www/diag_backup.php:684
+#: usr/local/www/diag_backup.php:689
msgid "confirm:"
msgstr "confirmar:"
#: usr/local/www/diag_backup.php:612 usr/local/www/diag_backup.php:691
+#: usr/local/www/diag_backup.php:696
msgid "Download configuration"
msgstr "Download da configuração"
#: usr/local/www/diag_backup.php:624 usr/local/www/diag_backup.php:703
+#: usr/local/www/diag_backup.php:708
msgid "Open a"
msgstr "Abra um"
#: usr/local/www/diag_backup.php:624 usr/local/www/diag_backup.php:703
+#: usr/local/www/diag_backup.php:708
msgid ""
"configuration XML file and click the button below to restore the "
"configuration."
@@ -13073,30 +16497,37 @@ msgstr ""
"configuração."
#: usr/local/www/diag_backup.php:624 usr/local/www/diag_backup.php:705
+#: usr/local/www/diag_backup.php:710
msgid "Restore area:"
msgstr "Área de restauração:"
#: usr/local/www/diag_backup.php:632 usr/local/www/diag_backup.php:713
+#: usr/local/www/diag_backup.php:718
msgid "Configuration file is encrypted."
msgstr "O arquivo de configuração está criptografado."
#: usr/local/www/diag_backup.php:639 usr/local/www/diag_backup.php:720
+#: usr/local/www/diag_backup.php:725
msgid "Password :"
msgstr "Senha :"
#: usr/local/www/diag_backup.php:647 usr/local/www/diag_backup.php:728
+#: usr/local/www/diag_backup.php:733
msgid "confirm :"
msgstr "confirmar:"
#: usr/local/www/diag_backup.php:655 usr/local/www/diag_backup.php:736
+#: usr/local/www/diag_backup.php:741
msgid "The firewall will reboot after restoring the configuration."
msgstr "O firewall irá reiniciar após restaurar a configuração."
#: usr/local/www/diag_backup.php:663 usr/local/www/diag_backup.php:744
+#: usr/local/www/diag_backup.php:749
msgid "Package Functions"
msgstr "Funções de Pacotes"
#: usr/local/www/diag_backup.php:668 usr/local/www/diag_backup.php:749
+#: usr/local/www/diag_backup.php:755
msgid ""
"Click this button to reinstall all system packages. This may take a while."
msgstr ""
@@ -13104,10 +16535,12 @@ msgstr ""
"demorar um pouco."
#: usr/local/www/diag_backup.php:669 usr/local/www/diag_backup.php:750
+#: usr/local/www/diag_backup.php:756
msgid "Reinstall packages"
msgstr "Reinstalar pacotes"
#: usr/local/www/diag_backup.php:672 usr/local/www/diag_backup.php:753
+#: usr/local/www/diag_backup.php:761
msgid ""
"Click this button to clear the package lock if a package fails to reinstall "
"properly after an upgrade."
@@ -13168,6 +16601,7 @@ msgstr "Atual"
#: usr/local/www/diag_confbak.php:171 usr/local/www/diag_confbak.php:173
#: usr/local/www/widgets/widgets/gateways.widget.php:105
+#: usr/local/www/widgets/widgets/gateways.widget.php:128
msgid "Unknown"
msgstr "Desconhecido"
@@ -13196,6 +16630,7 @@ msgid "No backups found."
msgstr "Nenhum backup foi encontrado."
#: usr/local/www/firewall_virtual_ip.php:106
+#: usr/local/www/firewall_virtual_ip.php:103
msgid ""
"This entry cannot be deleted because it is still referenced by at least one "
"NAT mapping."
@@ -13215,49 +16650,69 @@ msgstr ""
"Essa entrada não pode ser removida porque ela ainda é referenciada pelo CARP"
#: usr/local/www/firewall_virtual_ip.php:149
+#: usr/local/www/firewall_virtual_ip.php:152
+#: usr/local/www/firewall_virtual_ip.php:166
msgid "Virtual IP Addresses"
msgstr "Endereços IP Virtuais"
#: usr/local/www/firewall_virtual_ip.php:164
+#: usr/local/www/firewall_virtual_ip.php:167
+#: usr/local/www/firewall_virtual_ip.php:181
msgid "The VIP configuration has been changed."
msgstr "A configuração de Endereços IP Virtuais foi modificada."
#: usr/local/www/firewall_virtual_ip.php:172 usr/local/www/fbegin.inc:115
-#: usr/local/www/fbegin.inc:132
+#: usr/local/www/fbegin.inc:132 usr/local/www/fbegin.inc:141
+#: usr/local/www/firewall_virtual_ip.php:175
+#: usr/local/www/firewall_virtual_ip.php:189 usr/local/www/fbegin.inc:133
msgid "Virtual IPs"
msgstr "IPs Virtuais"
#: usr/local/www/firewall_virtual_ip.php:173
+#: usr/local/www/firewall_virtual_ip.php:176
+#: usr/local/www/firewall_virtual_ip.php:190
msgid "CARP Settings"
msgstr "Configurações do CARP"
#: usr/local/www/firewall_virtual_ip.php:185
+#: usr/local/www/firewall_virtual_ip.php:188
+#: usr/local/www/firewall_virtual_ip.php:202
msgid "Virtual IP address"
msgstr "Endereços IP Virtuais"
#: usr/local/www/firewall_virtual_ip.php:242
+#: usr/local/www/firewall_virtual_ip.php:248
+#: usr/local/www/firewall_virtual_ip.php:268
msgid "The virtual IP addresses defined on this page may be used in"
msgstr "Os endereços IP virtuais definidos nessa página podem ser usados em"
#: usr/local/www/firewall_virtual_ip.php:242
+#: usr/local/www/firewall_virtual_ip.php:248
+#: usr/local/www/firewall_virtual_ip.php:268
msgid "mappings."
msgstr "mapeamentos."
#: usr/local/www/firewall_virtual_ip.php:243
+#: usr/local/www/firewall_virtual_ip.php:249
+#: usr/local/www/firewall_virtual_ip.php:269
msgid "You can check the status of your CARP Virtual IPs and interfaces "
msgstr "Você pode verificar o status de seus IPs Virtuais CARP e interfaces "
#: usr/local/www/guiconfig.inc:295 usr/local/www/guiconfig.inc:309
+#: usr/local/www/guiconfig.inc:298 usr/local/www/guiconfig.inc:297
msgid "apply"
msgstr "aplicar"
#: usr/local/www/guiconfig.inc:295 usr/local/www/guiconfig.inc:309
+#: usr/local/www/guiconfig.inc:298 usr/local/www/guiconfig.inc:297
msgid "save"
msgstr "salvar"
#: usr/local/www/guiconfig.inc:295 usr/local/www/vpn_ipsec_mobile.php:308
#: usr/local/www/system_certmanager.php:541
#: usr/local/www/system_certmanager.php:640 usr/local/www/guiconfig.inc:309
+#: usr/local/www/vpn_ipsec_mobile.php:335 usr/local/www/guiconfig.inc:298
+#: usr/local/www/system_certmanager.php:649 usr/local/www/guiconfig.inc:297
msgid "create"
msgstr "crie"
@@ -13273,20 +16728,24 @@ msgstr "Desligar sistema"
msgid "Are you sure you want to halt the system?"
msgstr "Você tem certeza que deseja desligar o sistema?"
-#: usr/local/www/index.php:115
+#: usr/local/www/index.php:115 usr/local/www/index.php:126
+#: usr/local/www/index.php:129
msgid "Widget configuration has been changed."
msgstr "Configuração de componente foi modificada."
-#: usr/local/www/index.php:172
+#: usr/local/www/index.php:172 usr/local/www/index.php:183
+#: usr/local/www/index.php:186
#, php-format
msgid "Welcome to %s!\n"
msgstr "Bem-vindo ao %s!\n"
-#: usr/local/www/index.php:173
+#: usr/local/www/index.php:173 usr/local/www/index.php:184
+#: usr/local/www/index.php:187
msgid "One moment while we start the initial setup wizard."
msgstr "Um minuto enquanto iniciamos o wizard de instalação inicial."
-#: usr/local/www/index.php:174
+#: usr/local/www/index.php:174 usr/local/www/index.php:185
+#: 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."
@@ -13294,72 +16753,87 @@ msgstr ""
"Usuários de plataformas embutidas: Por favor, seja paciente, o wizard leva "
"um tempo a maior para executar do que uma GUI normal."
-#: usr/local/www/index.php:175
+#: usr/local/www/index.php:175 usr/local/www/index.php:186
+#: usr/local/www/index.php:189
#, php-format
msgid "To bypass the wizard, click on the %s logo on the initial page."
msgstr "Para evitar o wizard, clique no logo %s na página inicial."
#: usr/local/www/index.php:454 usr/local/www/index.php:446
+#: usr/local/www/index.php:463 usr/local/www/index.php:468
msgid "Status: Dashboard"
msgstr "Status: Dashboard"
#: usr/local/www/index.php:486 usr/local/www/index.php:478
+#: usr/local/www/index.php:490 usr/local/www/index.php:494
msgid "Available Widgets"
msgstr "Componentes Disponíveis"
#: usr/local/www/index.php:524 usr/local/www/index.php:516
+#: usr/local/www/index.php:528 usr/local/www/index.php:531
msgid "Welcome to the Dashboard page"
msgstr "Bem-vindo à página do Painel"
#: usr/local/www/index.php:532 usr/local/www/index.php:524
+#: usr/local/www/index.php:536 usr/local/www/index.php:538
msgid ""
"This page allows you to customize the information you want to be displayed!"
msgstr ""
"Essa página permite que você customize a informação que você quer exibir!"
#: usr/local/www/index.php:533 usr/local/www/index.php:525
+#: usr/local/www/index.php:537 usr/local/www/index.php:539
msgid "To get started click the"
msgstr "Para iniciar, clique no"
#: usr/local/www/index.php:533 usr/local/www/index.php:525
+#: usr/local/www/index.php:537 usr/local/www/index.php:539
msgid "icon to add widgets."
msgstr "para adicionar componentes."
#: usr/local/www/index.php:535 usr/local/www/index.php:527
+#: usr/local/www/index.php:539 usr/local/www/index.php:541
msgid "You can move any widget around by clicking and dragging the title."
msgstr ""
"Você pode mover qualquer componente clicando e arrastando o seu título."
#: usr/local/www/index.php:541 usr/local/www/index.php:534
+#: usr/local/www/index.php:546 usr/local/www/index.php:548
msgid "Click here to add widgets"
msgstr "Clique aqui para adicionar componentes"
#: usr/local/www/index.php:543 usr/local/www/index.php:536
+#: usr/local/www/index.php:548 usr/local/www/index.php:550
msgid "Click here for help"
msgstr "Clique aqui para receber ajuda"
#: usr/local/www/index.php:547 usr/local/www/index.php:540
+#: usr/local/www/index.php:552 usr/local/www/index.php:554
msgid "Save Settings"
msgstr "Salvar Configurações"
#: usr/local/www/index.php:699 usr/local/www/index.php:692
+#: usr/local/www/index.php:704
msgid "Loading selected widget"
msgstr "Carregando componente selecionado"
-#: usr/local/www/interfaces.php:186
+#: usr/local/www/interfaces.php:186 usr/local/www/interfaces.php:184
#, php-format
msgid "Sorry, an alias with the name %s already exists."
msgstr "Lamento, um alias com o nome %s já existe."
#: usr/local/www/interfaces.php:327 usr/local/www/interfaces.php:355
+#: usr/local/www/interfaces.php:352 usr/local/www/interfaces.php:350
msgid "You have already applied your settings!"
msgstr "Você já aplicou suas configurações!"
#: usr/local/www/interfaces.php:407 usr/local/www/interfaces.php:443
+#: usr/local/www/interfaces.php:440 usr/local/www/interfaces.php:428
msgid "An interface with the specified description already exists."
msgstr "Uma interface com a descrição especificada já existe."
#: usr/local/www/interfaces.php:413 usr/local/www/interfaces.php:449
+#: usr/local/www/interfaces.php:446 usr/local/www/interfaces.php:434
msgid ""
"The DHCP Server is active on this interface and it can be used only with a "
"static IP configuration. Please disable the DHCP Server service on this "
@@ -13370,6 +16844,7 @@ msgstr ""
"DHCP nessa interface primeiro, então modifique a configuração de interface."
#: usr/local/www/interfaces.php:415 usr/local/www/interfaces.php:451
+#: usr/local/www/interfaces.php:448 usr/local/www/interfaces.php:436
msgid ""
"The DHCP6 Server is active on this interface and it can be used only with a "
"static IPv6 configuration. Please disable the DHCPv6 Server service on this "
@@ -13382,12 +16857,16 @@ msgstr ""
#: usr/local/www/interfaces.php:420 usr/local/www/interfaces.php:1364
#: usr/local/www/status_interfaces.php:192
#: usr/local/www/status_interfaces.php:266 usr/local/www/interfaces.php:456
-#: usr/local/www/interfaces.php:1468
+#: usr/local/www/interfaces.php:1468 usr/local/www/status_interfaces.php:269
+#: usr/local/www/interfaces.php:453 usr/local/www/interfaces.php:1456
+#: usr/local/www/interfaces.php:441 usr/local/www/interfaces.php:1469
msgid "IPv4 address"
msgstr "Endereço IPv4"
#: usr/local/www/interfaces.php:420 usr/local/www/interfaces.php:473
#: usr/local/www/interfaces.php:456 usr/local/www/interfaces.php:509
+#: usr/local/www/interfaces.php:453 usr/local/www/interfaces.php:506
+#: usr/local/www/interfaces.php:441 usr/local/www/interfaces.php:494
msgid "Subnet bit count"
msgstr "Contador de bit de subrede"
@@ -13402,7 +16881,11 @@ msgstr ""
#: usr/local/www/interfaces.php:432 usr/local/www/interfaces.php:485
#: usr/local/www/interfaces.php:468 usr/local/www/interfaces.php:521
#: usr/local/www/interfaces.php:531 usr/local/www/interfaces.php:541
-#: usr/local/www/interfaces.php:546
+#: usr/local/www/interfaces.php:546 usr/local/www/interfaces.php:465
+#: usr/local/www/interfaces.php:518 usr/local/www/interfaces.php:528
+#: usr/local/www/interfaces.php:538 usr/local/www/interfaces.php:543
+#: usr/local/www/interfaces.php:453 usr/local/www/interfaces.php:506
+#: usr/local/www/interfaces.php:516 usr/local/www/interfaces.php:526
#, php-format
msgid "You have to reassign the interface to be able to configure as %s."
msgstr ""
@@ -13410,6 +16893,8 @@ msgstr ""
#: usr/local/www/interfaces.php:436 usr/local/www/interfaces.php:1748
#: usr/local/www/interfaces.php:472 usr/local/www/interfaces.php:1926
+#: usr/local/www/interfaces.php:469 usr/local/www/interfaces.php:1914
+#: usr/local/www/interfaces.php:457 usr/local/www/interfaces.php:1938
msgid "Modem Port"
msgstr "Porta do Modem"
@@ -13417,16 +16902,25 @@ msgstr "Porta do Modem"
#: usr/local/www/interfaces_ppps_edit.php:182
#: usr/local/www/interfaces_ppps_edit.php:523 usr/local/www/interfaces.php:472
#: usr/local/www/interfaces.php:1914
+#: usr/local/www/interfaces_ppps_edit.php:524 usr/local/www/interfaces.php:469
+#: usr/local/www/interfaces.php:1902
+#: usr/local/www/interfaces_ppps_edit.php:188
+#: usr/local/www/interfaces_ppps_edit.php:530 usr/local/www/interfaces.php:457
+#: usr/local/www/interfaces.php:1926
msgid "Phone Number"
msgstr "Número de Telefone"
#: usr/local/www/interfaces.php:442 usr/local/www/interfaces.php:445
#: usr/local/www/interfaces.php:478 usr/local/www/interfaces.php:481
+#: usr/local/www/interfaces.php:475 usr/local/www/interfaces.php:463
+#: usr/local/www/interfaces.php:466
msgid "PPPoE username"
msgstr "Nome do Usuário PPPoE"
#: usr/local/www/interfaces.php:442 usr/local/www/interfaces.php:445
#: usr/local/www/interfaces.php:478 usr/local/www/interfaces.php:481
+#: usr/local/www/interfaces.php:475 usr/local/www/interfaces.php:463
+#: usr/local/www/interfaces.php:466
msgid "PPPoE password"
msgstr "Senha PPPoE"
@@ -13437,6 +16931,13 @@ msgstr "Senha PPPoE"
#: usr/local/www/interfaces_ppps_edit.php:199 usr/local/www/interfaces.php:478
#: usr/local/www/interfaces.php:488 usr/local/www/interfaces.php:498
#: usr/local/www/interfaces.php:1985 usr/local/www/interfaces.php:2104
+#: usr/local/www/interfaces.php:475 usr/local/www/interfaces.php:485
+#: usr/local/www/interfaces.php:495 usr/local/www/interfaces.php:1973
+#: usr/local/www/interfaces.php:2092
+#: usr/local/www/interfaces_ppps_edit.php:194
+#: usr/local/www/interfaces_ppps_edit.php:205 usr/local/www/interfaces.php:463
+#: usr/local/www/interfaces.php:473 usr/local/www/interfaces.php:483
+#: usr/local/www/interfaces.php:2000 usr/local/www/interfaces.php:2122
msgid "Dial on demand"
msgstr "Discar sob demanda"
@@ -13444,46 +16945,66 @@ msgstr "Discar sob demanda"
#: usr/local/www/interfaces.php:462 usr/local/www/interfaces_ppps_edit.php:188
#: usr/local/www/interfaces_ppps_edit.php:199 usr/local/www/interfaces.php:478
#: usr/local/www/interfaces.php:488 usr/local/www/interfaces.php:498
+#: usr/local/www/interfaces.php:475 usr/local/www/interfaces.php:485
+#: usr/local/www/interfaces.php:495 usr/local/www/interfaces_ppps_edit.php:194
+#: usr/local/www/interfaces_ppps_edit.php:205 usr/local/www/interfaces.php:463
+#: usr/local/www/interfaces.php:473 usr/local/www/interfaces.php:483
msgid "Idle timeout value"
msgstr "Valor de tempo ocioso"
#: usr/local/www/interfaces.php:452 usr/local/www/interfaces.php:455
#: usr/local/www/interfaces.php:488 usr/local/www/interfaces.php:491
+#: usr/local/www/interfaces.php:485 usr/local/www/interfaces.php:473
+#: usr/local/www/interfaces.php:476
msgid "PPTP username"
msgstr "Nome do Usuário PPTP"
#: usr/local/www/interfaces.php:452 usr/local/www/interfaces.php:455
#: usr/local/www/interfaces.php:488 usr/local/www/interfaces.php:491
+#: usr/local/www/interfaces.php:485 usr/local/www/interfaces.php:473
+#: usr/local/www/interfaces.php:476
msgid "PPTP password"
msgstr "Senha PPTP"
#: usr/local/www/interfaces.php:452 usr/local/www/interfaces.php:455
#: usr/local/www/interfaces.php:488 usr/local/www/interfaces.php:491
+#: usr/local/www/interfaces.php:485 usr/local/www/interfaces.php:473
+#: usr/local/www/interfaces.php:476
msgid "PPTP local IP address"
msgstr "Endereço IP local PPTP"
#: usr/local/www/interfaces.php:452 usr/local/www/interfaces.php:455
#: usr/local/www/interfaces.php:488 usr/local/www/interfaces.php:491
+#: usr/local/www/interfaces.php:485 usr/local/www/interfaces.php:473
+#: usr/local/www/interfaces.php:476
msgid "PPTP subnet"
msgstr "Subrede PPTP"
#: usr/local/www/interfaces.php:452 usr/local/www/interfaces.php:455
#: usr/local/www/interfaces.php:488 usr/local/www/interfaces.php:491
+#: usr/local/www/interfaces.php:485 usr/local/www/interfaces.php:473
+#: usr/local/www/interfaces.php:476
msgid "PPTP remote IP address"
msgstr "Endereço IP remoto PPTP"
#: usr/local/www/interfaces.php:462 usr/local/www/interfaces.php:465
#: usr/local/www/interfaces.php:498 usr/local/www/interfaces.php:501
+#: usr/local/www/interfaces.php:495 usr/local/www/interfaces.php:483
+#: usr/local/www/interfaces.php:486
msgid "L2TP username"
msgstr "Nome do Usuário L2TP"
#: usr/local/www/interfaces.php:462 usr/local/www/interfaces.php:465
#: usr/local/www/interfaces.php:498 usr/local/www/interfaces.php:501
+#: usr/local/www/interfaces.php:495 usr/local/www/interfaces.php:483
+#: usr/local/www/interfaces.php:486
msgid "L2TP password"
msgstr "Senha L2TP"
#: usr/local/www/interfaces.php:462 usr/local/www/interfaces.php:465
#: usr/local/www/interfaces.php:498 usr/local/www/interfaces.php:501
+#: usr/local/www/interfaces.php:495 usr/local/www/interfaces.php:483
+#: usr/local/www/interfaces.php:486
msgid "L2TP remote IP address"
msgstr "Endereço IP remoto L2TP"
@@ -13496,82 +17017,108 @@ msgstr "Endereço IP remoto L2TP"
#: usr/local/www/status_interfaces.php:297
#: usr/local/www/status_dhcpv6_leases.php:403 usr/local/www/interfaces.php:509
#: usr/local/www/interfaces.php:1576 usr/local/www/services_dhcpv6.php:899
+#: usr/local/www/services_dhcpv6_edit.php:200
+#: usr/local/www/status_interfaces.php:300
+#: usr/local/www/status_dhcpv6_leases.php:404 usr/local/www/interfaces.php:506
+#: usr/local/www/interfaces.php:1564 usr/local/www/services_dhcpv6.php:830
+#: usr/local/www/status_dhcpv6_leases.php:407
+#: usr/local/www/services_dhcpv6_edit.php:203
+#: usr/local/www/services_dhcpv6.php:851 usr/local/www/interfaces.php:494
+#: usr/local/www/interfaces.php:1574
msgid "IPv6 address"
msgstr "Endereço IPv6"
#: usr/local/www/interfaces.php:493 usr/local/www/interfaces.php:563
+#: usr/local/www/interfaces.php:560 usr/local/www/interfaces.php:550
msgid "A valid IPv4 address must be specified."
msgstr "Um endereço de IPv4 válido de ser especificado."
#: usr/local/www/interfaces.php:495 usr/local/www/services_dhcpv6_edit.php:123
#: usr/local/www/services_dhcpv6_edit.php:125 usr/local/www/interfaces.php:565
+#: usr/local/www/interfaces.php:562 usr/local/www/services_dhcpv6_edit.php:128
msgid "A valid IPv6 address must be specified."
msgstr "Um endereço de IPv6 válido de ser especificado."
#: usr/local/www/interfaces.php:497 usr/local/www/interfaces.php:499
#: usr/local/www/interfaces.php:567 usr/local/www/interfaces.php:569
+#: usr/local/www/interfaces.php:564 usr/local/www/interfaces.php:566
+#: usr/local/www/interfaces.php:579 usr/local/www/interfaces.php:581
msgid "A valid subnet bit count must be specified."
msgstr "Um contador de bit de subrede válido deve ser especificado."
#: usr/local/www/interfaces.php:501 usr/local/www/interfaces.php:571
+#: usr/local/www/interfaces.php:568 usr/local/www/interfaces.php:583
msgid "A valid alias IP address must be specified."
msgstr "Um alias de endereço IP válido deve ser especificado."
#: usr/local/www/interfaces.php:503 usr/local/www/interfaces.php:573
+#: usr/local/www/interfaces.php:570 usr/local/www/interfaces.php:585
msgid "A valid alias subnet bit count must be specified."
msgstr "Um alias de contador de bit de subrede válido deve ser especificado."
#: usr/local/www/interfaces.php:517 usr/local/www/system_routes_edit.php:103
#: usr/local/www/system_routes_edit.php:104 usr/local/www/interfaces.php:587
+#: usr/local/www/interfaces.php:584 usr/local/www/interfaces.php:599
msgid "A valid gateway must be specified."
msgstr "Um gateway válido deve ser especificado."
#: usr/local/www/interfaces.php:521 usr/local/www/interfaces.php:591
+#: usr/local/www/interfaces.php:588 usr/local/www/interfaces.php:603
msgid "The service name contains invalid characters."
msgstr "O nome do serviço contém caracteres inválidos."
#: usr/local/www/interfaces.php:523 usr/local/www/interfaces.php:539
#: usr/local/www/interfaces_ppps_edit.php:217 usr/local/www/interfaces.php:593
-#: usr/local/www/interfaces.php:609
+#: usr/local/www/interfaces.php:609 usr/local/www/interfaces.php:590
+#: usr/local/www/interfaces.php:606 usr/local/www/interfaces_ppps_edit.php:223
+#: usr/local/www/interfaces.php:605 usr/local/www/interfaces.php:621
msgid "The idle timeout value must be an integer."
msgstr "O valor do tempo ocioso deve ser um inteiro."
#: usr/local/www/interfaces.php:526 usr/local/www/interfaces_ppps_edit.php:220
-#: usr/local/www/interfaces.php:596
+#: usr/local/www/interfaces.php:596 usr/local/www/interfaces.php:593
+#: usr/local/www/interfaces_ppps_edit.php:226 usr/local/www/interfaces.php:608
msgid "A valid PPPoE reset hour must be specified (0-23)."
msgstr ""
"Uma hora de reinicialização do PPPoE válida deve ser especificada (0-23)."
#: usr/local/www/interfaces.php:529 usr/local/www/interfaces_ppps_edit.php:223
-#: usr/local/www/interfaces.php:599
+#: usr/local/www/interfaces.php:599 usr/local/www/interfaces.php:596
+#: usr/local/www/interfaces_ppps_edit.php:229 usr/local/www/interfaces.php:611
msgid "A valid PPPoE reset minute must be specified (0-59)."
msgstr ""
"Minutos de reinicialização do PPPoE válidos deve ser especificado (0-59)."
#: usr/local/www/interfaces.php:531 usr/local/www/interfaces_ppps_edit.php:225
-#: usr/local/www/interfaces.php:601
+#: usr/local/www/interfaces.php:601 usr/local/www/interfaces.php:598
+#: usr/local/www/interfaces_ppps_edit.php:231 usr/local/www/interfaces.php:613
msgid "A valid PPPoE reset date must be specified (mm/dd/yyyy)."
msgstr ""
"Uma data de reinicialização do PPPoE válida deve ser especificada (mm/dd/"
"yyyy)."
#: usr/local/www/interfaces.php:533 usr/local/www/interfaces.php:603
+#: usr/local/www/interfaces.php:600 usr/local/www/interfaces.php:615
msgid "A valid PPTP local IP address must be specified."
msgstr "Um endereço de IP local PPTP válido deve ser especificado."
#: usr/local/www/interfaces.php:535 usr/local/www/interfaces.php:605
+#: usr/local/www/interfaces.php:602 usr/local/www/interfaces.php:617
msgid "A valid PPTP subnet bit count must be specified."
msgstr "Um contador de bit de subrede PPTP deve ser especificado."
#: usr/local/www/interfaces.php:537 usr/local/www/interfaces.php:607
+#: usr/local/www/interfaces.php:604 usr/local/www/interfaces.php:619
msgid "A valid PPTP remote IP address must be specified."
msgstr "Um endereço IP remoto PPTP válido deve ser especificado."
#: usr/local/www/interfaces.php:543 usr/local/www/interfaces.php:613
+#: usr/local/www/interfaces.php:610 usr/local/www/interfaces.php:625
msgid "The MTU must be greater than 576 bytes."
msgstr "O MTU deve ser maior que 576 bytes."
#: usr/local/www/interfaces.php:545 usr/local/www/interfaces.php:615
+#: usr/local/www/interfaces.php:612 usr/local/www/interfaces.php:627
msgid "The MSS must be greater than 576 bytes."
msgstr "O MSS deve ser maior que 576 bytes."
@@ -13589,18 +17136,33 @@ msgstr "O MSS deve ser maior que 576 bytes."
#: usr/local/www/vpn_ipsec_phase2.php:430 usr/local/www/interfaces.php:619
#: usr/local/www/interfaces.php:2342
#: usr/local/www/load_balancer_pool_edit.php:195
-#: usr/local/www/load_balancer_pool.php:133
+#: usr/local/www/load_balancer_pool.php:133 usr/local/www/vpn_ipsec.php:293
+#: usr/local/www/vpn_ipsec.php:467 usr/local/www/system_advanced_misc.php:353
+#: usr/local/www/interfaces_wireless.php:108
+#: usr/local/www/vpn_ipsec_phase2.php:496 usr/local/www/interfaces.php:616
+#: usr/local/www/interfaces.php:2330
+#: usr/local/www/load_balancer_pool_edit.php:193
+#: usr/local/www/load_balancer_pool.php:131
+#: usr/local/www/interfaces_wireless_edit.php:86
+#: usr/local/www/interfaces_wireless_edit.php:178
+#: usr/local/www/vpn_ipsec.php:299 usr/local/www/vpn_ipsec.php:473
+#: usr/local/www/interfaces_wireless.php:110
+#: usr/local/www/vpn_ipsec_phase2.php:518 usr/local/www/interfaces.php:631
+#: usr/local/www/interfaces.php:2360
msgid "Mode"
msgstr "Modo"
#: usr/local/www/interfaces.php:549 usr/local/www/interfaces.php:2174
#: usr/local/www/status_interfaces.php:265
#: usr/local/www/status_interfaces.php:362 usr/local/www/interfaces.php:622
-#: usr/local/www/interfaces.php:2352
+#: usr/local/www/interfaces.php:2352 usr/local/www/status_interfaces.php:365
+#: usr/local/www/interfaces.php:619 usr/local/www/interfaces.php:2340
+#: usr/local/www/interfaces.php:634 usr/local/www/interfaces.php:2370
msgid "SSID"
msgstr "SSID"
#: usr/local/www/interfaces.php:583 usr/local/www/interfaces.php:657
+#: usr/local/www/interfaces.php:654 usr/local/www/interfaces.php:669
msgid ""
"Invalid WEP key size. Sizes should be 40 (64) bit keys or 104 (128) bit."
msgstr ""
@@ -13608,6 +17170,7 @@ msgstr ""
"ou 104 (128) bits."
#: usr/local/www/interfaces.php:591 usr/local/www/interfaces.php:665
+#: usr/local/www/interfaces.php:662 usr/local/www/interfaces.php:677
msgid "The length of the passphrase should be between 8 and 63 characters."
msgstr "O tamanho da frase secreta deve ser entre 8 e 63 caracteres."
@@ -13617,6 +17180,7 @@ msgid "Interface %s dynamic gateway"
msgstr "Interface %s gateway dinâmico"
#: usr/local/www/interfaces.php:1004 usr/local/www/interfaces.php:1090
+#: usr/local/www/interfaces.php:1078 usr/local/www/interfaces.php:1092
#, php-format
msgid ""
"Unable to change mode to %s. You may already have the maximum number of "
@@ -13626,18 +17190,24 @@ msgstr ""
"sem fio suportados para esse modo."
#: usr/local/www/interfaces.php:1032 usr/local/www/interfaces.php:1118
+#: usr/local/www/interfaces.php:1106 usr/local/www/interfaces.php:1120
msgid "Static IPv4"
msgstr "IPv4 Estático"
#: usr/local/www/interfaces.php:1032 usr/local/www/vpn_pppoe.php:86
#: usr/local/www/status_interfaces.php:109
#: usr/local/www/status_interfaces.php:127 usr/local/www/interfaces.php:1118
+#: usr/local/www/status_interfaces.php:130 usr/local/www/interfaces.php:1106
+#: usr/local/www/vpn_pppoe.php:87 usr/local/www/interfaces.php:1120
msgid "PPPoE"
msgstr "PPPoE"
#: usr/local/www/interfaces.php:1032 usr/local/www/status_interfaces.php:124
#: usr/local/www/fbegin.inc:149 usr/local/www/fbegin.inc:166
#: usr/local/www/status_interfaces.php:142 usr/local/www/interfaces.php:1118
+#: usr/local/www/fbegin.inc:174 usr/local/www/status_interfaces.php:145
+#: usr/local/www/interfaces.php:1106 usr/local/www/fbegin.inc:165
+#: usr/local/www/interfaces.php:1120
msgid "PPTP"
msgstr "PPTP"
@@ -13646,53 +17216,67 @@ msgstr "PPTP"
#: usr/local/www/vpn_l2tp_users.php:38
#: usr/local/www/vpn_l2tp_users_edit.php:38 usr/local/www/fbegin.inc:167
#: usr/local/www/status_interfaces.php:157 usr/local/www/interfaces.php:1118
+#: usr/local/www/fbegin.inc:175 usr/local/www/status_interfaces.php:160
+#: usr/local/www/interfaces.php:1106 usr/local/www/fbegin.inc:166
+#: usr/local/www/interfaces.php:1120
msgid "L2TP"
msgstr "L2TP"
#: usr/local/www/interfaces.php:1033 usr/local/www/interfaces.php:1119
+#: usr/local/www/interfaces.php:1107 usr/local/www/interfaces.php:1121
msgid "Static IPv6"
msgstr "IPv6 Estático"
#: usr/local/www/interfaces.php:1033 usr/local/www/interfaces.php:1119
+#: usr/local/www/interfaces.php:1107 usr/local/www/interfaces.php:1121
msgid "DHCP6"
msgstr "DHCP6"
#: usr/local/www/interfaces.php:1222 usr/local/www/interfaces.php:1326
+#: usr/local/www/interfaces.php:1314 usr/local/www/interfaces.php:1327
#, php-format
msgid "The %s configuration has been changed."
msgstr "A configuração %s foi modificada."
#: usr/local/www/interfaces.php:1222 usr/local/www/interfaces.php:1326
+#: usr/local/www/interfaces.php:1314 usr/local/www/interfaces.php:1327
msgid "Don't forget to adjust the DHCP Server range if needed after applying."
msgstr ""
"Não esqueça de ajustar o intervalo do Servidor DHCP se necessário após "
"aplicação."
#: usr/local/www/interfaces.php:1231 usr/local/www/interfaces.php:1335
+#: usr/local/www/interfaces.php:1323 usr/local/www/interfaces.php:1336
msgid "General configuration"
msgstr "Configuração Geral"
#: usr/local/www/interfaces.php:1237 usr/local/www/interfaces.php:1341
+#: usr/local/www/interfaces.php:1329 usr/local/www/interfaces.php:1342
msgid "Enable Interface"
msgstr "Habilitar Interface"
#: usr/local/www/interfaces.php:1247 usr/local/www/interfaces.php:1351
+#: usr/local/www/interfaces.php:1339 usr/local/www/interfaces.php:1352
msgid "Enter a description (name) for the interface here."
msgstr "Informe a descrição (nome) para a interface aqui."
#: usr/local/www/interfaces.php:1251 usr/local/www/interfaces.php:1355
+#: usr/local/www/interfaces.php:1343 usr/local/www/interfaces.php:1356
msgid "IPv4 Configuration Type"
msgstr "Tipo de Configuração IPv4"
#: usr/local/www/interfaces.php:1267 usr/local/www/interfaces.php:1371
+#: usr/local/www/interfaces.php:1359 usr/local/www/interfaces.php:1372
msgid "IPv6 Configuration Type"
msgstr "Tipo de Configuração IPv6"
#: usr/local/www/interfaces.php:1292 usr/local/www/interfaces.php:1396
+#: usr/local/www/interfaces.php:1384 usr/local/www/interfaces.php:1397
msgid "Insert my local MAC address"
msgstr "Insira meu endereço MAC local"
#: usr/local/www/interfaces.php:1295 usr/local/www/interfaces.php:1399
+#: usr/local/www/interfaces.php:1387 usr/local/www/interfaces.php:1400
msgid ""
"This field can be used to modify (\"spoof\") the MAC address of this "
"interface"
@@ -13701,10 +17285,12 @@ msgstr ""
"interface WAN"
#: usr/local/www/interfaces.php:1297 usr/local/www/interfaces.php:1401
+#: usr/local/www/interfaces.php:1389 usr/local/www/interfaces.php:1402
msgid "(may be required with some cable connections)"
msgstr "(pode ser requerido em algumas conexões a cabo)"
#: usr/local/www/interfaces.php:1298 usr/local/www/interfaces.php:1402
+#: usr/local/www/interfaces.php:1390 usr/local/www/interfaces.php:1403
msgid ""
"Enter a MAC address in the following format: xx:xx:xx:xx:xx:xx or leave blank"
msgstr ""
@@ -13714,6 +17300,10 @@ msgstr ""
#: usr/local/www/interfaces.php:1303
#: usr/local/www/interfaces_ppps_edit.php:757
#: usr/local/www/interfaces.php:1407
+#: usr/local/www/interfaces_ppps_edit.php:758
+#: usr/local/www/interfaces.php:1395
+#: usr/local/www/interfaces_ppps_edit.php:764
+#: usr/local/www/interfaces.php:1408
msgid "MTU"
msgstr "MTU"
@@ -13726,10 +17316,12 @@ msgstr ""
"Isso tem normalmente 1500 bytes, mas pode variar em alguns hardwares."
#: usr/local/www/interfaces.php:1312 usr/local/www/interfaces.php:1416
+#: usr/local/www/interfaces.php:1404 usr/local/www/interfaces.php:1417
msgid "MSS"
msgstr "MSS"
#: usr/local/www/interfaces.php:1316 usr/local/www/interfaces.php:1420
+#: usr/local/www/interfaces.php:1408 usr/local/www/interfaces.php:1421
msgid ""
"If you enter a value in this field, then MSS clamping for TCP connections to "
"the value entered above minus 40 (TCP/IP header size) will be in effect."
@@ -13739,10 +17331,12 @@ msgstr ""
"efeito."
#: usr/local/www/interfaces.php:1325 usr/local/www/interfaces.php:1429
+#: usr/local/www/interfaces.php:1417 usr/local/www/interfaces.php:1430
msgid "Speed and duplex"
msgstr "Protocolo Speed e Duplex"
#: usr/local/www/interfaces.php:1346 usr/local/www/interfaces.php:1450
+#: usr/local/www/interfaces.php:1438 usr/local/www/interfaces.php:1451
msgid ""
"Here you can explicitly set speed and duplex mode for this interface. "
"WARNING: You MUST leave this set to autoselect (automatically negotiate "
@@ -13755,17 +17349,21 @@ msgstr ""
"tenha o Speed e Duplex forçado."
#: usr/local/www/interfaces.php:1361 usr/local/www/interfaces.php:1465
+#: usr/local/www/interfaces.php:1453 usr/local/www/interfaces.php:1466
msgid "Static IPv4 configuration"
msgstr "Configuração IPv4 estático"
#: usr/local/www/interfaces.php:1400 usr/local/www/interfaces.php:1506
#: usr/local/www/system_routes_edit.php:212
#: usr/local/www/system_routes_edit.php:244 usr/local/www/interfaces.php:1504
-#: usr/local/www/interfaces.php:1612
+#: usr/local/www/interfaces.php:1612 usr/local/www/system_routes_edit.php:245
+#: usr/local/www/interfaces.php:1492 usr/local/www/interfaces.php:1600
+#: usr/local/www/interfaces.php:1505 usr/local/www/interfaces.php:1610
msgid "add a new one."
msgstr "adicionar uma nova."
#: usr/local/www/interfaces.php:1403 usr/local/www/interfaces.php:1507
+#: usr/local/www/interfaces.php:1495 usr/local/www/interfaces.php:1508
msgid ""
"If this interface is an Internet connection, select an existing Gateway from "
"the list or add one using the link above"
@@ -13775,45 +17373,60 @@ msgstr ""
#: usr/local/www/interfaces.php:1417 usr/local/www/system_routes_edit.php:224
#: usr/local/www/system_routes_edit.php:256 usr/local/www/interfaces.php:1521
+#: usr/local/www/system_routes_edit.php:257 usr/local/www/interfaces.php:1509
+#: usr/local/www/interfaces.php:1522
msgid "Add new gateway:"
msgstr "Adicionar novo gateway:"
#: usr/local/www/interfaces.php:1425 usr/local/www/interfaces.php:1529
+#: usr/local/www/interfaces.php:1517 usr/local/www/interfaces.php:1530
msgid "Default gateway:"
msgstr "Gateway padrão:"
#: usr/local/www/interfaces.php:1428 usr/local/www/system_routes_edit.php:240
#: usr/local/www/system_routes_edit.php:272 usr/local/www/interfaces.php:1532
+#: usr/local/www/system_routes_edit.php:273 usr/local/www/interfaces.php:1520
+#: usr/local/www/interfaces.php:1533
msgid "Gateway Name:"
msgstr "Nome do Gateway:"
#: usr/local/www/interfaces.php:1431 usr/local/www/interfaces.php:1535
+#: usr/local/www/interfaces.php:1523 usr/local/www/interfaces.php:1536
msgid "Gateway IPv4:"
msgstr "IPv4 do Gateway:"
#: usr/local/www/interfaces.php:1434 usr/local/www/interfaces.php:1540
#: usr/local/www/system_routes_edit.php:246
#: usr/local/www/system_routes_edit.php:278 usr/local/www/interfaces.php:1538
-#: usr/local/www/interfaces.php:1646
+#: usr/local/www/interfaces.php:1646 usr/local/www/system_routes_edit.php:279
+#: usr/local/www/interfaces.php:1526 usr/local/www/interfaces.php:1634
+#: usr/local/www/interfaces.php:1539 usr/local/www/interfaces.php:1644
msgid "Description:"
msgstr "Descrição:"
#: usr/local/www/interfaces.php:1442 usr/local/www/interfaces.php:1548
#: usr/local/www/system_routes_edit.php:254
#: usr/local/www/system_routes_edit.php:286 usr/local/www/interfaces.php:1654
+#: usr/local/www/system_routes_edit.php:287 usr/local/www/interfaces.php:1536
+#: usr/local/www/interfaces.php:1642 usr/local/www/interfaces.php:1546
+#: usr/local/www/interfaces.php:1651
msgid "Save Gateway"
msgstr "Salvar Gateway"
#: usr/local/www/interfaces.php:1467 usr/local/www/interfaces.php:1573
+#: usr/local/www/interfaces.php:1561 usr/local/www/interfaces.php:1571
msgid "Static IPv6 configuration"
msgstr "Configuração IPv6 estático"
#: usr/local/www/interfaces.php:1488 usr/local/www/status_interfaces.php:231
#: usr/local/www/status_interfaces.php:312 usr/local/www/interfaces.php:1594
+#: usr/local/www/status_interfaces.php:315 usr/local/www/interfaces.php:1582
+#: usr/local/www/interfaces.php:1592
msgid "Gateway IPv6"
msgstr "IPv6 do Gateway"
#: usr/local/www/interfaces.php:1509 usr/local/www/interfaces.php:1615
+#: usr/local/www/interfaces.php:1603 usr/local/www/interfaces.php:1613
msgid ""
"If this interface is an Internet connection, select an existing Gateway from "
"the list or add a new one using the link above"
@@ -13822,18 +17435,22 @@ msgstr ""
"da lista ou adicione um novo na linha abaixo"
#: usr/local/www/interfaces.php:1523 usr/local/www/interfaces.php:1629
+#: usr/local/www/interfaces.php:1617 usr/local/www/interfaces.php:1627
msgid "Add new v6 gateway:"
msgstr "Adicionar novo v6 gateway:"
#: usr/local/www/interfaces.php:1531 usr/local/www/interfaces.php:1637
+#: usr/local/www/interfaces.php:1625 usr/local/www/interfaces.php:1635
msgid "Default v6 gateway:"
msgstr "Gateway v6 padrão:"
#: usr/local/www/interfaces.php:1534 usr/local/www/interfaces.php:1640
+#: usr/local/www/interfaces.php:1628 usr/local/www/interfaces.php:1638
msgid "Gateway Name IPv6:"
msgstr "Nome do Gateway IPv6:"
#: usr/local/www/interfaces.php:1537 usr/local/www/interfaces.php:1643
+#: usr/local/www/interfaces.php:1631 usr/local/www/interfaces.php:1641
msgid "Gateway IPv6:"
msgstr "IPv6 do Gateway:"
@@ -13850,18 +17467,22 @@ msgstr ""
"a interface."
#: usr/local/www/interfaces.php:1598 usr/local/www/interfaces.php:1676
+#: usr/local/www/interfaces.php:1664
msgid "DHCP client configuration"
msgstr "Configuração do cliente DHCP"
#: usr/local/www/interfaces.php:1602 usr/local/www/interfaces.php:1680
+#: usr/local/www/interfaces.php:1668
msgid "Enable DHCP+"
msgstr "Habilitar DHCP+"
#: usr/local/www/interfaces.php:1605 usr/local/www/interfaces.php:1683
+#: usr/local/www/interfaces.php:1671
msgid "Enable DHCP+L2TP or DHCP+PPTP."
msgstr "Habilitar DHCP+L2TP ou DHCP+PPTP."
#: usr/local/www/interfaces.php:1607 usr/local/www/interfaces.php:1685
+#: usr/local/www/interfaces.php:1673
msgid ""
"Status changes on this interface will trigger reconfiguration (if necessary) "
"of the associated PPTP/L2TP link."
@@ -13870,6 +17491,7 @@ msgstr ""
"necessário) do link PPTP/L2TP associado."
#: usr/local/www/interfaces.php:1616 usr/local/www/interfaces.php:1694
+#: usr/local/www/interfaces.php:1682
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 "
@@ -13880,10 +17502,12 @@ msgstr ""
"(para identificação do cliente)."
#: usr/local/www/interfaces.php:1622 usr/local/www/interfaces.php:1700
+#: usr/local/www/interfaces.php:1688
msgid "Alias IPv4 address"
msgstr "Alias de Endereço IPv4"
#: usr/local/www/interfaces.php:1636 usr/local/www/interfaces.php:1714
+#: usr/local/www/interfaces.php:1702
msgid ""
"The value in this field is used as a fixed alias IPv4 address by the DHCP "
"client."
@@ -13892,14 +17516,17 @@ msgstr ""
"DHCP."
#: usr/local/www/interfaces.php:1647 usr/local/www/interfaces.php:1725
+#: usr/local/www/interfaces.php:1713 usr/local/www/interfaces.php:1728
msgid "DHCP6 client configuration"
msgstr "Configuração do cliente DHCPv6"
#: usr/local/www/interfaces.php:1650 usr/local/www/interfaces.php:1729
+#: usr/local/www/interfaces.php:1717 usr/local/www/interfaces.php:1732
msgid "DHCPv6 Unique Identifier (DUID)"
msgstr "Identificador Unico do DHCPv6 (DUID)"
#: usr/local/www/interfaces.php:1654 usr/local/www/interfaces.php:1733
+#: usr/local/www/interfaces.php:1721 usr/local/www/interfaces.php:1736
msgid ""
"The value in this field is sent as the DHCPv6 client identifier when "
"requesting a DHCPv6 lease."
@@ -13908,15 +17535,18 @@ msgstr ""
"solicitar um DHCPv6 lease."
#: usr/local/www/interfaces.php:1659 usr/local/www/interfaces.php:1738
+#: usr/local/www/interfaces.php:1726 usr/local/www/interfaces.php:1741
#, php-format
msgid "The current DUID is: '%s'"
msgstr "O DUID atual é: '%s'"
#: usr/local/www/interfaces.php:1665 usr/local/www/interfaces.php:1745
+#: usr/local/www/interfaces.php:1733 usr/local/www/interfaces.php:1748
msgid "DHCPv6 Prefix Delegation size"
msgstr "Tamanho do Prefixo DHCPv6 delegado"
#: usr/local/www/interfaces.php:1678 usr/local/www/interfaces.php:1758
+#: usr/local/www/interfaces.php:1746 usr/local/www/interfaces.php:1761
msgid ""
"The value in this field is the delegated prefix length provided by the "
"DHCPv6 server. Normally specified by the ISP."
@@ -13925,46 +17555,72 @@ msgstr ""
"servidor DHCPv6. Normalmente especificado pelo ISP."
#: usr/local/www/interfaces.php:1689 usr/local/www/interfaces.php:1867
+#: usr/local/www/interfaces.php:1855 usr/local/www/interfaces.php:1879
msgid "PPP configuration"
msgstr "Configuração PPP"
#: usr/local/www/interfaces.php:1692
#: usr/local/www/interfaces_ppps_edit.php:478
#: usr/local/www/interfaces.php:1870
+#: usr/local/www/interfaces_ppps_edit.php:479
+#: usr/local/www/interfaces.php:1858
+#: usr/local/www/interfaces_ppps_edit.php:485
+#: usr/local/www/interfaces.php:1882
msgid "Service Provider"
msgstr "Fornecedor de Serviço"
#: usr/local/www/interfaces.php:1696
#: usr/local/www/interfaces_ppps_edit.php:482
#: usr/local/www/interfaces.php:1874
+#: usr/local/www/interfaces_ppps_edit.php:483
+#: usr/local/www/interfaces.php:1862
+#: usr/local/www/interfaces_ppps_edit.php:489
+#: usr/local/www/interfaces.php:1886
msgid "Country:"
msgstr "País:"
#: usr/local/www/interfaces.php:1704
#: usr/local/www/interfaces_ppps_edit.php:490
#: usr/local/www/interfaces.php:1882
+#: usr/local/www/interfaces_ppps_edit.php:491
+#: usr/local/www/interfaces.php:1870
+#: usr/local/www/interfaces_ppps_edit.php:497
+#: usr/local/www/interfaces.php:1894
msgid "Provider:"
msgstr "Fornecedor:"
#: usr/local/www/interfaces.php:1712
#: usr/local/www/interfaces_ppps_edit.php:498
#: usr/local/www/interfaces.php:1890
+#: usr/local/www/interfaces_ppps_edit.php:499
+#: usr/local/www/interfaces.php:1878
+#: usr/local/www/interfaces_ppps_edit.php:505
+#: usr/local/www/interfaces.php:1902
msgid "Plan:"
msgstr "Plano:"
#: usr/local/www/interfaces.php:1720
#: usr/local/www/interfaces_ppps_edit.php:506
#: usr/local/www/interfaces.php:1898
+#: usr/local/www/interfaces_ppps_edit.php:507
+#: usr/local/www/interfaces.php:1886
+#: usr/local/www/interfaces_ppps_edit.php:513
+#: usr/local/www/interfaces.php:1910
msgid "Select to fill in data for your service provider."
msgstr "Selecione para preencher dados para seu fornecedor de serviços."
#: usr/local/www/interfaces.php:1742
#: usr/local/www/interfaces_ppps_edit.php:530
#: usr/local/www/interfaces.php:1920
+#: usr/local/www/interfaces_ppps_edit.php:531
+#: usr/local/www/interfaces.php:1908
+#: usr/local/www/interfaces_ppps_edit.php:537
+#: usr/local/www/interfaces.php:1932
msgid "Access Point Name (APN)"
msgstr "Nome do Ponto de Acesso (APN)"
#: usr/local/www/interfaces.php:1766 usr/local/www/interfaces.php:1944
+#: usr/local/www/interfaces.php:1932 usr/local/www/interfaces.php:1956
msgid "Advanced PPP"
msgstr "PPP Avançado"
@@ -13974,37 +17630,54 @@ msgstr "PPP Avançado"
#: usr/local/www/interfaces.php:1947 usr/local/www/interfaces.php:1952
#: usr/local/www/interfaces.php:2053 usr/local/www/interfaces.php:2058
#: usr/local/www/interfaces.php:2121 usr/local/www/interfaces.php:2126
+#: usr/local/www/interfaces.php:1935 usr/local/www/interfaces.php:1940
+#: usr/local/www/interfaces.php:2041 usr/local/www/interfaces.php:2046
+#: usr/local/www/interfaces.php:2109 usr/local/www/interfaces.php:2114
+#: usr/local/www/interfaces.php:1959 usr/local/www/interfaces.php:1964
+#: usr/local/www/interfaces.php:2068 usr/local/www/interfaces.php:2073
+#: usr/local/www/interfaces.php:2139 usr/local/www/interfaces.php:2144
msgid "Click here"
msgstr "Clique aqui"
#: usr/local/www/interfaces.php:1770 usr/local/www/interfaces.php:1948
+#: usr/local/www/interfaces.php:1936 usr/local/www/interfaces.php:1960
msgid "to edit PPP configuration."
msgstr "para editar configurações PPP."
#: usr/local/www/interfaces.php:1775 usr/local/www/interfaces.php:1953
+#: usr/local/www/interfaces.php:1941 usr/local/www/interfaces.php:1965
msgid "to create a PPP configuration."
msgstr "para criar uma configuração PPP."
#: usr/local/www/interfaces.php:1786 usr/local/www/interfaces.php:1964
+#: usr/local/www/interfaces.php:1952 usr/local/www/interfaces.php:1979
msgid "PPPoE configuration"
msgstr "Configuração PPPoE"
#: usr/local/www/interfaces.php:1801
#: usr/local/www/interfaces_ppps_edit.php:589
#: usr/local/www/interfaces.php:1979
+#: usr/local/www/interfaces_ppps_edit.php:590
+#: usr/local/www/interfaces.php:1967
+#: usr/local/www/interfaces_ppps_edit.php:596
+#: usr/local/www/interfaces.php:1994
msgid "Service name"
msgstr "Nome do serviço"
#: usr/local/www/interfaces.php:1803 usr/local/www/interfaces.php:1981
+#: usr/local/www/interfaces.php:1969 usr/local/www/interfaces.php:1996
msgid "Hint: this field can usually be left empty"
msgstr "Dica: esse campo é normalmente deixado vazio"
#: usr/local/www/interfaces.php:1810 usr/local/www/interfaces.php:1929
#: usr/local/www/interfaces.php:1988 usr/local/www/interfaces.php:2107
+#: usr/local/www/interfaces.php:1976 usr/local/www/interfaces.php:2095
+#: usr/local/www/interfaces.php:2003 usr/local/www/interfaces.php:2125
msgid "Enable Dial-On-Demand mode"
msgstr "Habilitar modo de Discagem Sob Demanda"
#: usr/local/www/interfaces.php:1811 usr/local/www/interfaces.php:1989
+#: usr/local/www/interfaces.php:1977 usr/local/www/interfaces.php:2004
msgid ""
"This option causes the interface to operate in dial-on-demand mode, allowing "
"you to have a "
@@ -14014,11 +17687,15 @@ msgstr ""
#: usr/local/www/interfaces.php:1811 usr/local/www/interfaces.php:1930
#: usr/local/www/interfaces.php:1989 usr/local/www/interfaces.php:2108
+#: usr/local/www/interfaces.php:1977 usr/local/www/interfaces.php:2096
+#: usr/local/www/interfaces.php:2004 usr/local/www/interfaces.php:2126
msgid "virtual full time"
msgstr "tempo virtual completo"
#: usr/local/www/interfaces.php:1811 usr/local/www/interfaces.php:1930
#: usr/local/www/interfaces.php:1989 usr/local/www/interfaces.php:2108
+#: usr/local/www/interfaces.php:1977 usr/local/www/interfaces.php:2096
+#: usr/local/www/interfaces.php:2004 usr/local/www/interfaces.php:2126
msgid ""
"connection. The interface is configured, but the actual connection of the "
"link is delayed until qualifying outgoing traffic is detected."
@@ -14030,11 +17707,16 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:465
#: usr/local/www/services_captiveportal.php:470
#: usr/local/www/interfaces.php:1993 usr/local/www/interfaces.php:2112
+#: usr/local/www/services_captiveportal.php:468
+#: usr/local/www/interfaces.php:1981 usr/local/www/interfaces.php:2100
+#: usr/local/www/interfaces.php:2008 usr/local/www/interfaces.php:2130
msgid "Idle timeout"
msgstr "Tempo ocioso"
#: usr/local/www/interfaces.php:1817 usr/local/www/interfaces.php:1936
#: usr/local/www/interfaces.php:1995 usr/local/www/interfaces.php:2114
+#: usr/local/www/interfaces.php:1983 usr/local/www/interfaces.php:2102
+#: usr/local/www/interfaces.php:2010 usr/local/www/interfaces.php:2132
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 "
@@ -14047,6 +17729,10 @@ msgstr ""
#: usr/local/www/interfaces.php:1821
#: usr/local/www/interfaces_ppps_edit.php:596
#: usr/local/www/interfaces.php:1999
+#: usr/local/www/interfaces_ppps_edit.php:597
+#: usr/local/www/interfaces.php:1987
+#: usr/local/www/interfaces_ppps_edit.php:603
+#: usr/local/www/interfaces.php:2014
msgid "Periodic reset"
msgstr "Reinicialização periódica"
@@ -14056,42 +17742,70 @@ msgstr "Reinicialização periódica"
#: usr/local/www/status_rrd_graph_settings.php:158
#: usr/local/www/status_rrd_graph_settings.php:159
#: usr/local/www/status_rrd_graph.php:407 usr/local/www/interfaces.php:2007
+#: usr/local/www/interfaces_ppps_edit.php:605
+#: usr/local/www/interfaces.php:1995
+#: usr/local/www/interfaces_ppps_edit.php:611
+#: usr/local/www/status_rrd_graph.php:432 usr/local/www/interfaces.php:2022
msgid "Custom"
msgstr "Personalizar"
#: usr/local/www/interfaces.php:1830
#: usr/local/www/interfaces_ppps_edit.php:605
#: usr/local/www/interfaces.php:2008
+#: usr/local/www/interfaces_ppps_edit.php:606
+#: usr/local/www/interfaces.php:1996
+#: usr/local/www/interfaces_ppps_edit.php:612
+#: usr/local/www/interfaces.php:2023
msgid "Pre-Set"
msgstr "Pre-Config"
#: usr/local/www/interfaces.php:1831
#: usr/local/www/interfaces_ppps_edit.php:606
#: usr/local/www/interfaces.php:2009
+#: usr/local/www/interfaces_ppps_edit.php:607
+#: usr/local/www/interfaces.php:1997
+#: usr/local/www/interfaces_ppps_edit.php:613
+#: usr/local/www/interfaces.php:2024
msgid "Select a reset timing type"
msgstr "Selecione o tipo de tempo de reinicialização"
#: usr/local/www/interfaces.php:1839
#: usr/local/www/interfaces_ppps_edit.php:614
#: usr/local/www/interfaces.php:2017
+#: usr/local/www/interfaces_ppps_edit.php:615
+#: usr/local/www/interfaces.php:2005
+#: usr/local/www/interfaces_ppps_edit.php:621
+#: usr/local/www/interfaces.php:2032
msgid "hour (0-23)"
msgstr "hora (0-23)"
#: usr/local/www/interfaces.php:1841
#: usr/local/www/interfaces_ppps_edit.php:616
#: usr/local/www/interfaces.php:2019
+#: usr/local/www/interfaces_ppps_edit.php:617
+#: usr/local/www/interfaces.php:2007
+#: usr/local/www/interfaces_ppps_edit.php:623
+#: usr/local/www/interfaces.php:2034
msgid "minute (0-59)"
msgstr "minutos (0-59)"
#: usr/local/www/interfaces.php:1843
#: usr/local/www/interfaces_ppps_edit.php:618
#: usr/local/www/interfaces.php:2021
+#: usr/local/www/interfaces_ppps_edit.php:619
+#: usr/local/www/interfaces.php:2009
+#: usr/local/www/interfaces_ppps_edit.php:625
+#: usr/local/www/interfaces.php:2036
msgid "reset at a specific date (mm/dd/yyyy)"
msgstr "reinicie em uma data específica (mm/dd/yyyy)"
#: usr/local/www/interfaces.php:1846
#: usr/local/www/interfaces_ppps_edit.php:621
#: usr/local/www/interfaces.php:2024
+#: usr/local/www/interfaces_ppps_edit.php:622
+#: usr/local/www/interfaces.php:2012
+#: usr/local/www/interfaces_ppps_edit.php:628
+#: usr/local/www/interfaces.php:2039
msgid ""
"If you leave the date field empty, the reset will be executed each day at "
"the time you did specify using the minutes and hour field."
@@ -14102,32 +17816,50 @@ msgstr ""
#: usr/local/www/interfaces.php:1854
#: usr/local/www/interfaces_ppps_edit.php:629
#: usr/local/www/interfaces.php:2032
+#: usr/local/www/interfaces_ppps_edit.php:630
+#: usr/local/www/interfaces.php:2020
+#: usr/local/www/interfaces_ppps_edit.php:636
+#: usr/local/www/interfaces.php:2047
msgid "reset at each month ('0 0 1 * *')"
msgstr "reiniciar a cada mês ('0 0 1 * *')"
#: usr/local/www/interfaces.php:1857
#: usr/local/www/interfaces_ppps_edit.php:632
#: usr/local/www/interfaces.php:2035
+#: usr/local/www/interfaces_ppps_edit.php:633
+#: usr/local/www/interfaces.php:2023
+#: usr/local/www/interfaces_ppps_edit.php:639
+#: usr/local/www/interfaces.php:2050
msgid "reset at each week ('0 0 * * 0')"
msgstr "reiniciar a cada semana ('0 0 * * 0')"
#: usr/local/www/interfaces.php:1860
#: usr/local/www/interfaces_ppps_edit.php:635
#: usr/local/www/interfaces.php:2038
+#: usr/local/www/interfaces_ppps_edit.php:636
+#: usr/local/www/interfaces.php:2026
+#: usr/local/www/interfaces_ppps_edit.php:642
+#: usr/local/www/interfaces.php:2053
msgid "reset at each day ('0 0 * * *')"
msgstr "reiniciar a cada dia ('0 0 * * *')"
#: usr/local/www/interfaces.php:1863
#: usr/local/www/interfaces_ppps_edit.php:638
#: usr/local/www/interfaces.php:2041
+#: usr/local/www/interfaces_ppps_edit.php:639
+#: usr/local/www/interfaces.php:2029
+#: usr/local/www/interfaces_ppps_edit.php:645
+#: usr/local/www/interfaces.php:2056
msgid "reset at each hour ('0 * * * *')"
msgstr "reiniciar a cada hora ('0 * * * *')"
#: usr/local/www/interfaces.php:1872 usr/local/www/interfaces.php:2050
+#: usr/local/www/interfaces.php:2038 usr/local/www/interfaces.php:2065
msgid "Advanced and MLPPP"
msgstr "Avançado e MLPPP"
#: usr/local/www/interfaces.php:1876 usr/local/www/interfaces.php:2054
+#: usr/local/www/interfaces.php:2042 usr/local/www/interfaces.php:2069
msgid ""
"for additional PPPoE configuration options. Save first if you made changes."
msgstr ""
@@ -14135,28 +17867,37 @@ msgstr ""
"realizou mudanças."
#: usr/local/www/interfaces.php:1881 usr/local/www/interfaces.php:2059
+#: usr/local/www/interfaces.php:2047 usr/local/www/interfaces.php:2074
msgid "for advanced PPPoE configuration options and MLPPP configuration."
msgstr "para opções de configuração PPPoE avançadas e configurações MLPPP."
#: usr/local/www/interfaces.php:1892 usr/local/www/interfaces.php:2070
+#: usr/local/www/interfaces.php:2058 usr/local/www/interfaces.php:2088
msgid "PPTP/L2TP configuration"
msgstr "Configuração PPTP/L2TP"
#: usr/local/www/interfaces.php:1907
#: usr/local/www/interfaces_ppps_edit.php:199
#: usr/local/www/interfaces_ppps_edit.php:202
-#: usr/local/www/interfaces.php:2085
+#: usr/local/www/interfaces.php:2085 usr/local/www/interfaces.php:2073
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
+#: usr/local/www/interfaces.php:2103
msgid "Local IP address"
msgstr "Endereço IP Local"
#: usr/local/www/interfaces.php:1920
#: usr/local/www/interfaces_ppps_edit.php:199
#: usr/local/www/interfaces_ppps_edit.php:202
-#: usr/local/www/interfaces.php:2098
+#: usr/local/www/interfaces.php:2098 usr/local/www/interfaces.php:2086
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
+#: usr/local/www/interfaces.php:2116
msgid "Remote IP address"
msgstr "Endereço IP Remoto"
#: usr/local/www/interfaces.php:1930 usr/local/www/interfaces.php:2108
+#: usr/local/www/interfaces.php:2096 usr/local/www/interfaces.php:2126
msgid ""
"This option causes the interface to operate in dial-on-demand mode, allowing "
"you to have a"
@@ -14165,6 +17906,7 @@ msgstr ""
"permitindo que você tenha uma"
#: usr/local/www/interfaces.php:1944 usr/local/www/interfaces.php:2122
+#: usr/local/www/interfaces.php:2110 usr/local/www/interfaces.php:2140
msgid ""
"for additional PPTP and L2TP configuration options. Save first if you made "
"changes."
@@ -14173,10 +17915,12 @@ msgstr ""
"você fez alterações."
#: usr/local/www/interfaces.php:1949 usr/local/www/interfaces.php:2127
+#: usr/local/www/interfaces.php:2115 usr/local/www/interfaces.php:2145
msgid "for advanced PPTP and L2TP configuration options"
msgstr "para opções de configuração de PPTP e L2TP avançadas"
#: usr/local/www/interfaces.php:1964 usr/local/www/interfaces.php:2142
+#: usr/local/www/interfaces.php:2130 usr/local/www/interfaces.php:2160
msgid ""
"Common wireless configuration - Settings apply to all wireless networks on"
msgstr ""
@@ -14184,10 +17928,12 @@ msgstr ""
"sem fio em"
#: usr/local/www/interfaces.php:1967 usr/local/www/interfaces.php:2145
+#: usr/local/www/interfaces.php:2133 usr/local/www/interfaces.php:2163
msgid "Persist common settings"
msgstr "Persistir configurações comuns"
#: usr/local/www/interfaces.php:1970 usr/local/www/interfaces.php:2148
+#: usr/local/www/interfaces.php:2136 usr/local/www/interfaces.php:2166
msgid ""
"Enabling this preserves the common wireless configuration through interface "
"deletions and reassignments."
@@ -14196,26 +17942,32 @@ msgstr ""
"remoções e atribuições de interface."
#: usr/local/www/interfaces.php:1974 usr/local/www/interfaces.php:2152
+#: usr/local/www/interfaces.php:2140 usr/local/www/interfaces.php:2170
msgid "Standard"
msgstr "Padrão"
#: usr/local/www/interfaces.php:1990 usr/local/www/interfaces.php:2168
+#: usr/local/www/interfaces.php:2156 usr/local/www/interfaces.php:2186
msgid "Protection Mode"
msgstr "Modo de Proteção"
#: usr/local/www/interfaces.php:1993 usr/local/www/interfaces.php:2171
+#: usr/local/www/interfaces.php:2159 usr/local/www/interfaces.php:2189
msgid "Protection mode off"
msgstr "Modo de Proteção desligado"
#: usr/local/www/interfaces.php:1994 usr/local/www/interfaces.php:2172
+#: usr/local/www/interfaces.php:2160 usr/local/www/interfaces.php:2190
msgid "Protection mode CTS to self"
msgstr "Modo de Proteção CTS para si mesmo"
#: usr/local/www/interfaces.php:1995 usr/local/www/interfaces.php:2173
+#: usr/local/www/interfaces.php:2161 usr/local/www/interfaces.php:2191
msgid "Protection mode RTS and CTS"
msgstr "Modo de Proteção RTS e CTS"
#: usr/local/www/interfaces.php:1998 usr/local/www/interfaces.php:2176
+#: usr/local/www/interfaces.php:2164 usr/local/www/interfaces.php:2194
msgid ""
"For IEEE 802.11g, use the specified technique for protecting OFDM frames in "
"a mixed 11b/11g network."
@@ -14224,10 +17976,12 @@ msgstr ""
"uma rede 11b/11g."
#: usr/local/www/interfaces.php:2006 usr/local/www/interfaces.php:2184
+#: usr/local/www/interfaces.php:2172 usr/local/www/interfaces.php:2202
msgid "Transmit power"
msgstr "Transmitir energia"
#: usr/local/www/interfaces.php:2019 usr/local/www/interfaces.php:2197
+#: usr/local/www/interfaces.php:2185 usr/local/www/interfaces.php:2215
msgid ""
"Note: Typically only a few discreet power settings are available and the "
"driver will use the setting closest to the specified value. Not all "
@@ -14240,16 +17994,22 @@ msgstr ""
#: usr/local/www/interfaces.php:2023 usr/local/www/status_interfaces.php:258
#: usr/local/www/status_interfaces.php:355 usr/local/www/interfaces.php:2201
+#: usr/local/www/status_interfaces.php:358 usr/local/www/interfaces.php:2189
+#: usr/local/www/interfaces.php:2219
msgid "Channel"
msgstr "Canal"
#: usr/local/www/interfaces.php:2026 usr/local/www/interfaces.php:2073
#: usr/local/www/interfaces.php:2085 usr/local/www/interfaces.php:2204
#: usr/local/www/interfaces.php:2251 usr/local/www/interfaces.php:2263
+#: usr/local/www/interfaces.php:2192 usr/local/www/interfaces.php:2239
+#: usr/local/www/interfaces.php:2222 usr/local/www/interfaces.php:2269
+#: usr/local/www/interfaces.php:2281
msgid "Auto"
msgstr "Auto"
#: usr/local/www/interfaces.php:2046 usr/local/www/interfaces.php:2224
+#: usr/local/www/interfaces.php:2212 usr/local/www/interfaces.php:2242
msgid ""
"Legend: wireless standards - channel # (frequency @ max TX power / TX power "
"allowed in reg. domain)"
@@ -14258,6 +18018,7 @@ msgstr ""
"permitidos no domínio registrado)"
#: usr/local/www/interfaces.php:2048 usr/local/www/interfaces.php:2226
+#: usr/local/www/interfaces.php:2214 usr/local/www/interfaces.php:2244
msgid ""
"Note: Not all channels may be supported by your card. Auto may override the "
"wireless standard selected above."
@@ -14266,10 +18027,12 @@ msgstr ""
"sobrescrever os padrões sem fio selecionados acima."
#: usr/local/www/interfaces.php:2053 usr/local/www/interfaces.php:2231
+#: usr/local/www/interfaces.php:2219 usr/local/www/interfaces.php:2249
msgid "Antenna settings"
msgstr "Configurações de Antena"
#: usr/local/www/interfaces.php:2059 usr/local/www/interfaces.php:2237
+#: usr/local/www/interfaces.php:2225 usr/local/www/interfaces.php:2255
msgid "Diversity"
msgstr "Diversidade"
@@ -14279,48 +18042,68 @@ msgstr "Diversidade"
#: usr/local/www/interfaces.php:2239 usr/local/www/interfaces.php:2250
#: usr/local/www/interfaces.php:2262 usr/local/www/interfaces.php:2292
#: usr/local/www/interfaces.php:2308 usr/local/www/interfaces.php:2324
+#: usr/local/www/interfaces.php:2227 usr/local/www/interfaces.php:2238
+#: usr/local/www/interfaces.php:2280 usr/local/www/interfaces.php:2296
+#: usr/local/www/interfaces.php:2312 usr/local/www/diag_system_pftop.php:135
+#: usr/local/www/interfaces.php:2257 usr/local/www/interfaces.php:2268
+#: usr/local/www/interfaces.php:2310 usr/local/www/interfaces.php:2326
+#: usr/local/www/interfaces.php:2342
msgid "Default"
msgstr "Padrão"
#: usr/local/www/interfaces.php:2062 usr/local/www/vpn_pptp.php:314
#: usr/local/www/vpn_l2tp.php:294 usr/local/www/vpn_pppoe_edit.php:362
-#: usr/local/www/interfaces.php:2240
+#: usr/local/www/interfaces.php:2240 usr/local/www/vpn_pppoe_edit.php:363
+#: usr/local/www/vpn_pptp.php:316 usr/local/www/interfaces.php:2228
+#: usr/local/www/vpn_l2tp.php:295 usr/local/www/vpn_l2tp.php:298
+#: usr/local/www/vpn_pppoe_edit.php:366 usr/local/www/vpn_pptp.php:319
+#: usr/local/www/interfaces.php:2258
msgid "Off"
msgstr "Desligado"
#: usr/local/www/interfaces.php:2063 usr/local/www/interfaces.php:2241
+#: usr/local/www/interfaces.php:2229 usr/local/www/interfaces.php:2259
msgid "On"
msgstr "Ligado"
#: usr/local/www/interfaces.php:2070 usr/local/www/interfaces.php:2248
+#: usr/local/www/interfaces.php:2236 usr/local/www/interfaces.php:2266
msgid "Transmit antenna"
msgstr "Antena de transmissão"
#: usr/local/www/interfaces.php:2074 usr/local/www/interfaces.php:2086
#: usr/local/www/interfaces.php:2252 usr/local/www/interfaces.php:2264
+#: usr/local/www/interfaces.php:2240 usr/local/www/interfaces.php:2270
+#: usr/local/www/interfaces.php:2282
msgid "#1"
msgstr "#1"
#: usr/local/www/interfaces.php:2075 usr/local/www/interfaces.php:2087
#: usr/local/www/interfaces.php:2253 usr/local/www/interfaces.php:2265
+#: usr/local/www/interfaces.php:2241 usr/local/www/interfaces.php:2271
+#: usr/local/www/interfaces.php:2283
msgid "#2"
msgstr "#2"
#: usr/local/www/interfaces.php:2082 usr/local/www/interfaces.php:2260
+#: usr/local/www/interfaces.php:2248 usr/local/www/interfaces.php:2278
msgid "Receive antenna"
msgstr "Antena de recepção"
#: usr/local/www/interfaces.php:2094 usr/local/www/interfaces.php:2272
+#: usr/local/www/interfaces.php:2260 usr/local/www/interfaces.php:2290
msgid ""
"Note: The antenna numbers do not always match up with the labels on the card."
msgstr ""
"Nota: O número de antenas nem sempre correspondem com os rótulos no cartão."
#: usr/local/www/interfaces.php:2100 usr/local/www/interfaces.php:2278
+#: usr/local/www/interfaces.php:2266 usr/local/www/interfaces.php:2296
msgid "Distance setting"
msgstr "Configuração de distância"
#: usr/local/www/interfaces.php:2104 usr/local/www/interfaces.php:2282
+#: usr/local/www/interfaces.php:2270 usr/local/www/interfaces.php:2300
msgid ""
"Note: This field can be used to tune ACK/CTS timers to fit the distance "
"between AP and Client"
@@ -14329,18 +18112,22 @@ msgstr ""
"ajustá-los à distância entre AP e o Cliente"
#: usr/local/www/interfaces.php:2105 usr/local/www/interfaces.php:2283
+#: usr/local/www/interfaces.php:2271 usr/local/www/interfaces.php:2301
msgid "(measured in Meters and works only for Atheros based cards !)"
msgstr "(medido em Metros e funciona somente com cartões baseados em Atheros!)"
#: usr/local/www/interfaces.php:2110 usr/local/www/interfaces.php:2288
+#: usr/local/www/interfaces.php:2276 usr/local/www/interfaces.php:2306
msgid "Regulatory settings"
msgstr "Configurações Regulatórias"
#: usr/local/www/interfaces.php:2112 usr/local/www/interfaces.php:2290
+#: usr/local/www/interfaces.php:2278 usr/local/www/interfaces.php:2308
msgid "Regulatory domain"
msgstr "Domínio regulatório"
#: usr/local/www/interfaces.php:2126 usr/local/www/interfaces.php:2304
+#: usr/local/www/interfaces.php:2292 usr/local/www/interfaces.php:2322
msgid ""
"Note: 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 "
@@ -14350,10 +18137,12 @@ msgstr ""
"no domínio regulatório para um dessa lista de modo que funcione."
#: usr/local/www/interfaces.php:2128 usr/local/www/interfaces.php:2306
+#: usr/local/www/interfaces.php:2294 usr/local/www/interfaces.php:2324
msgid "Country (listed with country code and regulatory domain)"
msgstr "País (listado com código de país e domínio regulatório)"
#: usr/local/www/interfaces.php:2142 usr/local/www/interfaces.php:2320
+#: usr/local/www/interfaces.php:2308 usr/local/www/interfaces.php:2338
msgid ""
"Note: Any country setting other than \"Default\" will override the "
"regulatory domain setting"
@@ -14362,22 +18151,27 @@ msgstr ""
"sobrescrever a configuração de domínio regulatório"
#: usr/local/www/interfaces.php:2144 usr/local/www/interfaces.php:2322
+#: usr/local/www/interfaces.php:2310 usr/local/www/interfaces.php:2340
msgid "Location"
msgstr "Localização"
#: usr/local/www/interfaces.php:2147 usr/local/www/interfaces.php:2325
+#: usr/local/www/interfaces.php:2313 usr/local/www/interfaces.php:2343
msgid "Indoor"
msgstr "Interior"
#: usr/local/www/interfaces.php:2148 usr/local/www/interfaces.php:2326
+#: usr/local/www/interfaces.php:2314 usr/local/www/interfaces.php:2344
msgid "Outdoor"
msgstr "Exterior"
#: usr/local/www/interfaces.php:2149 usr/local/www/interfaces.php:2327
+#: usr/local/www/interfaces.php:2315 usr/local/www/interfaces.php:2345
msgid "Anywhere"
msgstr "Qualquer lugar"
#: usr/local/www/interfaces.php:2152 usr/local/www/interfaces.php:2330
+#: usr/local/www/interfaces.php:2318 usr/local/www/interfaces.php:2348
msgid ""
"These settings may affect which channels are available and the maximum "
"transmit power allowed on those channels. Using the correct settings to "
@@ -14389,6 +18183,7 @@ msgstr ""
"locais é recomendado."
#: usr/local/www/interfaces.php:2154 usr/local/www/interfaces.php:2332
+#: usr/local/www/interfaces.php:2320 usr/local/www/interfaces.php:2350
msgid ""
"Note: All wireless networks on this interface will be temporarily brought "
"down when changing regulatory settings. Some of the regulatory domains or "
@@ -14402,44 +18197,56 @@ msgstr ""
"adicionais que ainda não são suportados."
#: usr/local/www/interfaces.php:2161 usr/local/www/interfaces.php:2339
+#: usr/local/www/interfaces.php:2327 usr/local/www/interfaces.php:2357
msgid "Network-specific wireless configuration"
msgstr "Configuração sem fio de rede específica"
#: usr/local/www/interfaces.php:2167
#: usr/local/www/interfaces_wireless_edit.php:179
-#: usr/local/www/interfaces.php:2345
+#: usr/local/www/interfaces.php:2345 usr/local/www/interfaces.php:2333
+#: usr/local/www/interfaces_wireless_edit.php:181
+#: usr/local/www/interfaces.php:2363
msgid "Infrastructure (BSS)"
msgstr "Infraestrutura (BSS)"
#: usr/local/www/interfaces.php:2168
#: usr/local/www/interfaces_wireless_edit.php:180
-#: usr/local/www/interfaces.php:2346
+#: usr/local/www/interfaces.php:2346 usr/local/www/interfaces.php:2334
+#: usr/local/www/interfaces_wireless_edit.php:182
+#: usr/local/www/interfaces.php:2364
msgid "Ad-hoc (IBSS)"
msgstr "Ad-hoc (IBSS)"
#: usr/local/www/interfaces.php:2169
#: usr/local/www/interfaces_wireless_edit.php:181
-#: usr/local/www/interfaces.php:2347
+#: usr/local/www/interfaces.php:2347 usr/local/www/interfaces.php:2335
+#: usr/local/www/interfaces_wireless_edit.php:183
+#: usr/local/www/interfaces.php:2365
msgid "Access Point"
msgstr "Ponto de Acesso"
#: usr/local/www/interfaces.php:2181 usr/local/www/interfaces.php:2361
+#: usr/local/www/interfaces.php:2349 usr/local/www/interfaces.php:2379
msgid "Minimum wireless standard"
msgstr "Padrão mínimo sem fio"
#: usr/local/www/interfaces.php:2184 usr/local/www/interfaces.php:2364
+#: usr/local/www/interfaces.php:2352 usr/local/www/interfaces.php:2382
msgid "Any"
msgstr "Qualquer"
#: usr/local/www/interfaces.php:2186 usr/local/www/interfaces.php:2366
+#: usr/local/www/interfaces.php:2354 usr/local/www/interfaces.php:2384
msgid "802.11g"
msgstr "802.11g"
#: usr/local/www/interfaces.php:2188 usr/local/www/interfaces.php:2368
+#: usr/local/www/interfaces.php:2356 usr/local/www/interfaces.php:2386
msgid "802.11n"
msgstr "802.11n"
#: usr/local/www/interfaces.php:2191 usr/local/www/interfaces.php:2371
+#: usr/local/www/interfaces.php:2359 usr/local/www/interfaces.php:2389
msgid ""
"When operating as an access point, allow only stations capable of the "
"selected wireless standard to associate (stations not capable are not "
@@ -14450,10 +18257,12 @@ msgstr ""
"capazes não tem permissão de se associarem)."
#: usr/local/www/interfaces.php:2196 usr/local/www/interfaces.php:2376
+#: usr/local/www/interfaces.php:2364 usr/local/www/interfaces.php:2394
msgid "802.11g only"
msgstr "802.11g somente"
#: usr/local/www/interfaces.php:2199 usr/local/www/interfaces.php:2379
+#: usr/local/www/interfaces.php:2367 usr/local/www/interfaces.php:2397
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)."
@@ -14463,10 +18272,12 @@ msgstr ""
"permissão de se associarem)."
#: usr/local/www/interfaces.php:2204 usr/local/www/interfaces.php:2384
+#: usr/local/www/interfaces.php:2372 usr/local/www/interfaces.php:2402
msgid "Allow intra-BSS communication"
msgstr "Permitir comunicação intra-BSS"
#: usr/local/www/interfaces.php:2208 usr/local/www/interfaces.php:2388
+#: usr/local/www/interfaces.php:2376 usr/local/www/interfaces.php:2406
msgid ""
"When operating as an access point, enable this if you want to pass packets "
"between wireless clients directly."
@@ -14475,6 +18286,7 @@ msgstr ""
"liberar pacotes entre clientes sem fio diretamente."
#: usr/local/www/interfaces.php:2210 usr/local/www/interfaces.php:2390
+#: usr/local/www/interfaces.php:2378 usr/local/www/interfaces.php:2408
msgid ""
"Disabling the internal bridging is useful when traffic is to be processed "
"with packet filtering."
@@ -14483,55 +18295,68 @@ msgstr ""
"processado com filtro de pacote."
#: usr/local/www/interfaces.php:2214 usr/local/www/interfaces.php:2394
+#: usr/local/www/interfaces.php:2382 usr/local/www/interfaces.php:2412
msgid "Enable WME"
msgstr "Habilitar WME"
#: usr/local/www/interfaces.php:2217 usr/local/www/interfaces.php:2397
+#: usr/local/www/interfaces.php:2385 usr/local/www/interfaces.php:2415
msgid "Setting this option will force the card to use WME (wireless QoS)."
msgstr "Configurar essa opção irá forçar o cartão a usar WME (QoS sem fio)."
#: usr/local/www/interfaces.php:2221 usr/local/www/interfaces.php:2401
+#: usr/local/www/interfaces.php:2389 usr/local/www/interfaces.php:2419
msgid "Enable Hide SSID"
msgstr "Habilitar Hide SSID"
#: usr/local/www/interfaces.php:2225 usr/local/www/interfaces.php:2405
+#: usr/local/www/interfaces.php:2393 usr/local/www/interfaces.php:2423
msgid "Setting this option will force the card to NOT broadcast its SSID"
msgstr ""
"Configurar essa opção irá forçar o cartão a NÃO enviar seu SSID em broadcast"
#: usr/local/www/interfaces.php:2227 usr/local/www/interfaces.php:2407
+#: usr/local/www/interfaces.php:2395 usr/local/www/interfaces.php:2425
msgid "(this might create problems for some clients)."
msgstr "(isso deve criar problemas para alguns clientes)."
#: usr/local/www/interfaces.php:2231 usr/local/www/interfaces.php:2411
+#: usr/local/www/interfaces.php:2399 usr/local/www/interfaces.php:2429
msgid "WEP"
msgstr "WEP"
#: usr/local/www/interfaces.php:2234 usr/local/www/interfaces.php:2414
+#: usr/local/www/interfaces.php:2402 usr/local/www/interfaces.php:2432
msgid "Enable WEP"
msgstr "Habilitar WEP"
#: usr/local/www/interfaces.php:2239 usr/local/www/interfaces.php:2419
+#: usr/local/www/interfaces.php:2407 usr/local/www/interfaces.php:2437
msgid "TX key"
msgstr "Chave TX"
#: usr/local/www/interfaces.php:2242 usr/local/www/interfaces.php:2422
+#: usr/local/www/interfaces.php:2410 usr/local/www/interfaces.php:2440
msgid "Key 1:"
msgstr "Chave 1:"
#: usr/local/www/interfaces.php:2251 usr/local/www/interfaces.php:2431
+#: usr/local/www/interfaces.php:2419 usr/local/www/interfaces.php:2449
msgid "Key 2:"
msgstr "Chave 2:"
#: usr/local/www/interfaces.php:2260 usr/local/www/interfaces.php:2440
+#: usr/local/www/interfaces.php:2428 usr/local/www/interfaces.php:2458
msgid "Key 3:"
msgstr "Chave 3:"
#: usr/local/www/interfaces.php:2269 usr/local/www/interfaces.php:2449
+#: usr/local/www/interfaces.php:2437 usr/local/www/interfaces.php:2467
msgid "Key 4:"
msgstr "Chave 4:"
#: usr/local/www/interfaces.php:2279 usr/local/www/interfaces.php:2459
+#: usr/local/www/interfaces.php:2447 usr/local/www/interfaces.php:2477
msgid ""
"40 (64) bit keys may be entered as 5 ASCII characters or 10 hex digits "
"preceded by '0x'."
@@ -14540,6 +18365,7 @@ msgstr ""
"dígitos hex precedidos por '0x'."
#: usr/local/www/interfaces.php:2280 usr/local/www/interfaces.php:2460
+#: usr/local/www/interfaces.php:2448 usr/local/www/interfaces.php:2478
msgid ""
"104 (128) bit keys may be entered as 13 ASCII characters or 26 hex digits "
"preceded by '0x'."
@@ -14549,10 +18375,13 @@ msgstr ""
#: usr/local/www/interfaces.php:2284 usr/local/www/interfaces.php:2308
#: usr/local/www/interfaces.php:2464 usr/local/www/interfaces.php:2488
+#: usr/local/www/interfaces.php:2452 usr/local/www/interfaces.php:2476
+#: usr/local/www/interfaces.php:2482 usr/local/www/interfaces.php:2506
msgid "WPA"
msgstr "WPA"
#: usr/local/www/interfaces.php:2287 usr/local/www/interfaces.php:2467
+#: usr/local/www/interfaces.php:2455 usr/local/www/interfaces.php:2485
msgid "Enable WPA"
msgstr "Habilitar WPA"
@@ -14561,18 +18390,22 @@ msgid "WPA Pre Shared Key"
msgstr "Chave Pre-Compartilhada WPA"
#: usr/local/www/interfaces.php:2295 usr/local/www/interfaces.php:2475
+#: usr/local/www/interfaces.php:2463 usr/local/www/interfaces.php:2493
msgid "PSK:"
msgstr "PSK:"
#: usr/local/www/interfaces.php:2301 usr/local/www/interfaces.php:2481
+#: usr/local/www/interfaces.php:2469 usr/local/www/interfaces.php:2499
msgid "Passphrase must be from 8 to 63 characters."
msgstr "Frase secreta deve ter de 8 a 63 caracteres."
#: usr/local/www/interfaces.php:2305 usr/local/www/interfaces.php:2485
+#: usr/local/www/interfaces.php:2473 usr/local/www/interfaces.php:2503
msgid "WPA Mode"
msgstr "Modo WPA"
#: usr/local/www/interfaces.php:2309 usr/local/www/interfaces.php:2489
+#: usr/local/www/interfaces.php:2477 usr/local/www/interfaces.php:2507
msgid "WPA2"
msgstr "WPA2"
@@ -14582,10 +18415,17 @@ msgstr "WPA2"
#: usr/local/www/services_captiveportal_hostname_edit.php:164
#: usr/local/www/interfaces.php:2490 usr/local/www/interfaces.php:2500
#: usr/local/www/interfaces.php:2510 usr/local/www/interfaces.php:2519
+#: usr/local/www/services_captiveportal_hostname_edit.php:162
+#: usr/local/www/services_captiveportal_ip_edit.php:180
+#: usr/local/www/interfaces.php:2478 usr/local/www/interfaces.php:2488
+#: usr/local/www/interfaces.php:2498 usr/local/www/interfaces.php:2507
+#: usr/local/www/interfaces.php:2508 usr/local/www/interfaces.php:2518
+#: usr/local/www/interfaces.php:2528 usr/local/www/interfaces.php:2537
msgid "Both"
msgstr "Ambos"
#: usr/local/www/interfaces.php:2315 usr/local/www/interfaces.php:2495
+#: usr/local/www/interfaces.php:2483 usr/local/www/interfaces.php:2513
msgid "WPA Key Management Mode"
msgstr "Modo de Gerenciamento de Chave WPA"
@@ -14594,38 +18434,47 @@ msgid "Pre Shared Key"
msgstr "Chave Pre-compartilhada"
#: usr/local/www/interfaces.php:2319 usr/local/www/interfaces.php:2499
+#: usr/local/www/interfaces.php:2487 usr/local/www/interfaces.php:2517
msgid "Extensible Authentication Protocol"
msgstr "Protocolo de Autenticação Extensível"
#: usr/local/www/interfaces.php:2328 usr/local/www/interfaces.php:2508
+#: usr/local/www/interfaces.php:2496 usr/local/www/interfaces.php:2526
msgid "Open System Authentication"
msgstr "Autenticação de Sistema Aberto"
#: usr/local/www/interfaces.php:2329 usr/local/www/interfaces.php:2509
+#: usr/local/www/interfaces.php:2497 usr/local/www/interfaces.php:2527
msgid "Shared Key Authentication"
msgstr "Autenticação de Chave Compartilhada"
#: usr/local/www/interfaces.php:2332 usr/local/www/interfaces.php:2512
+#: usr/local/www/interfaces.php:2500 usr/local/www/interfaces.php:2530
msgid "Note: Shared Key Authentication requires WEP."
msgstr "Nota: Autenticação de Chave Compartilhada requere WEP."
#: usr/local/www/interfaces.php:2336 usr/local/www/interfaces.php:2516
+#: usr/local/www/interfaces.php:2504 usr/local/www/interfaces.php:2534
msgid "WPA Pairwise"
msgstr "WPA Pairwise"
#: usr/local/www/interfaces.php:2340 usr/local/www/interfaces.php:2520
+#: usr/local/www/interfaces.php:2508 usr/local/www/interfaces.php:2538
msgid "AES (recommended)"
msgstr "AES (recomendado)"
#: usr/local/www/interfaces.php:2341 usr/local/www/interfaces.php:2521
+#: usr/local/www/interfaces.php:2509 usr/local/www/interfaces.php:2539
msgid "TKIP"
msgstr "TKIP"
#: usr/local/www/interfaces.php:2346 usr/local/www/interfaces.php:2526
+#: usr/local/www/interfaces.php:2514 usr/local/www/interfaces.php:2544
msgid "Key Rotation"
msgstr "Rotação de Chave"
#: usr/local/www/interfaces.php:2349 usr/local/www/interfaces.php:2529
+#: usr/local/www/interfaces.php:2517 usr/local/www/interfaces.php:2547
msgid ""
"Allowed values are 1-9999 but should not be longer than Master Key "
"Regeneration time."
@@ -14634,10 +18483,12 @@ msgstr ""
"de Regeneração da Chave Master."
#: usr/local/www/interfaces.php:2353 usr/local/www/interfaces.php:2533
+#: usr/local/www/interfaces.php:2521 usr/local/www/interfaces.php:2551
msgid "Master Key Regeneration"
msgstr "Regeneração da Chave Master"
#: usr/local/www/interfaces.php:2356 usr/local/www/interfaces.php:2536
+#: usr/local/www/interfaces.php:2524 usr/local/www/interfaces.php:2554
msgid ""
"Allowed values are 1-9999 but should not be shorter than Key Rotation time."
msgstr ""
@@ -14645,10 +18496,12 @@ msgstr ""
"Rotação da Chave."
#: usr/local/www/interfaces.php:2360 usr/local/www/interfaces.php:2540
+#: usr/local/www/interfaces.php:2528 usr/local/www/interfaces.php:2558
msgid "Strict Key Regeneration"
msgstr "Regeneração de Chave Estrita"
#: usr/local/www/interfaces.php:2363 usr/local/www/interfaces.php:2543
+#: usr/local/www/interfaces.php:2531 usr/local/www/interfaces.php:2561
msgid ""
"Setting this option will force the AP to rekey whenever a client "
"disassociates."
@@ -14657,10 +18510,12 @@ msgstr ""
"desassociar-se."
#: usr/local/www/interfaces.php:2367 usr/local/www/interfaces.php:2547
+#: usr/local/www/interfaces.php:2535 usr/local/www/interfaces.php:2565
msgid "Enable IEEE802.1X Authentication"
msgstr "Habilita Autenticação IEEE802.1X"
#: usr/local/www/interfaces.php:2370 usr/local/www/interfaces.php:2550
+#: usr/local/www/interfaces.php:2538 usr/local/www/interfaces.php:2568
msgid "Setting this option will enable 802.1x authentication."
msgstr "Configurando essa opção habilitará a autenticação 802.1x."
@@ -14668,19 +18523,26 @@ msgstr "Configurando essa opção habilitará a autenticação 802.1x."
#: usr/local/www/load_balancer_pool_edit.php:238
#: usr/local/www/status_openvpn.php:304 usr/local/www/interfaces.php:2551
#: usr/local/www/load_balancer_pool_edit.php:255
+#: usr/local/www/status_openvpn.php:307 usr/local/www/interfaces.php:2539
+#: usr/local/www/load_balancer_pool_edit.php:253
+#: usr/local/www/status_openvpn.php:355 usr/local/www/interfaces.php:2569
msgid "NOTE"
msgstr "NOTA"
#: usr/local/www/interfaces.php:2371 usr/local/www/interfaces.php:2551
+#: usr/local/www/interfaces.php:2539 usr/local/www/interfaces.php:2569
msgid "this option requires checking the \"Enable WPA box\"."
msgstr "essa opção requer verificação da \"Caixa de Habilitar WPA\"."
#: usr/local/www/interfaces.php:2375 usr/local/www/interfaces.php:2555
+#: usr/local/www/interfaces.php:2543 usr/local/www/interfaces.php:2573
msgid "802.1X Authentication Server IP Address"
msgstr "Endereço IP de Servidor de Autenticação 802.1X"
#: usr/local/www/interfaces.php:2378 usr/local/www/interfaces.php:2558
-#: usr/local/www/interfaces.php:2579
+#: usr/local/www/interfaces.php:2579 usr/local/www/interfaces.php:2546
+#: usr/local/www/interfaces.php:2567 usr/local/www/interfaces.php:2576
+#: usr/local/www/interfaces.php:2597
msgid ""
"Enter the IP address of the 802.1X Authentication Server. This is commonly "
"a Radius server (FreeRadius, Internet Authentication Services, etc.)"
@@ -14689,27 +18551,34 @@ msgstr ""
"um servidor Radius (FreeRadius, Serviços de Autenticação de Internet, etc.)"
#: usr/local/www/interfaces.php:2382 usr/local/www/interfaces.php:2562
+#: usr/local/www/interfaces.php:2550 usr/local/www/interfaces.php:2580
msgid "802.1X Authentication Server Port"
msgstr "Porta do Servidor de Autenticação 802.1X"
#: usr/local/www/interfaces.php:2385 usr/local/www/interfaces.php:2565
-#: usr/local/www/interfaces.php:2586
+#: usr/local/www/interfaces.php:2586 usr/local/www/interfaces.php:2553
+#: usr/local/www/interfaces.php:2574 usr/local/www/interfaces.php:2583
+#: usr/local/www/interfaces.php:2604
msgid "Leave blank for the default 1812 port."
msgstr "Deixe em branco para usar a porta padrão 1812."
#: usr/local/www/interfaces.php:2389 usr/local/www/interfaces.php:2569
+#: usr/local/www/interfaces.php:2557 usr/local/www/interfaces.php:2587
msgid "802.1X Authentication Server Shared Secret"
msgstr "Segredo Compartilhado do Servidor de Autenticação 802.1X"
#: usr/local/www/interfaces.php:2396 usr/local/www/interfaces.php:2597
+#: usr/local/www/interfaces.php:2585 usr/local/www/interfaces.php:2615
msgid "Authentication Roaming Preauth"
msgstr "Pre-Autenticação de Roaming de Autenticação"
#: usr/local/www/interfaces.php:2407 usr/local/www/interfaces.php:2608
+#: usr/local/www/interfaces.php:2596 usr/local/www/interfaces.php:2626
msgid "Private networks"
msgstr "Redes privadas"
#: usr/local/www/interfaces.php:2415 usr/local/www/interfaces.php:2616
+#: usr/local/www/interfaces.php:2604 usr/local/www/interfaces.php:2634
msgid ""
"When set, this option blocks traffic from IP addresses that are reserved for "
"private networks as per RFC 1918 (10/8, 172.16/12, 192.168/16) as"
@@ -14719,10 +18588,12 @@ msgstr ""
"192.168/16) como"
#: usr/local/www/interfaces.php:2417 usr/local/www/interfaces.php:2618
+#: usr/local/www/interfaces.php:2606 usr/local/www/interfaces.php:2636
msgid "well as loopback addresses (127/8)."
msgstr "endereços de retorno (127/8)."
#: usr/local/www/interfaces.php:2417 usr/local/www/interfaces.php:2618
+#: usr/local/www/interfaces.php:2606 usr/local/www/interfaces.php:2636
msgid ""
"You should generally leave this option turned on, unless your WAN network "
"lies in such a private address space, too."
@@ -14731,6 +18602,7 @@ msgstr ""
"também estiver no mesmo espaço do endereço privado."
#: usr/local/www/interfaces.php:2427 usr/local/www/interfaces.php:2628
+#: usr/local/www/interfaces.php:2616 usr/local/www/interfaces.php:2646
msgid ""
"When set, this option blocks traffic from IP addresses that are reserved "
"(but not RFC 1918) or not yet assigned by IANA."
@@ -14739,6 +18611,7 @@ msgstr ""
"reservados (mas não na RFC1918) ou ainda não foram atribuídas por IANA."
#: usr/local/www/interfaces.php:2429 usr/local/www/interfaces.php:2630
+#: usr/local/www/interfaces.php:2618 usr/local/www/interfaces.php:2648
msgid ""
"Bogons are prefixes that should never appear in the Internet routing table, "
"and obviously should not appear as the source address in any packets you "
@@ -14750,6 +18623,8 @@ msgstr ""
#: usr/local/www/interfaces.php:2550 usr/local/www/interfaces.php:2559
#: usr/local/www/interfaces.php:2752 usr/local/www/interfaces.php:2761
+#: usr/local/www/interfaces.php:2740 usr/local/www/interfaces.php:2749
+#: usr/local/www/interfaces.php:2774 usr/local/www/interfaces.php:2783
msgid "You can manage Gateways"
msgstr "Você pode gerenciar Gateways"
@@ -14763,12 +18638,14 @@ msgid "Port %1$s was assigned to %2$s interfaces:"
msgstr "Porta %1$s foi atribuída para as interfaces %2$s:"
#: usr/local/www/interfaces_assign.php:262
+#: usr/local/www/interfaces_assign.php:274
msgid ""
"The interface is part of a group. Please remove it from the group to continue"
msgstr ""
"A interface é parte de um grupo. Por favor, remova-a do grupo para continuar"
#: usr/local/www/interfaces_assign.php:264
+#: usr/local/www/interfaces_assign.php:276
msgid ""
"The interface is part of a bridge. Please remove it from the bridge to "
"continue"
@@ -14776,43 +18653,52 @@ msgstr ""
"A interface é parte de uma ponte. Por favor, remova-a da ponte para continuar"
#: usr/local/www/interfaces_assign.php:266
+#: usr/local/www/interfaces_assign.php:278
msgid ""
"The interface is part of a gre tunnel. Please delete the tunnel to continue"
msgstr ""
"A interface é parte de um túnel gre. Por favor, remova o túnel para continuar"
#: usr/local/www/interfaces_assign.php:268
+#: usr/local/www/interfaces_assign.php:280
msgid ""
"The interface is part of a gif tunnel. Please delete the tunnel to continue"
msgstr ""
"A interface é parte de um túnel gif. Por favor, remova o túnel para continuar"
#: usr/local/www/interfaces_assign.php:318
+#: usr/local/www/interfaces_assign.php:312
msgid "Interface has been deleted."
msgstr "A Interface foi apagada."
#: usr/local/www/interfaces_assign.php:325
+#: usr/local/www/interfaces_assign.php:319
msgid "lan"
msgstr "lan"
#: usr/local/www/interfaces_assign.php:326
+#: usr/local/www/interfaces_assign.php:320
msgid "LAN"
msgstr "LAN"
#: usr/local/www/interfaces_assign.php:366
+#: usr/local/www/interfaces_assign.php:360
msgid "Interface has been added."
msgstr "Uma Interface foi adicionada."
#: usr/local/www/interfaces_assign.php:376
+#: usr/local/www/interfaces_assign.php:370
msgid "The system is now rebooting. Please wait."
msgstr "O sistema está reiniciando agora. Por favor, aguarde."
#: usr/local/www/interfaces_assign.php:378
+#: usr/local/www/interfaces_assign.php:372
msgid "Reboot is needed. Please apply the settings in order to reboot."
msgstr ""
"É necessário reiniciar. Por favor, aplique as configurações para reiniciar."
#: usr/local/www/interfaces_assign.php:380
+#: usr/local/www/interfaces_assign.php:374
msgid ""
"Interface mismatch detected. Please resolve the mismatch and click Save. "
"The firewall will reboot afterwards."
@@ -14821,6 +18707,7 @@ msgstr ""
"clique em Salvar. O firewall irá reiniciar em seguida."
#: usr/local/www/interfaces_assign.php:390
+#: usr/local/www/interfaces_assign.php:384
msgid ""
"The interface configuration has been changed.<br>You must apply the changes "
"in order for them to take effect."
@@ -14829,27 +18716,33 @@ msgstr ""
"alterações para que elas tenham efeito."
#: usr/local/www/interfaces_assign.php:421
+#: usr/local/www/interfaces_assign.php:415
msgid "Network port"
msgstr "Porta de rede"
#: usr/local/www/interfaces_assign.php:437
+#: usr/local/www/interfaces_assign.php:431
#, php-format
msgid "VLAN %1$s on %2$s"
msgstr "VLAN %1$s em %2$s"
#: usr/local/www/interfaces_assign.php:480
+#: usr/local/www/interfaces_assign.php:474
msgid "Do you really want to delete this interface?"
msgstr "Você realmente deseja remover essa interface PPP?"
#: usr/local/www/interfaces_assign.php:480
+#: usr/local/www/interfaces_assign.php:474
msgid "delete interface"
msgstr "remover interface"
#: usr/local/www/interfaces_assign.php:489
+#: usr/local/www/interfaces_assign.php:483
msgid "add interface"
msgstr "adicionar interface"
#: usr/local/www/interfaces_assign.php:506
+#: usr/local/www/interfaces_assign.php:500
msgid ""
"Interfaces that are configured as members of a lagg(4) interface will not be "
"shown."
@@ -14869,32 +18762,35 @@ msgstr "Coletando informações do PF, por favor aguarde..."
msgid "S.M.A.R.T. Monitor Tools"
msgstr "S.M.A.R.T. Ferramentas do monitor"
-#: usr/local/www/diag_smart.php:68
+#: usr/local/www/diag_smart.php:68 usr/local/www/diag_smart.php:73
msgid "PASSED"
msgstr "PERMITIDO"
-#: usr/local/www/diag_smart.php:69
+#: usr/local/www/diag_smart.php:69 usr/local/www/diag_smart.php:74
msgid "FAILED"
msgstr "FALHA"
-#: usr/local/www/diag_smart.php:70
+#: usr/local/www/diag_smart.php:70 usr/local/www/diag_smart.php:75
msgid "Warning"
msgstr "Atenção"
#: usr/local/www/diag_smart.php:113 usr/local/www/diag_smart.php:413
+#: usr/local/www/diag_smart.php:126 usr/local/www/diag_smart.php:434
msgid "Abort"
msgstr "Abortar"
-#: usr/local/www/diag_smart.php:154
+#: usr/local/www/diag_smart.php:154 usr/local/www/diag_smart.php:175
#, php-format
msgid "Email sent to %s"
msgstr "Email enviado para %s"
#: usr/local/www/diag_smart.php:194 usr/local/www/diag_smart.php:266
+#: usr/local/www/diag_smart.php:215 usr/local/www/diag_smart.php:287
msgid "Information/Tests"
msgstr "Informação/Teste"
#: usr/local/www/diag_smart.php:195 usr/local/www/diag_smart.php:206
+#: usr/local/www/diag_smart.php:216 usr/local/www/diag_smart.php:227
msgid "Config"
msgstr "Config"
@@ -14904,48 +18800,56 @@ msgstr "Config"
#: usr/local/www/system_certmanager.php:733
#: usr/local/www/system_certmanager.php:886
#: usr/local/www/system_camanager.php:525
+#: usr/local/www/system_camanager.php:549 usr/local/www/diag_smart.php:230
+#: usr/local/www/system_certmanager.php:758
+#: usr/local/www/system_certmanager.php:928
msgid "Email Address"
msgstr "Endereço de email"
-#: usr/local/www/diag_smart.php:231
+#: usr/local/www/diag_smart.php:231 usr/local/www/diag_smart.php:252
msgid "Test email"
msgstr "Email teste"
-#: usr/local/www/diag_smart.php:236
+#: usr/local/www/diag_smart.php:236 usr/local/www/diag_smart.php:257
#, php-format
msgid "Send test email to %s"
msgstr "Enviar email teste para %s"
#: usr/local/www/diag_smart.php:278 usr/local/www/diag_smart.php:283
+#: usr/local/www/diag_smart.php:299 usr/local/www/diag_smart.php:304
msgid "Info"
msgstr "Informação"
-#: usr/local/www/diag_smart.php:281
+#: usr/local/www/diag_smart.php:281 usr/local/www/diag_smart.php:302
msgid "Info type"
msgstr "Tipo informação"
-#: usr/local/www/diag_smart.php:284
+#: usr/local/www/diag_smart.php:284 usr/local/www/diag_smart.php:305
msgid "Health"
msgstr "Saúde"
-#: usr/local/www/diag_smart.php:285
+#: usr/local/www/diag_smart.php:285 usr/local/www/diag_smart.php:306
msgid "SMART Capabilities"
msgstr "Capacidades do SMART"
-#: usr/local/www/diag_smart.php:286
+#: usr/local/www/diag_smart.php:286 usr/local/www/diag_smart.php:307
msgid "Attributes"
msgstr "Atributos"
-#: usr/local/www/diag_smart.php:287
+#: usr/local/www/diag_smart.php:287 usr/local/www/firewall_aliases.php:179
+#: usr/local/www/diag_smart.php:308
msgid "All"
msgstr "Todos"
#: usr/local/www/diag_smart.php:291 usr/local/www/diag_smart.php:330
#: usr/local/www/diag_smart.php:367 usr/local/www/diag_smart.php:397
+#: usr/local/www/diag_smart.php:312 usr/local/www/diag_smart.php:351
+#: usr/local/www/diag_smart.php:388 usr/local/www/diag_smart.php:418
msgid "Device: /dev/"
msgstr "Serviço: /dev/"
#: usr/local/www/diag_smart.php:307 usr/local/www/diag_smart.php:383
+#: usr/local/www/diag_smart.php:328 usr/local/www/diag_smart.php:404
msgid "View"
msgstr "Visualização"
@@ -14953,7 +18857,7 @@ msgstr "Visualização"
msgid "Perform Self Tests"
msgstr "Realizar auto-testes"
-#: usr/local/www/diag_smart.php:321
+#: usr/local/www/diag_smart.php:321 usr/local/www/diag_smart.php:342
msgid "Test type"
msgstr "Tipo de teste"
@@ -14961,30 +18865,34 @@ msgstr "Tipo de teste"
#: usr/local/www/status_gateway_groups.php:123
#: usr/local/www/status_gateways.php:118
#: usr/local/www/widgets/widgets/wake_on_lan.widget.php:60
+#: usr/local/www/status_gateways.php:119
+#: usr/local/www/status_gateway_groups.php:124
+#: usr/local/www/diag_smart.php:344
msgid "Offline"
msgstr "Desconectado"
-#: usr/local/www/diag_smart.php:324
+#: usr/local/www/diag_smart.php:324 usr/local/www/diag_smart.php:345
msgid "Short"
msgstr "Curto"
-#: usr/local/www/diag_smart.php:325
+#: usr/local/www/diag_smart.php:325 usr/local/www/diag_smart.php:346
+#: usr/local/www/diag_system_pftop.php:137
msgid "Long"
msgstr "Longo"
-#: usr/local/www/diag_smart.php:326
+#: usr/local/www/diag_smart.php:326 usr/local/www/diag_smart.php:347
msgid "Conveyance (ATA Disks Only)"
msgstr "Transporte (Somente Discos ATA)"
-#: usr/local/www/diag_smart.php:357
+#: usr/local/www/diag_smart.php:357 usr/local/www/diag_smart.php:378
msgid "View Logs"
msgstr "Visualizar Logs"
-#: usr/local/www/diag_smart.php:360
+#: usr/local/www/diag_smart.php:360 usr/local/www/diag_smart.php:381
msgid "Log type"
msgstr "Tipo de Log"
-#: usr/local/www/diag_smart.php:362
+#: usr/local/www/diag_smart.php:362 usr/local/www/diag_smart.php:383
msgid "Error"
msgstr "Erro"
@@ -14992,50 +18900,57 @@ msgstr "Erro"
msgid "Self Test"
msgstr "Auto-teste"
-#: usr/local/www/diag_smart.php:394
+#: usr/local/www/diag_smart.php:394 usr/local/www/diag_smart.php:415
msgid "Abort tests"
msgstr "Abortar testes"
-#: usr/local/www/diag_smart.php:413
+#: usr/local/www/diag_smart.php:413 usr/local/www/diag_smart.php:434
msgid "Do you really want to abort the test?"
msgstr "Você realmente deseja abortar o teste?"
-#: usr/local/www/diag_smart.php:428
+#: usr/local/www/diag_smart.php:428 usr/local/www/diag_smart.php:449
msgid "Back"
msgstr "Voltar"
#: usr/local/www/diag_states_summary.php:154
#: usr/local/www/diag_states_summary.php:143
+#: usr/local/www/diag_states_summary.php:145
msgid "Src Ports"
msgstr "Portas Src"
#: usr/local/www/diag_states_summary.php:155
#: usr/local/www/diag_states_summary.php:144
+#: usr/local/www/diag_states_summary.php:146
msgid "Dst Ports"
msgstr "Portas Dst"
#: usr/local/www/diag_states_summary.php:185
#: usr/local/www/diag_states_summary.php:174
+#: usr/local/www/diag_states_summary.php:176
msgid "State Table Summary"
msgstr "Resumo da Tabela de Estados"
#: usr/local/www/diag_states_summary.php:191
#: usr/local/www/diag_states_summary.php:180
+#: usr/local/www/diag_states_summary.php:182
msgid "By Source IP"
msgstr "Por IP de Origem"
#: usr/local/www/diag_states_summary.php:192
#: usr/local/www/diag_states_summary.php:181
+#: usr/local/www/diag_states_summary.php:183
msgid "By Destination IP"
msgstr "Por IP de Destino"
#: usr/local/www/diag_states_summary.php:193
#: usr/local/www/diag_states_summary.php:182
+#: usr/local/www/diag_states_summary.php:184
msgid "Total per IP"
msgstr "Total por IP"
#: usr/local/www/diag_states_summary.php:194
#: usr/local/www/diag_states_summary.php:183
+#: usr/local/www/diag_states_summary.php:185
msgid "By IP Pair"
msgstr "Por par de IP"
@@ -15058,6 +18973,7 @@ msgid "bytes"
msgstr "bytes"
#: usr/local/www/diag_system_pftop.php:99
+#: usr/local/www/diag_system_pftop.php:148
msgid "Sort type:"
msgstr "Tipo de classificação:"
@@ -15088,6 +19004,7 @@ msgstr "pct"
#: usr/local/www/diag_system_pftop.php:110
#: usr/local/www/status_interfaces.php:365
#: usr/local/www/status_interfaces.php:462
+#: usr/local/www/status_interfaces.php:465
msgid "rate"
msgstr "taxa"
@@ -15104,6 +19021,7 @@ msgid "src"
msgstr "src"
#: usr/local/www/diag_system_pftop.php:126
+#: usr/local/www/diag_system_pftop.php:187
msgid "Gathering pfTOP activity, please wait..."
msgstr "Coletando atividade pfTOP, por favor aguarde..."
@@ -15364,6 +19282,7 @@ msgstr ""
#: usr/local/www/license.php:192 usr/local/www/license.php:194
#: usr/local/www/license.php:200 usr/local/www/license.php:201
#: usr/local/www/license.php:204 usr/local/www/license.php:211
+#: usr/local/www/license.php:169
msgid "Copyright"
msgstr "Direito de cópia"
@@ -15509,6 +19428,7 @@ msgstr ""
#: usr/local/www/load_balancer_pool.php:111
#: usr/local/www/status_lb_pool.php:113
+#: usr/local/www/load_balancer_pool.php:109
#, php-format
msgid ""
"The load balancer configuration has been changed%sYou must apply the changes "
@@ -15528,6 +19448,9 @@ msgstr ""
#: usr/local/www/system_usermanager.php:441
#: usr/local/www/system_groupmanager_addprivs.php:169
#: usr/local/www/load_balancer_pool.php:134
+#: usr/local/www/load_balancer_pool.php:132
+#: usr/local/www/system_authservers.php:429
+#: usr/local/www/system_authservers.php:436
msgid "Servers"
msgstr "Servidores"
@@ -15539,11 +19462,15 @@ msgstr "Servidores"
#: usr/local/www/status_gateways.php:74 usr/local/www/status_lb_pool.php:133
#: usr/local/www/load_balancer_pool_edit.php:240
#: usr/local/www/load_balancer_pool.php:136
+#: usr/local/www/status_gateways.php:75
+#: usr/local/www/load_balancer_pool_edit.php:238
+#: usr/local/www/load_balancer_pool.php:134
msgid "Monitor"
msgstr "Monitor"
#: usr/local/www/load_balancer_pool.php:149
#: usr/local/www/load_balancer_pool.php:150
+#: usr/local/www/load_balancer_pool.php:148
#, php-format
msgid ""
"The Load Balancer in %s 2.0 is for server load balancing, not Multi-WAN. For "
@@ -15560,6 +19487,10 @@ msgstr ""
#: usr/local/www/system_gateway_groups.php:88
#: usr/local/www/status_gateway_groups.php:65
#: usr/local/www/load_balancer_pool.php:151
+#: usr/local/www/system_gateway_groups.php:89
+#: usr/local/www/status_gateways.php:64
+#: usr/local/www/status_gateway_groups.php:66
+#: usr/local/www/load_balancer_pool.php:149
msgid "Gateway Groups"
msgstr "Grupos de Gateway"
@@ -15567,7 +19498,7 @@ msgstr "Grupos de Gateway"
msgid "Do you really want to delete this item?"
msgstr "Você realmente deseja apagar esse item?"
-#: usr/local/www/status_wireless.php:83
+#: usr/local/www/status_wireless.php:83 usr/local/www/status_wireless.php:84
msgid ""
"Rescan has been initiated in the background. Refresh this page in 10 seconds "
"to see the results."
@@ -15576,18 +19507,22 @@ msgstr ""
"ver os resultados."
#: usr/local/www/status_wireless.php:97 usr/local/www/status_wireless.php:93
+#: usr/local/www/status_wireless.php:94
msgid "Nearby access points or ad-hoc peers"
msgstr "Pontos de acesso próximos ou peers ad-hoc"
#: usr/local/www/status_wireless.php:143 usr/local/www/status_wireless.php:140
+#: usr/local/www/status_wireless.php:141
msgid "Associated or ad-hoc peers"
msgstr "Associados ou peers ad-hoc"
#: usr/local/www/system.php:118 usr/local/www/system.php:119
+#: usr/local/www/system.php:112
msgid "The hostname may only contain the characters a-z, 0-9 and '-'."
msgstr "O nome do host somente pode conter os caracteres de a-z, 0-9 e '-'."
#: usr/local/www/system.php:121 usr/local/www/system.php:122
+#: usr/local/www/system.php:115
msgid "The domain may only contain the characters a-z, 0-9, '-' and '.'."
msgstr "O domínio somente pode conter os caracteres de a-z, 0-9, '-' e '.'."
@@ -15596,11 +19531,13 @@ msgid "'."
msgstr "'."
#: usr/local/www/system.php:137 usr/local/www/system.php:143
+#: usr/local/www/system.php:136
msgid "A valid TCP/IP port must be specified for the webConfigurator port."
msgstr ""
"Uma porta TCP/IP válida deve ser especificada com a porta do webConfigurator."
#: usr/local/www/system.php:148 usr/local/www/system.php:154
+#: usr/local/www/system.php:147
#, php-format
msgid ""
"You can not assign a gateway to DNS '%s' server which is on a directly "
@@ -15610,12 +19547,14 @@ msgstr ""
"rede diretamente conectada."
#: usr/local/www/system.php:157 usr/local/www/system.php:163
+#: usr/local/www/system.php:156
msgid ""
"The time update interval must be either 0 (disabled) or between 6 and 1440."
msgstr ""
"O intervalo de atualização deve ser 0 (desabilitado) ou entre 6 e 1440."
#: usr/local/www/system.php:161 usr/local/www/system.php:167
+#: usr/local/www/system.php:160
msgid ""
"A NTP Time Server name may only contain the characters a-z, 0-9, '-' and '.'."
msgstr ""
@@ -15624,14 +19563,18 @@ msgstr ""
#: usr/local/www/system.php:231 usr/local/www/fbegin.inc:85
#: usr/local/www/fbegin.inc:101 usr/local/www/system.php:242
+#: usr/local/www/fbegin.inc:110 usr/local/www/system.php:235
+#: usr/local/www/fbegin.inc:102
msgid "General Setup"
msgstr "Configurações Gerais"
#: usr/local/www/system.php:258 usr/local/www/system.php:269
+#: usr/local/www/system.php:262
msgid "Name of the firewall host, without domain part"
msgstr "Nome do host do firewall, sem a parte de domínio"
#: usr/local/www/system.php:269 usr/local/www/system.php:280
+#: usr/local/www/system.php:273
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."
@@ -15641,25 +19584,35 @@ msgstr ""
"hosts locais que não executam mDNS."
#: usr/local/www/system.php:271 usr/local/www/system.php:282
+#: usr/local/www/system.php:275
msgid "mycorp.com, home, office, private, etc."
msgstr "mycorp.com, casa, escritório, casa, etc."
#: usr/local/www/system.php:276 usr/local/www/services_dhcp.php:647
#: usr/local/www/vpn_pppoe_edit.php:451 usr/local/www/services_dhcpv6.php:590
#: usr/local/www/services_dhcp.php:660 usr/local/www/system.php:287
-#: usr/local/www/services_dhcpv6.php:667
+#: usr/local/www/services_dhcpv6.php:667 usr/local/www/vpn_pppoe_edit.php:452
+#: usr/local/www/services_router_advertisements.php:372
+#: usr/local/www/services_dhcp.php:836 usr/local/www/system.php:280
+#: usr/local/www/services_dhcpv6.php:598
+#: usr/local/www/services_dhcp_edit.php:402
+#: usr/local/www/vpn_pppoe_edit.php:455 usr/local/www/services_dhcp.php:850
+#: usr/local/www/services_dhcpv6.php:615
msgid "DNS servers"
msgstr "Servidores DNS"
#: usr/local/www/system.php:281 usr/local/www/system.php:292
+#: usr/local/www/system.php:285
msgid "DNS Server"
msgstr "Servidor DNS"
#: usr/local/www/system.php:283 usr/local/www/system.php:294
+#: usr/local/www/system.php:287
msgid "Use gateway"
msgstr "Usar gateway"
#: usr/local/www/system.php:331 usr/local/www/system.php:342
+#: usr/local/www/system.php:335
msgid ""
"Enter IP addresses to by used by the system for DNS resolution.These are "
"also used for the DHCP service, DNS forwarder and for PPTP VPN clients."
@@ -15669,6 +19622,7 @@ msgstr ""
"PPTP."
#: usr/local/www/system.php:336 usr/local/www/system.php:347
+#: usr/local/www/system.php:340
msgid ""
"In addition, optionally select the gateway for each DNS server. When using "
"multiple WAN connections there should be at least one unique DNS server per "
@@ -15679,11 +19633,13 @@ msgstr ""
"por gateway."
#: usr/local/www/system.php:343 usr/local/www/system.php:354
+#: usr/local/www/system.php:347
msgid "Allow DNS server list to be overridden by DHCP/PPP on WAN"
msgstr ""
"Permite que a lista de servidores DNS seja substituída pelo DHCP/PPP na WAN"
#: usr/local/www/system.php:346 usr/local/www/system.php:357
+#: usr/local/www/system.php:350
#, php-format
msgid ""
"If this option is set, %s will use DNS servers assigned by a DHCP/PPP server "
@@ -15695,10 +19651,12 @@ msgstr ""
"DNS forwarder). No entanto, eles serão atribuídos a clientes DHCP e PPTP VPN."
#: usr/local/www/system.php:355 usr/local/www/system.php:366
+#: usr/local/www/system.php:359
msgid "Do not use the DNS Forwarder as a DNS server for the firewall"
msgstr "Não utilize o DNS Forwarder como um servidor DNS para o firewall"
#: usr/local/www/system.php:358 usr/local/www/system.php:369
+#: usr/local/www/system.php:362
msgid ""
"By default localhost (127.0.0.1) will be used as the first DNS server where "
"the DNS forwarder is enabled, so system can use the DNS forwarder to perform "
@@ -15710,18 +19668,22 @@ msgstr ""
"lista de servidores DNS."
#: usr/local/www/system.php:365 usr/local/www/system.php:376
+#: usr/local/www/system.php:369
msgid "Time zone"
msgstr "Fuso horário"
#: usr/local/www/system.php:377 usr/local/www/system.php:388
+#: usr/local/www/system.php:381
msgid "Select the location closest to you"
msgstr "Selecione a localização mais próxima de você"
#: usr/local/www/system.php:395 usr/local/www/system.php:406
+#: usr/local/www/system.php:399
msgid "NTP time server"
msgstr "Servidor NTP"
#: usr/local/www/system.php:400 usr/local/www/system.php:411
+#: usr/local/www/system.php:404
msgid ""
"Use a space to separate multiple hosts (only one required). Remember to set "
"up at least one DNS server if you enter a host name here!"
@@ -15731,14 +19693,16 @@ msgstr ""
"aqui!"
#: usr/local/www/system.php:411 usr/local/www/system.php:440
+#: usr/local/www/system.php:433
msgid "Theme"
msgstr "Tema"
#: usr/local/www/system.php:435 usr/local/www/system.php:464
+#: usr/local/www/system.php:457
msgid "This will change the look and feel of"
msgstr "Isso irá modificar a aparência de "
-#: usr/local/www/interfaces_vlan.php:65
+#: usr/local/www/interfaces_vlan.php:65 usr/local/www/interfaces_vlan.php:69
msgid ""
"This VLAN cannot be deleted because it is still being used as an interface."
msgstr ""
@@ -15747,19 +19711,24 @@ msgstr ""
#: usr/local/www/interfaces_vlan.php:78
#: usr/local/www/interfaces_vlan_edit.php:139
+#: usr/local/www/interfaces_vlan_edit.php:142
+#: usr/local/www/interfaces_vlan.php:84
msgid "VLAN"
msgstr "VLAN"
#: usr/local/www/interfaces_vlan.php:109
#: usr/local/www/interfaces_vlan_edit.php:75
+#: usr/local/www/interfaces_vlan.php:110 usr/local/www/interfaces_vlan.php:116
msgid "VLAN tag"
msgstr "Tag VLAN"
-#: usr/local/www/interfaces_vlan.php:125
+#: usr/local/www/interfaces_vlan.php:125 usr/local/www/interfaces_vlan.php:126
+#: usr/local/www/interfaces_vlan.php:132
msgid "Do you really want to delete this VLAN?"
msgstr "Você realmente deseja apagar essa VLAN?"
-#: usr/local/www/interfaces_vlan.php:136
+#: usr/local/www/interfaces_vlan.php:136 usr/local/www/interfaces_vlan.php:137
+#: usr/local/www/interfaces_vlan.php:143
#, php-format
msgid ""
"Not all drivers/NICs support 802.1Q VLAN tagging properly. On cards that do "
@@ -15776,36 +19745,48 @@ msgid "The VLAN tag must be an integer between 1 and 4094."
msgstr "A tag VLAN deve ser um inteiro entre 1 e 4094."
#: usr/local/www/interfaces_vlan_edit.php:88
+#: usr/local/www/interfaces_vlan_edit.php:91
#, php-format
msgid "A VLAN with the tag %s is already defined on this interface."
msgstr "A VLAN com a tag %s já foi definida nessa interface."
#: usr/local/www/interfaces_vlan_edit.php:95
+#: usr/local/www/interfaces_vlan_edit.php:98
msgid "A QinQ VLAN exists with this tag please remove it to use this tag with."
msgstr ""
"Uma VLAN QinQ existe com essa tag, por favor, remova-a para usar essa tag."
#: usr/local/www/interfaces_vlan_edit.php:150
+#: usr/local/www/interfaces_vlan_edit.php:151
+#: usr/local/www/interfaces_vlan_edit.php:154
msgid "VLAN configuration"
msgstr "Configuração VLAN"
#: usr/local/www/interfaces_vlan_edit.php:169
+#: usr/local/www/interfaces_vlan_edit.php:170
+#: usr/local/www/interfaces_vlan_edit.php:173
msgid "Only VLAN capable interfaces will be shown."
msgstr "Somente interfaces que suportam VLAN serão exibidas."
#: usr/local/www/interfaces_vlan_edit.php:172
+#: usr/local/www/interfaces_vlan_edit.php:173
+#: usr/local/www/interfaces_vlan_edit.php:176
msgid "VLAN tag "
msgstr "Tag VLAN"
#: usr/local/www/interfaces_vlan_edit.php:176
+#: usr/local/www/interfaces_vlan_edit.php:177
+#: usr/local/www/interfaces_vlan_edit.php:180
msgid "802.1Q VLAN tag (between 1 and 4094) "
msgstr "Tag VLAN 802.1Q (entre 1 e 4094)"
-#: usr/local/www/system_firmware.php:82
+#: usr/local/www/system_firmware.php:82 usr/local/www/system_firmware.php:89
+#: usr/local/www/system_firmware.php:88
msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini"
msgstr "O arquivo carregado excede a diretiva upload_max_filesize em php.ini"
-#: usr/local/www/system_firmware.php:84
+#: usr/local/www/system_firmware.php:84 usr/local/www/system_firmware.php:91
+#: usr/local/www/system_firmware.php:90
msgid ""
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
"the HTML form"
@@ -15813,27 +19794,33 @@ msgstr ""
"O arquivo carregado excede a diretiva MAX_FILE_SIZE que foi especificado no "
"formulário HTML"
-#: usr/local/www/system_firmware.php:86
+#: usr/local/www/system_firmware.php:86 usr/local/www/system_firmware.php:93
+#: usr/local/www/system_firmware.php:92
msgid "The uploaded file was only partially uploaded"
msgstr "O arquivo carregado foi somente carregado parcialmente"
-#: usr/local/www/system_firmware.php:88
+#: usr/local/www/system_firmware.php:88 usr/local/www/system_firmware.php:95
+#: usr/local/www/system_firmware.php:94
msgid "No file was uploaded"
msgstr "Nenhum arquivo foi carregado"
-#: usr/local/www/system_firmware.php:90
+#: usr/local/www/system_firmware.php:90 usr/local/www/system_firmware.php:97
+#: usr/local/www/system_firmware.php:96
msgid "Missing a temporary folder"
msgstr "Uma pasta temporária está faltando"
-#: usr/local/www/system_firmware.php:92
+#: usr/local/www/system_firmware.php:92 usr/local/www/system_firmware.php:99
+#: usr/local/www/system_firmware.php:98
msgid "Failed to write file to disk"
msgstr "Falhou ao escrever um arquivo no disco"
-#: usr/local/www/system_firmware.php:94
+#: usr/local/www/system_firmware.php:94 usr/local/www/system_firmware.php:101
+#: usr/local/www/system_firmware.php:100
msgid "File upload stopped by extension"
msgstr "Carregamento de arquivo interrompido pela extensão"
-#: usr/local/www/system_firmware.php:96
+#: usr/local/www/system_firmware.php:96 usr/local/www/system_firmware.php:103
+#: usr/local/www/system_firmware.php:102
msgid "Unknown upload error"
msgstr "Erro de carregamento desconhecido"
@@ -15841,7 +19828,10 @@ msgstr "Erro de carregamento desconhecido"
#: usr/local/www/system_firmware_auto.php:60
#: usr/local/www/system_firmware_check.php:49
#: usr/local/www/system_firmware_settings.php:74 usr/local/www/fbegin.inc:84
-#: usr/local/www/fbegin.inc:100
+#: usr/local/www/fbegin.inc:100 usr/local/www/fbegin.inc:109
+#: usr/local/www/system_firmware.php:109 usr/local/www/system_firmware.php:210
+#: usr/local/www/system_firmware_settings.php:79
+#: usr/local/www/system_firmware.php:108 usr/local/www/fbegin.inc:101
msgid "Firmware"
msgstr "Firmware"
@@ -15850,10 +19840,14 @@ msgstr "Firmware"
#: usr/local/www/system_firmware_check.php:66
#: usr/local/www/system_firmware_settings.php:110
#: usr/local/www/system_firmware_restorefullbackup.php:125
+#: usr/local/www/system_firmware.php:109 usr/local/www/system_firmware.php:245
+#: usr/local/www/system_firmware_settings.php:115
+#: usr/local/www/system_firmware.php:108 usr/local/www/system_firmware.php:248
msgid "Manual Update"
msgstr "Atualização Manual"
-#: usr/local/www/system_firmware.php:107
+#: usr/local/www/system_firmware.php:107 usr/local/www/system_firmware.php:114
+#: usr/local/www/system_firmware.php:113
msgid ""
"An upgrade is currently in progress.<p>The firewall will reboot when the "
"operation is complete."
@@ -15861,52 +19855,66 @@ msgstr ""
"Uma atualização está atualmente em progresso.<p>O firewall irá reiniciar "
"quando a operação for completada."
-#: usr/local/www/system_firmware.php:135
+#: usr/local/www/system_firmware.php:135 usr/local/www/system_firmware.php:142
+#: usr/local/www/system_firmware.php:137
msgid "Upgrade"
msgstr "Atualização"
-#: usr/local/www/system_firmware.php:154
+#: usr/local/www/system_firmware.php:154 usr/local/www/system_firmware.php:161
+#: usr/local/www/system_firmware.php:156
msgid "The uploaded image file is not for this platform."
msgstr "O arquivo de imagem carregado não é dessa plataforma."
-#: usr/local/www/system_firmware.php:157
+#: usr/local/www/system_firmware.php:157 usr/local/www/system_firmware.php:164
+#: usr/local/www/system_firmware.php:159
msgid "Image upload failed (out of memory?)"
msgstr "Carregamento de imagem falhou (falta de memória?)"
#: usr/local/www/system_firmware.php:168
#: usr/local/www/system_firmware_auto.php:201
+#: usr/local/www/system_firmware.php:175 usr/local/www/system_firmware.php:170
+#: usr/local/www/system_firmware_auto.php:203
msgid "The digital signature on this image is invalid."
msgstr "A assinatura digital nessa imagem é inválida."
#: usr/local/www/system_firmware.php:170
#: usr/local/www/system_firmware_auto.php:204
+#: usr/local/www/system_firmware.php:177 usr/local/www/system_firmware.php:172
+#: usr/local/www/system_firmware_auto.php:206
msgid "This image is not digitally signed."
msgstr "Essa imagem não está assinada digitalmente."
#: usr/local/www/system_firmware.php:172
#: usr/local/www/system_firmware_auto.php:208
+#: usr/local/www/system_firmware.php:179 usr/local/www/system_firmware.php:174
+#: usr/local/www/system_firmware_auto.php:210
msgid "There has been an error verifying the signature on this image."
msgstr "Ocorreu um erro verificando a assinatura nessa imagem."
#: usr/local/www/system_firmware.php:175
#: usr/local/www/system_firmware_auto.php:223
+#: usr/local/www/system_firmware.php:182 usr/local/www/system_firmware.php:177
+#: usr/local/www/system_firmware_auto.php:225
msgid "The image file is corrupt."
msgstr "O arquivo de imagem está corrompido."
-#: usr/local/www/system_firmware.php:188
+#: usr/local/www/system_firmware.php:188 usr/local/www/system_firmware.php:195
+#: usr/local/www/system_firmware.php:190
msgid ""
"The firmware is now being updated. The firewall will reboot automatically."
msgstr ""
"O firmware está sendo atualizado. O firewall irá reiniciar automaticamente."
-#: usr/local/www/system_firmware.php:196
+#: usr/local/www/system_firmware.php:196 usr/local/www/system_firmware.php:203
+#: usr/local/www/system_firmware.php:204
#, php-format
msgid "Firmware image missing or other error, please try again %s."
msgstr ""
"A imagem de firmware não foi encontrada ou trata-se de outro erro; por "
"favor, tente novamente %s."
-#: usr/local/www/system_firmware.php:220
+#: usr/local/www/system_firmware.php:220 usr/local/www/system_firmware.php:227
+#: usr/local/www/system_firmware.php:230
msgid ""
"This means that the image you uploaded is not an official/supported image "
"and may lead to unexpected behavior or security compromises. Only install "
@@ -15918,7 +19926,8 @@ msgstr ""
"segurança. Somente instale imagens que vem de fontes que você confia, e "
"tenha certeza de que a imagem não foi adulterada."
-#: usr/local/www/system_firmware.php:224
+#: usr/local/www/system_firmware.php:224 usr/local/www/system_firmware.php:231
+#: usr/local/www/system_firmware.php:234
msgid "Do you want to install this image anyway (on your own risk)?"
msgstr "Você deseja instalar essa imagem mesmo assim (por sua conta e risco)?"
@@ -15929,6 +19938,9 @@ msgstr "Você deseja instalar essa imagem mesmo assim (por sua conta e risco)?"
#: usr/local/www/system_firmware_check.php:67
#: usr/local/www/system_firmware_settings.php:111
#: usr/local/www/system_firmware_restorefullbackup.php:126
+#: usr/local/www/system_firmware.php:246
+#: usr/local/www/system_firmware_settings.php:116
+#: usr/local/www/system_firmware.php:249
msgid "Auto Update"
msgstr "Auto-Atualização"
@@ -15937,6 +19949,9 @@ msgstr "Auto-Atualização"
#: usr/local/www/system_firmware_check.php:68
#: usr/local/www/system_firmware_settings.php:112
#: usr/local/www/system_firmware_restorefullbackup.php:127
+#: usr/local/www/system_firmware.php:247
+#: usr/local/www/system_firmware_settings.php:117
+#: usr/local/www/system_firmware.php:250
msgid "Updater Settings"
msgstr "Configurações de Atualizador"
@@ -15945,73 +19960,84 @@ msgstr "Configurações de Atualizador"
#: usr/local/www/system_firmware_check.php:70
#: usr/local/www/system_firmware_settings.php:114
#: usr/local/www/system_firmware_restorefullbackup.php:129
+#: usr/local/www/system_firmware.php:249
+#: usr/local/www/system_firmware_settings.php:119
+#: usr/local/www/system_firmware.php:252
msgid "Restore Full Backup"
msgstr "Restaura o backup compelto"
-#: usr/local/www/system_firmware.php:252
+#: usr/local/www/system_firmware.php:252 usr/local/www/system_firmware.php:259
+#: usr/local/www/system_firmware.php:262
msgid "Invoke"
msgstr "Invocar"
-#: usr/local/www/system_firmware.php:252
+#: usr/local/www/system_firmware.php:252 usr/local/www/system_firmware.php:259
+#: usr/local/www/system_firmware.php:262
msgid "Manual Upgrade"
msgstr "Atualização Manual"
-#: usr/local/www/system_firmware.php:259
+#: usr/local/www/system_firmware.php:259 usr/local/www/system_firmware.php:266
+#: usr/local/www/system_firmware.php:269
msgid "Enable firmware upload"
msgstr "Habilitar carregamento de firmware"
-#: usr/local/www/system_firmware.php:261
+#: usr/local/www/system_firmware.php:261 usr/local/www/system_firmware.php:268
+#: usr/local/www/system_firmware.php:271
#, php-format
msgid "Click \"Enable firmware upload\" to begin."
msgstr "Clique em \"Habilitar atualização de firmware\" para começar."
-#: usr/local/www/system_firmware.php:264
+#: usr/local/www/system_firmware.php:264 usr/local/www/system_firmware.php:271
+#: usr/local/www/system_firmware.php:274
msgid "Disable firmware upload"
msgstr "Desabilitar carregamento de firmware"
-#: usr/local/www/system_firmware.php:282
+#: usr/local/www/system_firmware.php:282 usr/local/www/system_firmware.php:289
+#: usr/local/www/system_firmware.php:292
msgid "Please select kernel type"
msgstr "Por favor, selecione o tipo de kernel"
-#: usr/local/www/system_firmware.php:284
+#: usr/local/www/system_firmware.php:284 usr/local/www/system_firmware.php:55
msgid "Multiprocessor kernel"
msgstr "Kernel Multiprocessador"
-#: usr/local/www/system_firmware.php:285
+#: usr/local/www/system_firmware.php:285 usr/local/www/system_firmware.php:56
msgid "Uniprocessor kernel"
msgstr "Kernel Uniprocessador"
-#: usr/local/www/system_firmware.php:286
+#: usr/local/www/system_firmware.php:286 usr/local/www/system_firmware.php:57
msgid "Embedded kernel"
msgstr "Kernel embutido"
-#: usr/local/www/system_firmware.php:287
+#: usr/local/www/system_firmware.php:287 usr/local/www/system_firmware.php:58
msgid "Developers kernel"
msgstr "Kernel de desenvolvedores"
#: usr/local/www/system_firmware.php:298
#: usr/local/www/system_firmware_check.php:103
+#: usr/local/www/system_firmware.php:304 usr/local/www/system_firmware.php:303
+#: usr/local/www/system_firmware_check.php:104
msgid "Perform full backup prior to upgrade"
msgstr "Realizar backup completo antes da atualização"
-#: usr/local/www/system_firmware.php:300
+#: usr/local/www/system_firmware.php:300 usr/local/www/system_firmware.php:306
msgid "Upgrade firmware"
msgstr "Atualizar firmware"
-#: usr/local/www/system_firmware.php:301
+#: usr/local/www/system_firmware.php:301 usr/local/www/system_firmware.php:307
msgid "Click \"Upgrade firmware\" to start the upgrade process."
msgstr ""
"Clique em \"Atualizar firmware\" para iniciar o processo de atualização."
-#: usr/local/www/system_firmware.php:303
+#: usr/local/www/system_firmware.php:303 usr/local/www/system_firmware.php:309
msgid "You must reboot the system before you can upgrade the firmware."
msgstr "Você deve reiniciar o sistema antes que possa atualizar o firmware."
-#: usr/local/www/system_firmware.php:316
+#: usr/local/www/system_firmware.php:316 usr/local/www/system_firmware.php:322
msgid "Warning:"
msgstr "Advertência:"
-#: usr/local/www/system_firmware.php:319
+#: usr/local/www/system_firmware.php:319 usr/local/www/system_firmware.php:325
msgid ""
"DO NOT abort the firmware upgrade once it has started. The firewall will "
"reboot automatically after storing the new firmware. The configuration will "
@@ -16026,29 +20052,38 @@ msgid "Beginning firmware upgrade"
msgstr "Iniciando atualização de firmware"
#: usr/local/www/system_firmware_auto.php:133
+#: usr/local/www/system_firmware_auto.php:135
msgid "Downloading current version information"
msgstr "Fazendo download de informações da versão atual"
#: usr/local/www/system_firmware_auto.php:148
#: usr/local/www/system_firmware_auto.php:157
#: usr/local/www/system_firmware_check.php:141
+#: usr/local/www/system_firmware_check.php:143
+#: usr/local/www/system_firmware_auto.php:150
+#: usr/local/www/system_firmware_auto.php:159
msgid "Unable to check for updates."
msgstr "Desabilitar verificações por atualizações."
#: usr/local/www/system_firmware_auto.php:162
+#: usr/local/www/system_firmware_auto.php:164
msgid "Downloading updates"
msgstr "Baixando atualizações"
#: usr/local/www/system_firmware_auto.php:172
+#: usr/local/www/system_firmware_auto.php:174
msgid "download complete."
msgstr "download completo."
#: usr/local/www/system_firmware_auto.php:174
#: usr/local/www/system_firmware_check.php:159
+#: usr/local/www/system_firmware_check.php:161
+#: usr/local/www/system_firmware_auto.php:176
msgid "You are on the latest version."
msgstr "Você possui a última versão."
#: usr/local/www/system_firmware_auto.php:214
+#: usr/local/www/system_firmware_auto.php:216
msgid ""
"Update cannot continue. You can disable this check on the Updater Settings "
"tab."
@@ -16057,6 +20092,7 @@ msgstr ""
"aba Configurações de Atualização. "
#: usr/local/www/system_firmware_auto.php:219
+#: usr/local/www/system_firmware_auto.php:221
msgid ""
"Upgrade Image does not contain a signature but the system has been "
"configured to allow unsigned images. One moment please..."
@@ -16065,141 +20101,183 @@ msgstr ""
"configurado para permiti-las. Um momento por favor..."
#: usr/local/www/system_firmware_auto.php:224
+#: usr/local/www/system_firmware_auto.php:226
msgid "Update cannot continue"
msgstr "Atualização não pode continuar"
#: usr/local/www/system_firmware_auto.php:235
+#: usr/local/www/system_firmware_auto.php:237
msgid "Downloading complete but sha256 does not match."
msgstr "Download completo mas sha256 não corresponde."
#: usr/local/www/system_firmware_auto.php:236
+#: usr/local/www/system_firmware_auto.php:238
msgid "Auto upgrade aborted."
msgstr "Auto-atualização abortada."
#: usr/local/www/system_firmware_auto.php:236
+#: usr/local/www/system_firmware_auto.php:238
msgid "Downloaded SHA256"
msgstr "Download de SHA256 feito"
#: usr/local/www/system_firmware_auto.php:236
+#: usr/local/www/system_firmware_auto.php:238
msgid "Needed SHA256"
msgstr "SHA256 necessário"
#: usr/local/www/system_firmware_auto.php:238
+#: usr/local/www/system_firmware_auto.php:240
msgid "is now upgrading."
msgstr "está agora atualizando."
#: usr/local/www/system_firmware_auto.php:238
+#: usr/local/www/system_firmware_auto.php:240
msgid "The firewall will reboot once the operation is completed."
msgstr "O firewall irá reiniciar uma vez que a operação estiver completa."
#: usr/local/www/system_firmware_auto.php:256
+#: usr/local/www/system_firmware_auto.php:258
msgid "Auto Update Download Status"
msgstr "Status de Download de Auto-Atualização"
#: usr/local/www/system_firmware_auto.php:258
+#: usr/local/www/system_firmware_auto.php:260
msgid "Current Version"
msgstr "Versão Atual"
#: usr/local/www/system_firmware_auto.php:259
+#: usr/local/www/system_firmware_auto.php:261
msgid "Latest Version"
msgstr "Última Versão"
#: usr/local/www/system_firmware_auto.php:260
+#: usr/local/www/system_firmware_auto.php:262
msgid "File size"
msgstr "Tamanho do arquivo"
#: usr/local/www/system_firmware_auto.php:261
+#: usr/local/www/system_firmware_auto.php:263
msgid "Downloaded"
msgstr "Baixado"
#: usr/local/www/system_firmware_auto.php:262
+#: usr/local/www/system_firmware_auto.php:264
msgid "Percent"
msgstr "Por cento"
#: usr/local/www/system_firmware_check.php:107
+#: usr/local/www/system_firmware_check.php:109
msgid "Invoke Auto Upgrade"
msgstr "Invocar Auto-Atualização"
#: usr/local/www/system_firmware_check.php:125
+#: usr/local/www/system_firmware_check.php:127
msgid "Downloading new version information..."
msgstr "Fazendo download de informações de nova versão..."
#: usr/local/www/system_firmware_check.php:143
+#: usr/local/www/system_firmware_check.php:145
msgid "Could not contact custom update server."
msgstr "Não pode contactar servidor de atualização personalizado."
#: usr/local/www/system_firmware_check.php:145
+#: usr/local/www/system_firmware_check.php:147
#, php-format
msgid "Could not contact %1$s update server %2$s%3$s"
msgstr "Não pode contactar o servidor de atualização %1$s %2$s%3$s"
#: usr/local/www/system_firmware_check.php:147
+#: usr/local/www/system_firmware_check.php:149
msgid "Obtaining current version information..."
msgstr "Obtendo informações da versão atual..."
#: usr/local/www/system_firmware_check.php:172
+#: usr/local/www/system_firmware_check.php:174
msgid "A new version is now available"
msgstr "Uma nova versão está disponível agora"
#: usr/local/www/system_firmware_check.php:173
+#: usr/local/www/system_firmware_check.php:175
msgid "Current version"
msgstr "Versão atual"
#: usr/local/www/system_firmware_check.php:175
+#: usr/local/www/system_firmware_check.php:177
msgid "NanoBSD Size"
msgstr "Tamanho do NanoBSD"
#: usr/local/www/system_firmware_check.php:177
+#: usr/local/www/system_firmware_check.php:179
msgid "Built On"
msgstr "Construído em"
#: usr/local/www/system_firmware_check.php:178
+#: usr/local/www/system_firmware_check.php:180
msgid "New version"
msgstr "Nova versão"
#: usr/local/www/system_firmware_check.php:179
+#: usr/local/www/system_firmware_check.php:181
msgid "Update source"
msgstr "Fonte de atualização"
#: usr/local/www/system_firmware_settings.php:122
+#: usr/local/www/system_firmware_settings.php:127
msgid "Firmware Branch"
msgstr "Firmware Branch"
#: usr/local/www/system_firmware_settings.php:126
+#: usr/local/www/system_firmware_settings.php:131
msgid "Default Auto Update URLs"
msgstr "URLs de Auto Atualização Padrão"
#: usr/local/www/system_firmware_settings.php:142
+#: usr/local/www/system_firmware_settings.php:147
+#: usr/local/www/system_firmware_settings.php:156
msgid "Firmware Auto Update URL"
msgstr "URL de Auto Atualização de Firmware"
#: usr/local/www/system_firmware_settings.php:144
+#: usr/local/www/system_firmware_settings.php:149
+#: usr/local/www/system_firmware_settings.php:158
msgid "Use a URL server for firmware upgrades other than"
msgstr "Use um servidor de URL para atualização de firmware que não "
#: usr/local/www/system_firmware_settings.php:146
#: usr/local/www/pkg_mgr_settings.php:109
+#: usr/local/www/system_firmware_settings.php:151
+#: usr/local/www/system_firmware_settings.php:160
msgid "Base URL:"
msgstr "URL Base:"
#: usr/local/www/system_firmware_settings.php:149
+#: usr/local/www/system_firmware_settings.php:154
+#: usr/local/www/system_firmware_settings.php:163
msgid "This is where"
msgstr "Isso é onde"
#: usr/local/www/system_firmware_settings.php:149
+#: usr/local/www/system_firmware_settings.php:154
+#: usr/local/www/system_firmware_settings.php:163
msgid "will check for newer firmware versions when the"
msgstr "irá verificar versões mais novas de firmware quando o "
#: usr/local/www/system_firmware_settings.php:149
+#: usr/local/www/system_firmware_settings.php:154
+#: usr/local/www/system_firmware_settings.php:163
msgid "System: Firmware: Auto Update"
msgstr "Sistema: Firmware: Auto-Atualização"
#: usr/local/www/system_firmware_settings.php:149
#: usr/local/www/pkg_mgr_settings.php:112
+#: usr/local/www/system_firmware_settings.php:154
+#: usr/local/www/system_firmware_settings.php:163
msgid "page is viewed."
msgstr "página é visualizada."
#: usr/local/www/system_firmware_settings.php:151
+#: usr/local/www/system_firmware_settings.php:156
+#: usr/local/www/system_firmware_settings.php:165
#, php-format
msgid ""
"When a custom URL is enabled, the system will not verify the digital "
@@ -16209,14 +20287,20 @@ msgstr ""
"assinatura digital de %s."
#: usr/local/www/system_firmware_settings.php:159
+#: usr/local/www/system_firmware_settings.php:164
+#: usr/local/www/system_firmware_settings.php:173
msgid "Updates"
msgstr "Atualizações"
#: usr/local/www/system_firmware_settings.php:162
+#: usr/local/www/system_firmware_settings.php:167
+#: usr/local/www/system_firmware_settings.php:176
msgid "Unsigned images"
msgstr "Imagens não assinadas"
#: usr/local/www/system_firmware_settings.php:166
+#: usr/local/www/system_firmware_settings.php:171
+#: usr/local/www/system_firmware_settings.php:180
msgid ""
"Allow auto-update firmware images with a missing or invalid digital "
"signature to be used."
@@ -16225,14 +20309,20 @@ msgstr ""
"digital ou com assinatura inválida."
#: usr/local/www/system_firmware_settings.php:174
+#: usr/local/www/system_firmware_settings.php:187
+#: usr/local/www/system_firmware_settings.php:196
msgid "Gitsync"
msgstr "Gitsync"
#: usr/local/www/system_firmware_settings.php:177
+#: usr/local/www/system_firmware_settings.php:190
+#: usr/local/www/system_firmware_settings.php:199
msgid "Auto sync on update"
msgstr "Auto sincronização na atualização"
#: usr/local/www/system_firmware_settings.php:181
+#: usr/local/www/system_firmware_settings.php:194
+#: usr/local/www/system_firmware_settings.php:203
msgid ""
"After updating, sync with the following repository/branch before reboot."
msgstr ""
@@ -16240,39 +20330,53 @@ msgstr ""
"reiniciar."
#: usr/local/www/system_firmware_settings.php:193
+#: usr/local/www/system_firmware_settings.php:206
+#: usr/local/www/system_firmware_settings.php:215
msgid "Repository URL"
msgstr "URL do repositório"
#: usr/local/www/system_firmware_settings.php:198
+#: usr/local/www/system_firmware_settings.php:211
+#: usr/local/www/system_firmware_settings.php:220
#, php-format
msgid "The most recently used repository was %s"
msgstr "O repositório mais recentemente utilizado foi %s"
#: usr/local/www/system_firmware_settings.php:200
+#: usr/local/www/system_firmware_settings.php:213
+#: usr/local/www/system_firmware_settings.php:222
msgid "This will be used if the field is left blank."
msgstr "Isto será usado se o campo for deixado em branco."
#: usr/local/www/system_firmware_settings.php:219
+#: usr/local/www/system_firmware_settings.php:232
+#: usr/local/www/system_firmware_settings.php:241
msgid "Branch name"
msgstr "Nome do ramo"
#: usr/local/www/system_firmware_settings.php:224
+#: usr/local/www/system_firmware_settings.php:237
+#: usr/local/www/system_firmware_settings.php:246
#, php-format
msgid "The most recently used branch was %s"
msgstr "O branch mais recentemente utilizado foi %s"
#: usr/local/www/system_firmware_settings.php:227
+#: usr/local/www/system_firmware_settings.php:240
+#: usr/local/www/system_firmware_settings.php:249
msgid "Usually the branch name is master"
msgstr "Normalmente o nome do branch é master"
#: usr/local/www/system_firmware_settings.php:230
+#: usr/local/www/system_firmware_settings.php:243
+#: usr/local/www/system_firmware_settings.php:252
msgid "Note: Sync will not be performed if a branch is not specified."
msgstr ""
"Nota: A sincronização não será realizada se um branch não for especificado."
#: usr/local/www/system_routes.php:52 usr/local/www/system_routes.php:94
#: usr/local/www/system_routes_edit.php:165
-#: usr/local/www/system_routes_edit.php:198
+#: usr/local/www/system_routes_edit.php:198 usr/local/www/system_routes.php:98
msgid "Static Routes"
msgstr "Rotas Estáticas"
@@ -16280,7 +20384,7 @@ msgstr "Rotas Estáticas"
msgid "removed route to"
msgstr "removida a rota para"
-#: usr/local/www/system_routes.php:107
+#: usr/local/www/system_routes.php:107 usr/local/www/system_routes.php:111
#, php-format
msgid ""
"The static route configuration has been changed.%sYou must apply the changes "
@@ -16305,20 +20409,36 @@ msgstr ""
#: usr/local/www/diag_logs_wireless.php:85
#: usr/local/www/diag_logs_gateways.php:66
#: usr/local/www/diag_logs_gateways.php:97
+#: usr/local/www/diag_logs_routing.php:84
+#: usr/local/www/system_gateway_groups_edit.php:146
+#: usr/local/www/fbegin.inc:184 usr/local/www/diag_logs_resolver.php:98
+#: usr/local/www/system_gateway_groups.php:109
+#: usr/local/www/system_gateway_groups.php:122
+#: usr/local/www/system_gateways_edit.php:425
+#: usr/local/www/status_gateways.php:63
+#: usr/local/www/diag_logs_wireless.php:86
+#: usr/local/www/diag_logs_gateways.php:98
+#: usr/local/www/status_gateway_groups.php:65
+#: usr/local/www/status_gateway_groups.php:76
+#: usr/local/www/system_routes.php:119 usr/local/www/fbegin.inc:175
msgid "Gateways"
msgstr "Gateways"
#: usr/local/www/system_routes.php:116 usr/local/www/fbegin.inc:204
#: usr/local/www/system_gateway_groups.php:109
#: usr/local/www/system_gateways.php:142 usr/local/www/fbegin.inc:222
+#: usr/local/www/fbegin.inc:230 usr/local/www/system_gateway_groups.php:110
+#: usr/local/www/system_routes.php:120
msgid "Routes"
msgstr "Rotas"
#: usr/local/www/system_routes.php:161 usr/local/www/system_routes.php:172
+#: usr/local/www/system_routes.php:176
msgid "Do you really want to delete this route?"
msgstr "Você realmente deseja apagar essa rota?"
#: usr/local/www/system_routes.php:188 usr/local/www/system_routes.php:199
+#: usr/local/www/system_routes.php:203
msgid ""
"Do not enter static routes for networks assigned on any interface of this "
"firewall. Static routes are only used for networks reachable via a "
@@ -16332,6 +20452,7 @@ msgstr ""
#: usr/local/www/system_routes_edit.php:179
#: usr/local/www/system_routes_edit.php:90
#: usr/local/www/system_routes_edit.php:216
+#: usr/local/www/system_routes_edit.php:217
msgid "Destination network"
msgstr "Rede de destino"
@@ -16366,42 +20487,50 @@ msgstr "Editar rota"
#: usr/local/www/system_routes_edit.php:176
#: usr/local/www/system_routes_edit.php:213
+#: usr/local/www/system_routes_edit.php:214
msgid "Edit route entry"
msgstr "Editar entrada de rota"
#: usr/local/www/system_routes_edit.php:196
#: usr/local/www/system_routes_edit.php:228
+#: usr/local/www/system_routes_edit.php:229
msgid "Destination network for this static route"
msgstr "Rede de destino para essa rota estática"
#: usr/local/www/system_routes_edit.php:212
#: usr/local/www/system_routes_edit.php:244
+#: usr/local/www/system_routes_edit.php:245
msgid "Choose which gateway this route applies to or"
msgstr "Escolha em qual gateway essa rota se aplica ou "
#: usr/local/www/system_routes_edit.php:228
#: usr/local/www/system_routes_edit.php:260
+#: usr/local/www/system_routes_edit.php:261
msgid "Default gateway:"
msgstr "Gateway padrão:"
#: usr/local/www/system_routes_edit.php:231
#: usr/local/www/system_routes_edit.php:263
+#: usr/local/www/system_routes_edit.php:264
msgid "Interface:"
msgstr "Interface:"
#: usr/local/www/system_routes_edit.php:243
#: usr/local/www/system_routes_edit.php:275
+#: usr/local/www/system_routes_edit.php:276
msgid "Gateway IP:"
msgstr "IP do Gateway:"
#: usr/local/www/system_routes_edit.php:334
#: usr/local/www/system_routes_edit.php:374
+#: usr/local/www/system_routes_edit.php:375
#, php-format
msgid "You can manage Gateways %shere%s."
msgstr "Você pode gerenciar Gateways %saqui%s."
#: usr/local/www/system_routes_edit.php:337
#: usr/local/www/system_routes_edit.php:377
+#: usr/local/www/system_routes_edit.php:378
msgid "Sorry, we could not create your gateway at this time."
msgstr "Lamento, não pudemos criar seu gateway dessa vez."
@@ -16411,30 +20540,38 @@ msgstr "Resumo de Log do Firewall"
#: usr/local/www/diag_logs_filter_summary.php:45
#: usr/local/www/load_balancer_relay_protocol_edit.php:230
+#: usr/local/www/load_balancer_relay_protocol_edit.php:228
+#: usr/local/www/diag_logs_filter_summary.php:46
msgid "Actions"
msgstr "Ações"
#: usr/local/www/diag_logs_filter_summary.php:47
+#: usr/local/www/diag_logs_filter_summary.php:48
msgid "Protocols"
msgstr "Protocolos"
#: usr/local/www/diag_logs_filter_summary.php:48
+#: usr/local/www/diag_logs_filter_summary.php:49
msgid "Source IPs"
msgstr "IPs de Origem"
#: usr/local/www/diag_logs_filter_summary.php:49
+#: usr/local/www/diag_logs_filter_summary.php:50
msgid "Destination IPs"
msgstr "IPs de Destino"
#: usr/local/www/diag_logs_filter_summary.php:50
+#: usr/local/www/diag_logs_filter_summary.php:51
msgid "Source Ports"
msgstr "Portas de Origem"
#: usr/local/www/diag_logs_filter_summary.php:51
+#: usr/local/www/diag_logs_filter_summary.php:52
msgid "Destination Ports"
msgstr "Portas de Destino"
#: usr/local/www/diag_logs_filter_summary.php:71
+#: usr/local/www/diag_logs_filter_summary.php:72
msgid "data"
msgstr "dados"
@@ -16470,7 +20607,9 @@ msgid "ERR Invalid configuration received."
msgstr "ERRO Configuração inválida recebida."
#: usr/local/www/vpn_ipsec.php:134 usr/local/www/vpn_ipsec_keys.php:86
-#: usr/local/www/vpn_ipsec_mobile.php:303
+#: usr/local/www/vpn_ipsec_mobile.php:303 usr/local/www/vpn_ipsec.php:133
+#: usr/local/www/vpn_ipsec_mobile.php:330 usr/local/www/vpn_ipsec_keys.php:85
+#: usr/local/www/vpn_ipsec.php:139
msgid "The IPsec tunnel configuration has been changed"
msgstr "A configuração de túnvel IPsec foi modificada"
@@ -16478,7 +20617,12 @@ msgstr "A configuração de túnvel IPsec foi modificada"
#: usr/local/www/vpn_ipsec_mobile.php:318
#: usr/local/www/vpn_ipsec_phase1.php:497
#: usr/local/www/vpn_ipsec_phase2.php:381
-#: usr/local/www/vpn_ipsec_phase2.php:407
+#: usr/local/www/vpn_ipsec_phase2.php:407 usr/local/www/vpn_ipsec.php:140
+#: usr/local/www/vpn_ipsec_mobile.php:345 usr/local/www/vpn_ipsec_keys.php:92
+#: usr/local/www/vpn_ipsec_phase2.php:473
+#: usr/local/www/vpn_ipsec_phase1.php:496 usr/local/www/vpn_ipsec.php:146
+#: usr/local/www/vpn_ipsec_phase1.php:517
+#: usr/local/www/vpn_ipsec_phase2.php:495
msgid "Tunnels"
msgstr "Túneis"
@@ -16486,7 +20630,12 @@ msgstr "Túneis"
#: usr/local/www/vpn_ipsec_mobile.php:319
#: usr/local/www/vpn_ipsec_phase1.php:498
#: usr/local/www/vpn_ipsec_phase2.php:382
-#: usr/local/www/vpn_ipsec_phase2.php:408
+#: usr/local/www/vpn_ipsec_phase2.php:408 usr/local/www/vpn_ipsec.php:141
+#: usr/local/www/vpn_ipsec_mobile.php:346 usr/local/www/vpn_ipsec_keys.php:93
+#: usr/local/www/vpn_ipsec_phase2.php:474
+#: usr/local/www/vpn_ipsec_phase1.php:497 usr/local/www/vpn_ipsec.php:147
+#: usr/local/www/vpn_ipsec_phase1.php:518
+#: usr/local/www/vpn_ipsec_phase2.php:496
msgid "Mobile clients"
msgstr "Clientes móveis"
@@ -16498,13 +20647,17 @@ msgstr "Clientes móveis"
msgid "Pre-shared keys"
msgstr "Chaves pre-compartilhadas"
-#: usr/local/www/vpn_ipsec.php:160
+#: usr/local/www/vpn_ipsec.php:160 usr/local/www/vpn_ipsec.php:159
+#: usr/local/www/vpn_ipsec.php:165
msgid "Enable IPsec"
msgstr "Habilitar IPsec"
#: usr/local/www/vpn_ipsec.php:221 usr/local/www/vpn_ipsec.php:351
#: usr/local/www/vpn_ipsec_phase2.php:552 usr/local/www/vpn_ipsec.php:232
#: usr/local/www/vpn_ipsec.php:362 usr/local/www/vpn_ipsec_phase2.php:578
+#: usr/local/www/vpn_ipsec.php:231 usr/local/www/vpn_ipsec.php:361
+#: usr/local/www/vpn_ipsec_phase2.php:680 usr/local/www/vpn_ipsec.php:237
+#: usr/local/www/vpn_ipsec.php:367 usr/local/www/vpn_ipsec_phase2.php:701
msgid "auto"
msgstr "auto"
@@ -16516,15 +20669,23 @@ msgstr "auto"
#: usr/local/www/vpn_ipsec.php:364 usr/local/www/system_certmanager.php:677
#: usr/local/www/vpn_openvpn_server.php:937
#: usr/local/www/system_camanager.php:466
-#: usr/local/www/vpn_ipsec_phase2.php:589
+#: usr/local/www/vpn_ipsec_phase2.php:589 usr/local/www/vpn_ipsec.php:233
+#: usr/local/www/vpn_ipsec.php:363 usr/local/www/vpn_openvpn_server.php:965
+#: usr/local/www/vpn_ipsec_phase2.php:691
+#: usr/local/www/system_camanager.php:473 usr/local/www/vpn_ipsec.php:239
+#: usr/local/www/vpn_ipsec.php:369 usr/local/www/system_certmanager.php:686
+#: usr/local/www/vpn_openvpn_server.php:992
+#: usr/local/www/vpn_ipsec_phase2.php:712
msgid "bits"
msgstr "bits"
#: usr/local/www/vpn_ipsec.php:243 usr/local/www/vpn_ipsec.php:254
+#: usr/local/www/vpn_ipsec.php:253 usr/local/www/vpn_ipsec.php:259
msgid "edit phase1 entry"
msgstr "editar entrada de fase 1"
#: usr/local/www/vpn_ipsec.php:247 usr/local/www/vpn_ipsec.php:258
+#: usr/local/www/vpn_ipsec.php:257 usr/local/www/vpn_ipsec.php:263
msgid ""
"Do you really want to delete this phase1 and all associated phase2 entries?"
msgstr ""
@@ -16532,100 +20693,125 @@ msgstr ""
"associadas?"
#: usr/local/www/vpn_ipsec.php:248 usr/local/www/vpn_ipsec.php:259
+#: usr/local/www/vpn_ipsec.php:258 usr/local/www/vpn_ipsec.php:264
msgid "delete phase1 entry"
msgstr "apagar entrada de fase 1"
#: usr/local/www/vpn_ipsec.php:258 usr/local/www/vpn_ipsec.php:269
+#: usr/local/www/vpn_ipsec.php:268 usr/local/www/vpn_ipsec.php:274
msgid "copy phase1 entry"
msgstr "copiar entrada de fase 1"
#: usr/local/www/vpn_ipsec.php:279 usr/local/www/vpn_ipsec.php:290
+#: usr/local/www/vpn_ipsec.php:289 usr/local/www/vpn_ipsec.php:295
#, php-format
msgid "Show %s Phase-2 entries"
msgstr "Exibir entradas de fase 2 %s"
#: usr/local/www/vpn_ipsec.php:285 usr/local/www/vpn_ipsec.php:296
+#: usr/local/www/vpn_ipsec.php:295 usr/local/www/vpn_ipsec.php:301
msgid "Local Subnet"
msgstr "Subrede Local"
#: usr/local/www/vpn_ipsec.php:286 usr/local/www/vpn_ipsec.php:297
+#: usr/local/www/vpn_ipsec.php:296 usr/local/www/vpn_ipsec.php:302
msgid "Remote Subnet"
msgstr "Subrede Remota"
#: usr/local/www/vpn_ipsec.php:288 usr/local/www/vpn_ipsec.php:299
+#: usr/local/www/vpn_ipsec.php:298 usr/local/www/vpn_ipsec.php:304
msgid "P2 Protocol"
msgstr "Protocolo da F2"
#: usr/local/www/vpn_ipsec.php:289 usr/local/www/vpn_ipsec.php:300
+#: usr/local/www/vpn_ipsec.php:299 usr/local/www/vpn_ipsec.php:305
msgid "P2 Transforms"
msgstr "Transformações da F2"
#: usr/local/www/vpn_ipsec.php:290 usr/local/www/vpn_ipsec.php:301
+#: usr/local/www/vpn_ipsec.php:300 usr/local/www/vpn_ipsec.php:306
msgid "P2 Auth Methods"
msgstr "Métodos de Autenticação da F2"
#: usr/local/www/vpn_ipsec.php:293 usr/local/www/vpn_ipsec.php:304
+#: usr/local/www/vpn_ipsec.php:303 usr/local/www/vpn_ipsec.php:309
msgid "add phase2 entry"
msgstr "adicionar entrada de fase 2"
#: usr/local/www/vpn_ipsec.php:373 usr/local/www/vpn_ipsec.php:384
+#: usr/local/www/vpn_ipsec.php:383 usr/local/www/vpn_ipsec.php:389
msgid "edit phase2 entry"
msgstr "editar entradas de fase 2"
#: usr/local/www/vpn_ipsec.php:375 usr/local/www/vpn_ipsec.php:386
+#: usr/local/www/vpn_ipsec.php:385 usr/local/www/vpn_ipsec.php:391
msgid "Do you really want to delete this phase2 entry?"
msgstr "Você realmente deseja apagar essa entrada de fase 2?"
#: usr/local/www/vpn_ipsec.php:376 usr/local/www/vpn_ipsec.php:387
+#: usr/local/www/vpn_ipsec.php:386 usr/local/www/vpn_ipsec.php:392
msgid "delete phase2 entry"
msgstr "apagar entrada de fase 2"
#: usr/local/www/vpn_ipsec.php:379 usr/local/www/vpn_ipsec.php:390
+#: usr/local/www/vpn_ipsec.php:389 usr/local/www/vpn_ipsec.php:395
msgid "add a new Phase 2 based on this one"
msgstr "adicionar um nova Fase 2 baseada na atual"
#: usr/local/www/vpn_ipsec.php:410 usr/local/www/vpn_ipsec.php:421
+#: usr/local/www/vpn_ipsec.php:420 usr/local/www/vpn_ipsec.php:426
msgid "add phase1 entry"
msgstr "adicionar entrada de fase 1"
#: usr/local/www/vpn_ipsec.php:424 usr/local/www/vpn_ipsec.php:435
+#: usr/local/www/vpn_ipsec.php:434 usr/local/www/vpn_ipsec.php:440
msgid "You can check your IPsec status at"
msgstr "Você pode verificar seu status do IPsec em"
#: usr/local/www/vpn_ipsec.php:424 usr/local/www/vpn_ipsec.php:435
+#: usr/local/www/vpn_ipsec.php:434 usr/local/www/vpn_ipsec.php:440
msgid "Status:IPsec"
msgstr "Status:IPsec"
#: usr/local/www/vpn_ipsec.php:425 usr/local/www/vpn_ipsec.php:436
+#: usr/local/www/vpn_ipsec.php:435 usr/local/www/vpn_ipsec.php:441
msgid "IPsec Debug Mode can be enabled at"
msgstr "Modo de Debug do IPsec pode ser habilitado em"
#: usr/local/www/vpn_ipsec.php:425 usr/local/www/vpn_ipsec.php:426
#: usr/local/www/vpn_ipsec.php:436 usr/local/www/vpn_ipsec.php:437
+#: usr/local/www/vpn_ipsec.php:435 usr/local/www/vpn_ipsec.php:441
+#: usr/local/www/vpn_ipsec.php:442
msgid "System:Advanced:Miscellaneous"
msgstr "Sistema:Avançado: Diversos"
#: usr/local/www/vpn_ipsec.php:426 usr/local/www/vpn_ipsec.php:437
+#: usr/local/www/vpn_ipsec.php:436 usr/local/www/vpn_ipsec.php:442
msgid "IPsec can be set to prefer older SAs at"
msgstr "IPsec pode ser configurado utilizar os antigos SAs"
#: usr/local/www/vpn_ipsec.php:456 usr/local/www/vpn_ipsec.php:467
+#: usr/local/www/vpn_ipsec.php:466 usr/local/www/vpn_ipsec.php:472
msgid "Remote Gateway"
msgstr "Gateway remoto"
#: usr/local/www/vpn_ipsec.php:458 usr/local/www/vpn_ipsec.php:469
+#: usr/local/www/vpn_ipsec.php:468 usr/local/www/vpn_ipsec.php:474
msgid "P1 Protocol"
msgstr "Protocolo P1"
#: usr/local/www/vpn_ipsec.php:459 usr/local/www/vpn_ipsec.php:470
+#: usr/local/www/vpn_ipsec.php:469 usr/local/www/vpn_ipsec.php:475
msgid "P1 Transforms"
msgstr "Transformações P1"
#: usr/local/www/vpn_ipsec.php:460 usr/local/www/vpn_ipsec.php:471
+#: usr/local/www/vpn_ipsec.php:470 usr/local/www/vpn_ipsec.php:476
msgid "P1 Description"
msgstr "Descrição P1"
#: usr/local/www/diag_logs_ppp.php:91 usr/local/www/diag_logs_ppp.php:90
+#: usr/local/www/diag_logs_ppp.php:88
#, php-format
msgid "Last %s PPP log entries"
msgstr "Últimas %s entradas de log PPP"
@@ -16690,6 +20876,8 @@ msgstr "BG/s"
#: usr/local/www/diag_patterns.php:43
#: usr/local/www/services_captiveportal_filemanager.php:195
#: usr/local/www/exec.php:290 usr/local/www/exec.php:300
+#: usr/local/www/exec.php:292 usr/local/www/exec.php:302
+#: usr/local/www/services_captiveportal_filemanager.php:192
msgid "Upload"
msgstr "Carregar"
@@ -16729,6 +20917,8 @@ msgstr "VPN: IPsec: Chaves"
#: usr/local/www/vpn_ipsec_keys.php:104
#: usr/local/www/vpn_ipsec_keys_edit.php:69
#: usr/local/www/vpn_ipsec_keys_edit.php:128
+#: usr/local/www/vpn_ipsec_keys.php:103
+#: usr/local/www/vpn_ipsec_keys_edit.php:127
msgid "Identifier"
msgstr "Identificador"
@@ -16739,10 +20929,12 @@ msgid "Pre-shared key"
msgstr "Chave pre-compartilhada"
#: usr/local/www/vpn_ipsec_keys.php:110 usr/local/www/vpn_ipsec_keys.php:146
+#: usr/local/www/vpn_ipsec_keys.php:109 usr/local/www/vpn_ipsec_keys.php:145
msgid "add key"
msgstr "adicionar chave"
#: usr/local/www/vpn_ipsec_keys.php:123 usr/local/www/vpn_ipsec_keys.php:136
+#: usr/local/www/vpn_ipsec_keys.php:122 usr/local/www/vpn_ipsec_keys.php:135
msgid "edit key"
msgstr "editar chave"
@@ -16750,7 +20942,7 @@ msgstr "editar chave"
msgid "Do you really want to delete this pre-shared key?"
msgstr "Você realmente deseja apagar essa chave pre-compartilhada?"
-#: usr/local/www/vpn_ipsec_keys.php:137
+#: usr/local/www/vpn_ipsec_keys.php:137 usr/local/www/vpn_ipsec_keys.php:136
msgid "delete key"
msgstr "apagar chave"
@@ -16781,6 +20973,7 @@ msgid "VPN: IPsec: Edit pre-shared key"
msgstr "VPN: IPsec: Editar chave pré-compartilhada"
#: usr/local/www/vpn_ipsec_keys_edit.php:132
+#: usr/local/www/vpn_ipsec_keys_edit.php:131
msgid ""
"This can be either an IP address, fully qualified domain name or an e-mail "
"address"
@@ -16789,14 +20982,17 @@ msgstr ""
"qualificado quanto um endereço de e-mail"
#: usr/local/www/vpn_ipsec_mobile.php:128
+#: usr/local/www/vpn_ipsec_mobile.php:132
msgid "User Authentication Source"
msgstr "Fonte de Autenticação de Usuário"
#: usr/local/www/vpn_ipsec_mobile.php:128
+#: usr/local/www/vpn_ipsec_mobile.php:132
msgid "Group Authentication Source"
msgstr "Fonte de Autenticação de Grupo"
#: usr/local/www/vpn_ipsec_mobile.php:134
+#: usr/local/www/vpn_ipsec_mobile.php:138
msgid ""
"A valid IP address for 'Virtual Address Pool Network' must be specified."
msgstr ""
@@ -16804,10 +21000,12 @@ msgstr ""
"especificado."
#: usr/local/www/vpn_ipsec_mobile.php:138
+#: usr/local/www/vpn_ipsec_mobile.php:142
msgid "A valid value for 'DNS Default Domain' must be specified."
msgstr "Um valor válido para 'Domínio Padrão de DNS' deve ser especificado."
#: usr/local/www/vpn_ipsec_mobile.php:143
+#: usr/local/www/vpn_ipsec_mobile.php:159
msgid ""
"At least one DNS server must be specified to enable the DNS Server option."
msgstr ""
@@ -16815,22 +21013,27 @@ msgstr ""
"Servidor DNS."
#: usr/local/www/vpn_ipsec_mobile.php:145
+#: usr/local/www/vpn_ipsec_mobile.php:161
msgid "A valid IP address for 'DNS Server #1' must be specified."
msgstr "Um endereço IP válido para 'Servidor DNS #1' deve ser especificado."
#: usr/local/www/vpn_ipsec_mobile.php:147
+#: usr/local/www/vpn_ipsec_mobile.php:163
msgid "A valid IP address for 'DNS Server #2' must be specified."
msgstr "Um endereço IP válido para 'Servidor DNS #2' deve ser especificado."
#: usr/local/www/vpn_ipsec_mobile.php:149
+#: usr/local/www/vpn_ipsec_mobile.php:165
msgid "A valid IP address for 'DNS Server #3' must be specified."
msgstr "Um endereço IP válido para 'Servidor DNS #3' deve ser especificado."
#: usr/local/www/vpn_ipsec_mobile.php:151
+#: usr/local/www/vpn_ipsec_mobile.php:167
msgid "A valid IP address for 'DNS Server #4' must be specified."
msgstr "Um endereço IP válido para 'Servidor DNS #4' deve ser especificado."
#: usr/local/www/vpn_ipsec_mobile.php:156
+#: usr/local/www/vpn_ipsec_mobile.php:172
msgid ""
"At least one WINS server must be specified to enable the DNS Server option."
msgstr ""
@@ -16838,22 +21041,27 @@ msgstr ""
"Servidor DNS."
#: usr/local/www/vpn_ipsec_mobile.php:158
+#: usr/local/www/vpn_ipsec_mobile.php:174
msgid "A valid IP address for 'WINS Server #1' must be specified."
msgstr "Um endereço IP válido para 'Servidor WINS #1' deve ser especificado."
#: usr/local/www/vpn_ipsec_mobile.php:160
+#: usr/local/www/vpn_ipsec_mobile.php:176
msgid "A valid IP address for 'WINS Server #2' must be specified."
msgstr "Um endereço IP válido para 'Servidor WINS #2' deve ser especificado."
#: usr/local/www/vpn_ipsec_mobile.php:165
+#: usr/local/www/vpn_ipsec_mobile.php:181
msgid "A valid value for 'Login Banner' must be specified."
msgstr "Um valor válido para 'Banner de Login' deve ser especificado."
#: usr/local/www/vpn_ipsec_mobile.php:220
+#: usr/local/www/vpn_ipsec_mobile.php:240
msgid "Mobile"
msgstr "Móvel"
#: usr/local/www/vpn_ipsec_mobile.php:308
+#: usr/local/www/vpn_ipsec_mobile.php:335
msgid ""
"Support for IPsec Mobile clients is enabled but a Phase1 definition was not "
"found"
@@ -16862,68 +21070,84 @@ msgstr ""
"não foi encontrada"
#: usr/local/www/vpn_ipsec_mobile.php:308
+#: usr/local/www/vpn_ipsec_mobile.php:335
msgid "Please click Create to define one."
msgstr "Por favor, clique em Criar para definir uma."
#: usr/local/www/vpn_ipsec_mobile.php:308
+#: usr/local/www/vpn_ipsec_mobile.php:335
msgid "Create Phase1"
msgstr "Criar Fase 1"
#: usr/local/www/vpn_ipsec_mobile.php:330
+#: usr/local/www/vpn_ipsec_mobile.php:357
msgid "IKE Extensions"
msgstr "Extensões IKE"
#: usr/local/www/vpn_ipsec_mobile.php:339
+#: usr/local/www/vpn_ipsec_mobile.php:366
msgid "Enable IPsec Mobile Client Support"
msgstr "Habilitar Suporte de Clientes Móveis IPsec"
#: usr/local/www/vpn_ipsec_mobile.php:350
+#: usr/local/www/vpn_ipsec_mobile.php:377
msgid "Extended Authentication (Xauth)"
msgstr "Autenticação Extendida (Xauth)"
#: usr/local/www/vpn_ipsec_mobile.php:354
+#: usr/local/www/vpn_ipsec_mobile.php:381
msgid "User Authentication"
msgstr "Autenticação de Usuário"
#: usr/local/www/vpn_ipsec_mobile.php:358
#: usr/local/www/vpn_ipsec_mobile.php:379
+#: usr/local/www/vpn_ipsec_mobile.php:404
msgid "system"
msgstr "sistema"
#: usr/local/www/vpn_ipsec_mobile.php:375
+#: usr/local/www/vpn_ipsec_mobile.php:399
msgid "Group Authentication"
msgstr "Autenticação de Grupo"
#: usr/local/www/vpn_ipsec_mobile.php:388
+#: usr/local/www/vpn_ipsec_mobile.php:413
msgid "Client Configuration (mode-cfg)"
msgstr "Configuração de Cliente (mode-cfg)"
#: usr/local/www/vpn_ipsec_mobile.php:392
+#: usr/local/www/vpn_ipsec_mobile.php:417
msgid "Virtual Address Pool"
msgstr "Pool de Endereços Virtuais"
#: usr/local/www/vpn_ipsec_mobile.php:401
+#: usr/local/www/vpn_ipsec_mobile.php:426
msgid "Provide a virtual IP address to clients"
msgstr "Fornece um endereço IP virtual para clientes"
#: usr/local/www/vpn_ipsec_mobile.php:424
+#: usr/local/www/vpn_ipsec_mobile.php:449
msgid "Network List"
msgstr "Lista de Redes"
#: usr/local/www/vpn_ipsec_mobile.php:433
+#: usr/local/www/vpn_ipsec_mobile.php:458
msgid "Provide a list of accessible networks to clients"
msgstr "Fornece uma lista de redes acessíveis para clientes"
#: usr/local/www/vpn_ipsec_mobile.php:440
+#: usr/local/www/vpn_ipsec_mobile.php:465
msgid "Save Xauth Password"
msgstr "Salvar Senha Xauth"
#: usr/local/www/vpn_ipsec_mobile.php:449
+#: usr/local/www/vpn_ipsec_mobile.php:474
msgid "Allow clients to save Xauth passwords (Cisco VPN client only)."
msgstr ""
"Permite clientes para salvar senhas Xauth (somente cliente VPN da Cisco)."
#: usr/local/www/vpn_ipsec_mobile.php:450
+#: usr/local/www/vpn_ipsec_mobile.php:475
msgid ""
"NOTE: With iPhone clients, this does not work when deployed via the iPhone "
"configuration utility, only by manual entry."
@@ -16935,6 +21159,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:433
#: usr/local/www/vpn_openvpn_server.php:1194
#: usr/local/www/vpn_openvpn_server.php:1336
+#: usr/local/www/vpn_ipsec_mobile.php:482
+#: usr/local/www/vpn_openvpn_csc.php:432
+#: usr/local/www/vpn_openvpn_server.php:1378
+#: usr/local/www/vpn_openvpn_server.php:1430
msgid "DNS Default Domain"
msgstr "Domínio Padrão do DNS"
@@ -16942,6 +21170,10 @@ msgstr "Domínio Padrão do DNS"
#: usr/local/www/vpn_openvpn_csc.php:443
#: usr/local/www/vpn_openvpn_server.php:1204
#: usr/local/www/vpn_openvpn_server.php:1346
+#: usr/local/www/vpn_ipsec_mobile.php:491
+#: usr/local/www/vpn_openvpn_csc.php:442
+#: usr/local/www/vpn_openvpn_server.php:1388
+#: usr/local/www/vpn_openvpn_server.php:1440
msgid "Provide a default domain name to clients"
msgstr "Fornece um nome de domínio padrão para clientes"
@@ -16949,6 +21181,10 @@ msgstr "Fornece um nome de domínio padrão para clientes"
#: usr/local/www/vpn_openvpn_csc.php:458
#: usr/local/www/vpn_openvpn_server.php:1219
#: usr/local/www/vpn_openvpn_server.php:1361
+#: usr/local/www/vpn_ipsec_mobile.php:529
+#: usr/local/www/vpn_openvpn_csc.php:457
+#: usr/local/www/vpn_openvpn_server.php:1403
+#: usr/local/www/vpn_openvpn_server.php:1455
msgid "DNS Servers"
msgstr "Servidores DNS"
@@ -16956,6 +21192,10 @@ msgstr "Servidores DNS"
#: usr/local/www/vpn_openvpn_csc.php:468
#: usr/local/www/vpn_openvpn_server.php:1229
#: usr/local/www/vpn_openvpn_server.php:1371
+#: usr/local/www/vpn_ipsec_mobile.php:538
+#: usr/local/www/vpn_openvpn_csc.php:467
+#: usr/local/www/vpn_openvpn_server.php:1413
+#: usr/local/www/vpn_openvpn_server.php:1465
msgid "Provide a DNS server list to clients"
msgstr "Fornece uma lista de servidores DNS para clientes"
@@ -16963,6 +21203,10 @@ msgstr "Fornece uma lista de servidores DNS para clientes"
#: usr/local/www/vpn_openvpn_csc.php:606
#: usr/local/www/vpn_openvpn_server.php:1367
#: usr/local/www/vpn_openvpn_server.php:1509
+#: usr/local/www/vpn_ipsec_mobile.php:571
+#: usr/local/www/vpn_openvpn_csc.php:605
+#: usr/local/www/vpn_openvpn_server.php:1551
+#: usr/local/www/vpn_openvpn_server.php:1603
msgid "WINS Servers"
msgstr "Servidores WINS"
@@ -16970,14 +21214,20 @@ msgstr "Servidores WINS"
#: usr/local/www/vpn_openvpn_csc.php:616
#: usr/local/www/vpn_openvpn_server.php:1377
#: usr/local/www/vpn_openvpn_server.php:1519
+#: usr/local/www/vpn_ipsec_mobile.php:580
+#: usr/local/www/vpn_openvpn_csc.php:615
+#: usr/local/www/vpn_openvpn_server.php:1561
+#: usr/local/www/vpn_openvpn_server.php:1613
msgid "Provide a WINS server list to clients"
msgstr "Fornece uma lista de servidores WINS para clientes"
#: usr/local/www/vpn_ipsec_mobile.php:552
+#: usr/local/www/vpn_ipsec_mobile.php:601
msgid "Phase2 PFS Group"
msgstr "Grupo Phase2 PFS"
#: usr/local/www/vpn_ipsec_mobile.php:561
+#: usr/local/www/vpn_ipsec_mobile.php:610
msgid ""
"Provide the Phase2 PFS group to clients ( overrides all mobile phase2 "
"settings )"
@@ -16987,23 +21237,27 @@ msgstr ""
#: usr/local/www/vpn_ipsec_mobile.php:568
#: usr/local/www/system_groupmanager.php:71
+#: usr/local/www/vpn_ipsec_mobile.php:617
msgid "Group"
msgstr "Grupo"
#: usr/local/www/vpn_ipsec_mobile.php:582
+#: usr/local/www/vpn_ipsec_mobile.php:631
msgid "Login Banner"
msgstr "Banner de Login"
#: usr/local/www/vpn_ipsec_mobile.php:591
+#: usr/local/www/vpn_ipsec_mobile.php:640
msgid "Provide a login banner to clients"
msgstr "Fornece um banner de login para clientes"
-#: usr/local/www/interfaces_lagg.php:70
+#: usr/local/www/interfaces_lagg.php:70 usr/local/www/interfaces_lagg.php:74
msgid "This LAGG interface cannot be deleted because it is still being used."
msgstr ""
"Essa interface LAGG não pode ser apagada porque ainda está sendo usada."
-#: usr/local/www/interfaces_lagg.php:140
+#: usr/local/www/interfaces_lagg.php:140 usr/local/www/interfaces_lagg.php:141
+#: usr/local/www/interfaces_lagg.php:145
msgid ""
"LAGG allows for link aggregation, bonding and fault tolerance. Only "
"unassigned interfaces can be added to LAGG."
@@ -17012,26 +21266,37 @@ msgstr ""
"interfaces não atribuídas podem ser adicionadas a LAGG."
#: usr/local/www/interfaces_lagg_edit.php:86
+#: usr/local/www/interfaces_lagg_edit.php:88
msgid "Lagg protocol"
msgstr "Protocolo Lagg"
#: usr/local/www/interfaces_lagg_edit.php:131
+#: usr/local/www/interfaces_lagg_edit.php:132
+#: usr/local/www/interfaces_lagg_edit.php:145
msgid "LAGG configuration"
msgstr "Configuração LAGG"
#: usr/local/www/interfaces_lagg_edit.php:149
+#: usr/local/www/interfaces_lagg_edit.php:150
+#: usr/local/www/interfaces_lagg_edit.php:163
msgid "Choose the members that will be used for the link aggregation"
msgstr "Escolha os membros que serão usados para a agregação de link"
#: usr/local/www/interfaces_lagg_edit.php:152
+#: usr/local/www/interfaces_lagg_edit.php:153
+#: usr/local/www/interfaces_lagg_edit.php:166
msgid "Lag proto"
msgstr "Lag proto"
#: usr/local/www/interfaces_lagg_edit.php:168
+#: usr/local/www/interfaces_lagg_edit.php:169
+#: usr/local/www/interfaces_lagg_edit.php:182
msgid "failover"
msgstr "failover"
#: usr/local/www/interfaces_lagg_edit.php:169
+#: usr/local/www/interfaces_lagg_edit.php:170
+#: usr/local/www/interfaces_lagg_edit.php:183
msgid ""
"Sends and receives traffic only through the master port. If the master port "
"becomes unavailable, the next active port is used. The first interface "
@@ -17044,10 +21309,14 @@ msgstr ""
"serão usadas como dispositivos failover."
#: usr/local/www/interfaces_lagg_edit.php:174
+#: usr/local/www/interfaces_lagg_edit.php:175
+#: usr/local/www/interfaces_lagg_edit.php:188
msgid "fec"
msgstr "fec"
#: usr/local/www/interfaces_lagg_edit.php:174
+#: usr/local/www/interfaces_lagg_edit.php:175
+#: usr/local/www/interfaces_lagg_edit.php:188
msgid ""
"Supports Cisco EtherChannel. This is a static setup and does not negotiate "
"aggregation with the peer or exchange frames to monitor the link."
@@ -17056,10 +21325,14 @@ msgstr ""
"agregações com o peer ou troca frames para monitorar o link."
#: usr/local/www/interfaces_lagg_edit.php:178
+#: usr/local/www/interfaces_lagg_edit.php:179
+#: usr/local/www/interfaces_lagg_edit.php:192
msgid "lacp"
msgstr "lacp"
#: usr/local/www/interfaces_lagg_edit.php:178
+#: usr/local/www/interfaces_lagg_edit.php:179
+#: usr/local/www/interfaces_lagg_edit.php:192
msgid ""
"Supports the IEEE 802.3ad Link Aggregation Control Protocol (LACP) and the "
"Marker Protocol. LACP will negotiate a set of aggregable links with the "
@@ -17080,10 +21353,14 @@ msgstr ""
"rapidamente convergida para uma nova configuração."
#: usr/local/www/interfaces_lagg_edit.php:189
+#: usr/local/www/interfaces_lagg_edit.php:190
+#: usr/local/www/interfaces_lagg_edit.php:203
msgid "loadbalance"
msgstr "loadbalance"
#: usr/local/www/interfaces_lagg_edit.php:189
+#: usr/local/www/interfaces_lagg_edit.php:190
+#: usr/local/www/interfaces_lagg_edit.php:203
msgid ""
"Balances outgoing traffic across the active ports based on hashed protocol "
"header information and accepts incoming traffic from any active port. This "
@@ -17100,10 +21377,14 @@ msgstr ""
"endereço de destino"
#: usr/local/www/interfaces_lagg_edit.php:197
+#: usr/local/www/interfaces_lagg_edit.php:198
+#: usr/local/www/interfaces_lagg_edit.php:211
msgid "roundrobin"
msgstr "roundrobin"
#: usr/local/www/interfaces_lagg_edit.php:197
+#: usr/local/www/interfaces_lagg_edit.php:198
+#: usr/local/www/interfaces_lagg_edit.php:211
msgid ""
"Distributes outgoing traffic using a round-robin scheduler through all "
"active ports and accepts incoming traffic from any active port"
@@ -17112,6 +21393,8 @@ msgstr ""
"todas as portas ativas e aceita tráfego de entrada de qualquer porta ativa"
#: usr/local/www/interfaces_lagg_edit.php:201
+#: usr/local/www/interfaces_lagg_edit.php:202
+#: usr/local/www/interfaces_lagg_edit.php:215
msgid ""
"This protocol is intended to do nothing: it disables any traffic without "
"disabling the lagg interface itself"
@@ -17131,11 +21414,11 @@ msgstr ""
msgid "Interfaces: PPPs"
msgstr "Interfaces: PPPs"
-#: usr/local/www/interfaces_ppps.php:109
+#: usr/local/www/interfaces_ppps.php:109 usr/local/www/interfaces_ppps.php:110
msgid "Interface(s)/Port(s)"
msgstr "Interface(s)/Porta(s)"
-#: usr/local/www/interfaces_ppps.php:132
+#: usr/local/www/interfaces_ppps.php:132 usr/local/www/interfaces_ppps.php:133
msgid "Do you really want to delete this PPP interface?"
msgstr "Você realmente deseja apagar essa interface PPP?"
@@ -17144,6 +21427,10 @@ msgstr "Você realmente deseja apagar essa interface PPP?"
#: usr/local/www/interfaces_ppps_edit.php:191
#: usr/local/www/interfaces_ppps_edit.php:199
#: usr/local/www/interfaces_ppps_edit.php:202
+#: usr/local/www/interfaces_ppps_edit.php:194
+#: usr/local/www/interfaces_ppps_edit.php:197
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
msgid "Link Interface(s)"
msgstr "Interface(s) de Link"
@@ -17151,14 +21438,20 @@ msgstr "Interface(s) de Link"
#: usr/local/www/interfaces_ppps_edit.php:202
#: usr/local/www/services_dhcp.php:587 usr/local/www/services_dhcpv6.php:522
#: usr/local/www/services_dhcp.php:600 usr/local/www/services_dhcpv6.php:596
+#: usr/local/www/services_dhcp.php:710 usr/local/www/services_dhcpv6.php:527
+#: usr/local/www/interfaces_ppps_edit.php:205
+#: usr/local/www/interfaces_ppps_edit.php:208
+#: usr/local/www/services_dhcp.php:720 usr/local/www/services_dhcpv6.php:542
msgid "Subnet"
msgstr "Subrede"
#: usr/local/www/interfaces_ppps_edit.php:207
+#: usr/local/www/interfaces_ppps_edit.php:213
msgid "Please choose a Link Type."
msgstr "Por favor escolha o Tipo de Link."
#: usr/local/www/interfaces_ppps_edit.php:211
+#: usr/local/www/interfaces_ppps_edit.php:217
msgid ""
"Multilink connections (MLPPP) using the PPP link type is not currently "
"supported. Please select only one Link Interface."
@@ -17167,14 +21460,17 @@ msgstr ""
"atualmente. Por favor, selecione somente uma Interface de Link."
#: usr/local/www/interfaces_ppps_edit.php:213
+#: usr/local/www/interfaces_ppps_edit.php:219
msgid "The Service name contains invalid characters."
msgstr "O nome do Serviço contém caracteres inválidos."
#: usr/local/www/interfaces_ppps_edit.php:215
+#: usr/local/www/interfaces_ppps_edit.php:221
msgid "Do not specify both a Service name and a NULL Service name."
msgstr "Não especifique um nome de Serviço e um nome de Serviço Nulo."
#: usr/local/www/interfaces_ppps_edit.php:229
+#: usr/local/www/interfaces_ppps_edit.php:235
msgid ""
"A valid PPPoE reset month must be specified (1-12) in the Custom PPPoE "
"Periodic reset fields."
@@ -17183,6 +21479,7 @@ msgstr ""
"reinício periódico do PPPoE personalizados."
#: usr/local/www/interfaces_ppps_edit.php:231
+#: usr/local/www/interfaces_ppps_edit.php:237
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"
@@ -17192,6 +21489,7 @@ msgstr ""
"feita em um # de dias válido por mês"
#: usr/local/www/interfaces_ppps_edit.php:233
+#: usr/local/www/interfaces_ppps_edit.php:239
msgid ""
"A valid PPPoE reset year must be specified. Don't select a year in the past!"
msgstr ""
@@ -17199,11 +21497,13 @@ msgstr ""
"ano do passado!"
#: usr/local/www/interfaces_ppps_edit.php:238
+#: usr/local/www/interfaces_ppps_edit.php:244
#, php-format
msgid "A valid local IP address must be specified for %s."
msgstr "Um endereço IP local válido deve ser especificado para %s."
#: usr/local/www/interfaces_ppps_edit.php:240
+#: usr/local/www/interfaces_ppps_edit.php:246
#, php-format
msgid "A valid gateway IP address OR hostname must be specified for %s."
msgstr ""
@@ -17211,42 +21511,59 @@ msgstr ""
"%s."
#: usr/local/www/interfaces_ppps_edit.php:242
+#: usr/local/www/interfaces_ppps_edit.php:248
#, php-format
msgid "The bandwidth value for %s must be an integer."
msgstr "O valor de tamanho de banda para %s deve ser um inteiro."
#: usr/local/www/interfaces_ppps_edit.php:244
+#: usr/local/www/interfaces_ppps_edit.php:250
#, php-format
msgid "The MTU for %s must be greater than 576 bytes."
msgstr "O MTU para %s deve ser maior que 576 bytes."
#: usr/local/www/interfaces_ppps_edit.php:246
+#: usr/local/www/interfaces_ppps_edit.php:252
#, php-format
msgid "The MRU for %s must be greater than 576 bytes."
msgstr "O MRU para %s deve ser maior que 576 bytes."
#: usr/local/www/interfaces_ppps_edit.php:381
#: usr/local/www/system_authservers.php:577
+#: usr/local/www/interfaces_ppps_edit.php:382
+#: usr/local/www/system_authservers.php:582
+#: usr/local/www/interfaces_ppps_edit.php:388
+#: usr/local/www/system_authservers.php:589
msgid "Select"
msgstr "Selecione"
#: usr/local/www/interfaces_ppps_edit.php:398
+#: usr/local/www/interfaces_ppps_edit.php:399
+#: usr/local/www/interfaces_ppps_edit.php:405
msgid "PPPs configuration"
msgstr "Configuração PPPs"
#: usr/local/www/interfaces_ppps_edit.php:401
+#: usr/local/www/interfaces_ppps_edit.php:402
+#: usr/local/www/interfaces_ppps_edit.php:408
msgid "Link Type"
msgstr "Tipo de Link"
#: usr/local/www/interfaces_ppps_edit.php:416
+#: usr/local/www/interfaces_ppps_edit.php:417
+#: usr/local/www/interfaces_ppps_edit.php:423
msgid "Link interface(s)"
msgstr "Interface(s) de Link"
#: usr/local/www/interfaces_ppps_edit.php:422
+#: usr/local/www/interfaces_ppps_edit.php:423
+#: usr/local/www/interfaces_ppps_edit.php:429
msgid "Select at least two interfaces for Multilink (MLPPP) connections."
msgstr "Selecione pelo menos duas interfaces para conexões Multilink (MLPPP)."
#: usr/local/www/interfaces_ppps_edit.php:470
+#: usr/local/www/interfaces_ppps_edit.php:471
+#: usr/local/www/interfaces_ppps_edit.php:477
msgid ""
"You may enter a description here for your reference. Description will appear "
"in the \"Interfaces Assign\" select lists."
@@ -17255,14 +21572,20 @@ msgstr ""
"aparecer na lista de seleção \"Atribuição de Interfaces\"."
#: usr/local/www/interfaces_ppps_edit.php:526
+#: usr/local/www/interfaces_ppps_edit.php:527
+#: usr/local/www/interfaces_ppps_edit.php:533
msgid "Note: Typically *99# for GSM networks and #777 for CDMA networks"
msgstr "Nota: Tipicamente *99# para redes GSM e #777 para redes CDMA"
#: usr/local/www/interfaces_ppps_edit.php:540
+#: usr/local/www/interfaces_ppps_edit.php:541
+#: usr/local/www/interfaces_ppps_edit.php:547
msgid "APN number (optional)"
msgstr "Número APN (opcional)"
#: usr/local/www/interfaces_ppps_edit.php:543
+#: usr/local/www/interfaces_ppps_edit.php:544
+#: usr/local/www/interfaces_ppps_edit.php:550
msgid ""
"Note: Defaults to 1 if you set APN above. Ignored if you set no APN above."
msgstr ""
@@ -17270,14 +21593,20 @@ msgstr ""
"você não configurar o APN acima."
#: usr/local/www/interfaces_ppps_edit.php:547
+#: usr/local/www/interfaces_ppps_edit.php:548
+#: usr/local/www/interfaces_ppps_edit.php:554
msgid "SIM PIN"
msgstr "SIM PIN"
#: usr/local/www/interfaces_ppps_edit.php:554
+#: usr/local/www/interfaces_ppps_edit.php:555
+#: usr/local/www/interfaces_ppps_edit.php:561
msgid "SIM PIN wait"
msgstr "SIM PIN espera"
#: usr/local/www/interfaces_ppps_edit.php:557
+#: usr/local/www/interfaces_ppps_edit.php:558
+#: usr/local/www/interfaces_ppps_edit.php:564
msgid ""
"Note: Time to wait for SIM to discover network after PIN is sent to SIM "
"(seconds)."
@@ -17286,10 +21615,14 @@ msgstr ""
"enviado ao SIM (segundos)."
#: usr/local/www/interfaces_ppps_edit.php:561
+#: usr/local/www/interfaces_ppps_edit.php:562
+#: usr/local/www/interfaces_ppps_edit.php:568
msgid "Init String"
msgstr "String de inicialização"
#: usr/local/www/interfaces_ppps_edit.php:564
+#: usr/local/www/interfaces_ppps_edit.php:565
+#: usr/local/www/interfaces_ppps_edit.php:571
msgid ""
"Note: 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 "
@@ -17300,10 +21633,14 @@ msgstr ""
"uma string de inicialização."
#: usr/local/www/interfaces_ppps_edit.php:569
+#: usr/local/www/interfaces_ppps_edit.php:570
+#: usr/local/www/interfaces_ppps_edit.php:576
msgid "Connection Timeout"
msgstr "Conexão expirou"
#: usr/local/www/interfaces_ppps_edit.php:572
+#: usr/local/www/interfaces_ppps_edit.php:573
+#: usr/local/www/interfaces_ppps_edit.php:579
msgid ""
"Note: Enter timeout in seconds for connection to be established (sec.) "
"Default is 45 sec."
@@ -17312,14 +21649,20 @@ msgstr ""
"estabelecida (segundos). O padrão é 45 segundos."
#: usr/local/www/interfaces_ppps_edit.php:576
+#: usr/local/www/interfaces_ppps_edit.php:577
+#: usr/local/www/interfaces_ppps_edit.php:583
msgid "Uptime Logging"
msgstr "Geração de log de tempo de execução"
#: usr/local/www/interfaces_ppps_edit.php:578
+#: usr/local/www/interfaces_ppps_edit.php:579
+#: usr/local/www/interfaces_ppps_edit.php:585
msgid "Enable persistent logging of connection uptime."
msgstr "Habilitar log de persistência da conexão em tempo de execução."
#: usr/local/www/interfaces_ppps_edit.php:579
+#: usr/local/www/interfaces_ppps_edit.php:580
+#: usr/local/www/interfaces_ppps_edit.php:586
msgid ""
"This option causes cumulative uptime to be recorded and displayed on the "
"Status Interfaces page."
@@ -17328,10 +21671,14 @@ msgstr ""
"na página de Interfaces de Status."
#: usr/local/www/interfaces_ppps_edit.php:591
+#: usr/local/www/interfaces_ppps_edit.php:592
+#: usr/local/www/interfaces_ppps_edit.php:598
msgid "Configure a NULL Service name"
msgstr "Configure um Nome do Serviço Nulo"
#: usr/local/www/interfaces_ppps_edit.php:592
+#: usr/local/www/interfaces_ppps_edit.php:593
+#: usr/local/www/interfaces_ppps_edit.php:599
msgid ""
"Hint: this field can usually be left empty. Service name will not be "
"configured if this field is empty. Check the \"Configure NULL\" box to "
@@ -17343,22 +21690,33 @@ msgstr ""
#: usr/local/www/interfaces_ppps_edit.php:652 usr/local/www/vpn_pppoe.php:102
#: usr/local/www/diag_ipsec.php:91 usr/local/www/diag_ipsec.php:102
+#: usr/local/www/vpn_pppoe.php:103 usr/local/www/diag_ipsec.php:103
+#: usr/local/www/interfaces_ppps_edit.php:653 usr/local/www/vpn_pppoe.php:104
+#: usr/local/www/interfaces_ppps_edit.php:659 usr/local/www/diag_ipsec.php:105
msgid "Local IP"
msgstr "IP local"
#: usr/local/www/interfaces_ppps_edit.php:667
+#: usr/local/www/interfaces_ppps_edit.php:668
+#: usr/local/www/interfaces_ppps_edit.php:674
msgid "IP Address OR Hostname"
msgstr "Endereço IP OU Nome de Host"
#: usr/local/www/interfaces_ppps_edit.php:678
+#: usr/local/www/interfaces_ppps_edit.php:679
+#: usr/local/www/interfaces_ppps_edit.php:685
msgid "Dial On Demand"
msgstr "Discagem sob Demanda"
#: usr/local/www/interfaces_ppps_edit.php:680
+#: usr/local/www/interfaces_ppps_edit.php:681
+#: usr/local/www/interfaces_ppps_edit.php:687
msgid "Enable Dial-on-Demand mode"
msgstr "Habilitar modo de Discagem sob Demanda"
#: usr/local/www/interfaces_ppps_edit.php:681
+#: usr/local/www/interfaces_ppps_edit.php:682
+#: usr/local/www/interfaces_ppps_edit.php:688
msgid ""
"This option causes the interface to operate in dial-on-demand mode. Do NOT "
"enable if you want your link to be always up. The interface is configured, "
@@ -17370,16 +21728,22 @@ msgstr ""
"é configurada, mas a conexão real é adiada até qualificar o tráfego de saída."
#: usr/local/www/interfaces_ppps_edit.php:686
+#: usr/local/www/interfaces_ppps_edit.php:687
+#: usr/local/www/interfaces_ppps_edit.php:693
msgid "Idle Timeout"
msgstr "Tempo ocioso"
#: usr/local/www/interfaces_ppps_edit.php:688
+#: usr/local/www/interfaces_ppps_edit.php:689
+#: usr/local/www/interfaces_ppps_edit.php:695
msgid "(seconds) Default is 0, which disables the timeout feature."
msgstr ""
"(segundos). O padrão é 0, o que desabilita a funcionalidade de tempo de "
"expiração."
#: usr/local/www/interfaces_ppps_edit.php:689
+#: usr/local/www/interfaces_ppps_edit.php:690
+#: usr/local/www/interfaces_ppps_edit.php:696
msgid ""
"If no incoming or outgoing packets are transmitted for the entered number of "
"seconds the connection is brought down."
@@ -17388,6 +21752,8 @@ msgstr ""
"segundos informados, a conexão é desfeita."
#: usr/local/www/interfaces_ppps_edit.php:690
+#: usr/local/www/interfaces_ppps_edit.php:691
+#: usr/local/www/interfaces_ppps_edit.php:697
msgid ""
"When the idle timeout occurs, if the dial-on-demand option is enabled, mpd "
"goes back into dial-on-demand mode. Otherwise, the interface is brought down "
@@ -17402,14 +21768,24 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1077
#: usr/local/www/vpn_openvpn_server.php:1219
#: usr/local/www/vpn_openvpn_client.php:792
+#: usr/local/www/interfaces_ppps_edit.php:695
+#: usr/local/www/vpn_openvpn_server.php:1261
+#: usr/local/www/vpn_openvpn_client.php:838
+#: usr/local/www/vpn_openvpn_client.php:857
+#: usr/local/www/interfaces_ppps_edit.php:701
+#: usr/local/www/vpn_openvpn_server.php:1288
msgid "Compression"
msgstr "Compressão"
#: usr/local/www/interfaces_ppps_edit.php:696
+#: usr/local/www/interfaces_ppps_edit.php:697
+#: usr/local/www/interfaces_ppps_edit.php:703
msgid "Disable vjcomp(compression) (auto-negotiated by default)."
msgstr "Desabilitar vjcomp (compressão) (auto-negociada por padrão)."
#: usr/local/www/interfaces_ppps_edit.php:697
+#: usr/local/www/interfaces_ppps_edit.php:698
+#: usr/local/www/interfaces_ppps_edit.php:704
msgid ""
"This option enables Van Jacobson TCP header compression, which saves several "
"bytes per TCP data packet. You almost always want this option. This "
@@ -17424,14 +21800,20 @@ msgstr ""
"pacotes sequenciais."
#: usr/local/www/interfaces_ppps_edit.php:703
+#: usr/local/www/interfaces_ppps_edit.php:704
+#: usr/local/www/interfaces_ppps_edit.php:710
msgid "TCPmssFix"
msgstr "TCPmssFix"
#: usr/local/www/interfaces_ppps_edit.php:705
+#: usr/local/www/interfaces_ppps_edit.php:706
+#: usr/local/www/interfaces_ppps_edit.php:712
msgid "Disable tcpmssfix (enabled by default)."
msgstr "Desabilita tcpmssfix (habilita por padrão)."
#: usr/local/www/interfaces_ppps_edit.php:706
+#: usr/local/www/interfaces_ppps_edit.php:707
+#: usr/local/www/interfaces_ppps_edit.php:713
msgid ""
"This option causes mpd to adjust incoming and outgoing TCP SYN segments so "
"that the requested maximum segment size is not greater than the amount "
@@ -17458,14 +21840,20 @@ msgstr ""
"do fragmento ou descartar a opção de Não Fragmentar para seus dados de saída."
#: usr/local/www/interfaces_ppps_edit.php:714
+#: usr/local/www/interfaces_ppps_edit.php:715
+#: usr/local/www/interfaces_ppps_edit.php:721
msgid "ShortSeq"
msgstr "ShortSeq"
#: usr/local/www/interfaces_ppps_edit.php:716
+#: usr/local/www/interfaces_ppps_edit.php:717
+#: usr/local/www/interfaces_ppps_edit.php:723
msgid "Disable shortseq (auto-negotiated by default)."
msgstr "Desabilitar shortseq (auto-negociada por padrão)."
#: usr/local/www/interfaces_ppps_edit.php:717
+#: usr/local/www/interfaces_ppps_edit.php:718
+#: usr/local/www/interfaces_ppps_edit.php:724
msgid ""
"This option is only meaningful if multi-link PPP is negotiated. It "
"proscribes shorter multi-link fragment headers, saving two bytes on every "
@@ -17478,14 +21866,20 @@ msgstr ""
"são multi-link."
#: usr/local/www/interfaces_ppps_edit.php:722
+#: usr/local/www/interfaces_ppps_edit.php:723
+#: usr/local/www/interfaces_ppps_edit.php:729
msgid "ACFComp"
msgstr "ACFComp"
#: usr/local/www/interfaces_ppps_edit.php:724
+#: usr/local/www/interfaces_ppps_edit.php:725
+#: usr/local/www/interfaces_ppps_edit.php:731
msgid "Disable acfcomp (compression) (auto-negotiated by default)."
msgstr "Desabilitar acfcomp (compressão) (auto-negociada por padrão)."
#: usr/local/www/interfaces_ppps_edit.php:725
+#: usr/local/www/interfaces_ppps_edit.php:726
+#: usr/local/www/interfaces_ppps_edit.php:732
msgid ""
"Address and control field compression. This option only applies to "
"asynchronous link types. It saves two bytes per frame."
@@ -17494,14 +21888,20 @@ msgstr ""
"tipos de link assíncronos. Ela salva 2 bytes por frame."
#: usr/local/www/interfaces_ppps_edit.php:729
+#: usr/local/www/interfaces_ppps_edit.php:730
+#: usr/local/www/interfaces_ppps_edit.php:736
msgid "ProtoComp"
msgstr "ProtoComp"
#: usr/local/www/interfaces_ppps_edit.php:731
+#: usr/local/www/interfaces_ppps_edit.php:732
+#: usr/local/www/interfaces_ppps_edit.php:738
msgid "Disable protocomp (compression) (auto-negotiated by default)."
msgstr "Desabilitar protocomp (compressão) (auto-negociada por padrão)."
#: usr/local/www/interfaces_ppps_edit.php:732
+#: usr/local/www/interfaces_ppps_edit.php:733
+#: usr/local/www/interfaces_ppps_edit.php:739
msgid ""
"Protocol field compression. This option saves one byte per frame for most "
"frames."
@@ -17510,10 +21910,14 @@ msgstr ""
"maioria deles."
#: usr/local/www/interfaces_ppps_edit.php:746
+#: usr/local/www/interfaces_ppps_edit.php:747
+#: usr/local/www/interfaces_ppps_edit.php:753
msgid "Link Parameters"
msgstr "Parâmetros de link"
#: usr/local/www/interfaces_ppps_edit.php:753
+#: usr/local/www/interfaces_ppps_edit.php:754
+#: usr/local/www/interfaces_ppps_edit.php:760
msgid ""
"Set ONLY for MLPPP connections and ONLY when links have different bandwidths."
msgstr ""
@@ -17521,27 +21925,38 @@ msgstr ""
"diferentes tamanhos de banda."
#: usr/local/www/interfaces_ppps_edit.php:760
+#: usr/local/www/interfaces_ppps_edit.php:761
+#: usr/local/www/interfaces_ppps_edit.php:767
msgid "MTU will default to 1492."
msgstr "MTU será 1492 como padrão."
#: usr/local/www/interfaces_ppps_edit.php:764
+#: usr/local/www/interfaces_ppps_edit.php:765
+#: usr/local/www/interfaces_ppps_edit.php:771
msgid "MRU"
msgstr "MRU"
#: usr/local/www/interfaces_ppps_edit.php:767
#: usr/local/www/interfaces_ppps_edit.php:774
+#: usr/local/www/interfaces_ppps_edit.php:768
+#: usr/local/www/interfaces_ppps_edit.php:775
+#: usr/local/www/interfaces_ppps_edit.php:781
msgid "will be auto-negotiated by default."
msgstr "será auto-negociado por padrão."
#: usr/local/www/interfaces_ppps_edit.php:771
+#: usr/local/www/interfaces_ppps_edit.php:772
+#: usr/local/www/interfaces_ppps_edit.php:778
msgid "MRRU"
msgstr "MRRU"
#: usr/local/www/interfaces_ppps_edit.php:774
+#: usr/local/www/interfaces_ppps_edit.php:775
+#: usr/local/www/interfaces_ppps_edit.php:781
msgid "Set ONLY for MLPPP connections."
msgstr "Configure SOMENTE conexões MLPP."
-#: usr/local/www/interfaces_qinq.php:64
+#: usr/local/www/interfaces_qinq.php:64 usr/local/www/interfaces_qinq.php:66
msgid ""
"This QinQ cannot be deleted because it is still being used as an interface."
msgstr ""
@@ -17550,23 +21965,30 @@ msgstr ""
#: usr/local/www/interfaces_qinq.php:86
#: usr/local/www/interfaces_qinq_edit.php:39
+#: usr/local/www/interfaces_qinq.php:89
msgid "QinQ"
msgstr "QinQ"
#: usr/local/www/interfaces_qinq.php:117
#: usr/local/www/interfaces_qinq_edit.php:356
+#: usr/local/www/interfaces_qinq_edit.php:357
+#: usr/local/www/interfaces_qinq.php:118 usr/local/www/interfaces_qinq.php:121
+#: usr/local/www/interfaces_qinq_edit.php:360
msgid "Tag"
msgstr "Tag"
-#: usr/local/www/interfaces_qinq.php:118
+#: usr/local/www/interfaces_qinq.php:118 usr/local/www/interfaces_qinq.php:119
+#: usr/local/www/interfaces_qinq.php:122
msgid "QinQ members"
msgstr "Membros QinQ"
-#: usr/local/www/interfaces_qinq.php:142
+#: usr/local/www/interfaces_qinq.php:142 usr/local/www/interfaces_qinq.php:143
+#: usr/local/www/interfaces_qinq.php:146
msgid "Do you really want to delete this QinQ?"
msgstr "Você realmente quer apagar esse QinQ?"
-#: usr/local/www/interfaces_qinq.php:153
+#: usr/local/www/interfaces_qinq.php:153 usr/local/www/interfaces_qinq.php:154
+#: usr/local/www/interfaces_qinq.php:157
#, php-format
msgid ""
"Not all drivers/NICs support 802.1Q QinQ tagging properly. On cards that do "
@@ -17579,10 +22001,12 @@ msgstr ""
"sobre cartões que suportam."
#: usr/local/www/interfaces_qinq_edit.php:84
+#: usr/local/www/interfaces_qinq_edit.php:85
msgid "First level tag cannot be empty."
msgstr "Tag de primeiro nível não pode ser vazia."
#: usr/local/www/interfaces_qinq_edit.php:86
+#: usr/local/www/interfaces_qinq_edit.php:87
msgid ""
"You are editing an existing entry and modifying the first level tag is not "
"allowed."
@@ -17591,6 +22015,7 @@ msgstr ""
"não é permitido."
#: usr/local/www/interfaces_qinq_edit.php:88
+#: usr/local/www/interfaces_qinq_edit.php:89
msgid ""
"You are editing an existing entry and modifying the interface is not allowed."
msgstr ""
@@ -17598,10 +22023,12 @@ msgstr ""
"permitido."
#: usr/local/www/interfaces_qinq_edit.php:92
+#: usr/local/www/interfaces_qinq_edit.php:93
msgid "QinQ level already exists for this interface, edit it!"
msgstr "Um nível QinQ já existe para essa interface, edite-o!"
#: usr/local/www/interfaces_qinq_edit.php:96
+#: usr/local/www/interfaces_qinq_edit.php:97
msgid ""
"A normal VLAN exists with this tag please remove it to use this tag for QinQ "
"first level."
@@ -17611,34 +22038,50 @@ msgstr ""
#: usr/local/www/interfaces_qinq_edit.php:123
#: usr/local/www/interfaces_qinq_edit.php:133
+#: usr/local/www/interfaces_qinq_edit.php:124
+#: usr/local/www/interfaces_qinq_edit.php:134
msgid "Tags can contain only numbers or a range in format #-#."
msgstr "Tags podem conter somente números ou um intervalo no formato #-#."
#: usr/local/www/interfaces_qinq_edit.php:193
+#: usr/local/www/interfaces_qinq_edit.php:194
+#: usr/local/www/interfaces_qinq_edit.php:197
msgid "QinQ VLANs group"
msgstr "Grupo VLAN de QinQ"
#: usr/local/www/interfaces_qinq_edit.php:269
+#: usr/local/www/interfaces_qinq_edit.php:270
+#: usr/local/www/interfaces_qinq_edit.php:273
msgid "members"
msgstr "membros"
#: usr/local/www/interfaces_qinq_edit.php:273
+#: usr/local/www/interfaces_qinq_edit.php:274
+#: usr/local/www/interfaces_qinq_edit.php:277
msgid "detail"
msgstr "detalhe"
#: usr/local/www/interfaces_qinq_edit.php:285
+#: usr/local/www/interfaces_qinq_edit.php:286
+#: usr/local/www/interfaces_qinq_edit.php:289
msgid "Interface QinQ Edit"
msgstr "Editar Interface QinQ"
#: usr/local/www/interfaces_qinq_edit.php:305
+#: usr/local/www/interfaces_qinq_edit.php:306
+#: usr/local/www/interfaces_qinq_edit.php:309
msgid "Only QinQ capable interfaces will be shown."
msgstr "Somente interfaces que suportam QinQ serão exibidas."
#: usr/local/www/interfaces_qinq_edit.php:308
+#: usr/local/www/interfaces_qinq_edit.php:309
+#: usr/local/www/interfaces_qinq_edit.php:312
msgid "First level tag"
msgstr "Tag de primeiro nível"
#: usr/local/www/interfaces_qinq_edit.php:313
+#: usr/local/www/interfaces_qinq_edit.php:314
+#: usr/local/www/interfaces_qinq_edit.php:317
msgid ""
"This is the first level VLAN tag. On top of this are stacked the member "
"VLANs defined below."
@@ -17647,6 +22090,8 @@ msgstr ""
"membros VLAN definidos abaixo."
#: usr/local/www/interfaces_qinq_edit.php:333
+#: usr/local/www/interfaces_qinq_edit.php:334
+#: usr/local/www/interfaces_qinq_edit.php:337
msgid ""
"Adds interface to QinQ interface groups so you can write filter rules easily."
msgstr ""
@@ -17654,6 +22099,8 @@ msgstr ""
"regras de filtro facilmente."
#: usr/local/www/interfaces_qinq_edit.php:350
+#: usr/local/www/interfaces_qinq_edit.php:351
+#: usr/local/www/interfaces_qinq_edit.php:354
msgid ""
"You can specify ranges in the input below. The format is pretty simple i.e "
"9-100 or 10.20..."
@@ -17662,6 +22109,7 @@ msgstr ""
"i.e. 9-100 ou 10.20..."
#: usr/local/www/interfaces_wireless.php:63
+#: usr/local/www/interfaces_wireless.php:65
msgid ""
"This wireless clone cannot be deleted because it is assigned as an interface."
msgstr ""
@@ -17669,10 +22117,14 @@ msgstr ""
"interface."
#: usr/local/www/interfaces_wireless.php:124
+#: usr/local/www/interfaces_wireless.php:125
+#: usr/local/www/interfaces_wireless.php:127
msgid "Do you really want to delete this wireless clone?"
msgstr "Você realmente deseja apagar esse clone sem fio?"
#: usr/local/www/interfaces_wireless.php:135
+#: usr/local/www/interfaces_wireless.php:136
+#: usr/local/www/interfaces_wireless.php:138
msgid ""
"Here you can configure clones of wireless interfaces, which can be assigned "
"as separate independent interfaces. Only available on wireless chipsets that "
@@ -17685,6 +22137,7 @@ msgstr ""
"ser criadas em cada modo."
#: usr/local/www/interfaces_wireless_edit.php:116
+#: usr/local/www/interfaces_wireless_edit.php:118
msgid ""
"This wireless clone cannot be modified because it is still assigned as an "
"interface."
@@ -17693,12 +22146,14 @@ msgstr ""
"interface."
#: usr/local/www/interfaces_wireless_edit.php:118
+#: usr/local/www/interfaces_wireless_edit.php:120
msgid ""
"Use the configuration page for the assigned interface to change the mode."
msgstr ""
"Use a página de configuração para a interface atribuída modificar o modo."
#: usr/local/www/interfaces_wireless_edit.php:123
+#: usr/local/www/interfaces_wireless_edit.php:125
#, php-format
msgid ""
"Error creating interface with mode %1$s. The %2$s interface may not support "
@@ -17708,15 +22163,18 @@ msgstr ""
"a criação de mais clones com o modo selecionado."
#: usr/local/www/interfaces_wireless_edit.php:128
+#: usr/local/www/interfaces_wireless_edit.php:130
#, php-format
msgid "Created with id %s"
msgstr "Criado com o código %s"
#: usr/local/www/interfaces_wireless_edit.php:131
+#: usr/local/www/interfaces_wireless_edit.php:133
msgid "Created without id"
msgstr "Criado sem código"
#: usr/local/www/interfaces_wireless_edit.php:156
+#: usr/local/www/interfaces_wireless_edit.php:158
msgid "Wireless clone configuration"
msgstr "Configuração clone sem fio"
@@ -17731,27 +22189,38 @@ msgstr ""
#: usr/local/www/load_balancer_monitor.php:102
#: usr/local/www/load_balancer_relay_protocol.php:114
#: usr/local/www/load_balancer_setting.php:111
+#: usr/local/www/load_balancer_setting.php:110
+#: usr/local/www/load_balancer_monitor.php:100
+#: usr/local/www/load_balancer_relay_protocol.php:112
msgid "The load balancer configuration has been changed"
msgstr "A configuração do balanceador de carga foi modificada"
-#: usr/local/www/vpn_pppoe.php:96
+#: usr/local/www/vpn_pppoe.php:96 usr/local/www/vpn_pppoe.php:97
+#: usr/local/www/vpn_pppoe.php:98
msgid "The PPPoE entry list has been changed"
msgstr "A lista de entrada PPPoE foi modificada"
#: usr/local/www/vpn_pppoe.php:103
#: usr/local/www/services_captiveportal_zones.php:54
+#: usr/local/www/vpn_pppoe.php:104
+#: usr/local/www/services_captiveportal_zones.php:55
+#: usr/local/www/vpn_pppoe.php:105
msgid "Number of users"
msgstr "Número de usuários"
#: usr/local/www/vpn_pppoe.php:109 usr/local/www/vpn_pppoe.php:144
+#: usr/local/www/vpn_pppoe.php:110 usr/local/www/vpn_pppoe.php:145
+#: usr/local/www/vpn_pppoe.php:111 usr/local/www/vpn_pppoe.php:146
msgid "add a new pppoe instance"
msgstr "adicione uma nova instância pppoe"
-#: usr/local/www/vpn_pppoe.php:131
+#: usr/local/www/vpn_pppoe.php:131 usr/local/www/vpn_pppoe.php:132
+#: usr/local/www/vpn_pppoe.php:133
msgid "edit pppoe instance"
msgstr "editar instância pppoe"
-#: usr/local/www/vpn_pppoe.php:132
+#: usr/local/www/vpn_pppoe.php:132 usr/local/www/vpn_pppoe.php:133
+#: usr/local/www/vpn_pppoe.php:134
msgid ""
"Do you really want to delete this entry? All elements that still use it will "
"become invalid (e.g. filter rules)!"
@@ -17759,7 +22228,8 @@ msgstr ""
"Você realmente deseja apagar essa entrada? Todos os elementos que ainda a "
"usam serão invalidados (e.g. regras de filtro)!"
-#: usr/local/www/vpn_pppoe.php:132
+#: usr/local/www/vpn_pppoe.php:132 usr/local/www/vpn_pppoe.php:133
+#: usr/local/www/vpn_pppoe.php:134
msgid "delete pppoe instance"
msgstr "apagar instância pppoe"
@@ -17787,6 +22257,8 @@ msgstr "Você não pode usar espaços no campo 'nome'."
#: usr/local/www/services_dnsmasq_edit.php:86
#: usr/local/www/services_dhcpv6_edit.php:117
#: usr/local/www/services_dhcp_edit.php:120
+#: usr/local/www/services_dhcpv6_edit.php:120
+#: usr/local/www/services_dhcp_edit.php:154
msgid "The hostname can only contain the characters A-Z, 0-9 and '-'."
msgstr "O nome do host somente pode conter os caracteres de A-Z, 0-9 e '-'."
@@ -17804,6 +22276,7 @@ msgid "modified '%s' monitor:"
msgstr "monitor '%s' modificado:"
#: usr/local/www/load_balancer_monitor_edit.php:199
+#: usr/local/www/load_balancer_monitor_edit.php:197
msgid "ICMP"
msgstr "ICMP"
@@ -17812,26 +22285,37 @@ msgstr "ICMP"
#: usr/local/www/load_balancer_relay_action_edit.php:186
#: usr/local/www/load_balancer_relay_protocol_edit.php:144
#: usr/local/www/system_advanced_admin.php:311
+#: usr/local/www/load_balancer_relay_protocol_edit.php:142
+#: usr/local/www/load_balancer_relay_action_edit.php:184
+#: usr/local/www/load_balancer_monitor_edit.php:197
+#: usr/local/www/load_balancer_monitor_edit.php:266
msgid "HTTP"
msgstr "HTTP"
#: usr/local/www/load_balancer_monitor_edit.php:199
#: usr/local/www/load_balancer_monitor_edit.php:301
#: usr/local/www/system_advanced_admin.php:314
+#: usr/local/www/load_balancer_monitor_edit.php:197
+#: usr/local/www/load_balancer_monitor_edit.php:299
msgid "HTTPS"
msgstr "HTTPS"
#: usr/local/www/load_balancer_monitor_edit.php:199
#: usr/local/www/load_balancer_monitor_edit.php:335
+#: usr/local/www/load_balancer_monitor_edit.php:197
+#: usr/local/www/load_balancer_monitor_edit.php:333
msgid "Send/Expect"
msgstr "Enviar/Esperar"
#: usr/local/www/load_balancer_monitor_edit.php:232
+#: usr/local/www/load_balancer_monitor_edit.php:230
msgid "Edit Load Balancer - Monitor entry"
msgstr "Editar Balanceador de Carga - entrada de Monitor"
#: usr/local/www/load_balancer_monitor_edit.php:272
#: usr/local/www/load_balancer_monitor_edit.php:305
+#: usr/local/www/load_balancer_monitor_edit.php:270
+#: usr/local/www/load_balancer_monitor_edit.php:303
msgid "Path"
msgstr "Caminho"
@@ -17845,24 +22329,37 @@ msgstr "Caminho"
#: usr/local/www/services_dnsmasq_edit.php:196
#: usr/local/www/services_dnsmasq_edit.php:237
#: usr/local/www/services_unbound.php:279
+#: usr/local/www/services_dnsmasq.php:244
+#: usr/local/www/services_dnsmasq_edit.php:197
+#: usr/local/www/services_dnsmasq_edit.php:238
+#: usr/local/www/load_balancer_monitor_edit.php:276
+#: usr/local/www/load_balancer_monitor_edit.php:309
+#: usr/local/www/diag_testport.php:60 usr/local/www/diag_testport.php:117
+#: usr/local/www/diag_traceroute.php:93 usr/local/www/services_dnsmasq.php:269
msgid "Host"
msgstr "Host"
#: usr/local/www/load_balancer_monitor_edit.php:280
#: usr/local/www/load_balancer_monitor_edit.php:313
+#: usr/local/www/load_balancer_monitor_edit.php:278
+#: usr/local/www/load_balancer_monitor_edit.php:311
msgid "Hostname for Host: header if needed."
msgstr "Nome de host para Host: adicionar cabeçalho se necessário."
#: usr/local/www/load_balancer_monitor_edit.php:284
#: usr/local/www/load_balancer_monitor_edit.php:317
+#: usr/local/www/load_balancer_monitor_edit.php:282
+#: usr/local/www/load_balancer_monitor_edit.php:315
msgid "HTTP Code"
msgstr "Código HTTP"
#: usr/local/www/load_balancer_monitor_edit.php:339
+#: usr/local/www/load_balancer_monitor_edit.php:337
msgid "Send string"
msgstr "Enviar string"
#: usr/local/www/load_balancer_monitor_edit.php:345
+#: usr/local/www/load_balancer_monitor_edit.php:343
msgid "Expect string"
msgstr "Esperar por string"
@@ -17910,31 +22407,37 @@ msgstr " pool '%s' modificado:"
#: usr/local/www/load_balancer_pool_edit.php:178
#: usr/local/www/load_balancer_pool_edit.php:186
+#: usr/local/www/load_balancer_pool_edit.php:184
msgid "Add/edit Load Balancer - Pool entry"
msgstr "Adicionar/editar Balanceador de Carga - entrada do Pool"
#: usr/local/www/load_balancer_pool_edit.php:190
#: usr/local/www/load_balancer_pool_edit.php:198
+#: usr/local/www/load_balancer_pool_edit.php:196
msgid "Load Balance"
msgstr "Balancear Carga"
#: usr/local/www/load_balancer_pool_edit.php:191
#: usr/local/www/load_balancer_pool_edit.php:199
+#: usr/local/www/load_balancer_pool_edit.php:197
msgid "Manual Failover"
msgstr "Failover manual"
#: usr/local/www/load_balancer_pool_edit.php:206
#: usr/local/www/load_balancer_pool_edit.php:215
+#: usr/local/www/load_balancer_pool_edit.php:213
msgid "This is the port your servers are listening on."
msgstr "Essa é a porta em que seus servidores estão lendo."
#: usr/local/www/load_balancer_pool_edit.php:210
#: usr/local/www/load_balancer_pool_edit.php:227
+#: usr/local/www/load_balancer_pool_edit.php:225
msgid "Retry"
msgstr "Retorno"
#: usr/local/www/load_balancer_pool_edit.php:213
#: usr/local/www/load_balancer_pool_edit.php:230
+#: usr/local/www/load_balancer_pool_edit.php:228
msgid ""
"Optionally specify how many times to retry checking a server before "
"declaring it down."
@@ -17944,11 +22447,13 @@ msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:220
#: usr/local/www/load_balancer_pool_edit.php:237
+#: usr/local/www/load_balancer_pool_edit.php:235
msgid "Add item to pool"
msgstr "Adicione item no pool"
#: usr/local/www/load_balancer_pool_edit.php:238
#: usr/local/www/load_balancer_pool_edit.php:255
+#: usr/local/www/load_balancer_pool_edit.php:253
msgid ""
"Please add a monitor IP address on the monitors tab if you wish to use this "
"feature."
@@ -17958,21 +22463,25 @@ msgstr ""
#: usr/local/www/load_balancer_pool_edit.php:244
#: usr/local/www/load_balancer_pool_edit.php:261
+#: usr/local/www/load_balancer_pool_edit.php:259
msgid "Server IP Address"
msgstr "Endereço IP do Servidor"
#: usr/local/www/load_balancer_pool_edit.php:247
#: usr/local/www/load_balancer_pool_edit.php:264
+#: usr/local/www/load_balancer_pool_edit.php:262
msgid "Add to pool"
msgstr "Adicionar ao pool"
#: usr/local/www/load_balancer_pool_edit.php:254
#: usr/local/www/load_balancer_pool_edit.php:271
+#: usr/local/www/load_balancer_pool_edit.php:269
msgid "Current Pool Members"
msgstr "Membros atuais do Pool"
#: usr/local/www/load_balancer_pool_edit.php:264
#: usr/local/www/load_balancer_pool_edit.php:281
+#: usr/local/www/load_balancer_pool_edit.php:279
msgid "Pool Disabled"
msgstr "Pool Desabilitada"
@@ -17981,11 +22490,15 @@ msgstr "Pool Desabilitada"
#: usr/local/www/load_balancer_relay_protocol_edit.php:253
#: usr/local/www/load_balancer_pool_edit.php:294
#: usr/local/www/load_balancer_pool_edit.php:317
+#: usr/local/www/load_balancer_relay_protocol_edit.php:251
+#: usr/local/www/load_balancer_pool_edit.php:292
+#: usr/local/www/load_balancer_pool_edit.php:315
msgid "Remove"
msgstr "Remover"
#: usr/local/www/load_balancer_pool_edit.php:287
#: usr/local/www/load_balancer_pool_edit.php:304
+#: usr/local/www/load_balancer_pool_edit.php:302
msgid "Enabled (default)"
msgstr "Habilitar (padrão)"
@@ -17998,6 +22511,7 @@ msgstr "Balanceador de Carga: Servidor Virtual:"
#: usr/local/www/load_balancer_relay_protocol.php:100
#: usr/local/www/load_balancer_relay_protocol_edit.php:137
#: usr/local/www/load_balancer_virtual_server_edit.php:250
+#: usr/local/www/load_balancer_virtual_server_edit.php:248
msgid "Relay Protocol"
msgstr "Protocolo Relay"
@@ -18034,11 +22548,13 @@ msgstr "Servidor Virtual"
#: usr/local/www/load_balancer_virtual_server_edit.php:180
#: usr/local/www/load_balancer_virtual_server_edit.php:154
+#: usr/local/www/load_balancer_virtual_server_edit.php:152
msgid "Edit Load Balancer - Virtual Server entry"
msgstr "Editar Balanceador de Carga - entrada de Servidor Virtual"
#: usr/local/www/load_balancer_virtual_server_edit.php:198
#: usr/local/www/load_balancer_virtual_server_edit.php:172
+#: usr/local/www/load_balancer_virtual_server_edit.php:170
msgid ""
"This is normally the WAN IP address that you would like the server to listen "
"on. All connections to this IP and port will be forwarded to the pool "
@@ -18050,6 +22566,7 @@ msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:205
#: usr/local/www/load_balancer_virtual_server_edit.php:186
+#: usr/local/www/load_balancer_virtual_server_edit.php:184
msgid ""
"This is the port that the clients will connect to. All connections to this "
"port will be forwarded to the pool cluster."
@@ -18059,6 +22576,7 @@ msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:209
#: usr/local/www/load_balancer_virtual_server_edit.php:198
+#: usr/local/www/load_balancer_virtual_server_edit.php:196
msgid "Virtual Server Pool"
msgstr "Pool de Servidor Virtual"
@@ -18066,12 +22584,15 @@ msgstr "Pool de Servidor Virtual"
#: usr/local/www/load_balancer_virtual_server_edit.php:231
#: usr/local/www/load_balancer_virtual_server_edit.php:201
#: usr/local/www/load_balancer_virtual_server_edit.php:220
+#: usr/local/www/load_balancer_virtual_server_edit.php:199
+#: usr/local/www/load_balancer_virtual_server_edit.php:218
msgid "Please add a pool on the Pools tab to use this feature."
msgstr ""
"Por favor, adicione um pool na aba de Pools para usar essa funcionalidade."
#: usr/local/www/load_balancer_virtual_server_edit.php:244
#: usr/local/www/load_balancer_virtual_server_edit.php:233
+#: usr/local/www/load_balancer_virtual_server_edit.php:231
msgid ""
"This is the server that clients will be redirected to if *ALL* servers in "
"the pool are offline."
@@ -18082,11 +22603,16 @@ msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:279
#: usr/local/www/status_captiveportal_test.php:92
#: usr/local/www/load_balancer_virtual_server_edit.php:268
+#: usr/local/www/status_captiveportal_test.php:93
+#: usr/local/www/load_balancer_virtual_server_edit.php:266
+#: usr/local/www/status_captiveportal_expire.php:92
+#: usr/local/www/status_captiveportal_test.php:94
msgid "Submit"
msgstr "Submeter"
#: usr/local/www/load_balancer_virtual_server_edit.php:289
#: usr/local/www/load_balancer_virtual_server_edit.php:278
+#: usr/local/www/load_balancer_virtual_server_edit.php:276
msgid ""
"Don't forget to add a firewall rule for the virtual server/pool after you're "
"finished setting it up."
@@ -18110,6 +22636,7 @@ msgstr ""
#: usr/local/www/pkg_mgr.php:122 usr/local/www/pkg_mgr.php:216
#: usr/local/www/pkg_mgr.php:137 usr/local/www/pkg_mgr.php:243
+#: usr/local/www/pkg_mgr.php:246
msgid "There are currently no packages available for installation."
msgstr "Atualmente não há pacotes disponíveis para instalação."
@@ -18121,76 +22648,95 @@ msgstr "plataforma"
msgid "Do you really want to install this package?"
msgstr "Você realmente deseja instalar esse pacote?"
-#: usr/local/www/pkg_mgr_install.php:57
+#: usr/local/www/pkg_mgr_install.php:57 usr/local/www/pkg_mgr_install.php:55
msgid "Install Package"
msgstr "Instalar Pacote"
-#: usr/local/www/pkg_mgr_install.php:72
+#: usr/local/www/pkg_mgr_install.php:72 usr/local/www/pkg_mgr_install.php:70
msgid "Available packages"
msgstr "Pacotes disponíveis"
-#: usr/local/www/pkg_mgr_install.php:75
+#: usr/local/www/pkg_mgr_install.php:75 usr/local/www/pkg_mgr_install.php:73
msgid "Installed packages"
msgstr "Pacotes instalados"
-#: usr/local/www/pkg_mgr_install.php:76
+#: usr/local/www/pkg_mgr_install.php:76 usr/local/www/pkg_mgr_install.php:74
msgid "Package Installer"
msgstr "Instalador de Pacote"
-#: usr/local/www/pkg_mgr_install.php:124
+#: usr/local/www/pkg_mgr_install.php:124 usr/local/www/pkg_mgr_install.php:134
+#: usr/local/www/pkg_mgr_install.php:132
msgid "Creating restore point before package installation."
msgstr "Criando ponto de restauração antes da instalação do pacote."
#: usr/local/www/pkg_mgr_install.php:132 usr/local/www/pkg_mgr_install.php:133
+#: usr/local/www/pkg_mgr_install.php:141 usr/local/www/pkg_mgr_install.php:142
+#: usr/local/www/pkg_mgr_install.php:139 usr/local/www/pkg_mgr_install.php:140
msgid "Package deleted."
msgstr "Pacote apagado."
#: usr/local/www/pkg_mgr_install.php:147 usr/local/www/pkg_mgr_install.php:148
+#: usr/local/www/pkg_mgr_install.php:156 usr/local/www/pkg_mgr_install.php:157
+#: usr/local/www/pkg_mgr_install.php:154 usr/local/www/pkg_mgr_install.php:155
msgid "Package reinstallation failed."
msgstr "Reinstalação do pacote falhou."
#: usr/local/www/pkg_mgr_install.php:151 usr/local/www/pkg_mgr_install.php:152
+#: usr/local/www/pkg_mgr_install.php:160 usr/local/www/pkg_mgr_install.php:161
+#: usr/local/www/pkg_mgr_install.php:158 usr/local/www/pkg_mgr_install.php:159
msgid "Package reinstalled."
msgstr "Pacote reinstalado."
-#: usr/local/www/pkg_mgr_install.php:163
+#: usr/local/www/pkg_mgr_install.php:163 usr/local/www/pkg_mgr_install.php:172
+#: usr/local/www/pkg_mgr_install.php:170
msgid "installation completed."
msgstr "instalação completa."
-#: usr/local/www/pkg_mgr_install.php:166
+#: usr/local/www/pkg_mgr_install.php:166 usr/local/www/pkg_mgr_install.php:175
+#: usr/local/www/pkg_mgr_install.php:173
#, php-format
msgid "Could not find %s."
msgstr "Não pôde encontrar %s."
#: usr/local/www/pkg_mgr_install.php:182 usr/local/www/pkg_mgr_install.php:183
+#: usr/local/www/pkg_mgr_install.php:191 usr/local/www/pkg_mgr_install.php:192
+#: usr/local/www/pkg_mgr_install.php:188 usr/local/www/pkg_mgr_install.php:189
msgid "All packages reinstalled."
msgstr "Todos os pacotes reinstalados."
#: usr/local/www/pkg_mgr_install.php:190 usr/local/www/pkg_mgr_install.php:194
+#: usr/local/www/pkg_mgr_install.php:200 usr/local/www/pkg_mgr_install.php:204
+#: usr/local/www/pkg_mgr_install.php:199 usr/local/www/pkg_mgr_install.php:203
msgid "Installation of"
msgstr "Instalação de"
-#: usr/local/www/pkg_mgr_install.php:190
+#: usr/local/www/pkg_mgr_install.php:190 usr/local/www/pkg_mgr_install.php:200
+#: usr/local/www/pkg_mgr_install.php:199
msgid "FAILED!"
msgstr "FALHOU!"
-#: usr/local/www/pkg_mgr_install.php:191
+#: usr/local/www/pkg_mgr_install.php:191 usr/local/www/pkg_mgr_install.php:201
+#: usr/local/www/pkg_mgr_install.php:200
msgid "Installation halted."
msgstr "Instalação interrompida."
-#: usr/local/www/pkg_mgr_install.php:194
+#: usr/local/www/pkg_mgr_install.php:194 usr/local/www/pkg_mgr_install.php:204
+#: usr/local/www/pkg_mgr_install.php:203
msgid "completed."
msgstr "completa."
-#: usr/local/www/pkg_mgr_install.php:198
+#: usr/local/www/pkg_mgr_install.php:198 usr/local/www/pkg_mgr_install.php:208
+#: usr/local/www/pkg_mgr_install.php:207
msgid "Installation completed."
msgstr "Instalação completa."
-#: usr/local/www/pkg_mgr_install.php:198
+#: usr/local/www/pkg_mgr_install.php:198 usr/local/www/pkg_mgr_install.php:208
+#: usr/local/www/pkg_mgr_install.php:207
msgid "setup instructions"
msgstr "instruções de instalação"
-#: usr/local/www/pkg_mgr_install.php:200
+#: usr/local/www/pkg_mgr_install.php:200 usr/local/www/pkg_mgr_install.php:210
+#: usr/local/www/pkg_mgr_install.php:209
msgid ""
"Installation completed. Please check to make sure that the package is "
"configured from the respective menu then start the package."
@@ -18202,49 +22748,50 @@ msgstr ""
msgid "You are not allowed to access this page."
msgstr "Você não tem permissão de acessar essa página."
-#: usr/local/www/progress.php:25
+#: usr/local/www/progress.php:25 usr/local/www/progress.php:22
msgid "Invalid Meter ID"
msgstr "ID de Medida inválido"
-#: usr/local/www/progress.php:46
+#: usr/local/www/progress.php:46 usr/local/www/progress.php:43
msgid "UPLOAD completed"
msgstr "UPLOAD completo"
-#: usr/local/www/progress.php:58
+#: usr/local/www/progress.php:58 usr/local/www/progress.php:55
msgid "Uploading Files... Please wait..."
msgstr "Carregando arquivos... por favor aguarde..."
-#: usr/local/www/progress.php:68
+#: usr/local/www/progress.php:68 usr/local/www/progress.php:65
msgid "Uploading files..."
msgstr "Carregando arquivos..."
-#: usr/local/www/progress.php:87
+#: usr/local/www/progress.php:87 usr/local/www/progress.php:84
msgid "Time Remaining:"
msgstr "Tempo restante:"
-#: usr/local/www/progress.php:88
+#: usr/local/www/progress.php:88 usr/local/www/progress.php:85
msgid "Speed:"
msgstr "Velocidade:"
-#: usr/local/www/progress.php:88
+#: usr/local/www/progress.php:88 usr/local/www/progress.php:85
msgid "KB/sec"
msgstr "KB/sec"
-#: usr/local/www/progress.php:92
+#: usr/local/www/progress.php:92 usr/local/www/progress.php:89
msgid "Uploaded:"
msgstr "Carregado:"
-#: usr/local/www/progress.php:93
+#: usr/local/www/progress.php:93 usr/local/www/progress.php:90
msgid "File Size:"
msgstr "Tamanho do Arquivo:"
-#: usr/local/www/progress.php:97
+#: usr/local/www/progress.php:97 usr/local/www/progress.php:94
msgid "Completed:"
msgstr "Completo:"
#: usr/local/www/diag_dns.php:34 usr/local/www/diag_dns.php:250
#: usr/local/www/fbegin.inc:192 usr/local/www/fbegin.inc:210
-#: usr/local/www/diag_dns.php:249
+#: usr/local/www/diag_dns.php:249 usr/local/www/fbegin.inc:218
+#: usr/local/www/fbegin.inc:209
msgid "DNS Lookup"
msgstr "DNS Lookup"
@@ -18266,6 +22813,10 @@ msgstr "Resolva nome de host de DNS ou IP"
#: usr/local/www/diag_dns.php:161 usr/local/www/system_authservers.php:162
#: usr/local/www/system_authservers.php:185 usr/local/www/diag_dns.php:160
+#: usr/local/www/system_authservers.php:163
+#: usr/local/www/system_authservers.php:186
+#: usr/local/www/system_authservers.php:164
+#: usr/local/www/system_authservers.php:187
msgid "Hostname or IP"
msgstr "Hostname ou IP"
@@ -18284,14 +22835,17 @@ msgstr "Mais informação:"
#: usr/local/www/diag_dns.php:237 usr/local/www/diag_ping.php:43
#: usr/local/www/diag_ping.php:87 usr/local/www/diag_ping.php:119
#: usr/local/www/fbegin.inc:200 usr/local/www/fbegin.inc:218
-#: usr/local/www/diag_dns.php:236
+#: usr/local/www/diag_dns.php:236 usr/local/www/fbegin.inc:226
+#: usr/local/www/fbegin.inc:217
msgid "Ping"
msgstr "Ping"
#: usr/local/www/diag_dns.php:238 usr/local/www/diag_traceroute.php:45
#: usr/local/www/diag_traceroute.php:86 usr/local/www/diag_traceroute.php:112
#: usr/local/www/fbegin.inc:209 usr/local/www/fbegin.inc:227
-#: usr/local/www/diag_dns.php:237
+#: usr/local/www/diag_dns.php:237 usr/local/www/fbegin.inc:236
+#: usr/local/www/diag_traceroute.php:90 usr/local/www/diag_traceroute.php:136
+#: usr/local/www/fbegin.inc:228
msgid "Traceroute"
msgstr "Traceroute"
@@ -18349,23 +22903,28 @@ msgid "Restarting mini_httpd"
msgstr "Reiniciando mimi-httpd"
#: usr/local/www/edit.php:39 usr/local/www/edit.php:42
+#: usr/local/www/edit.php:41
msgid "Edit file"
msgstr "Editar arquivo"
#: usr/local/www/edit.php:46 usr/local/www/edit.php:62
#: usr/local/www/edit.php:49 usr/local/www/edit.php:65
+#: usr/local/www/edit.php:48
msgid "No file name specified"
msgstr "Nenhum nome de arquivo foi especificado"
#: usr/local/www/edit.php:48 usr/local/www/edit.php:51
+#: usr/local/www/edit.php:50
msgid "Loading a directory is not supported"
msgstr "Carregar um diretório não é suportado"
#: usr/local/www/edit.php:50 usr/local/www/edit.php:53
+#: usr/local/www/edit.php:52
msgid "File does not exist or is not a regular file"
msgstr "O arquivo não existe ou não é um arquivo regular"
#: usr/local/www/edit.php:54 usr/local/www/edit.php:57
+#: usr/local/www/edit.php:56
msgid "Failed to read file"
msgstr "Falha ao ler o arquivo"
@@ -18386,22 +22945,27 @@ msgid "Loading file"
msgstr "Carregando arquivo"
#: usr/local/www/edit.php:117 usr/local/www/edit.php:120
+#: usr/local/www/edit.php:121
msgid "File successfully loaded"
msgstr "Arquivo carregado com sucesso"
#: usr/local/www/edit.php:140 usr/local/www/edit.php:143
+#: usr/local/www/edit.php:144
msgid "Saving file"
msgstr "Salvando arquivo"
#: usr/local/www/edit.php:177 usr/local/www/edit.php:180
+#: usr/local/www/edit.php:181
msgid "Save / Load from path"
msgstr "Salvar / Carregar do caminho"
#: usr/local/www/edit.php:179 usr/local/www/edit.php:182
+#: usr/local/www/edit.php:183
msgid "Load"
msgstr "Carregar"
#: usr/local/www/edit.php:180 usr/local/www/edit.php:183
+#: usr/local/www/edit.php:184
msgid "Browse"
msgstr "Navegar"
@@ -18425,6 +22989,26 @@ msgstr "Navegar"
#: usr/local/www/status_captiveportal_vouchers.php:57
#: usr/local/www/services_captiveportal_zones_edit.php:48
#: usr/local/www/services_captiveportal_vouchers.php:410
+#: usr/local/www/services_captiveportal_vouchers.php:82
+#: usr/local/www/services_captiveportal_vouchers.php:423
+#: usr/local/www/services_captiveportal_vouchers_edit.php:45
+#: usr/local/www/services_captiveportal_ip.php:61
+#: usr/local/www/services_captiveportal_ip.php:102
+#: usr/local/www/services_captiveportal_hostname_edit.php:59
+#: usr/local/www/services_captiveportal_mac.php:60
+#: usr/local/www/services_captiveportal_mac.php:152
+#: usr/local/www/services_captiveportal_mac_edit.php:57
+#: usr/local/www/services_captiveportal_hostname.php:63
+#: usr/local/www/services_captiveportal_hostname.php:107
+#: usr/local/www/services_captiveportal.php:60
+#: usr/local/www/services_captiveportal_filemanager.php:71
+#: usr/local/www/services_captiveportal_filemanager.php:147
+#: usr/local/www/services_captiveportal_ip_edit.php:60
+#: usr/local/www/services_captiveportal_zones_edit.php:45
+#: usr/local/www/status_captiveportal_expire.php:58
+#: usr/local/www/services_captiveportal_vouchers.php:89
+#: usr/local/www/services_captiveportal_vouchers.php:432
+#: usr/local/www/services_captiveportal_mac.php:162
msgid "Captive portal"
msgstr "Portal Captive"
@@ -18432,11 +23016,18 @@ msgstr "Portal Captive"
#: usr/local/www/services_captiveportal_zones_edit.php:61
#: usr/local/www/services_captiveportal_zones_edit.php:99
#: usr/local/www/services_captiveportal.php:147
+#: usr/local/www/services_captiveportal.php:153
+#: usr/local/www/services_captiveportal_zones_edit.php:59
+#: usr/local/www/services_captiveportal_zones_edit.php:101
+#: usr/local/www/services_captiveportal_zones_edit.php:97
+#: usr/local/www/services_captiveportal.php:155
msgid "Zone name"
msgstr "Nome da Zona"
#: usr/local/www/services_captiveportal.php:154
#: usr/local/www/services_captiveportal.php:155
+#: usr/local/www/services_captiveportal.php:161
+#: usr/local/www/services_captiveportal.php:163
#, php-format
msgid ""
"The captive portal cannot be used on interface %s since it is part of a "
@@ -18447,6 +23038,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:158
#: usr/local/www/services_captiveportal.php:159
+#: usr/local/www/services_captiveportal.php:165
+#: usr/local/www/services_captiveportal.php:167
#, php-format
msgid ""
"The captive portal cannot be used on interface %s since it is used already "
@@ -18465,6 +23058,8 @@ msgstr "Certificado e chave devem ser especificados para o login HTTPS."
#: usr/local/www/system_certmanager.php:168
#: usr/local/www/system_certmanager.php:196
#: usr/local/www/services_captiveportal.php:170
+#: usr/local/www/system_camanager.php:170
+#: usr/local/www/system_certmanager.php:199
msgid "This certificate does not appear to be valid."
msgstr "Esse certificado não parece ser válido."
@@ -18480,27 +23075,32 @@ msgstr "Essa chave não parece ser válida."
#: usr/local/www/services_captiveportal.php:177
#: usr/local/www/services_captiveportal.php:178
+#: usr/local/www/services_captiveportal.php:176
msgid "The HTTPS server name must be specified for HTTPS login."
msgstr "O nome do servidor HTTPS deve ser especificado pelo login HTTPS."
#: usr/local/www/services_captiveportal.php:183
#: usr/local/www/services_captiveportal.php:184
+#: usr/local/www/services_captiveportal.php:182
msgid "The timeout must be at least 1 minute."
msgstr "O tempo de expiração deve ser pelo menos de 1 minuto."
#: usr/local/www/services_captiveportal.php:186
#: usr/local/www/services_captiveportal.php:187
+#: usr/local/www/services_captiveportal.php:185
msgid "The idle timeout must be at least 1 minute."
msgstr "O tempo ocioso deve ser no mínimo de 1 minuto."
#: usr/local/www/services_captiveportal.php:189
#: usr/local/www/services_captiveportal.php:190
+#: usr/local/www/services_captiveportal.php:188
msgid "The pass-through credit count must be a number or left blank."
msgstr ""
"A contagem de crédito de passagem deve ser um número ou deixado em branco."
#: usr/local/www/services_captiveportal.php:192
#: usr/local/www/services_captiveportal.php:193
+#: usr/local/www/services_captiveportal.php:191
msgid ""
"The waiting period to restore pass-through credits must be above 0 hours."
msgstr ""
@@ -18516,6 +23116,12 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:200
#: usr/local/www/services_captiveportal.php:203
#: usr/local/www/services_captiveportal.php:206
+#: usr/local/www/services_captiveportal.php:195
+#: usr/local/www/services_captiveportal.php:198
+#: usr/local/www/services_captiveportal.php:201
+#: usr/local/www/services_captiveportal.php:204
+#: usr/local/www/services_captiveportal_ip_edit.php:105
+#: usr/local/www/services_captiveportal_ip_edit.php:104
#, php-format
msgid "A valid IP address must be specified. [%s]"
msgstr "Um endereço IP válido deve ser especificado. [%s]"
@@ -18530,12 +23136,18 @@ msgstr "Um endereço IP válido deve ser especificado. [%s]"
#: usr/local/www/services_captiveportal.php:215
#: usr/local/www/services_captiveportal.php:218
#: usr/local/www/services_captiveportal.php:221
+#: usr/local/www/services_captiveportal.php:207
+#: usr/local/www/services_captiveportal.php:210
+#: usr/local/www/services_captiveportal.php:213
+#: usr/local/www/services_captiveportal.php:216
+#: usr/local/www/services_captiveportal.php:219
#, php-format
msgid "A valid port number must be specified. [%s]"
msgstr "Um número de porta válido deve ser especificado. [%s]"
#: usr/local/www/services_captiveportal.php:223
#: usr/local/www/services_captiveportal.php:224
+#: usr/local/www/services_captiveportal.php:222
msgid ""
"The maximum number of concurrent connections per client IP address may not "
"be larger than the global maximum."
@@ -18545,6 +23157,7 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:421
#: usr/local/www/services_captiveportal.php:425
+#: usr/local/www/services_captiveportal.php:423
msgid "Captive portal(s)"
msgstr "Captive portal(s)"
@@ -18556,6 +23169,14 @@ msgstr "Captive portal(s)"
#: usr/local/www/services_captiveportal_vouchers.php:404
#: usr/local/www/services_captiveportal_vouchers.php:411
#: usr/local/www/services_captiveportal.php:426
+#: usr/local/www/services_captiveportal_vouchers.php:424
+#: usr/local/www/services_captiveportal_ip.php:103
+#: usr/local/www/services_captiveportal_mac.php:153
+#: usr/local/www/services_captiveportal_hostname.php:108
+#: usr/local/www/services_captiveportal.php:424
+#: usr/local/www/services_captiveportal_filemanager.php:148
+#: usr/local/www/services_captiveportal_vouchers.php:433
+#: usr/local/www/services_captiveportal_mac.php:163
msgid "Pass-through MAC"
msgstr "Pass-through MAC"
@@ -18566,6 +23187,13 @@ msgstr "Pass-through MAC"
#: usr/local/www/services_captiveportal_vouchers.php:405
#: usr/local/www/services_captiveportal_vouchers.php:412
#: usr/local/www/services_captiveportal.php:427
+#: usr/local/www/services_captiveportal_vouchers.php:425
+#: usr/local/www/services_captiveportal_ip.php:104
+#: usr/local/www/services_captiveportal_mac.php:154
+#: usr/local/www/services_captiveportal.php:425
+#: usr/local/www/services_captiveportal_filemanager.php:149
+#: usr/local/www/services_captiveportal_vouchers.php:434
+#: usr/local/www/services_captiveportal_mac.php:164
msgid "Allowed IP addresses"
msgstr "Endereços IP permitidos"
@@ -18577,6 +23205,14 @@ msgstr "Endereços IP permitidos"
#: usr/local/www/services_captiveportal_vouchers.php:406
#: usr/local/www/services_captiveportal_vouchers.php:413
#: usr/local/www/services_captiveportal.php:428
+#: usr/local/www/services_captiveportal_vouchers.php:426
+#: usr/local/www/services_captiveportal_ip.php:105
+#: usr/local/www/services_captiveportal_mac.php:155
+#: usr/local/www/services_captiveportal_hostname.php:110
+#: usr/local/www/services_captiveportal.php:426
+#: usr/local/www/services_captiveportal_filemanager.php:150
+#: usr/local/www/services_captiveportal_vouchers.php:435
+#: usr/local/www/services_captiveportal_mac.php:165
msgid "Allowed Hostnames"
msgstr "Hostnames permitidos"
@@ -18592,6 +23228,18 @@ msgstr "Hostnames permitidos"
#: usr/local/www/services_captiveportal_vouchers.php:414
#: usr/local/www/services_captiveportal.php:429
#: usr/local/www/services_captiveportal.php:592
+#: usr/local/www/services_captiveportal_vouchers.php:82
+#: usr/local/www/services_captiveportal_vouchers.php:427
+#: usr/local/www/services_captiveportal_ip.php:106
+#: usr/local/www/services_captiveportal_mac.php:156
+#: usr/local/www/services_captiveportal_hostname.php:111
+#: usr/local/www/services_captiveportal.php:427
+#: usr/local/www/services_captiveportal.php:590
+#: usr/local/www/services_captiveportal_filemanager.php:151
+#: usr/local/www/services_captiveportal_vouchers.php:89
+#: usr/local/www/services_captiveportal_vouchers.php:436
+#: usr/local/www/services_captiveportal.php:584
+#: usr/local/www/services_captiveportal_mac.php:166
msgid "Vouchers"
msgstr "Vouchers"
@@ -18603,26 +23251,38 @@ msgstr "Vouchers"
#: usr/local/www/services_captiveportal_vouchers.php:408
#: usr/local/www/services_captiveportal_vouchers.php:415
#: usr/local/www/services_captiveportal.php:430
+#: usr/local/www/services_captiveportal_vouchers.php:428
+#: usr/local/www/services_captiveportal_ip.php:107
+#: usr/local/www/services_captiveportal_mac.php:157
+#: usr/local/www/services_captiveportal_hostname.php:112
+#: usr/local/www/services_captiveportal.php:428
+#: usr/local/www/services_captiveportal_filemanager.php:152
+#: usr/local/www/services_captiveportal_vouchers.php:437
+#: usr/local/www/services_captiveportal_mac.php:167
msgid "File Manager"
msgstr "Gerenciados de arquivo"
#: usr/local/www/services_captiveportal.php:436
#: usr/local/www/services_captiveportal.php:440
+#: usr/local/www/services_captiveportal.php:438
msgid "Enable captive portal"
msgstr "Habilitar portal captive"
#: usr/local/www/services_captiveportal.php:450
#: usr/local/www/services_captiveportal.php:455
+#: usr/local/www/services_captiveportal.php:453
msgid "Select the interface(s) to enable for captive portal."
msgstr "Selecione a(s) interface(s) a habilitar para o captive portal."
#: usr/local/www/services_captiveportal.php:453
#: usr/local/www/services_captiveportal.php:458
+#: usr/local/www/services_captiveportal.php:456
msgid "Maximum concurrent connections"
msgstr "Máximo de conexões concorrentes"
#: usr/local/www/services_captiveportal.php:457
#: usr/local/www/services_captiveportal.php:462
+#: usr/local/www/services_captiveportal.php:460
msgid "per client IP address (0 = no limit)"
msgstr "por endereço IP de cliente (0 = sem limite)"
@@ -18647,11 +23307,17 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:469
#: usr/local/www/services_captiveportal.php:473
#: usr/local/www/services_captiveportal.php:480
+#: usr/local/www/services_captiveportal_vouchers_edit.php:92
+#: usr/local/www/system_advanced_misc.php:518
+#: usr/local/www/services_captiveportal.php:471
+#: usr/local/www/services_captiveportal.php:478
+#: usr/local/www/system_advanced_misc.php:530
msgid "minutes"
msgstr "minutos"
#: usr/local/www/services_captiveportal.php:469
#: usr/local/www/services_captiveportal.php:474
+#: usr/local/www/services_captiveportal.php:472
msgid ""
"Clients will be disconnected after this amount of inactivity. They may log "
"in again immediately, though. Leave this field blank for no idle timeout."
@@ -18662,11 +23328,13 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:472
#: usr/local/www/services_captiveportal.php:477
+#: usr/local/www/services_captiveportal.php:475
msgid "Hard timeout"
msgstr "Hard timeout"
#: usr/local/www/services_captiveportal.php:476
#: usr/local/www/services_captiveportal.php:481
+#: usr/local/www/services_captiveportal.php:479
msgid ""
"Clients will be disconnected after this amount of time, regardless of "
"activity. They may log in again immediately, though. Leave this field blank "
@@ -18679,16 +23347,19 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:479
#: usr/local/www/services_captiveportal.php:484
+#: usr/local/www/services_captiveportal.php:482
msgid "Pass-through credits allowed per MAC address"
msgstr "Créditos de passagem permitidos por endereço MAC"
#: usr/local/www/services_captiveportal.php:482
#: usr/local/www/services_captiveportal.php:487
+#: usr/local/www/services_captiveportal.php:485
msgid "per client MAC address (0 or blank = none)"
msgstr "por endereço MAC de cliente (0 ou branco = nenhum)"
#: usr/local/www/services_captiveportal.php:483
#: usr/local/www/services_captiveportal.php:488
+#: usr/local/www/services_captiveportal.php:486
msgid ""
"This setting allows passing through the captive portal without "
"authentication a limited number of times per MAC address. Once used up, the "
@@ -18705,16 +23376,19 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:486
#: usr/local/www/services_captiveportal.php:491
+#: usr/local/www/services_captiveportal.php:489
msgid "Waiting period to restore pass-through credits"
msgstr "Período de espera para restaurar créditos de passagem"
#: usr/local/www/services_captiveportal.php:489
#: usr/local/www/services_captiveportal.php:494
+#: usr/local/www/services_captiveportal.php:492
msgid "hours"
msgstr "horas"
#: usr/local/www/services_captiveportal.php:490
#: usr/local/www/services_captiveportal.php:495
+#: usr/local/www/services_captiveportal.php:493
msgid ""
"Clients will have their available pass-through credits restored to the "
"original count after this amount of time since using the first one. This "
@@ -18726,16 +23400,19 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:493
#: usr/local/www/services_captiveportal.php:498
+#: usr/local/www/services_captiveportal.php:496
msgid "Reset waiting period on attempted access"
msgstr "Período de espera para reinício na tentativa de acesso"
#: usr/local/www/services_captiveportal.php:496
#: usr/local/www/services_captiveportal.php:501
+#: usr/local/www/services_captiveportal.php:499
msgid "Enable waiting period reset on attempted access"
msgstr "Habilitar período de espera de reinício na tentativa de acesso"
#: usr/local/www/services_captiveportal.php:497
#: usr/local/www/services_captiveportal.php:502
+#: usr/local/www/services_captiveportal.php:500
msgid ""
"If enabled, the waiting period is reset to the original duration if access "
"is attempted when all pass-through credits have already been exhausted."
@@ -18746,16 +23423,19 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:500
#: usr/local/www/services_captiveportal.php:505
+#: usr/local/www/services_captiveportal.php:503
msgid "Logout popup window"
msgstr "Janela popup de logout"
#: usr/local/www/services_captiveportal.php:503
#: usr/local/www/services_captiveportal.php:508
+#: usr/local/www/services_captiveportal.php:506
msgid "Enable logout popup window"
msgstr "Habilitar janela popup de logout"
#: usr/local/www/services_captiveportal.php:504
#: usr/local/www/services_captiveportal.php:509
+#: usr/local/www/services_captiveportal.php:507
msgid ""
"If enabled, a popup window will appear when clients are allowed through the "
"captive portal. This allows clients to explicitly disconnect themselves "
@@ -18767,11 +23447,13 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:507
#: usr/local/www/services_captiveportal.php:512
+#: usr/local/www/services_captiveportal.php:510
msgid "Pre-authentication redirect URL"
msgstr "URL de redirecionamento de preautenticação"
#: usr/local/www/services_captiveportal.php:510
#: usr/local/www/services_captiveportal.php:515
+#: usr/local/www/services_captiveportal.php:513
#, php-format
msgid ""
"Use this field to set $PORTAL_REDIRURL$ variable which can be accessed using "
@@ -18783,11 +23465,13 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:514
#: usr/local/www/services_captiveportal.php:519
+#: usr/local/www/services_captiveportal.php:517
msgid "After authentication Redirection URL"
msgstr "URL de redirecionamento após autenticação"
#: usr/local/www/services_captiveportal.php:518
#: usr/local/www/services_captiveportal.php:523
+#: usr/local/www/services_captiveportal.php:521
msgid ""
"If you provide a URL here, clients will be redirected to that URL instead of "
"the one they initially tried to access after they've authenticated."
@@ -18798,16 +23482,19 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:522
#: usr/local/www/services_captiveportal.php:527
+#: usr/local/www/services_captiveportal.php:525
msgid "Concurrent user logins"
msgstr "Logins de usuário concorrentes"
#: usr/local/www/services_captiveportal.php:525
#: usr/local/www/services_captiveportal.php:530
+#: usr/local/www/services_captiveportal.php:528
msgid "Disable concurrent logins"
msgstr "Desabilitar logins concorrentes"
#: usr/local/www/services_captiveportal.php:526
#: usr/local/www/services_captiveportal.php:531
+#: usr/local/www/services_captiveportal.php:529
msgid ""
"If this option is set, only the most recent login per username will be "
"active. Subsequent logins will cause machines previously logged in with the "
@@ -18819,16 +23506,19 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:529
#: usr/local/www/services_captiveportal.php:534
+#: usr/local/www/services_captiveportal.php:532
msgid "MAC filtering"
msgstr "Filtragem de MAC"
#: usr/local/www/services_captiveportal.php:532
#: usr/local/www/services_captiveportal.php:537
+#: usr/local/www/services_captiveportal.php:535
msgid "Disable MAC filtering"
msgstr "Desabilitar filtragem de MAC"
#: usr/local/www/services_captiveportal.php:533
#: usr/local/www/services_captiveportal.php:538
+#: usr/local/www/services_captiveportal.php:536
msgid ""
"If this option is set, no attempts will be made to ensure that the MAC "
"address of clients stays the same while they're logged in.This is required "
@@ -18842,27 +23532,32 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:534
#: usr/local/www/services_captiveportal.php:539
+#: usr/local/www/services_captiveportal.php:537
msgid "and the clients)."
msgstr "e os clientes)."
#: usr/local/www/services_captiveportal.php:535
#: usr/local/www/services_captiveportal.php:540
+#: usr/local/www/services_captiveportal.php:538
msgid "If this is enabled, RADIUS MAC authentication cannot be used."
msgstr ""
"Se isto estiver habilitado, autenticação de MAC RADIUS não pode ser usada."
#: usr/local/www/services_captiveportal.php:538
#: usr/local/www/services_captiveportal.php:543
+#: usr/local/www/services_captiveportal.php:541
msgid "Pass-through MAC Auto Entry"
msgstr "Entrada Auto de MAC Pass-through"
#: usr/local/www/services_captiveportal.php:541
#: usr/local/www/services_captiveportal.php:546
+#: usr/local/www/services_captiveportal.php:544
msgid "Enable Pass-through MAC automatic additions"
msgstr "Habilitar adições automáticas de MAC Pass-through"
#: usr/local/www/services_captiveportal.php:542
#: usr/local/www/services_captiveportal.php:547
+#: usr/local/www/services_captiveportal.php:545
msgid ""
"If this option is set, a MAC passthrough entry is automatically added after "
"the user has successfully authenticated. Users of that MAC address will "
@@ -18876,6 +23571,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:549
#: usr/local/www/services_captiveportal.php:548
#: usr/local/www/services_captiveportal.php:554
+#: usr/local/www/services_captiveportal.php:546
+#: usr/local/www/services_captiveportal.php:552
msgid ""
"To remove the passthrough MAC entry you either have to log in and remove it "
"manually from the"
@@ -18886,6 +23583,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:549
#: usr/local/www/services_captiveportal.php:548
#: usr/local/www/services_captiveportal.php:554
+#: usr/local/www/services_captiveportal.php:546
+#: usr/local/www/services_captiveportal.php:552
msgid "Pass-through MAC tab"
msgstr "Aba de MAC Pass-through"
@@ -18893,11 +23592,14 @@ msgstr "Aba de MAC Pass-through"
#: usr/local/www/services_captiveportal.php:549
#: usr/local/www/services_captiveportal.php:548
#: usr/local/www/services_captiveportal.php:554
+#: usr/local/www/services_captiveportal.php:546
+#: usr/local/www/services_captiveportal.php:552
msgid "or send a POST from another system to remove it."
msgstr "ou envie um POST de outro sistema para removê-la."
#: usr/local/www/services_captiveportal.php:544
#: usr/local/www/services_captiveportal.php:549
+#: usr/local/www/services_captiveportal.php:547
msgid ""
"If this is enabled, RADIUS MAC authentication cannot be used. Also, the "
"logout window will not be shown."
@@ -18907,11 +23609,13 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:547
#: usr/local/www/services_captiveportal.php:552
+#: usr/local/www/services_captiveportal.php:550
msgid "Enable Pass-through MAC automatic addition with username"
msgstr "Habilitar adição automática de MAC Pass-through com nome de usuário"
#: usr/local/www/services_captiveportal.php:548
#: usr/local/www/services_captiveportal.php:553
+#: usr/local/www/services_captiveportal.php:551
msgid ""
"If this option is set, with the automatically MAC passthrough entry created "
"the username, used during authentication, will be saved."
@@ -18922,26 +23626,31 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:553
#: usr/local/www/services_captiveportal.php:558
+#: usr/local/www/services_captiveportal.php:556
msgid "Per-user bandwidth restriction"
msgstr "Restrição de banda por usuário"
#: usr/local/www/services_captiveportal.php:556
#: usr/local/www/services_captiveportal.php:561
+#: usr/local/www/services_captiveportal.php:559
msgid "Enable per-user bandwidth restriction"
msgstr "Habilitar restrição de banda por usuário"
#: usr/local/www/services_captiveportal.php:559
#: usr/local/www/services_captiveportal.php:564
+#: usr/local/www/services_captiveportal.php:562
msgid "Default download"
msgstr "Download padrão"
#: usr/local/www/services_captiveportal.php:563
#: usr/local/www/services_captiveportal.php:568
+#: usr/local/www/services_captiveportal.php:566
msgid "Default upload"
msgstr "Carregamento padrão"
#: usr/local/www/services_captiveportal.php:567
#: usr/local/www/services_captiveportal.php:572
+#: usr/local/www/services_captiveportal.php:570
msgid ""
"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 "
@@ -18954,16 +23663,19 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:570
#: usr/local/www/services_captiveportal.php:575
+#: usr/local/www/services_captiveportal.php:573
msgid "PMS authentication"
msgstr "Autenticação PMS"
#: usr/local/www/services_captiveportal.php:573
#: usr/local/www/services_captiveportal.php:578
+#: usr/local/www/services_captiveportal.php:576
msgid "Enable PMS authentication"
msgstr "Habilitar autenticação PSM"
#: usr/local/www/services_captiveportal.php:574
#: usr/local/www/services_captiveportal.php:579
+#: usr/local/www/services_captiveportal.php:577
msgid ""
"If this option is set, users will be authenticated through the PMS backend "
"if they fill the necessary information in the login page."
@@ -18973,35 +23685,51 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:583
#: usr/local/www/services_captiveportal.php:588
+#: usr/local/www/services_captiveportal.php:586
+#: usr/local/www/services_captiveportal.php:580
msgid "No Authentication"
msgstr "Sem Autenticação"
#: usr/local/www/services_captiveportal.php:587
#: usr/local/www/diag_ipsec.php:194
#: usr/local/www/services_captiveportal.php:592
+#: usr/local/www/diag_ipsec.php:195
+#: usr/local/www/services_captiveportal.php:590
+#: usr/local/www/diag_ipsec.php:196
+#: usr/local/www/services_captiveportal.php:584
msgid "Local"
msgstr "Local"
#: usr/local/www/services_captiveportal.php:587 usr/local/www/fbegin.inc:93
#: usr/local/www/fbegin.inc:95 usr/local/www/system_usermanager.php:54
#: usr/local/www/fbegin.inc:110 usr/local/www/fbegin.inc:112
-#: usr/local/www/services_captiveportal.php:592
+#: usr/local/www/services_captiveportal.php:592 usr/local/www/fbegin.inc:119
+#: usr/local/www/fbegin.inc:121 usr/local/www/services_captiveportal.php:590
+#: usr/local/www/services_captiveportal.php:584 usr/local/www/fbegin.inc:111
+#: usr/local/www/fbegin.inc:113
msgid "User Manager"
msgstr "Ger. de usuário"
#: usr/local/www/services_captiveportal.php:591
#: usr/local/www/services_captiveportal.php:596
+#: usr/local/www/services_captiveportal.php:594
msgid "RADIUS Authentication"
msgstr "Autenticação RADIUS"
#: usr/local/www/services_captiveportal.php:599
#: usr/local/www/services_captiveportal.php:635
#: usr/local/www/services_captiveportal.php:678
+#: usr/local/www/services_captiveportal.php:633
+#: usr/local/www/services_captiveportal.php:676
+#: usr/local/www/services_captiveportal.php:634
+#: usr/local/www/services_captiveportal.php:677
msgid "Primary RADIUS server"
msgstr "Servidor RADIUS primário"
#: usr/local/www/services_captiveportal.php:604
#: usr/local/www/services_captiveportal.php:640
+#: usr/local/www/services_captiveportal.php:638
+#: usr/local/www/services_captiveportal.php:639
msgid ""
"Enter the IP address of the RADIUS server which users of the captive portal "
"have to authenticate against."
@@ -19011,6 +23739,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:609
#: usr/local/www/services_captiveportal.php:645
+#: usr/local/www/services_captiveportal.php:643
+#: usr/local/www/services_captiveportal.php:644
msgid "Leave this field blank to use the default port (1812)."
msgstr "Deixe esse campo em branco para usar a porta padrão (1812)."
@@ -19024,11 +23754,22 @@ msgstr "Deixe esse campo em branco para usar a porta padrão (1812)."
#: usr/local/www/services_captiveportal.php:690
#: usr/local/www/services_captiveportal.php:709
#: usr/local/www/services_captiveportal.php:767
+#: usr/local/www/services_captiveportal.php:646
+#: usr/local/www/services_captiveportal.php:666
+#: usr/local/www/services_captiveportal.php:688
+#: usr/local/www/services_captiveportal.php:707
+#: usr/local/www/services_captiveportal.php:765
+#: usr/local/www/services_captiveportal.php:647
+#: usr/local/www/services_captiveportal.php:667
+#: usr/local/www/services_captiveportal.php:689
+#: usr/local/www/services_captiveportal.php:708
msgid "Shared secret"
msgstr "Segredo compartilhado"
#: usr/local/www/services_captiveportal.php:614
#: usr/local/www/services_captiveportal.php:650
+#: usr/local/www/services_captiveportal.php:648
+#: usr/local/www/services_captiveportal.php:649
msgid ""
"Leave this field blank to not use a RADIUS shared secret (not recommended)."
msgstr ""
@@ -19037,12 +23778,18 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:620 usr/local/www/vpn_pptp.php:440
#: usr/local/www/services_captiveportal.php:656
-#: usr/local/www/services_captiveportal.php:697
+#: usr/local/www/services_captiveportal.php:697 usr/local/www/vpn_pptp.php:442
+#: usr/local/www/services_captiveportal.php:654
+#: usr/local/www/services_captiveportal.php:695
+#: usr/local/www/services_captiveportal.php:655
+#: usr/local/www/services_captiveportal.php:696 usr/local/www/vpn_pptp.php:445
msgid "Secondary RADIUS server"
msgstr "Servidor RADIUS secundário"
#: usr/local/www/services_captiveportal.php:625
#: usr/local/www/services_captiveportal.php:661
+#: usr/local/www/services_captiveportal.php:659
+#: usr/local/www/services_captiveportal.php:660
msgid ""
"If you have a second RADIUS server, you can activate it by entering its IP "
"address here."
@@ -19056,6 +23803,8 @@ msgstr "Servidor RADIUS terciário"
#: usr/local/www/services_captiveportal.php:644
#: usr/local/www/services_captiveportal.php:683
+#: usr/local/www/services_captiveportal.php:681
+#: usr/local/www/services_captiveportal.php:682
msgid ""
"If you have a third RADIUS server, you can activate it by entering its IP "
"address here."
@@ -19069,6 +23818,8 @@ msgstr "Servidor RADIUS quartenário"
#: usr/local/www/services_captiveportal.php:663
#: usr/local/www/services_captiveportal.php:702
+#: usr/local/www/services_captiveportal.php:700
+#: usr/local/www/services_captiveportal.php:701
msgid ""
"If you have a fourth RADIUS server, you can activate it by entering its IP "
"address here."
@@ -19078,16 +23829,22 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:677
#: usr/local/www/services_captiveportal.php:719
+#: usr/local/www/services_captiveportal.php:717
+#: usr/local/www/services_captiveportal.php:715
msgid "Accounting"
msgstr "Contabilidade"
#: usr/local/www/services_captiveportal.php:682
#: usr/local/www/services_captiveportal.php:724
+#: usr/local/www/services_captiveportal.php:722
+#: usr/local/www/services_captiveportal.php:720
msgid "send RADIUS accounting packets"
msgstr "enviar pacotes de accounting RADIUS"
#: usr/local/www/services_captiveportal.php:683
#: usr/local/www/services_captiveportal.php:725
+#: usr/local/www/services_captiveportal.php:723
+#: usr/local/www/services_captiveportal.php:721
msgid ""
"If this is enabled, RADIUS accounting packets will be sent to the primary "
"RADIUS server."
@@ -19097,26 +23854,36 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:686
#: usr/local/www/services_captiveportal.php:728
+#: usr/local/www/services_captiveportal.php:726
+#: usr/local/www/services_captiveportal.php:724
msgid "Accounting port"
msgstr "Porta de Accounting"
#: usr/local/www/services_captiveportal.php:688
#: usr/local/www/services_captiveportal.php:730
+#: usr/local/www/services_captiveportal.php:728
+#: usr/local/www/services_captiveportal.php:726
msgid "Leave blank to use the default port (1813)."
msgstr "Deixe em branco para usar a porta padrão (1813)."
#: usr/local/www/services_captiveportal.php:694
#: usr/local/www/services_captiveportal.php:736
+#: usr/local/www/services_captiveportal.php:734
+#: usr/local/www/services_captiveportal.php:746
msgid "Reauthentication"
msgstr "Reautenticação"
#: usr/local/www/services_captiveportal.php:699
#: usr/local/www/services_captiveportal.php:741
+#: usr/local/www/services_captiveportal.php:739
+#: usr/local/www/services_captiveportal.php:748
msgid "Reauthenticate connected users every minute"
msgstr "Reautentique usuários conectados a cada minuto"
#: usr/local/www/services_captiveportal.php:700
#: usr/local/www/services_captiveportal.php:742
+#: usr/local/www/services_captiveportal.php:740
+#: usr/local/www/services_captiveportal.php:749
msgid ""
"If reauthentication is enabled, Access-Requests will be sent to the RADIUS "
"server for each user that is logged in every minute. If an Access-Reject is "
@@ -19130,36 +23897,50 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:704
#: usr/local/www/services_captiveportal.php:746
+#: usr/local/www/services_captiveportal.php:744
+#: usr/local/www/services_captiveportal.php:732
msgid "Accounting updates"
msgstr "Atualizações de accounting"
#: usr/local/www/services_captiveportal.php:706
#: usr/local/www/services_captiveportal.php:748
+#: usr/local/www/services_captiveportal.php:746
+#: usr/local/www/services_captiveportal.php:734
msgid "no accounting updates"
msgstr "nenhuma atualização de accounting"
#: usr/local/www/services_captiveportal.php:707
#: usr/local/www/services_captiveportal.php:749
+#: usr/local/www/services_captiveportal.php:747
+#: usr/local/www/services_captiveportal.php:735
msgid "stop/start accounting"
msgstr "parar/iniciar accounting"
#: usr/local/www/services_captiveportal.php:708
#: usr/local/www/services_captiveportal.php:750
+#: usr/local/www/services_captiveportal.php:748
+#: usr/local/www/services_captiveportal.php:736
msgid "interim update"
msgstr "atualização de interim"
#: usr/local/www/services_captiveportal.php:715
#: usr/local/www/services_captiveportal.php:757
+#: usr/local/www/services_captiveportal.php:755
+#: usr/local/www/services_captiveportal.php:753
msgid "RADIUS MAC authentication"
msgstr "Autenticação de MAC do RADIUS"
#: usr/local/www/services_captiveportal.php:720
#: usr/local/www/services_captiveportal.php:762
+#: usr/local/www/services_captiveportal.php:760
+#: usr/local/www/services_captiveportal.php:755
msgid "Enable RADIUS MAC authentication"
msgstr "Habilitar autenticação de MAC do RADIUS"
#: usr/local/www/services_captiveportal.php:721
#: usr/local/www/services_captiveportal.php:763
+#: usr/local/www/services_captiveportal.php:761
+#: usr/local/www/services_captiveportal.php:756
msgid ""
"If this option is enabled, the captive portal will try to authenticate users "
"by sending their MAC address as the username and the password entered below "
@@ -19171,31 +23952,43 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:732
#: usr/local/www/services_captiveportal.php:774
+#: usr/local/www/services_captiveportal.php:772
+#: usr/local/www/services_captiveportal.php:743
msgid "RADIUS options"
msgstr "Opções RADIUS"
#: usr/local/www/services_captiveportal.php:736
#: usr/local/www/services_captiveportal.php:778
+#: usr/local/www/services_captiveportal.php:776
+#: usr/local/www/services_captiveportal.php:764
msgid "RADIUS NAS IP attribute"
msgstr "Atributo RADIUS NAS IP"
#: usr/local/www/services_captiveportal.php:766
#: usr/local/www/services_captiveportal.php:808
+#: usr/local/www/services_captiveportal.php:806
+#: usr/local/www/services_captiveportal.php:794
msgid "Choose the IP to use for calling station attribute."
msgstr "Escolha o IP para usar para chamar atributo estação."
#: usr/local/www/services_captiveportal.php:771
#: usr/local/www/services_captiveportal.php:813
+#: usr/local/www/services_captiveportal.php:811
+#: usr/local/www/services_captiveportal.php:799
msgid "Session-Timeout"
msgstr "Session-Timeout"
#: usr/local/www/services_captiveportal.php:772
#: usr/local/www/services_captiveportal.php:814
+#: usr/local/www/services_captiveportal.php:812
+#: usr/local/www/services_captiveportal.php:800
msgid "Use RADIUS Session-Timeout attributes"
msgstr "Use atributos de Session-Timeout do RADIUS"
#: usr/local/www/services_captiveportal.php:773
#: usr/local/www/services_captiveportal.php:815
+#: usr/local/www/services_captiveportal.php:813
+#: usr/local/www/services_captiveportal.php:801
msgid ""
"When this is enabled, clients will be disconnected after the amount of time "
"retrieved from the RADIUS Session-Timeout attribute."
@@ -19205,6 +23998,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:789
#: usr/local/www/services_captiveportal.php:831
+#: usr/local/www/services_captiveportal.php:829
+#: usr/local/www/services_captiveportal.php:817
#, php-format
msgid ""
"If RADIUS type is set to Cisco, in Access-Requests the value of Calling-"
@@ -19220,6 +24015,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:796
#: usr/local/www/services_captiveportal.php:838
+#: usr/local/www/services_captiveportal.php:836
+#: usr/local/www/services_captiveportal.php:834
msgid "MAC address format"
msgstr "Formato do endereço MAC"
@@ -19245,6 +24042,8 @@ msgstr "não formatado"
#: usr/local/www/services_captiveportal.php:810
#: usr/local/www/services_captiveportal.php:852
+#: usr/local/www/services_captiveportal.php:850
+#: usr/local/www/services_captiveportal.php:849
msgid ""
"This option changes the MAC address format used in the whole RADIUS system. "
"Change this if you also"
@@ -19254,6 +24053,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:811
#: usr/local/www/services_captiveportal.php:853
+#: usr/local/www/services_captiveportal.php:851
+#: usr/local/www/services_captiveportal.php:850
msgid "need to change the username format for RADIUS MAC authentication."
msgstr ""
"precisa modificar o formato do nome de usuário para a autenticação MAC do "
@@ -19261,36 +24062,48 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:812
#: usr/local/www/services_captiveportal.php:854
+#: usr/local/www/services_captiveportal.php:852
+#: usr/local/www/services_captiveportal.php:851
msgid "default:"
msgstr "padrão:"
#: usr/local/www/services_captiveportal.php:813
#: usr/local/www/services_captiveportal.php:855
+#: usr/local/www/services_captiveportal.php:853
+#: usr/local/www/services_captiveportal.php:852
msgid "singledash:"
msgstr "singledash:"
#: usr/local/www/services_captiveportal.php:814
#: usr/local/www/services_captiveportal.php:856
+#: usr/local/www/services_captiveportal.php:854
+#: usr/local/www/services_captiveportal.php:853
msgid "ietf:"
msgstr "ietf:"
#: usr/local/www/services_captiveportal.php:815
#: usr/local/www/services_captiveportal.php:857
+#: usr/local/www/services_captiveportal.php:855
+#: usr/local/www/services_captiveportal.php:854
msgid "cisco:"
msgstr "cisco:"
#: usr/local/www/services_captiveportal.php:816
#: usr/local/www/services_captiveportal.php:858
+#: usr/local/www/services_captiveportal.php:856
+#: usr/local/www/services_captiveportal.php:855
msgid "unformatted:"
msgstr "não formatado:"
#: usr/local/www/services_captiveportal.php:819
#: usr/local/www/services_captiveportal.php:861
+#: usr/local/www/services_captiveportal.php:859
msgid "HTTPS login"
msgstr "Login HTTPS"
#: usr/local/www/services_captiveportal.php:822
#: usr/local/www/services_captiveportal.php:864
+#: usr/local/www/services_captiveportal.php:862
msgid "Enable HTTPS login"
msgstr "Habilitar login HTTPS"
@@ -19307,11 +24120,13 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:826
#: usr/local/www/services_captiveportal.php:868
+#: usr/local/www/services_captiveportal.php:866
msgid "HTTPS server name"
msgstr "Nome do servidor HTTPS"
#: usr/local/www/services_captiveportal.php:829
#: usr/local/www/services_captiveportal.php:871
+#: usr/local/www/services_captiveportal.php:869
#, php-format
msgid ""
"This name will be used in the form action for the HTTPS POST and should "
@@ -19356,11 +24171,15 @@ msgstr "Certificado intermediário HTTPS"
#: usr/local/www/system_certmanager.php:515
#: usr/local/www/system_certmanager.php:614
#: usr/local/www/services_captiveportal.php:892
+#: usr/local/www/system_camanager.php:413
+#: usr/local/www/system_certmanager.php:623
msgid "Paste a certificate in X.509 PEM format here."
msgstr "Cole um certificado em formato X.509 PEM aqui."
#: usr/local/www/services_captiveportal.php:853
#: usr/local/www/services_captiveportal.php:895
+#: usr/local/www/services_captiveportal.php:891
+#: usr/local/www/services_captiveportal.php:893
msgid "Portal page contents"
msgstr "Conteúdo da página do portal"
@@ -19370,11 +24189,19 @@ msgstr "Conteúdo da página do portal"
#: usr/local/www/services_captiveportal.php:910
#: usr/local/www/services_captiveportal.php:944
#: usr/local/www/services_captiveportal.php:958
+#: usr/local/www/services_captiveportal.php:906
+#: usr/local/www/services_captiveportal.php:940
+#: usr/local/www/services_captiveportal.php:954
+#: usr/local/www/services_captiveportal.php:908
+#: usr/local/www/services_captiveportal.php:942
+#: usr/local/www/services_captiveportal.php:956
msgid "View current page"
msgstr "Veja página atual"
#: usr/local/www/services_captiveportal.php:871
#: usr/local/www/services_captiveportal.php:916
+#: usr/local/www/services_captiveportal.php:912
+#: usr/local/www/services_captiveportal.php:914
#, php-format
msgid ""
"Upload an HTML/PHP file for the portal page here (leave blank to keep the "
@@ -19391,11 +24218,15 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:882
#: usr/local/www/services_captiveportal.php:927
+#: usr/local/www/services_captiveportal.php:923
+#: usr/local/www/services_captiveportal.php:925
msgid "Example code for the form:"
msgstr "Exemplo de código para o formulário:"
#: usr/local/www/services_captiveportal.php:894
#: usr/local/www/services_captiveportal.php:939
+#: usr/local/www/services_captiveportal.php:935
+#: usr/local/www/services_captiveportal.php:937
msgid "error page"
msgstr "página de erro"
@@ -19403,11 +24234,17 @@ msgstr "página de erro"
#: usr/local/www/services_captiveportal.php:909
#: usr/local/www/services_captiveportal.php:940
#: usr/local/www/services_captiveportal.php:954
+#: usr/local/www/services_captiveportal.php:936
+#: usr/local/www/services_captiveportal.php:950
+#: usr/local/www/services_captiveportal.php:938
+#: usr/local/www/services_captiveportal.php:952
msgid "contents"
msgstr "conteúdo"
#: usr/local/www/services_captiveportal.php:903
#: usr/local/www/services_captiveportal.php:948
+#: usr/local/www/services_captiveportal.php:944
+#: usr/local/www/services_captiveportal.php:946
msgid ""
"The contents of the HTML/PHP file that you upload here are displayed when an "
"authentication error occurs. You may include"
@@ -19417,6 +24254,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:904
#: usr/local/www/services_captiveportal.php:949
+#: usr/local/www/services_captiveportal.php:945
+#: usr/local/www/services_captiveportal.php:947
msgid ""
"which will be replaced by the error or reply messages from the RADIUS "
"server, if any."
@@ -19426,11 +24265,15 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:907 usr/local/www/fbegin.inc:86
#: usr/local/www/fbegin.inc:103 usr/local/www/services_captiveportal.php:952
+#: usr/local/www/fbegin.inc:112 usr/local/www/services_captiveportal.php:948
+#: usr/local/www/services_captiveportal.php:950 usr/local/www/fbegin.inc:104
msgid "Logout"
msgstr "Logout"
#: usr/local/www/services_captiveportal.php:917
#: usr/local/www/services_captiveportal.php:962
+#: usr/local/www/services_captiveportal.php:958
+#: usr/local/www/services_captiveportal.php:960
msgid ""
"The contents of the HTML/PHP file that you upload here are displayed on "
"authentication success when the logout popup is enabled."
@@ -19440,6 +24283,8 @@ msgstr ""
#: usr/local/www/services_captiveportal.php:930
#: usr/local/www/services_captiveportal.php:975
+#: usr/local/www/services_captiveportal.php:971
+#: usr/local/www/services_captiveportal.php:973
msgid ""
"Changing any settings on this page will disconnect all clients! Don't forget "
"to enable the DHCP server on your captive portal interface! Make sure that "
@@ -19455,41 +24300,53 @@ msgstr ""
"autenticados para funcionar."
#: usr/local/www/services_captiveportal_filemanager.php:101
+#: usr/local/www/services_captiveportal_filemanager.php:98
#, php-format
msgid "A file with the name '%s' already exists."
msgstr "Um arquivo com o nome '%s' já existe."
#: usr/local/www/services_captiveportal_filemanager.php:108
+#: usr/local/www/services_captiveportal_filemanager.php:105
msgid "The total size of all files uploaded may not exceed "
msgstr "O tamanho total de todos os arquivos carregados não pode exceder "
#: usr/local/www/services_captiveportal_filemanager.php:163
#: usr/local/www/system_firmware_restorefullbackup.php:141
+#: usr/local/www/services_captiveportal_filemanager.php:160
+#: usr/local/www/diag_system_pftop.php:140
+#: usr/local/www/diag_system_pftop.php:159
msgid "Size"
msgstr "Tamanho"
#: usr/local/www/services_captiveportal_filemanager.php:168
#: usr/local/www/services_captiveportal_filemanager.php:207
+#: usr/local/www/services_captiveportal_filemanager.php:165
+#: usr/local/www/services_captiveportal_filemanager.php:204
msgid "add file"
msgstr "adicionar arquivo"
#: usr/local/www/services_captiveportal_filemanager.php:179
+#: usr/local/www/services_captiveportal_filemanager.php:176
msgid "Do you really want to delete this file?"
msgstr "Você realmente deseja apagar esse arquivo?"
#: usr/local/www/services_captiveportal_filemanager.php:179
+#: usr/local/www/services_captiveportal_filemanager.php:176
msgid "delete file"
msgstr "apagar arquivo"
#: usr/local/www/services_captiveportal_filemanager.php:186
+#: usr/local/www/services_captiveportal_filemanager.php:183
msgid "TOTAL"
msgstr "TOTAL"
#: usr/local/www/services_captiveportal_filemanager.php:197
+#: usr/local/www/services_captiveportal_filemanager.php:194
msgid "cancel"
msgstr "cancelar"
#: usr/local/www/services_captiveportal_filemanager.php:217
+#: usr/local/www/services_captiveportal_filemanager.php:214
msgid ""
"Any files that you upload here with the filename prefix of captiveportal- "
"will be made available in the root directory of the captive portal HTTP(S) "
@@ -19506,6 +24363,7 @@ msgstr ""
"de arquivo. Então você pode inclui-lo na sua página de portal assim:"
#: usr/local/www/services_captiveportal_filemanager.php:224
+#: usr/local/www/services_captiveportal_filemanager.php:221
msgid ""
"In addition, you can also upload .php files for execution. You can pass the "
"filename to your custom page from the initial page by using text similar to:"
@@ -19515,10 +24373,12 @@ msgstr ""
"inicial usando um texto similar a:"
#: usr/local/www/services_captiveportal_filemanager.php:227
+#: usr/local/www/services_captiveportal_filemanager.php:224
msgid "Acceptable usage policy"
msgstr "Política de uso aceitável"
#: usr/local/www/services_captiveportal_filemanager.php:229
+#: usr/local/www/services_captiveportal_filemanager.php:226
#, php-format
msgid "The total size limit for all files is %s."
msgstr "O limite total de tamanho para todos os arquivos é %s."
@@ -19528,81 +24388,95 @@ msgid "Diagnostics: Limiter Info"
msgstr "Diagnósticos: Limiter Info"
#: usr/local/www/diag_limiter_info.php:108
+#: usr/local/www/diag_limiter_info.php:109
msgid "Gathering Limiter information, please wait..."
msgstr "Definindo informações da fatia, por favor aguarde..."
-#: usr/local/www/firewall_nat.php:197
+#: usr/local/www/firewall_nat.php:197 usr/local/www/firewall_nat.php:202
msgid "Src. addr"
msgstr "End. fonte"
-#: usr/local/www/firewall_nat.php:198
+#: usr/local/www/firewall_nat.php:198 usr/local/www/firewall_nat.php:203
msgid "Src. ports"
msgstr "Portas fonte"
-#: usr/local/www/firewall_nat.php:199
+#: usr/local/www/firewall_nat.php:199 usr/local/www/firewall_nat.php:204
msgid "Dest. addr"
msgstr "End. destino"
-#: usr/local/www/firewall_nat.php:200
+#: usr/local/www/firewall_nat.php:200 usr/local/www/firewall_nat.php:205
msgid "Dest. ports"
msgstr "Portas destino"
-#: usr/local/www/firewall_nat.php:201
+#: usr/local/www/firewall_nat.php:201 usr/local/www/firewall_nat.php:206
msgid "NAT IP"
msgstr "IP NAT"
-#: usr/local/www/firewall_nat.php:202
+#: usr/local/www/firewall_nat.php:202 usr/local/www/firewall_nat.php:207
msgid "NAT Ports"
msgstr "Portas NAT"
-#: usr/local/www/firewall_nat.php:252
+#: usr/local/www/firewall_nat.php:252 usr/local/www/firewall_nat.php:265
msgid "All traffic matching this NAT entry is passed"
msgstr "Todo o tráfego correspondente a essa entrada NAT é liberado"
-#: usr/local/www/firewall_nat.php:254
+#: usr/local/www/firewall_nat.php:254 usr/local/www/firewall_nat.php:267
msgid "Firewall rule ID"
msgstr "ID da regra de firewall"
-#: usr/local/www/firewall_nat.php:254
+#: usr/local/www/firewall_nat.php:254 usr/local/www/firewall_nat.php:267
msgid "is managed with this rule"
msgstr "é gerenciado por essa regra"
#: usr/local/www/firewall_nat.php:313 usr/local/www/firewall_nat_out.php:450
+#: usr/local/www/firewall_nat_out.php:451 usr/local/www/firewall_nat.php:326
+#: usr/local/www/firewall_nat_out.php:448
msgid "Do you really want to delete this rule?"
msgstr "Você realmente quer apagar esta regra?"
-#: usr/local/www/firewall_nat.php:349
+#: usr/local/www/firewall_nat.php:349 usr/local/www/firewall_nat.php:362
msgid "linked rule"
msgstr "regra associada"
#: usr/local/www/diag_ipsec.php:78 usr/local/www/diag_ipsec_sad.php:73
#: usr/local/www/diag_ipsec_spd.php:72 usr/local/www/diag_ipsec.php:88
+#: usr/local/www/diag_ipsec.php:89 usr/local/www/diag_ipsec_sad.php:74
+#: usr/local/www/diag_ipsec_spd.php:73 usr/local/www/diag_ipsec.php:91
msgid "Overview"
msgstr "Visão geral"
#: usr/local/www/diag_ipsec.php:79 usr/local/www/diag_ipsec_sad.php:49
#: usr/local/www/diag_ipsec_sad.php:74 usr/local/www/diag_ipsec_spd.php:73
-#: usr/local/www/diag_ipsec.php:89
+#: usr/local/www/diag_ipsec.php:89 usr/local/www/diag_ipsec.php:90
+#: usr/local/www/diag_ipsec_sad.php:75 usr/local/www/diag_ipsec_spd.php:74
+#: usr/local/www/diag_ipsec.php:92
msgid "SAD"
msgstr "SAD"
#: usr/local/www/diag_ipsec.php:80 usr/local/www/diag_ipsec_sad.php:75
#: usr/local/www/diag_ipsec_spd.php:49 usr/local/www/diag_ipsec_spd.php:74
-#: usr/local/www/diag_ipsec.php:90
+#: usr/local/www/diag_ipsec.php:90 usr/local/www/diag_ipsec.php:91
+#: usr/local/www/diag_ipsec_sad.php:76 usr/local/www/diag_ipsec_spd.php:75
+#: usr/local/www/diag_ipsec.php:93
msgid "SPD"
msgstr "SPD"
#: usr/local/www/diag_ipsec.php:81 usr/local/www/diag_ipsec_sad.php:76
#: usr/local/www/diag_ipsec_spd.php:75 usr/local/www/diag_ipsec.php:91
+#: usr/local/www/diag_ipsec.php:92 usr/local/www/diag_ipsec_sad.php:77
+#: usr/local/www/diag_ipsec_spd.php:76 usr/local/www/diag_ipsec.php:94
msgid "Logs"
msgstr "Logs"
#: usr/local/www/diag_ipsec.php:92 usr/local/www/diag_ipsec.php:103
+#: usr/local/www/diag_ipsec.php:104 usr/local/www/diag_ipsec.php:106
msgid "Remote IP"
msgstr "IP remoto"
#: usr/local/www/diag_ipsec.php:93 usr/local/www/vpn_ipsec_phase2.php:419
#: usr/local/www/diag_ipsec.php:104 usr/local/www/vpn_ipsec_phase2.php:445
+#: usr/local/www/diag_ipsec.php:105 usr/local/www/vpn_ipsec_phase2.php:511
+#: usr/local/www/diag_ipsec.php:107 usr/local/www/vpn_ipsec_phase2.php:533
msgid "Local Network"
msgstr "Rede Local"
@@ -19611,36 +24485,39 @@ msgstr "Rede Local"
#: usr/local/www/vpn_openvpn_server.php:1055 usr/local/www/diag_ipsec.php:105
#: usr/local/www/vpn_openvpn_server.php:1197
#: usr/local/www/vpn_ipsec_phase2.php:487
-#: usr/local/www/vpn_openvpn_client.php:767
+#: usr/local/www/vpn_openvpn_client.php:767 usr/local/www/diag_ipsec.php:106
+#: usr/local/www/vpn_ipsec_phase2.php:589 usr/local/www/diag_ipsec.php:108
+#: usr/local/www/vpn_ipsec_phase2.php:610
msgid "Remote Network"
msgstr "Rede Remota"
#: usr/local/www/diag_ipsec.php:165 usr/local/www/diag_ipsec_sad.php:135
-#: usr/local/www/diag_ipsec_spd.php:144
+#: usr/local/www/diag_ipsec_spd.php:144 usr/local/www/diag_ipsec_sad.php:136
+#: usr/local/www/diag_ipsec_spd.php:145
msgid "You can configure your IPsec"
msgstr "Você pode configurar seu IPsec"
-#: usr/local/www/diag_ipsec_sad.php:90
+#: usr/local/www/diag_ipsec_sad.php:90 usr/local/www/diag_ipsec_sad.php:91
msgid "SPI"
msgstr "SPI"
-#: usr/local/www/diag_ipsec_sad.php:91
+#: usr/local/www/diag_ipsec_sad.php:91 usr/local/www/diag_ipsec_sad.php:92
msgid "Enc. alg."
msgstr "Enc. alg."
-#: usr/local/www/diag_ipsec_sad.php:92
+#: usr/local/www/diag_ipsec_sad.php:92 usr/local/www/diag_ipsec_sad.php:93
msgid "Auth. alg."
msgstr "Log de Autenticação."
-#: usr/local/www/diag_ipsec_sad.php:93
+#: usr/local/www/diag_ipsec_sad.php:93 usr/local/www/diag_ipsec_sad.php:94
msgid "Data"
msgstr "Data"
-#: usr/local/www/diag_ipsec_sad.php:112
+#: usr/local/www/diag_ipsec_sad.php:112 usr/local/www/diag_ipsec_sad.php:113
msgid "Do you really want to delete this security association?"
msgstr "Você realmente deseja apagar esta associação de segurança?"
-#: usr/local/www/diag_ipsec_sad.php:121
+#: usr/local/www/diag_ipsec_sad.php:121 usr/local/www/diag_ipsec_sad.php:122
msgid "No IPsec security associations."
msgstr "Nenhuma associação de segurança IPsec."
@@ -19648,25 +24525,36 @@ msgstr "Nenhuma associação de segurança IPsec."
#: usr/local/www/services_captiveportal_ip.php:163
#: usr/local/www/services_captiveportal_hostname.php:128
#: usr/local/www/services_captiveportal_hostname.php:164
+#: usr/local/www/services_captiveportal_ip.php:121
+#: usr/local/www/services_captiveportal_ip.php:161
+#: usr/local/www/services_captiveportal_hostname.php:126
+#: usr/local/www/services_captiveportal_hostname.php:162
msgid "add address"
msgstr "adicionar endereço"
#: usr/local/www/services_captiveportal_ip.php:153
#: usr/local/www/services_captiveportal_hostname.php:154
+#: usr/local/www/services_captiveportal_ip.php:151
+#: usr/local/www/services_captiveportal_hostname.php:152
msgid "edit address"
msgstr "editar endereço"
#: usr/local/www/services_captiveportal_ip.php:154
#: usr/local/www/services_captiveportal_hostname.php:155
+#: usr/local/www/services_captiveportal_ip.php:152
+#: usr/local/www/services_captiveportal_hostname.php:153
msgid "Do you really want to delete this address?"
msgstr "Você realmente deseja apagar esse endereço?"
#: usr/local/www/services_captiveportal_ip.php:154
#: usr/local/www/services_captiveportal_hostname.php:155
+#: usr/local/www/services_captiveportal_ip.php:152
+#: usr/local/www/services_captiveportal_hostname.php:153
msgid "delete address"
msgstr "apagar endereço"
#: usr/local/www/services_captiveportal_ip.php:172
+#: usr/local/www/services_captiveportal_ip.php:170
msgid ""
"Adding allowed IP addresses will allow IP access to/from these addresses "
"through the captive portal without being taken to the portal page. This can "
@@ -19687,46 +24575,68 @@ msgstr ""
#: usr/local/www/services_captiveportal_ip.php:183
#: usr/local/www/services_captiveportal_hostname.php:177
#: usr/local/www/services_captiveportal_hostname.php:184
+#: usr/local/www/services_captiveportal_ip.php:174
+#: usr/local/www/services_captiveportal_ip.php:181
+#: usr/local/www/services_captiveportal_hostname.php:175
+#: usr/local/www/services_captiveportal_hostname.php:182
msgid "All connections"
msgstr "Todas as conexões"
#: usr/local/www/services_captiveportal_ip.php:176
#: usr/local/www/services_captiveportal_ip.php:183
+#: usr/local/www/services_captiveportal_ip.php:174
+#: usr/local/www/services_captiveportal_ip.php:181
msgid "the IP address are allowed"
msgstr "o endereço IP permitido"
#: usr/local/www/services_captiveportal_ip.php:183
#: usr/local/www/services_captiveportal_hostname.php:184
+#: usr/local/www/services_captiveportal_ip.php:181
+#: usr/local/www/services_captiveportal_hostname.php:182
msgid "from"
msgstr "de"
#: usr/local/www/services_captiveportal_ip_edit.php:63
+#: usr/local/www/services_captiveportal_ip_edit.php:60
msgid "Edit allowed IP address"
msgstr "Editar endereços IP permitidos"
#: usr/local/www/services_captiveportal_ip_edit.php:102
+#: usr/local/www/services_captiveportal_ip_edit.php:100
+#: usr/local/www/services_captiveportal_ip_edit.php:99
msgid "Allowed IP address"
msgstr "Endereços IP permitidos"
#: usr/local/www/services_captiveportal_ip_edit.php:110
#: usr/local/www/services_captiveportal_mac_edit.php:108
#: usr/local/www/services_captiveportal_hostname_edit.php:110
+#: usr/local/www/services_captiveportal_hostname_edit.php:108
+#: usr/local/www/services_captiveportal_mac_edit.php:106
+#: usr/local/www/services_captiveportal_ip_edit.php:108
msgid "Upload speed needs to be an integer"
msgstr "Velocidade de carregamento necessário deve ser um inteiro"
#: usr/local/www/services_captiveportal_ip_edit.php:113
#: usr/local/www/services_captiveportal_mac_edit.php:110
#: usr/local/www/services_captiveportal_hostname_edit.php:112
+#: usr/local/www/services_captiveportal_hostname_edit.php:110
+#: usr/local/www/services_captiveportal_mac_edit.php:108
+#: usr/local/www/services_captiveportal_ip_edit.php:111
msgid "Download speed needs to be an integer"
msgstr "Velocidade de download necessária deve ser um inteiro"
#: usr/local/www/services_captiveportal_ip_edit.php:120
#: usr/local/www/services_captiveportal_mac_edit.php:117
#: usr/local/www/services_captiveportal_hostname_edit.php:119
+#: usr/local/www/services_captiveportal_hostname_edit.php:117
+#: usr/local/www/services_captiveportal_mac_edit.php:115
+#: usr/local/www/services_captiveportal_ip_edit.php:118
msgid "already allowed"
msgstr "já permitido"
#: usr/local/www/services_captiveportal_ip_edit.php:175
+#: usr/local/www/services_captiveportal_ip_edit.php:173
+#: usr/local/www/services_captiveportal_ip_edit.php:184
msgid "Edit allowed ip rule"
msgstr "Edita regras de IP permitidas"
@@ -19738,6 +24648,14 @@ msgstr "Edita regras de IP permitidas"
#: usr/local/www/system_gateways_edit.php:454
#: usr/local/www/system_gateways_edit.php:463
#: usr/local/www/system_gateways_edit.php:475
+#: usr/local/www/services_captiveportal_hostname_edit.php:162
+#: usr/local/www/services_captiveportal_hostname_edit.php:170
+#: usr/local/www/system_gateways_edit.php:569
+#: usr/local/www/system_gateways_edit.php:581
+#: usr/local/www/services_captiveportal_ip_edit.php:180
+#: usr/local/www/services_captiveportal_ip_edit.php:189
+#: usr/local/www/system_gateways_edit.php:573
+#: usr/local/www/system_gateways_edit.php:585
msgid "From"
msgstr "De"
@@ -19749,6 +24667,14 @@ msgstr "De"
#: usr/local/www/system_gateways_edit.php:457
#: usr/local/www/system_gateways_edit.php:466
#: usr/local/www/system_gateways_edit.php:478
+#: usr/local/www/services_captiveportal_hostname_edit.php:162
+#: usr/local/www/services_captiveportal_hostname_edit.php:171
+#: usr/local/www/system_gateways_edit.php:572
+#: usr/local/www/system_gateways_edit.php:584
+#: usr/local/www/services_captiveportal_ip_edit.php:180
+#: usr/local/www/services_captiveportal_ip_edit.php:190
+#: usr/local/www/system_gateways_edit.php:576
+#: usr/local/www/system_gateways_edit.php:588
msgid "To"
msgstr "Para"
@@ -19756,10 +24682,15 @@ msgstr "Para"
#: usr/local/www/services_captiveportal_ip_edit.php:192
#: usr/local/www/services_captiveportal_hostname_edit.php:172
#: usr/local/www/services_captiveportal_hostname_edit.php:173
+#: usr/local/www/services_captiveportal_hostname_edit.php:170
+#: usr/local/www/services_captiveportal_hostname_edit.php:171
+#: usr/local/www/services_captiveportal_ip_edit.php:189
+#: usr/local/www/services_captiveportal_ip_edit.php:190
msgid "Use"
msgstr "Use"
#: usr/local/www/services_captiveportal_ip_edit.php:191
+#: usr/local/www/services_captiveportal_ip_edit.php:189
msgid ""
"to always allow an IP address through the captive portal (without "
"authentication)"
@@ -19768,6 +24699,7 @@ msgstr ""
"autenticação)"
#: usr/local/www/services_captiveportal_ip_edit.php:192
+#: usr/local/www/services_captiveportal_ip_edit.php:190
msgid ""
"to allow access from all clients (even non-authenticated ones) behind the "
"portal to this IP address"
@@ -19776,16 +24708,25 @@ msgstr ""
"atrás do portal para esse endereço de IP"
#: usr/local/www/services_captiveportal_ip_edit.php:204
+#: usr/local/www/services_captiveportal_ip_edit.php:202
+#: usr/local/www/services_captiveportal_ip_edit.php:196
msgid "IP address and subnet mask. Use /32 for a single IP"
msgstr "Endereço IP e máscara de subrede. Use /32 para um IP sozinho"
#: usr/local/www/services_captiveportal_ip_edit.php:215
#: usr/local/www/services_captiveportal_mac_edit.php:189
#: usr/local/www/services_captiveportal_hostname_edit.php:189
+#: usr/local/www/services_captiveportal_hostname_edit.php:187
+#: usr/local/www/services_captiveportal_mac_edit.php:187
+#: usr/local/www/services_captiveportal_ip_edit.php:213
+#: usr/local/www/services_captiveportal_ip_edit.php:207
+#: usr/local/www/services_captiveportal_mac_edit.php:200
msgid "Bandwidth up"
msgstr "Tamanho de banda de carregamento"
#: usr/local/www/services_captiveportal_ip_edit.php:218
+#: usr/local/www/services_captiveportal_ip_edit.php:216
+#: usr/local/www/services_captiveportal_ip_edit.php:210
msgid "Enter a upload limit to be enforced on this IP address in Kbit/s"
msgstr ""
"Informe um limite de carregamento para ser utilizado nesse endereço IP em "
@@ -19794,35 +24735,51 @@ msgstr ""
#: usr/local/www/services_captiveportal_ip_edit.php:222
#: usr/local/www/services_captiveportal_mac_edit.php:195
#: usr/local/www/services_captiveportal_hostname_edit.php:195
+#: usr/local/www/services_captiveportal_hostname_edit.php:193
+#: usr/local/www/services_captiveportal_mac_edit.php:193
+#: usr/local/www/services_captiveportal_ip_edit.php:220
+#: usr/local/www/services_captiveportal_ip_edit.php:214
+#: usr/local/www/services_captiveportal_mac_edit.php:206
msgid "Bandwidth down"
msgstr "Tamanho de banda de download"
#: usr/local/www/services_captiveportal_ip_edit.php:225
+#: usr/local/www/services_captiveportal_ip_edit.php:223
+#: usr/local/www/services_captiveportal_ip_edit.php:217
msgid "Enter a download limit to be enforced on this IP address in Kbit/s"
msgstr ""
"Informe o limite de download para ser utilizado nesse endereço IP em Kbit/s"
#: usr/local/www/services_captiveportal_mac.php:80
+#: usr/local/www/services_captiveportal_mac.php:78
msgid "No entry exists yet!"
msgstr "Nenhuma entrada existente ainda!"
#: usr/local/www/services_captiveportal_mac.php:84
+#: usr/local/www/services_captiveportal_mac.php:82
msgid "Please set the zone on which the operation should be allowed"
msgstr "Por favor, defina a zona na qual a operação deve ser permitida"
#: usr/local/www/services_captiveportal_mac.php:96
+#: usr/local/www/services_captiveportal_mac.php:94
msgid "No entry exists for this username:"
msgstr "Nenhuma entrada existente para esse nome de usuário:"
#: usr/local/www/services_captiveportal_mac.php:115
+#: usr/local/www/services_captiveportal_mac.php:113
+#: usr/local/www/services_captiveportal_mac.php:118
msgid "The entry was sucessfully deleted"
msgstr "A entrada foi apagada com sucesso"
#: usr/local/www/services_captiveportal_mac.php:117
+#: usr/local/www/services_captiveportal_mac.php:115
+#: usr/local/www/services_captiveportal_mac.php:120
msgid "No entry exists for this mac address:"
msgstr "Nenhuma entrada existente para esse endereço mac:"
#: usr/local/www/services_captiveportal_mac.php:148
+#: usr/local/www/services_captiveportal_mac.php:146
+#: usr/local/www/services_captiveportal_mac.php:156
msgid ""
"The captive portal MAC address configuration has been changed.<br>You must "
"apply the changes in order for them to take effect."
@@ -19831,24 +24788,36 @@ msgstr ""
"deve aplicar as modificações para que elas tenham efeito."
#: usr/local/www/services_captiveportal_mac.php:180
+#: usr/local/www/services_captiveportal_mac.php:178
+#: usr/local/www/services_captiveportal_mac.php:188
msgid "edit host"
msgstr "editar host"
#: usr/local/www/services_captiveportal_mac.php:181
#: usr/local/www/services_dnsmasq.php:276
#: usr/local/www/services_unbound.php:312
+#: usr/local/www/services_dnsmasq.php:277
+#: usr/local/www/services_captiveportal_mac.php:179
+#: usr/local/www/services_dnsmasq.php:302
+#: usr/local/www/services_captiveportal_mac.php:189
msgid "Do you really want to delete this host?"
msgstr "Você realmente deseja apagar esse host?"
#: usr/local/www/services_captiveportal_mac.php:181
+#: usr/local/www/services_captiveportal_mac.php:179
+#: usr/local/www/services_captiveportal_mac.php:189
msgid "delete host"
msgstr "remover host"
#: usr/local/www/services_captiveportal_mac.php:186
+#: usr/local/www/services_captiveportal_mac.php:184
+#: usr/local/www/services_captiveportal_mac.php:194
msgid "add host"
msgstr "adicionar host"
#: usr/local/www/services_captiveportal_mac.php:192
+#: usr/local/www/services_captiveportal_mac.php:190
+#: usr/local/www/services_captiveportal_mac.php:200
msgid ""
"Adding MAC addresses as pass-through MACs allows them access through the "
"captive portal automatically without being taken to the portal page."
@@ -19858,50 +24827,60 @@ msgstr ""
"à página do portal."
#: usr/local/www/services_captiveportal_mac_edit.php:60
+#: usr/local/www/services_captiveportal_mac_edit.php:57
msgid "Edit pass-through MAC address"
msgstr "Editar endereço MAC pass-through"
#: usr/local/www/services_captiveportal_mac_edit.php:105
+#: usr/local/www/services_captiveportal_mac_edit.php:103
msgid "A valid MAC address must be specified"
msgstr "Um endereço MAC válido deve ser especificado"
#: usr/local/www/services_captiveportal_mac_edit.php:172
+#: usr/local/www/services_captiveportal_mac_edit.php:170
+#: usr/local/www/services_captiveportal_mac_edit.php:177
msgid "Edit Pass-through MAC address"
msgstr "Editar liberação de tráfego (Pass-through) do endereço MAC"
#: usr/local/www/services_captiveportal_mac_edit.php:179
+#: usr/local/www/services_captiveportal_mac_edit.php:177
+#: usr/local/www/services_captiveportal_mac_edit.php:190
msgid "MAC address (6 hex octets separated by colons)"
msgstr "Endereço MAC (6 octetos hexadecimais separados por vírgulas)"
#: usr/local/www/services_captiveportal_mac_edit.php:192
+#: usr/local/www/services_captiveportal_mac_edit.php:190
+#: usr/local/www/services_captiveportal_mac_edit.php:203
msgid "Enter a upload limit to be enforced on this MAC address in Kbit/s"
msgstr ""
"Informe um limite de carregamento para ser utilizado nesse endereço MAC em "
"Kbit/s"
#: usr/local/www/services_captiveportal_mac_edit.php:198
+#: usr/local/www/services_captiveportal_mac_edit.php:196
+#: usr/local/www/services_captiveportal_mac_edit.php:209
msgid "Enter a download limit to be enforced on this MAC address in Kbit/s"
msgstr ""
"Informe um limite de download para ser utilizado nesse endereço MAC em Kbit/"
"s"
-#: usr/local/www/diag_ipsec_spd.php:90
+#: usr/local/www/diag_ipsec_spd.php:90 usr/local/www/diag_ipsec_spd.php:91
msgid "Tunnel endpoints"
msgstr "Extremidades do túnel"
-#: usr/local/www/diag_ipsec_spd.php:108
+#: usr/local/www/diag_ipsec_spd.php:108 usr/local/www/diag_ipsec_spd.php:109
msgid "Do you really want to delete this security policy?"
msgstr "Você realmente deseja excluir essa politica de segurança?"
-#: usr/local/www/diag_ipsec_spd.php:119
+#: usr/local/www/diag_ipsec_spd.php:119 usr/local/www/diag_ipsec_spd.php:120
msgid "incoming (as seen by firewall)"
msgstr "entrada (como visto pelo firewall)"
-#: usr/local/www/diag_ipsec_spd.php:126
+#: usr/local/www/diag_ipsec_spd.php:126 usr/local/www/diag_ipsec_spd.php:127
msgid "outgoing (as seen by firewall)"
msgstr "saída (como visto pelo firewall)"
-#: usr/local/www/diag_ipsec_spd.php:131
+#: usr/local/www/diag_ipsec_spd.php:131 usr/local/www/diag_ipsec_spd.php:132
msgid "No IPsec security policies."
msgstr "Nenhuma politica de segurança IPsec."
@@ -19923,16 +24902,22 @@ msgstr ""
"endereços IP estáticos"
#: usr/local/www/services_dhcp.php:111 usr/local/www/services_dhcpv6.php:74
+#: usr/local/www/services_router_advertisements.php:75
+#: usr/local/www/services_dhcpv6.php:75
msgid "Only interfaces configured with a static IP will be shown"
msgstr "Somente interfaces configuradas com um IP estático serão exibidas"
#: usr/local/www/services_dhcp.php:207 usr/local/www/services_dhcpv6.php:177
#: usr/local/www/services_dhcp.php:208 usr/local/www/services_dhcpv6.php:189
+#: usr/local/www/services_dhcp.php:254 usr/local/www/services_dhcpv6.php:174
+#: usr/local/www/services_dhcp.php:235 usr/local/www/services_dhcpv6.php:168
msgid "Range begin"
msgstr "Início do intervalo"
#: usr/local/www/services_dhcp.php:207 usr/local/www/services_dhcpv6.php:177
#: usr/local/www/services_dhcp.php:208 usr/local/www/services_dhcpv6.php:189
+#: usr/local/www/services_dhcp.php:254 usr/local/www/services_dhcpv6.php:174
+#: usr/local/www/services_dhcp.php:235 usr/local/www/services_dhcpv6.php:168
msgid "Range end"
msgstr "Fim do intervalo"
@@ -19941,14 +24926,25 @@ msgstr "Fim do intervalo"
#: usr/local/www/services_dhcpv6.php:188 usr/local/www/services_dhcp.php:213
#: usr/local/www/services_dhcp.php:215 usr/local/www/services_dhcpv6.php:194
#: usr/local/www/services_dhcpv6.php:198 usr/local/www/services_dhcpv6.php:200
+#: usr/local/www/services_dhcp.php:259 usr/local/www/services_dhcp.php:261
+#: usr/local/www/services_dhcpv6.php:179 usr/local/www/services_dhcpv6.php:183
+#: usr/local/www/services_dhcpv6.php:185 usr/local/www/services_dhcp.php:240
+#: usr/local/www/services_dhcp.php:242 usr/local/www/services_dhcpv6.php:173
+#: usr/local/www/services_dhcpv6.php:177
msgid "A valid range must be specified."
msgstr "Um intervalo válido deve ser especificado."
#: usr/local/www/services_dhcp.php:216 usr/local/www/services_dhcp.php:217
+#: usr/local/www/services_dhcp.php:263
+#: usr/local/www/services_dhcp_edit.php:207
+#: usr/local/www/services_dhcp.php:244
msgid "A valid IP address must be specified for the gateway."
msgstr "Um endereço IP válido deve ser especificado para o gateway."
#: usr/local/www/services_dhcp.php:218 usr/local/www/services_dhcp.php:219
+#: usr/local/www/services_dhcp.php:265
+#: usr/local/www/services_dhcp_edit.php:209
+#: usr/local/www/services_dhcp.php:246
msgid ""
"A valid IP address must be specified for the primary/secondary WINS servers."
msgstr ""
@@ -19956,6 +24952,9 @@ msgstr ""
"secundário."
#: usr/local/www/services_dhcp.php:223 usr/local/www/services_dhcp.php:224
+#: usr/local/www/services_dhcp.php:270
+#: usr/local/www/services_dhcp_edit.php:215
+#: usr/local/www/services_dhcp.php:251
#, php-format
msgid ""
"The gateway address %s does not lie within the chosen interface's subnet."
@@ -19963,6 +24962,9 @@ msgstr ""
"O endereço gateway %s não está dentro da subrede da interface escolhida."
#: usr/local/www/services_dhcp.php:226 usr/local/www/services_dhcp.php:227
+#: usr/local/www/services_dhcp.php:273
+#: usr/local/www/services_dhcp_edit.php:218
+#: usr/local/www/services_dhcp.php:254
msgid ""
"A valid IP address must be specified for the primary/secondary DNS servers."
msgstr ""
@@ -19971,11 +24973,17 @@ msgstr ""
#: usr/local/www/services_dhcp.php:229 usr/local/www/services_dhcpv6.php:195
#: usr/local/www/services_dhcp.php:230 usr/local/www/services_dhcpv6.php:207
+#: usr/local/www/services_dhcp.php:276 usr/local/www/services_dhcpv6.php:192
+#: usr/local/www/services_dhcp_edit.php:221
+#: usr/local/www/services_dhcp.php:257 usr/local/www/services_dhcpv6.php:186
msgid "The default lease time must be at least 60 seconds."
msgstr "O tempo de concessão padrão deve ser de no mínimo 60 segundos."
#: usr/local/www/services_dhcp.php:231 usr/local/www/services_dhcpv6.php:197
#: usr/local/www/services_dhcp.php:232 usr/local/www/services_dhcpv6.php:209
+#: usr/local/www/services_dhcp.php:278 usr/local/www/services_dhcpv6.php:194
+#: usr/local/www/services_dhcp_edit.php:223
+#: usr/local/www/services_dhcp.php:259 usr/local/www/services_dhcpv6.php:188
msgid ""
"The maximum lease time must be at least 60 seconds and higher than the "
"default lease time."
@@ -19985,12 +24993,18 @@ msgstr ""
#: usr/local/www/services_dhcp.php:233 usr/local/www/services_dhcpv6.php:199
#: usr/local/www/services_dhcp.php:234 usr/local/www/services_dhcpv6.php:211
+#: usr/local/www/services_dhcp.php:280 usr/local/www/services_dhcpv6.php:196
+#: usr/local/www/services_dhcp_edit.php:225
+#: usr/local/www/services_dhcp.php:261 usr/local/www/services_dhcpv6.php:190
msgid "A valid domain name must be specified for the dynamic DNS registration."
msgstr ""
"Um nome de domínio válido deve ser especificado para o registro de DNS "
"dinâmico."
#: usr/local/www/services_dhcp.php:235 usr/local/www/services_dhcp.php:246
+#: usr/local/www/services_dhcp.php:298
+#: usr/local/www/services_dhcp_edit.php:237
+#: usr/local/www/services_dhcp.php:279
msgid ""
"A valid IP address must be specified for the primary/secondary NTP servers."
msgstr ""
@@ -19999,40 +25013,53 @@ msgstr ""
#: usr/local/www/services_dhcp.php:237 usr/local/www/services_dhcpv6.php:203
#: usr/local/www/services_dhcp.php:248 usr/local/www/services_dhcpv6.php:225
+#: usr/local/www/services_dhcp.php:300 usr/local/www/services_dhcpv6.php:210
+#: usr/local/www/services_dhcp.php:281 usr/local/www/services_dhcpv6.php:204
msgid "A valid domain name must be specified for the DNS domain."
msgstr "Um nome de domínio válido deve ser especificado para o domínio DNS."
#: usr/local/www/services_dhcp.php:239 usr/local/www/services_dhcp.php:250
+#: usr/local/www/services_dhcp.php:302
+#: usr/local/www/services_dhcp_edit.php:239
+#: usr/local/www/services_dhcp.php:283
msgid "A valid IP address or hostname must be specified for the TFTP server."
msgstr ""
"Um endereço IP válido ou nome de host deve ser especificado para o servidor "
"TFTP."
#: usr/local/www/services_dhcp.php:241 usr/local/www/services_dhcp.php:252
+#: usr/local/www/services_dhcp.php:304
+#: usr/local/www/services_dhcp_edit.php:241
+#: usr/local/www/services_dhcp.php:285
msgid "A valid IP address must be specified for the network boot server."
msgstr ""
"Um endereço IP válido deve ser especificado para o servidor de boot da rede."
#: usr/local/www/services_dhcp.php:244 usr/local/www/services_dhcp.php:255
+#: usr/local/www/services_dhcp.php:307 usr/local/www/services_dhcp.php:288
msgid "You cannot use the network address in the starting subnet range."
msgstr ""
"Você não pode usar o endereço da rede no início do intervalo da subrede."
#: usr/local/www/services_dhcp.php:246 usr/local/www/services_dhcp.php:257
+#: usr/local/www/services_dhcp.php:309 usr/local/www/services_dhcp.php:290
msgid "You cannot use the broadcast address in the ending subnet range."
msgstr ""
"Você não pode usar o endereço de broadcast no final do intervalo de subrede."
#: usr/local/www/services_dhcp.php:253 usr/local/www/services_dhcp.php:264
+#: usr/local/www/services_dhcp.php:316 usr/local/www/services_dhcp.php:297
#, php-format
msgid "The subnet range cannot overlap with virtual IP address %s."
msgstr "O intervalo de subrede não pode sobrepor o endereço IP virtual %s."
#: usr/local/www/services_dhcp.php:268 usr/local/www/services_dhcp.php:279
+#: usr/local/www/services_dhcp.php:331 usr/local/www/services_dhcp.php:312
msgid "Text type cannot include quotation marks."
msgstr "Tipo texto não pode ter aspas."
#: usr/local/www/services_dhcp.php:270 usr/local/www/services_dhcp.php:281
+#: usr/local/www/services_dhcp.php:333 usr/local/www/services_dhcp.php:314
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:"
@@ -20043,20 +25070,24 @@ msgstr ""
"01:23:45:67:89:ab:cd:ef"
#: usr/local/www/services_dhcp.php:272 usr/local/www/services_dhcp.php:283
+#: usr/local/www/services_dhcp.php:335 usr/local/www/services_dhcp.php:316
msgid "Boolean type must be true, false, on, or off."
msgstr "Tipo booleano deve ser true, false, on ou off."
#: usr/local/www/services_dhcp.php:274 usr/local/www/services_dhcp.php:285
+#: usr/local/www/services_dhcp.php:337 usr/local/www/services_dhcp.php:318
msgid "Unsigned 8-bit integer type must be a number in the range 0 to 255."
msgstr ""
"Inteiro de 8-bits sem sinal deve ser um número no intervalo de 0 a 255."
#: usr/local/www/services_dhcp.php:276 usr/local/www/services_dhcp.php:287
+#: usr/local/www/services_dhcp.php:339 usr/local/www/services_dhcp.php:320
msgid "Unsigned 16-bit integer type must be a number in the range 0 to 65535."
msgstr ""
"Inteiro de 16-bits sem sinal deve ser um número no intervalo de 0 a 65535."
#: usr/local/www/services_dhcp.php:278 usr/local/www/services_dhcp.php:289
+#: usr/local/www/services_dhcp.php:341 usr/local/www/services_dhcp.php:322
msgid ""
"Unsigned 32-bit integer type must be a number in the range 0 to 4294967295."
msgstr ""
@@ -20064,11 +25095,13 @@ msgstr ""
"4294967295."
#: usr/local/www/services_dhcp.php:280 usr/local/www/services_dhcp.php:291
+#: usr/local/www/services_dhcp.php:343 usr/local/www/services_dhcp.php:324
msgid "Signed 8-bit integer type must be a number in the range -128 to 127."
msgstr ""
"Inteiro de 8-bits com sinal deve ser um número no intervalo de -128 a 127."
#: usr/local/www/services_dhcp.php:282 usr/local/www/services_dhcp.php:293
+#: usr/local/www/services_dhcp.php:345 usr/local/www/services_dhcp.php:326
msgid ""
"Signed 16-bit integer type must be a number in the range -32768 to 32767."
msgstr ""
@@ -20076,6 +25109,7 @@ msgstr ""
"32767."
#: usr/local/www/services_dhcp.php:284 usr/local/www/services_dhcp.php:295
+#: usr/local/www/services_dhcp.php:347 usr/local/www/services_dhcp.php:328
msgid ""
"Signed 32-bit integer type must be a number in the range -2147483648 to "
"2147483647."
@@ -20084,22 +25118,29 @@ msgstr ""
"a 2147483647."
#: usr/local/www/services_dhcp.php:286 usr/local/www/services_dhcp.php:297
+#: usr/local/www/services_dhcp.php:349 usr/local/www/services_dhcp.php:330
msgid "IP address or host type must be an IP address or host name."
msgstr "Endereço IP ou tipo de host deve ser um endereço IP ou nome de host."
#: usr/local/www/services_dhcp.php:297 usr/local/www/services_dhcpv6.php:230
#: usr/local/www/services_dhcp.php:308 usr/local/www/services_dhcpv6.php:252
+#: usr/local/www/services_dhcp.php:360 usr/local/www/services_dhcpv6.php:237
+#: usr/local/www/services_dhcp.php:341 usr/local/www/services_dhcpv6.php:232
msgid "The specified range lies outside of the current subnet."
msgstr "O intervalo especificado está fora da subrede atual."
#: usr/local/www/services_dhcp.php:301 usr/local/www/services_dhcp.php:312
-#: usr/local/www/services_dhcpv6.php:257
+#: usr/local/www/services_dhcpv6.php:257 usr/local/www/services_dhcp.php:364
+#: usr/local/www/services_dhcpv6.php:242 usr/local/www/services_dhcp.php:345
+#: usr/local/www/services_dhcpv6.php:237
msgid "The range is invalid (first element higher than second element)."
msgstr ""
"O intervalo é inválido (primeiro elemento maior que o segunto elemento)."
#: usr/local/www/services_dhcp.php:305 usr/local/www/services_dhcpv6.php:240
#: usr/local/www/services_dhcp.php:316 usr/local/www/services_dhcpv6.php:261
+#: usr/local/www/services_dhcp.php:372 usr/local/www/services_dhcpv6.php:246
+#: usr/local/www/services_dhcp.php:368 usr/local/www/services_dhcpv6.php:241
#, php-format
msgid ""
"You must disable the DHCP relay on the %s interface before enabling the DHCP "
@@ -20109,57 +25150,72 @@ msgstr ""
"servidor DHCP."
#: usr/local/www/services_dhcp.php:315 usr/local/www/services_dhcp.php:326
-#: usr/local/www/services_dhcpv6.php:276
+#: usr/local/www/services_dhcpv6.php:276 usr/local/www/services_dhcp.php:382
+#: usr/local/www/services_dhcpv6.php:261 usr/local/www/services_dhcp.php:378
+#: usr/local/www/services_dhcpv6.php:256
#, php-format
msgid "The DHCP range cannot overlap any static DHCP mappings."
msgstr "O intervalo DHCP não pode sobrepor nenhum mapeamento DHCP estático."
#: usr/local/www/services_dhcp.php:421 usr/local/www/services_dhcp.php:433
+#: usr/local/www/services_dhcp.php:527 usr/local/www/services_dhcp.php:526
msgid "DHCP server"
msgstr "Servidor DHCP"
#: usr/local/www/services_dhcp.php:435 usr/local/www/services_dhcp.php:447
+#: usr/local/www/services_dhcp.php:540 usr/local/www/services_dhcp.php:539
msgid "Text"
msgstr "Texto"
#: usr/local/www/services_dhcp.php:435 usr/local/www/services_dhcp.php:447
+#: usr/local/www/services_dhcp.php:540 usr/local/www/services_dhcp.php:539
msgid "String"
msgstr "String"
#: usr/local/www/services_dhcp.php:435 usr/local/www/services_dhcp.php:447
+#: usr/local/www/services_dhcp.php:540 usr/local/www/services_dhcp.php:539
msgid "Boolean"
msgstr "Booleano"
#: usr/local/www/services_dhcp.php:436 usr/local/www/services_dhcp.php:448
+#: usr/local/www/services_dhcp.php:541 usr/local/www/services_dhcp.php:540
msgid "Unsigned 8-bit integer"
msgstr "Inteiro de 8-bits sem sinal"
#: usr/local/www/services_dhcp.php:436 usr/local/www/services_dhcp.php:448
+#: usr/local/www/services_dhcp.php:541 usr/local/www/services_dhcp.php:540
msgid "Unsigned 16-bit integer"
msgstr "Inteiro de 16-bits sem sinal"
#: usr/local/www/services_dhcp.php:436 usr/local/www/services_dhcp.php:448
+#: usr/local/www/services_dhcp.php:541 usr/local/www/services_dhcp.php:540
msgid "Unsigned 32-bit integer"
msgstr "Inteiro de 32-bits sem sinal"
#: usr/local/www/services_dhcp.php:437 usr/local/www/services_dhcp.php:449
+#: usr/local/www/services_dhcp.php:542 usr/local/www/services_dhcp.php:541
msgid "Signed 8-bit integer"
msgstr "Inteiro de 8-bits com sinal"
#: usr/local/www/services_dhcp.php:437 usr/local/www/services_dhcp.php:449
+#: usr/local/www/services_dhcp.php:542 usr/local/www/services_dhcp.php:541
msgid "Signed 16-bit integer"
msgstr "Inteiro de 16-bits com sinal"
#: usr/local/www/services_dhcp.php:437 usr/local/www/services_dhcp.php:449
+#: usr/local/www/services_dhcp.php:542 usr/local/www/services_dhcp.php:541
msgid "Signed 32-bit integer"
msgstr "Inteiro de 32-bits com sinal"
#: usr/local/www/services_dhcp.php:437 usr/local/www/services_dhcp.php:449
+#: usr/local/www/services_dhcp.php:542 usr/local/www/services_dhcp.php:541
msgid "IP address or host"
msgstr "Endereço IP ou host"
#: usr/local/www/services_dhcp.php:528 usr/local/www/services_dhcpv6.php:453
#: usr/local/www/services_dhcp.php:541 usr/local/www/services_dhcpv6.php:480
+#: usr/local/www/services_dhcp.php:645 usr/local/www/services_dhcpv6.php:460
+#: usr/local/www/services_dhcp.php:647 usr/local/www/services_dhcpv6.php:455
msgid ""
"DHCP Relay is currently enabled. Cannot enable the DHCP Server service while "
"the DHCP Relay is enabled on any interface."
@@ -20170,21 +25226,28 @@ msgstr ""
#: usr/local/www/services_dhcp.php:536 usr/local/www/services_dhcpv6.php:461
#: usr/local/www/services_dhcp.php:549 usr/local/www/services_dhcpv6.php:488
+#: usr/local/www/services_dhcp.php:653 usr/local/www/services_dhcpv6.php:468
+#: usr/local/www/services_dhcp.php:655 usr/local/www/services_dhcpv6.php:463
msgid "The static mapping configuration has been changed"
msgstr "A configuração de mapeamento estático foi modificada"
#: usr/local/www/services_dhcp.php:575 usr/local/www/services_dhcp.php:588
+#: usr/local/www/services_dhcp.php:693 usr/local/www/services_dhcp.php:695
#, php-format
msgid "Enable DHCP server on %s interface"
msgstr "Habilitar servidor DHCP na interface %s"
#: usr/local/www/services_dhcp.php:583 usr/local/www/services_dhcpv6.php:518
#: usr/local/www/services_dhcp.php:596 usr/local/www/services_dhcpv6.php:592
+#: usr/local/www/services_dhcp.php:706 usr/local/www/services_dhcpv6.php:523
+#: usr/local/www/services_dhcp.php:708 usr/local/www/services_dhcpv6.php:534
msgid "Deny unknown clients"
msgstr "Negar clientes desconhecidos"
#: usr/local/www/services_dhcp.php:584 usr/local/www/services_dhcpv6.php:519
#: usr/local/www/services_dhcp.php:597 usr/local/www/services_dhcpv6.php:593
+#: usr/local/www/services_dhcp.php:707 usr/local/www/services_dhcpv6.php:524
+#: usr/local/www/services_dhcp.php:709 usr/local/www/services_dhcpv6.php:535
msgid ""
"If this is checked, only the clients defined below will get DHCP leases from "
"this server. "
@@ -20194,30 +25257,47 @@ msgstr ""
#: usr/local/www/services_dhcp.php:593 usr/local/www/services_dhcpv6.php:528
#: usr/local/www/services_dhcp.php:606 usr/local/www/services_dhcpv6.php:602
+#: usr/local/www/services_dhcp.php:716 usr/local/www/services_dhcpv6.php:533
+#: usr/local/www/services_captiveportal_ip_edit.php:99
+#: usr/local/www/services_dhcp.php:726 usr/local/www/services_dhcpv6.php:548
msgid "Subnet mask"
msgstr "Máscara de subrede"
#: usr/local/www/services_dhcp.php:599 usr/local/www/services_dhcpv6.php:534
#: usr/local/www/services_dhcp.php:612 usr/local/www/services_dhcpv6.php:608
+#: usr/local/www/services_dhcp.php:722 usr/local/www/services_dhcpv6.php:539
+#: usr/local/www/services_dhcp.php:732 usr/local/www/services_dhcpv6.php:554
msgid "Available range"
msgstr "Intervalo disponível"
#: usr/local/www/services_dhcp.php:616 usr/local/www/services_dhcpv6.php:552
#: usr/local/www/services_dhcp.php:629 usr/local/www/services_dhcpv6.php:625
+#: usr/local/www/services_dhcp.php:750 usr/local/www/vpn_l2tp.php:342
+#: usr/local/www/services_dhcpv6.php:556 usr/local/www/vpn_l2tp.php:345
+#: usr/local/www/services_dhcp.php:760 usr/local/www/services_dhcpv6.php:573
msgid "Subnet Mask"
msgstr "Máscara de subrede"
#: usr/local/www/services_dhcp.php:633 usr/local/www/services_dhcpv6.php:569
#: usr/local/www/services_dhcp.php:646 usr/local/www/services_dhcpv6.php:642
+#: usr/local/www/services_dhcp.php:767 usr/local/www/services_dhcpv6.php:573
+#: usr/local/www/services_dhcp.php:777 usr/local/www/services_dhcpv6.php:590
msgid "Range"
msgstr "Intervalo"
#: usr/local/www/services_dhcp.php:640 usr/local/www/services_dhcp.php:653
+#: usr/local/www/services_dhcp.php:829
+#: usr/local/www/services_dhcp_edit.php:395
+#: usr/local/www/services_dhcp.php:843
msgid "WINS servers"
msgstr "Servidores WINS"
#: usr/local/www/services_dhcp.php:651 usr/local/www/services_dhcpv6.php:594
#: usr/local/www/services_dhcp.php:664 usr/local/www/services_dhcpv6.php:671
+#: usr/local/www/services_router_advertisements.php:376
+#: usr/local/www/services_dhcp.php:840 usr/local/www/services_dhcpv6.php:602
+#: usr/local/www/services_dhcp_edit.php:406
+#: usr/local/www/services_dhcp.php:854 usr/local/www/services_dhcpv6.php:619
msgid ""
"NOTE: leave blank to use the system default DNS servers - this interface's "
"IP if DNS forwarder is enabled, otherwise the servers configured on the "
@@ -20228,7 +25308,9 @@ msgstr ""
"servidores configurados na página Principal."
#: usr/local/www/services_dhcp.php:658 usr/local/www/services_dhcpv6.php:602
-#: usr/local/www/services_dhcp.php:671
+#: usr/local/www/services_dhcp.php:671 usr/local/www/services_dhcp.php:847
+#: usr/local/www/services_dhcp_edit.php:413
+#: usr/local/www/services_dhcp.php:861
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 "
@@ -20239,11 +25321,17 @@ msgstr ""
#: usr/local/www/services_dhcp.php:662 usr/local/www/services_dhcpv6.php:607
#: usr/local/www/services_dhcp.php:675 usr/local/www/services_dhcpv6.php:675
+#: usr/local/www/services_dhcp.php:851 usr/local/www/services_dhcpv6.php:606
+#: usr/local/www/services_dhcp_edit.php:417
+#: usr/local/www/services_dhcp.php:865 usr/local/www/services_dhcpv6.php:623
msgid "Domain name"
msgstr "Nome de domínio"
#: usr/local/www/services_dhcp.php:665 usr/local/www/services_dhcpv6.php:610
#: usr/local/www/services_dhcp.php:678 usr/local/www/services_dhcpv6.php:678
+#: usr/local/www/services_dhcp.php:854 usr/local/www/services_dhcpv6.php:609
+#: usr/local/www/services_dhcp_edit.php:420
+#: usr/local/www/services_dhcp.php:868 usr/local/www/services_dhcpv6.php:626
msgid ""
"The default is to use the domain name of this system as the default domain "
"name provided by DHCP. You may specify an alternate domain name here."
@@ -20254,6 +25342,10 @@ msgstr ""
#: usr/local/www/services_dhcp.php:669 usr/local/www/services_dhcpv6.php:614
#: usr/local/www/services_dhcp.php:682 usr/local/www/services_dhcpv6.php:682
+#: usr/local/www/services_router_advertisements.php:381
+#: usr/local/www/services_dhcp.php:858 usr/local/www/services_dhcpv6.php:613
+#: usr/local/www/services_dhcp_edit.php:424
+#: usr/local/www/services_dhcp.php:872 usr/local/www/services_dhcpv6.php:630
msgid "Domain search list"
msgstr "Lista de busca de domínio"
@@ -20264,11 +25356,17 @@ msgstr ""
#: usr/local/www/services_dhcp.php:676 usr/local/www/services_dhcpv6.php:621
#: usr/local/www/services_dhcp.php:689 usr/local/www/services_dhcpv6.php:689
+#: usr/local/www/services_dhcp.php:865 usr/local/www/services_dhcpv6.php:620
+#: usr/local/www/services_dhcp_edit.php:431
+#: usr/local/www/services_dhcp.php:879 usr/local/www/services_dhcpv6.php:637
msgid "Default lease time"
msgstr "Tempo de concessão padrão"
#: usr/local/www/services_dhcp.php:680 usr/local/www/services_dhcpv6.php:625
#: usr/local/www/services_dhcp.php:693 usr/local/www/services_dhcpv6.php:693
+#: usr/local/www/services_dhcp.php:869 usr/local/www/services_dhcpv6.php:624
+#: usr/local/www/services_dhcp_edit.php:435
+#: usr/local/www/services_dhcp.php:883 usr/local/www/services_dhcpv6.php:641
msgid ""
"This is used for clients that do not ask for a specific expiration time."
msgstr ""
@@ -20277,16 +25375,25 @@ msgstr ""
#: usr/local/www/services_dhcp.php:682 usr/local/www/services_dhcpv6.php:627
#: usr/local/www/services_dhcp.php:695 usr/local/www/services_dhcpv6.php:695
+#: usr/local/www/services_dhcp.php:871 usr/local/www/services_dhcpv6.php:626
+#: usr/local/www/services_dhcp_edit.php:437
+#: usr/local/www/services_dhcp.php:885 usr/local/www/services_dhcpv6.php:643
msgid "The default is 7200 seconds."
msgstr "O padrão é 7200 segundos."
#: usr/local/www/services_dhcp.php:686 usr/local/www/services_dhcpv6.php:631
#: usr/local/www/services_dhcp.php:699 usr/local/www/services_dhcpv6.php:699
+#: usr/local/www/services_dhcp.php:875 usr/local/www/services_dhcpv6.php:630
+#: usr/local/www/services_dhcp_edit.php:441
+#: usr/local/www/services_dhcp.php:889 usr/local/www/services_dhcpv6.php:647
msgid "Maximum lease time"
msgstr "Tempo máximo de concessão"
#: usr/local/www/services_dhcp.php:690 usr/local/www/services_dhcpv6.php:635
#: usr/local/www/services_dhcp.php:703 usr/local/www/services_dhcpv6.php:703
+#: usr/local/www/services_dhcp.php:879 usr/local/www/services_dhcpv6.php:634
+#: usr/local/www/services_dhcp_edit.php:445
+#: usr/local/www/services_dhcp.php:893 usr/local/www/services_dhcpv6.php:651
msgid ""
"This is the maximum lease time for clients that ask for a specific "
"expiration time."
@@ -20296,16 +25403,23 @@ msgstr ""
#: usr/local/www/services_dhcp.php:692 usr/local/www/services_dhcpv6.php:637
#: usr/local/www/services_dhcp.php:705 usr/local/www/services_dhcpv6.php:705
+#: usr/local/www/services_dhcp.php:881 usr/local/www/services_dhcpv6.php:636
+#: usr/local/www/services_dhcp_edit.php:447
+#: usr/local/www/services_dhcp.php:895 usr/local/www/services_dhcpv6.php:653
msgid "The default is 86400 seconds."
msgstr "O padrão é 86400 segundos."
#: usr/local/www/services_dhcp.php:696 usr/local/www/services_dhcpv6.php:641
#: usr/local/www/services_dhcp.php:709 usr/local/www/services_dhcpv6.php:709
+#: usr/local/www/services_dhcp.php:886 usr/local/www/services_dhcpv6.php:640
+#: usr/local/www/services_dhcp.php:900 usr/local/www/services_dhcpv6.php:657
msgid "Failover peer IP:"
msgstr "Failover peer IP:"
#: usr/local/www/services_dhcp.php:699 usr/local/www/services_dhcpv6.php:644
#: usr/local/www/services_dhcp.php:712 usr/local/www/services_dhcpv6.php:712
+#: usr/local/www/services_dhcp.php:889 usr/local/www/services_dhcpv6.php:643
+#: usr/local/www/services_dhcpv6.php:660
msgid ""
"Leave blank to disable. Enter the interface IP address of the other "
"machine. Machines must be using CARP."
@@ -20314,14 +25428,18 @@ msgstr ""
"outra máquina. Máquinas devem ser CARP."
#: usr/local/www/services_dhcp.php:703 usr/local/www/services_dhcp.php:716
+#: usr/local/www/services_dhcp.php:895 usr/local/www/services_dhcp.php:909
+#: usr/local/www/services_dhcp.php:1150
msgid "Static ARP"
msgstr "ARP Estático"
#: usr/local/www/services_dhcp.php:710 usr/local/www/services_dhcp.php:723
+#: usr/local/www/services_dhcp.php:902 usr/local/www/services_dhcp.php:916
msgid "Enable Static ARP entries"
msgstr "Habilitar entradas ARP estáticas"
#: usr/local/www/services_dhcp.php:715 usr/local/www/services_dhcp.php:728
+#: usr/local/www/services_dhcp.php:907 usr/local/www/services_dhcp.php:921
msgid ""
"Only the machines listed below will be able to communicate with the firewall "
"on this NIC."
@@ -20331,21 +25449,33 @@ msgstr ""
#: usr/local/www/services_dhcp.php:725 usr/local/www/services_dhcpv6.php:651
#: usr/local/www/services_dhcp.php:763 usr/local/www/services_dhcpv6.php:744
+#: usr/local/www/services_dhcp.php:945 usr/local/www/services_dhcpv6.php:675
+#: usr/local/www/services_dhcp_edit.php:454
+#: usr/local/www/services_dhcp.php:958 usr/local/www/services_dhcpv6.php:692
msgid "Show Dynamic DNS"
msgstr "Mostrar DNS Dinâmico"
#: usr/local/www/services_dhcp.php:729 usr/local/www/services_dhcpv6.php:655
#: usr/local/www/services_dhcp.php:767 usr/local/www/services_dhcpv6.php:748
+#: usr/local/www/services_dhcp.php:949 usr/local/www/services_dhcpv6.php:679
+#: usr/local/www/services_dhcp_edit.php:458
+#: usr/local/www/services_dhcp.php:962 usr/local/www/services_dhcpv6.php:696
msgid "Enable registration of DHCP client names in DNS."
msgstr "Habilitar registro de nomes de clientes DHCP no DNS."
#: usr/local/www/services_dhcp.php:732 usr/local/www/services_dhcpv6.php:658
#: usr/local/www/services_dhcp.php:770 usr/local/www/services_dhcpv6.php:751
+#: usr/local/www/services_dhcp.php:952 usr/local/www/services_dhcpv6.php:682
+#: usr/local/www/services_dhcp_edit.php:461
+#: usr/local/www/services_dhcp.php:965 usr/local/www/services_dhcpv6.php:699
msgid "Note: Leave blank to disable dynamic DNS registration."
msgstr "Nota: Deixe em branco para desabilitar registro de DNS dinâmico."
#: usr/local/www/services_dhcp.php:733 usr/local/www/services_dhcpv6.php:659
#: usr/local/www/services_dhcp.php:771 usr/local/www/services_dhcpv6.php:752
+#: usr/local/www/services_dhcp.php:953 usr/local/www/services_dhcpv6.php:683
+#: usr/local/www/services_dhcp_edit.php:462
+#: usr/local/www/services_dhcp.php:966 usr/local/www/services_dhcpv6.php:700
msgid ""
"Enter the dynamic DNS domain which will be used to register client names in "
"the DNS server."
@@ -20355,26 +25485,41 @@ msgstr ""
#: usr/local/www/services_dhcp.php:738 usr/local/www/services_dhcpv6.php:664
#: usr/local/www/services_dhcp.php:776 usr/local/www/services_dhcpv6.php:757
+#: usr/local/www/services_dhcp.php:972 usr/local/www/services_dhcpv6.php:688
+#: usr/local/www/services_dhcp_edit.php:467
+#: usr/local/www/services_dhcp.php:985 usr/local/www/services_dhcpv6.php:705
msgid "NTP servers"
msgstr "Servidores NTP"
#: usr/local/www/services_dhcp.php:741 usr/local/www/services_dhcpv6.php:667
#: usr/local/www/services_dhcp.php:779 usr/local/www/services_dhcpv6.php:760
+#: usr/local/www/services_dhcp.php:975 usr/local/www/services_dhcpv6.php:691
+#: usr/local/www/services_dhcp_edit.php:470
+#: usr/local/www/services_dhcp.php:988 usr/local/www/services_dhcpv6.php:708
msgid "Show NTP configuration"
msgstr "Exibir configuração NTP"
#: usr/local/www/services_dhcp.php:750 usr/local/www/services_dhcpv6.php:676
#: usr/local/www/services_dhcp.php:788 usr/local/www/services_dhcpv6.php:770
+#: usr/local/www/services_dhcp.php:984 usr/local/www/services_dhcpv6.php:701
+#: usr/local/www/services_dhcp_edit.php:479
+#: usr/local/www/services_dhcp.php:997 usr/local/www/services_dhcpv6.php:718
msgid "TFTP server"
msgstr "Servidor TFTP"
#: usr/local/www/services_dhcp.php:753 usr/local/www/services_dhcpv6.php:679
#: usr/local/www/services_dhcp.php:791 usr/local/www/services_dhcpv6.php:773
+#: usr/local/www/services_dhcp.php:987 usr/local/www/services_dhcpv6.php:704
+#: usr/local/www/services_dhcp_edit.php:482
+#: usr/local/www/services_dhcp.php:1000 usr/local/www/services_dhcpv6.php:721
msgid "Show TFTP configuration"
msgstr "Exibir configuração TFTP"
#: usr/local/www/services_dhcp.php:757 usr/local/www/services_dhcpv6.php:683
#: usr/local/www/services_dhcp.php:795 usr/local/www/services_dhcpv6.php:777
+#: usr/local/www/services_dhcp.php:991 usr/local/www/services_dhcpv6.php:708
+#: usr/local/www/services_dhcp_edit.php:486
+#: usr/local/www/services_dhcp.php:1004 usr/local/www/services_dhcpv6.php:725
msgid ""
"Leave blank to disable. Enter a full hostname or IP for the TFTP server."
msgstr ""
@@ -20383,16 +25528,22 @@ msgstr ""
#: usr/local/www/services_dhcp.php:762 usr/local/www/services_dhcpv6.php:688
#: usr/local/www/services_dhcp.php:800 usr/local/www/services_dhcpv6.php:783
+#: usr/local/www/services_dhcp.php:996 usr/local/www/services_dhcpv6.php:714
+#: usr/local/www/services_dhcp.php:1009 usr/local/www/services_dhcpv6.php:731
msgid "LDAP URI"
msgstr "URI LDAP"
#: usr/local/www/services_dhcp.php:765 usr/local/www/services_dhcpv6.php:691
#: usr/local/www/services_dhcp.php:803 usr/local/www/services_dhcpv6.php:786
+#: usr/local/www/services_dhcp.php:999 usr/local/www/services_dhcpv6.php:717
+#: usr/local/www/services_dhcp.php:1012 usr/local/www/services_dhcpv6.php:734
msgid "Show LDAP configuration"
msgstr "Exibir configuração LDAP"
#: usr/local/www/services_dhcp.php:769 usr/local/www/services_dhcpv6.php:695
#: usr/local/www/services_dhcp.php:807 usr/local/www/services_dhcpv6.php:790
+#: usr/local/www/services_dhcp.php:1003 usr/local/www/services_dhcpv6.php:721
+#: usr/local/www/services_dhcp.php:1016 usr/local/www/services_dhcpv6.php:738
msgid ""
"Leave blank to disable. Enter a full URI for the LDAP server in the form "
"ldap://ldap.example.com/dc=example,dc=com"
@@ -20402,36 +25553,50 @@ msgstr ""
#: usr/local/www/services_dhcp.php:774 usr/local/www/services_dhcpv6.php:700
#: usr/local/www/services_dhcp.php:812 usr/local/www/services_dhcpv6.php:795
+#: usr/local/www/services_dhcp.php:1008 usr/local/www/services_dhcpv6.php:726
+#: usr/local/www/services_dhcp.php:1021 usr/local/www/services_dhcpv6.php:743
msgid "Enable network booting"
msgstr "Habilitar boot da rede"
#: usr/local/www/services_dhcp.php:777 usr/local/www/services_dhcpv6.php:703
#: usr/local/www/services_dhcp.php:815 usr/local/www/services_dhcpv6.php:798
+#: usr/local/www/services_dhcp.php:1011 usr/local/www/services_dhcpv6.php:729
+#: usr/local/www/services_dhcp.php:1024 usr/local/www/services_dhcpv6.php:746
msgid "Show Network booting"
msgstr "Exibir boot da Rede"
#: usr/local/www/services_dhcp.php:781 usr/local/www/services_dhcpv6.php:707
#: usr/local/www/services_dhcp.php:819 usr/local/www/services_dhcpv6.php:802
+#: usr/local/www/services_dhcp.php:1015 usr/local/www/services_dhcpv6.php:733
+#: usr/local/www/services_dhcp.php:1028 usr/local/www/services_dhcpv6.php:750
msgid "Enables network booting."
msgstr "Habilita boot da rede."
#: usr/local/www/services_dhcp.php:783 usr/local/www/services_dhcpv6.php:709
#: usr/local/www/services_dhcp.php:821 usr/local/www/services_dhcpv6.php:804
+#: usr/local/www/services_dhcp.php:1017 usr/local/www/services_dhcpv6.php:735
+#: usr/local/www/services_dhcp.php:1030 usr/local/www/services_dhcpv6.php:752
msgid "Enter the IP of the"
msgstr "Informe o IP do"
#: usr/local/www/services_dhcp.php:783 usr/local/www/services_dhcpv6.php:709
#: usr/local/www/services_dhcp.php:821 usr/local/www/services_dhcpv6.php:804
+#: usr/local/www/services_dhcp.php:1017 usr/local/www/services_dhcpv6.php:735
+#: usr/local/www/services_dhcp.php:1030 usr/local/www/services_dhcpv6.php:752
msgid "next-server"
msgstr "next-server"
#: usr/local/www/services_dhcp.php:785 usr/local/www/services_dhcpv6.php:711
#: usr/local/www/services_dhcp.php:823 usr/local/www/services_dhcpv6.php:806
+#: usr/local/www/services_dhcp.php:1019 usr/local/www/services_dhcpv6.php:737
+#: usr/local/www/services_dhcp.php:1032 usr/local/www/services_dhcpv6.php:754
msgid "and the filename"
msgstr "e o nome do arquivo"
#: usr/local/www/services_dhcp.php:787 usr/local/www/services_dhcpv6.php:713
#: usr/local/www/services_dhcp.php:825 usr/local/www/services_dhcpv6.php:808
+#: usr/local/www/services_dhcp.php:1021 usr/local/www/services_dhcpv6.php:739
+#: usr/local/www/services_dhcp.php:1034 usr/local/www/services_dhcpv6.php:756
msgid ""
"Note: You need both a filename and a boot server configured for this to work!"
msgstr ""
@@ -20443,6 +25608,13 @@ msgstr ""
#: usr/local/www/services_dhcp.php:827
#: usr/local/www/services_dhcp_edit.php:247
#: usr/local/www/services_dhcpv6.php:810
+#: usr/local/www/services_dhcpv6_edit.php:226
+#: usr/local/www/services_dhcp.php:1023
+#: usr/local/www/services_dhcp_edit.php:249
+#: usr/local/www/services_dhcpv6.php:741
+#: usr/local/www/services_dhcpv6_edit.php:229
+#: usr/local/www/services_dhcp_edit.php:377
+#: usr/local/www/services_dhcp.php:1036 usr/local/www/services_dhcpv6.php:758
msgid "Enter the"
msgstr "Informe o"
@@ -20451,6 +25623,13 @@ msgstr "Informe o"
#: usr/local/www/services_dhcp.php:827
#: usr/local/www/services_dhcp_edit.php:247
#: usr/local/www/services_dhcpv6.php:810
+#: usr/local/www/services_dhcpv6_edit.php:226
+#: usr/local/www/services_dhcp.php:1023
+#: usr/local/www/services_dhcp_edit.php:249
+#: usr/local/www/services_dhcpv6.php:741
+#: usr/local/www/services_dhcpv6_edit.php:229
+#: usr/local/www/services_dhcp_edit.php:377
+#: usr/local/www/services_dhcp.php:1036 usr/local/www/services_dhcpv6.php:758
msgid "root-path"
msgstr "root-path"
@@ -20459,11 +25638,20 @@ msgstr "root-path"
#: usr/local/www/services_dhcp.php:827
#: usr/local/www/services_dhcp_edit.php:247
#: usr/local/www/services_dhcpv6.php:810
+#: usr/local/www/services_dhcpv6_edit.php:226
+#: usr/local/www/services_dhcp.php:1023
+#: usr/local/www/services_dhcp_edit.php:249
+#: usr/local/www/services_dhcpv6.php:741
+#: usr/local/www/services_dhcpv6_edit.php:229
+#: usr/local/www/services_dhcp_edit.php:377
+#: usr/local/www/services_dhcp.php:1036 usr/local/www/services_dhcpv6.php:758
msgid "string"
msgstr "string"
#: usr/local/www/services_dhcp.php:791 usr/local/www/services_dhcpv6.php:717
#: usr/local/www/services_dhcp.php:829 usr/local/www/services_dhcpv6.php:812
+#: usr/local/www/services_dhcp.php:1025 usr/local/www/services_dhcpv6.php:743
+#: usr/local/www/services_dhcp.php:1038 usr/local/www/services_dhcpv6.php:760
msgid ""
"Note: string-format: iscsi:(servername):(protocol):(port):(LUN):targetname"
msgstr ""
@@ -20471,16 +25659,22 @@ msgstr ""
#: usr/local/www/services_dhcp.php:796 usr/local/www/services_dhcpv6.php:722
#: usr/local/www/services_dhcp.php:834 usr/local/www/services_dhcpv6.php:817
+#: usr/local/www/services_dhcp.php:1031 usr/local/www/services_dhcpv6.php:748
+#: usr/local/www/services_dhcp.php:1044 usr/local/www/services_dhcpv6.php:765
msgid "Additional BOOTP/DHCP Options"
msgstr "Opções BOOTP/DHCP Adicionais"
#: usr/local/www/services_dhcp.php:799 usr/local/www/services_dhcpv6.php:725
#: usr/local/www/services_dhcp.php:837 usr/local/www/services_dhcpv6.php:820
+#: usr/local/www/services_dhcp.php:1034 usr/local/www/services_dhcpv6.php:751
+#: usr/local/www/services_dhcp.php:1047 usr/local/www/services_dhcpv6.php:768
msgid "Show Additional BOOTP/DHCP Options"
msgstr "Exibir Opções BOOTP/DHCP Adicionais"
#: usr/local/www/services_dhcp.php:807 usr/local/www/services_dhcpv6.php:733
#: usr/local/www/services_dhcp.php:845 usr/local/www/services_dhcpv6.php:828
+#: usr/local/www/services_dhcp.php:1042 usr/local/www/services_dhcpv6.php:759
+#: usr/local/www/services_dhcp.php:1055 usr/local/www/services_dhcpv6.php:776
msgid ""
"Enter the DHCP option number and the value for each item you would like to "
"include in the DHCP lease information. For a list of available options "
@@ -20494,6 +25688,9 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers_edit.php:94
#: usr/local/www/services_dhcpv6.php:738 usr/local/www/services_dhcp.php:850
#: usr/local/www/services_dhcpv6.php:833
+#: usr/local/www/services_captiveportal_vouchers_edit.php:92
+#: usr/local/www/services_dhcp.php:1047 usr/local/www/services_dhcpv6.php:764
+#: usr/local/www/services_dhcp.php:1060 usr/local/www/services_dhcpv6.php:781
msgid "Number"
msgstr "Número"
@@ -20505,46 +25702,66 @@ msgstr "Número"
#: usr/local/www/system_certmanager.php:763
#: usr/local/www/load_balancer_relay_action_edit.php:505
#: usr/local/www/services_dhcp.php:852 usr/local/www/services_dhcpv6.php:834
+#: usr/local/www/load_balancer_relay_action_edit.php:503
+#: usr/local/www/services_dhcp.php:1049 usr/local/www/services_dhcpv6.php:765
+#: usr/local/www/services_dhcp.php:1062
+#: usr/local/www/system_certmanager.php:788
+#: usr/local/www/services_dhcpv6.php:782
msgid "Value"
msgstr "Valor"
#: usr/local/www/services_dhcp.php:877 usr/local/www/services_dhcpv6.php:790
#: usr/local/www/services_dhcp.php:915 usr/local/www/services_dhcpv6.php:885
+#: usr/local/www/services_dhcp.php:1119 usr/local/www/services_dhcpv6.php:816
+#: usr/local/www/services_dhcp.php:1132 usr/local/www/services_dhcpv6.php:833
msgid "The DNS servers entered in"
msgstr "Os servidores DNS informados em"
#: usr/local/www/services_dhcp.php:877 usr/local/www/services_dhcpv6.php:790
#: usr/local/www/services_dhcp.php:915 usr/local/www/services_dhcpv6.php:885
+#: usr/local/www/services_dhcp.php:1119 usr/local/www/services_dhcpv6.php:816
+#: usr/local/www/services_dhcp.php:1132 usr/local/www/services_dhcpv6.php:833
msgid "System: General setup"
msgstr "Sistema: Configurações Gerais"
#: usr/local/www/services_dhcp.php:878 usr/local/www/services_dhcpv6.php:791
#: usr/local/www/services_dhcp.php:916 usr/local/www/services_dhcpv6.php:886
+#: usr/local/www/services_dhcp.php:1120 usr/local/www/services_dhcpv6.php:817
+#: usr/local/www/services_dhcp.php:1133 usr/local/www/services_dhcpv6.php:834
msgid "(or the"
msgstr "(ou o"
#: usr/local/www/services_dhcp.php:879 usr/local/www/services_dhcpv6.php:792
#: usr/local/www/services_dhcp.php:917 usr/local/www/services_dhcpv6.php:887
+#: usr/local/www/services_dhcp.php:1121 usr/local/www/services_dhcpv6.php:818
+#: usr/local/www/services_dhcp.php:1134 usr/local/www/services_dhcpv6.php:835
msgid "if enabled)"
msgstr "se habilitado)"
#: usr/local/www/services_dhcp.php:879 usr/local/www/services_dhcpv6.php:792
#: usr/local/www/services_dhcp.php:917 usr/local/www/services_dhcpv6.php:887
+#: usr/local/www/services_dhcp.php:1121 usr/local/www/services_dhcpv6.php:818
+#: usr/local/www/services_dhcp.php:1134 usr/local/www/services_dhcpv6.php:835
msgid "will be assigned to clients by the DHCP server."
msgstr "será atribuído a clientes pelo servidor DHCP."
#: usr/local/www/services_dhcp.php:882 usr/local/www/services_dhcpv6.php:795
#: usr/local/www/services_dhcp.php:920 usr/local/www/services_dhcpv6.php:890
+#: usr/local/www/services_dhcp.php:1124 usr/local/www/services_dhcpv6.php:821
+#: usr/local/www/services_dhcp.php:1137 usr/local/www/services_dhcpv6.php:838
msgid "The DHCP lease table can be viewed on the"
msgstr "A tabela de concessão DHCP pode ser visualizada no"
#: usr/local/www/services_dhcp.php:882 usr/local/www/services_dhcpv6.php:795
#: usr/local/www/services_dhcp.php:920 usr/local/www/services_dhcpv6.php:890
+#: usr/local/www/services_dhcp.php:1124 usr/local/www/services_dhcp.php:1137
msgid "Status: DHCP leases"
msgstr "Status: concessões DHCP"
#: usr/local/www/services_dhcp.php:883 usr/local/www/services_dhcpv6.php:796
#: usr/local/www/services_dhcp.php:921 usr/local/www/services_dhcpv6.php:891
+#: usr/local/www/services_dhcp.php:1125 usr/local/www/services_dhcpv6.php:822
+#: usr/local/www/services_dhcp.php:1138 usr/local/www/services_dhcpv6.php:839
msgid "page."
msgstr "página."
@@ -20552,6 +25769,8 @@ msgstr "página."
#: usr/local/www/services_dhcpv6_edit.php:113
#: usr/local/www/services_dhcpv6_edit.php:115
#: usr/local/www/services_dhcp_edit.php:118
+#: usr/local/www/services_dhcpv6_edit.php:118
+#: usr/local/www/services_dhcp_edit.php:152
msgid "The hostname cannot end with a hyphen according to RFC952"
msgstr "O nome de host não pode terminar com um hífen de acordo com a RFC952"
@@ -20559,6 +25778,8 @@ msgstr "O nome de host não pode terminar com um hífen de acordo com a RFC952"
#: usr/local/www/services_dhcpv6_edit.php:118
#: usr/local/www/services_dhcpv6_edit.php:120
#: usr/local/www/services_dhcp_edit.php:123
+#: usr/local/www/services_dhcpv6_edit.php:123
+#: usr/local/www/services_dhcp_edit.php:157
msgid ""
"A valid hostname is specified, but the domain name part should be omitted"
msgstr ""
@@ -20567,16 +25788,19 @@ msgstr ""
#: usr/local/www/services_dhcp_edit.php:132
#: usr/local/www/services_dhcp_edit.php:134
+#: usr/local/www/services_dhcp_edit.php:168
msgid "Static ARP is enabled. You must specify an IP address."
msgstr "ARP estático está habilitado. Você deve especificar um endereço IP."
#: usr/local/www/services_dhcp_edit.php:141
#: usr/local/www/services_dhcp_edit.php:143
+#: usr/local/www/services_dhcp_edit.php:177
msgid "This Hostname, IP or MAC address already exists."
msgstr "Esse nome de host, endereço IP ou MAC já existe."
#: usr/local/www/services_dhcp_edit.php:152
#: usr/local/www/services_dhcp_edit.php:154
+#: usr/local/www/services_dhcp_edit.php:188
#, php-format
msgid "The IP address must not be within the DHCP range for this interface."
msgstr ""
@@ -20584,6 +25808,7 @@ msgstr ""
#: usr/local/www/services_dhcp_edit.php:159
#: usr/local/www/services_dhcp_edit.php:161
+#: usr/local/www/services_dhcp_edit.php:202
#, php-format
msgid "The IP address must lie in the %s subnet."
msgstr "O endereço IP deve estar na subrede %s."
@@ -20592,21 +25817,30 @@ msgstr "O endereço IP deve estar na subrede %s."
#: usr/local/www/services_dhcpv6_edit.php:172
#: usr/local/www/services_dhcpv6_edit.php:175
#: usr/local/www/services_dhcp_edit.php:193
+#: usr/local/www/services_dhcpv6_edit.php:178
+#: usr/local/www/services_dhcp_edit.php:301
msgid "Edit static mapping"
msgstr "Editar mapeamento estático"
#: usr/local/www/services_dhcp_edit.php:204
#: usr/local/www/services_dhcp_edit.php:207
+#: usr/local/www/services_dhcp_edit.php:206
+#: usr/local/www/services_dhcp_edit.php:334
msgid "Static DHCP Mapping"
msgstr "Mapeamento DHCP estático"
#: usr/local/www/services_dhcp_edit.php:215
#: usr/local/www/services_dhcp_edit.php:218
+#: usr/local/www/services_dhcp_edit.php:217
+#: usr/local/www/services_dhcp_edit.php:345
+#: usr/local/www/services_captiveportal_mac_edit.php:188
msgid "Copy my MAC address"
msgstr "Copie meu endereço MAC"
#: usr/local/www/services_dhcp_edit.php:217
#: usr/local/www/services_dhcp_edit.php:220
+#: usr/local/www/services_dhcp_edit.php:219
+#: usr/local/www/services_dhcp_edit.php:347
msgid "Enter a MAC address in the following format: xx:xx:xx:xx:xx:xx"
msgstr "Informe um endereço MAC no seguinte formato: xx:xx:xx:xx:xx:xx"
@@ -20620,6 +25854,10 @@ msgstr "Se nenhum endereço IP for dado, um será dinamicamente alocado do pool."
#: usr/local/www/services_dhcpv6_edit.php:208
#: usr/local/www/services_dhcpv6_edit.php:211
#: usr/local/www/services_dhcp_edit.php:234
+#: usr/local/www/services_dhcpv6_edit.php:213
+#: usr/local/www/services_dhcp_edit.php:236
+#: usr/local/www/services_dhcpv6_edit.php:216
+#: usr/local/www/services_dhcp_edit.php:364
msgid "Name of the host, without domain part."
msgstr "Nome do host, sem a parte do domínio."
@@ -20635,25 +25873,32 @@ msgstr "Um endereço IP do Servidor de Destino válido deve ser especificado."
#: usr/local/www/services_dhcp_relay.php:100 usr/local/www/fbegin.inc:122
#: usr/local/www/status_services.php:295
#: usr/local/www/widgets/widgets/services_status.widget.php:100
-#: usr/local/www/fbegin.inc:139
+#: usr/local/www/fbegin.inc:139 etc/inc/service-utils.inc:278
+#: usr/local/www/fbegin.inc:148 usr/local/www/fbegin.inc:140
+#: etc/inc/service-utils.inc:277
msgid "DHCP Relay"
msgstr "DHCP Relay"
#: usr/local/www/services_dhcp_relay.php:144
+#: usr/local/www/services_dhcp_relay.php:145
msgid "DHCP Relay configuration"
msgstr "Configuração do DHCP Relay"
#: usr/local/www/services_dhcp_relay.php:150
+#: usr/local/www/services_dhcp_relay.php:151
#, php-format
msgid "Enable DHCP relay on interface"
msgstr "Habilitar DHCP Relay na interface"
#: usr/local/www/services_dhcp_relay.php:175
#: usr/local/www/services_dhcpv6_relay.php:176
+#: usr/local/www/services_dhcp_relay.php:176
+#: usr/local/www/services_dhcpv6_relay.php:177
msgid "Append circuit ID and agent ID to requests"
msgstr "Anexe o circuit ID e o agent ID às requisições"
#: usr/local/www/services_dhcp_relay.php:176
+#: usr/local/www/services_dhcp_relay.php:177
#, php-format
msgid ""
"If this is checked, the DHCP relay will append the circuit ID (%s interface "
@@ -20664,10 +25909,13 @@ msgstr ""
#: usr/local/www/services_dhcp_relay.php:179
#: usr/local/www/services_dhcpv6_relay.php:180
+#: usr/local/www/services_dhcp_relay.php:180
+#: usr/local/www/services_dhcpv6_relay.php:181
msgid "Destination server"
msgstr "Servidor de Destino"
#: usr/local/www/services_dhcp_relay.php:183
+#: usr/local/www/services_dhcp_relay.php:184
msgid ""
"This is the IP address of the server to which DHCP requests are relayed. You "
"can enter multiple server IP addresses, separated by commas. Select \"Proxy "
@@ -20680,32 +25928,44 @@ msgstr ""
"DHCP na subrede WAN\" para retransmitir pacotes DHCP para o servidor que foi "
"usado na interface WAN."
-#: usr/local/www/services_dnsmasq.php:80
+#: usr/local/www/services_dnsmasq.php:80 usr/local/www/services_dnsmasq.php:84
msgid "Invalid custom options"
msgstr "Opções personalizadas inválidas"
#: usr/local/www/services_dnsmasq.php:147
+#: usr/local/www/services_dnsmasq.php:148
+#: usr/local/www/services_dnsmasq.php:152
msgid "The DNS forwarder configuration has been changed"
msgstr "A configuração do DNS forwarder foi modificada"
#: usr/local/www/services_dnsmasq.php:151
+#: usr/local/www/services_dnsmasq.php:152
+#: usr/local/www/services_dnsmasq.php:156
msgid "General DNS Forwarder Options"
msgstr "Opções gerais do DNS Forwarder"
#: usr/local/www/services_dnsmasq.php:157
+#: usr/local/www/services_dnsmasq.php:158
+#: usr/local/www/services_dnsmasq.php:162
msgid "Enable DNS forwarder"
msgstr "Habilitar DNS forwarder"
#: usr/local/www/services_dnsmasq.php:161
#: usr/local/www/services_unbound.php:211
+#: usr/local/www/services_dnsmasq.php:162
+#: usr/local/www/services_dnsmasq.php:166
msgid "DHCP Registration"
msgstr "Registro DHCP"
#: usr/local/www/services_dnsmasq.php:164
+#: usr/local/www/services_dnsmasq.php:165
+#: usr/local/www/services_dnsmasq.php:169
msgid "Register DHCP leases in DNS forwarder"
msgstr "Registrar concessões DHCP no DNS forwarder"
#: usr/local/www/services_dnsmasq.php:165
+#: usr/local/www/services_dnsmasq.php:166
+#: usr/local/www/services_dnsmasq.php:170
#, php-format
msgid ""
"If this option is set, then machines that specify their hostname when "
@@ -20720,14 +25980,20 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:173
#: usr/local/www/services_unbound.php:223
+#: usr/local/www/services_dnsmasq.php:174
+#: usr/local/www/services_dnsmasq.php:178
msgid "Static DHCP"
msgstr "DHCP estático"
#: usr/local/www/services_dnsmasq.php:176
+#: usr/local/www/services_dnsmasq.php:177
+#: usr/local/www/services_dnsmasq.php:181
msgid "Register DHCP static mappings in DNS forwarder"
msgstr "Registrar mapeamentos estáticos DHCP no DNS forwarder"
#: usr/local/www/services_dnsmasq.php:177
+#: usr/local/www/services_dnsmasq.php:178
+#: usr/local/www/services_dnsmasq.php:182
#, php-format
msgid ""
"If this option is set, then DHCP static mappings will be registered in the "
@@ -20741,16 +26007,22 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:184
#: usr/local/www/services_unbound.php:234
+#: usr/local/www/services_dnsmasq.php:185
+#: usr/local/www/services_dnsmasq.php:189
msgid "Prefer DHCP"
msgstr "DHCP preferido"
#: usr/local/www/services_dnsmasq.php:187
#: usr/local/www/services_unbound.php:237
+#: usr/local/www/services_dnsmasq.php:188
+#: usr/local/www/services_dnsmasq.php:192
msgid "Resolve DHCP mappings first"
msgstr "Resolver mapeamentos de DHCP primeiro"
#: usr/local/www/services_dnsmasq.php:188
#: usr/local/www/services_unbound.php:238
+#: usr/local/www/services_dnsmasq.php:189
+#: usr/local/www/services_dnsmasq.php:193
#, php-format
msgid ""
"If this option is set, then DHCP mappings will be resolved before the manual "
@@ -20762,6 +26034,8 @@ msgstr ""
"consulta reversa (PTR)."
#: usr/local/www/services_dnsmasq.php:202
+#: usr/local/www/services_dnsmasq.php:203
+#: usr/local/www/services_dnsmasq.php:228
msgid ""
"Enter any additional options you would like to add to the dnsmasq "
"configuration here, separated by a space or newline"
@@ -20770,6 +26044,8 @@ msgstr ""
"OpenVPN aqui, separados por ponto-e-vírgula ou uma nova linha"
#: usr/local/www/services_dnsmasq.php:215
+#: usr/local/www/services_dnsmasq.php:216
+#: usr/local/www/services_dnsmasq.php:241
#, php-format
msgid ""
"If the DNS forwarder is enabled, the DHCP service (if enabled) will "
@@ -20793,11 +26069,15 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:231
#: usr/local/www/services_unbound.php:267
+#: usr/local/www/services_dnsmasq.php:232
+#: usr/local/www/services_dnsmasq.php:257
msgid "Host Overrides"
msgstr "Sobreescrever Host"
#: usr/local/www/services_dnsmasq.php:235
#: usr/local/www/services_unbound.php:271
+#: usr/local/www/services_dnsmasq.php:236
+#: usr/local/www/services_dnsmasq.php:261
msgid ""
"Entries in this section override individual results from the forwarders."
msgstr ""
@@ -20805,6 +26085,8 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:236
#: usr/local/www/services_unbound.php:272
+#: usr/local/www/services_dnsmasq.php:237
+#: usr/local/www/services_dnsmasq.php:262
msgid "Use these for changing DNS results or for adding custom DNS records."
msgstr ""
"Use estas opções para alterar resultados de DNS ou adicionar registros de "
@@ -20813,12 +26095,16 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:299
#: usr/local/www/services_dnsmasq.php:320
#: usr/local/www/services_unbound.php:335
+#: usr/local/www/services_dnsmasq.php:321
+#: usr/local/www/services_dnsmasq.php:346
msgid "Domain Overrides"
msgstr "Sobreescrever domínio"
#: usr/local/www/services_dnsmasq.php:303
#: usr/local/www/services_dnsmasq.php:324
#: usr/local/www/services_unbound.php:339
+#: usr/local/www/services_dnsmasq.php:325
+#: usr/local/www/services_dnsmasq.php:350
msgid ""
"Entries in this area override an entire domain by specifying an "
"authoritative DNS server to be queried for that domain."
@@ -20829,6 +26115,8 @@ msgstr ""
#: usr/local/www/services_dnsmasq.php:337
#: usr/local/www/services_dnsmasq.php:358
#: usr/local/www/services_unbound.php:373
+#: usr/local/www/services_dnsmasq.php:359
+#: usr/local/www/services_dnsmasq.php:384
msgid "Do you really want to delete this domain override?"
msgstr "Você realmente deseja apagar essa sobrescrita de domínio?"
@@ -20844,31 +26132,37 @@ msgstr "Editar host"
#: usr/local/www/services_dnsmasq_edit.php:138
#: usr/local/www/services_dnsmasq_edit.php:193
+#: usr/local/www/services_dnsmasq_edit.php:194
msgid "Edit DNS Forwarder entry"
msgstr "Editar entrada de DNS Forwarder"
#: usr/local/www/services_dnsmasq_edit.php:144
#: usr/local/www/services_dnsmasq_edit.php:199
+#: usr/local/www/services_dnsmasq_edit.php:200
msgid "Name of the host, without domain part"
msgstr "Nome do host, sem a parte de domínio"
#: usr/local/www/services_dnsmasq_edit.php:146
#: usr/local/www/services_dnsmasq_edit.php:201
+#: usr/local/www/services_dnsmasq_edit.php:202
msgid "myhost"
msgstr "myhost"
#: usr/local/www/services_dnsmasq_edit.php:152
#: usr/local/www/services_dnsmasq_edit.php:207
+#: usr/local/www/services_dnsmasq_edit.php:208
msgid "Domain of the host"
msgstr "Domínio de host"
#: usr/local/www/services_dnsmasq_edit.php:153
#: usr/local/www/services_dnsmasq_edit.php:208
+#: usr/local/www/services_dnsmasq_edit.php:209
msgid "example.com"
msgstr "examplo.com"
#: usr/local/www/services_dnsmasq_edit.php:159
#: usr/local/www/services_dnsmasq_edit.php:214
+#: usr/local/www/services_dnsmasq_edit.php:215
msgid "IP address of the host"
msgstr "Endereço IP do host"
@@ -20890,11 +26184,11 @@ msgstr "%s"
msgid "Last %1$s %2$s log entries"
msgstr "Últimos %1$s %2$s logs de entrada"
-#: usr/local/www/status.php:110
+#: usr/local/www/status.php:110 usr/local/www/status.php:111
msgid "This status page includes the following information"
msgstr "Essa página de status inclui as seguintes informações"
-#: usr/local/www/status.php:225
+#: usr/local/www/status.php:225 usr/local/www/status.php:226
msgid ""
"Note: make sure to remove any sensitive information (passwords, maybe also "
"IP addresses) before posting information from this page in public places "
@@ -20904,76 +26198,89 @@ msgstr ""
"talvés endereços IP também) antes de publicar informações dessa página para "
"espaços públicos (como listas de e-mail)"
-#: usr/local/www/status.php:228
+#: usr/local/www/status.php:228 usr/local/www/status.php:229
msgid "Passwords in config.xml have been automatically removed"
msgstr "Senhas no config.xml foram automaticamente removidas"
-#: usr/local/www/bandwidth_by_ip.php:54
+#: usr/local/www/bandwidth_by_ip.php:54 usr/local/www/bandwidth_by_ip.php:67
+#: usr/local/www/bandwidth_by_ip.php:61
msgid "no info"
msgstr "sem informações"
#: usr/local/www/vpn_pptp.php:82 usr/local/www/vpn_pptp.php:353
#: usr/local/www/vpn_l2tp.php:73 usr/local/www/vpn_l2tp.php:321
#: usr/local/www/vpn_pppoe_edit.php:112 usr/local/www/vpn_pppoe_edit.php:424
+#: usr/local/www/vpn_pppoe_edit.php:425 usr/local/www/vpn_pptp.php:355
+#: usr/local/www/vpn_l2tp.php:74 usr/local/www/vpn_pppoe_edit.php:428
+#: usr/local/www/vpn_pptp.php:358
msgid "Server address"
msgstr "Endereço do servidor"
#: usr/local/www/vpn_pptp.php:82 usr/local/www/vpn_l2tp.php:73
-#: usr/local/www/vpn_pppoe_edit.php:112
+#: usr/local/www/vpn_pppoe_edit.php:112 usr/local/www/vpn_l2tp.php:74
msgid "Remote start address"
msgstr "Endereço inicial remoto"
#: usr/local/www/vpn_pptp.php:87 usr/local/www/vpn_l2tp.php:78
-#: usr/local/www/vpn_pppoe_edit.php:117
+#: usr/local/www/vpn_pppoe_edit.php:117 usr/local/www/vpn_l2tp.php:79
msgid "RADIUS server address"
msgstr "Endereço do servidor RADIUS"
#: usr/local/www/vpn_pptp.php:87 usr/local/www/vpn_pptp.php:432
#: usr/local/www/vpn_l2tp.php:78 usr/local/www/vpn_l2tp.php:428
-#: usr/local/www/vpn_pppoe_edit.php:117
+#: usr/local/www/vpn_pppoe_edit.php:117 usr/local/www/vpn_pptp.php:434
+#: usr/local/www/vpn_l2tp.php:79 usr/local/www/vpn_pptp.php:437
msgid "RADIUS shared secret"
msgstr "Segredo Compartilhado RADIUS"
#: usr/local/www/vpn_pptp.php:93 usr/local/www/vpn_l2tp.php:84
-#: usr/local/www/vpn_pppoe_edit.php:123
+#: usr/local/www/vpn_pppoe_edit.php:123 usr/local/www/vpn_l2tp.php:85
msgid "A valid server address must be specified."
msgstr "Um endereço de servidor válido deve ser especificado."
#: usr/local/www/vpn_pptp.php:96 usr/local/www/vpn_l2tp.php:87
-#: usr/local/www/vpn_pppoe_edit.php:125
+#: usr/local/www/vpn_pppoe_edit.php:125 usr/local/www/vpn_l2tp.php:88
+#: usr/local/www/vpn_l2tp.php:91 usr/local/www/vpn_pptp.php:99
msgid "A valid remote start address must be specified."
msgstr "Um endereço inicial remoto válido deve ser especificado."
#: usr/local/www/vpn_pptp.php:99 usr/local/www/vpn_l2tp.php:90
-#: usr/local/www/vpn_pppoe_edit.php:127
+#: usr/local/www/vpn_pppoe_edit.php:127 usr/local/www/vpn_l2tp.php:91
+#: usr/local/www/vpn_l2tp.php:94 usr/local/www/vpn_pptp.php:102
msgid "A valid RADIUS server address must be specified."
msgstr "Um endereço de servidor RADIUS válido deve ser especificado."
#: usr/local/www/vpn_pptp.php:108 usr/local/www/vpn_l2tp.php:106
-#: usr/local/www/vpn_pppoe_edit.php:134
+#: usr/local/www/vpn_pppoe_edit.php:134 usr/local/www/vpn_l2tp.php:107
+#: usr/local/www/vpn_l2tp.php:110 usr/local/www/vpn_pptp.php:111
msgid "The specified server address lies in the remote subnet."
msgstr "O endereço do servidor especificado está na subrede remota."
#: usr/local/www/vpn_pptp.php:112 usr/local/www/vpn_l2tp.php:109
+#: usr/local/www/vpn_l2tp.php:110 usr/local/www/vpn_l2tp.php:113
+#: usr/local/www/vpn_pptp.php:115
msgid "The specified server address is equal to the LAN interface address."
msgstr ""
"O endereço do servidor especificado é igual ao endereço da interface LAN."
-#: usr/local/www/vpn_pptp.php:117
+#: usr/local/www/vpn_pptp.php:117 usr/local/www/vpn_pptp.php:120
msgid "PPTP redirection target address"
msgstr "Endereço alvo de redirecionamento PPTP"
-#: usr/local/www/vpn_pptp.php:122
+#: usr/local/www/vpn_pptp.php:122 usr/local/www/vpn_pptp.php:125
msgid "A valid target address must be specified."
msgstr "Um endereço de alvo válido deve ser especificado."
#: usr/local/www/vpn_pptp.php:193 usr/local/www/vpn_pptp_users.php:71
-#: usr/local/www/vpn_pptp_users_edit.php:135
+#: usr/local/www/vpn_pptp_users_edit.php:135 usr/local/www/vpn_pptp.php:196
msgid "VPN PPTP"
msgstr "PPPTP da VPN"
#: usr/local/www/vpn_pptp.php:300 usr/local/www/vpn_pptp_users.php:89
#: usr/local/www/vpn_l2tp.php:280 usr/local/www/vpn_l2tp_users.php:92
+#: usr/local/www/vpn_pptp.php:302 usr/local/www/vpn_l2tp_users.php:93
+#: usr/local/www/vpn_l2tp.php:281 usr/local/www/vpn_pptp_users.php:90
+#: usr/local/www/vpn_l2tp.php:284 usr/local/www/vpn_pptp.php:305
msgid "Configuration"
msgstr "Configuração"
@@ -20989,35 +26296,46 @@ msgstr "Configuração"
#: usr/local/www/vpn_l2tp_users.php:93
#: usr/local/www/system_usermanager.php:438
#: usr/local/www/system_groupmanager_addprivs.php:166
+#: usr/local/www/vpn_pptp.php:303 usr/local/www/vpn_l2tp_users.php:94
+#: usr/local/www/vpn_l2tp.php:282 usr/local/www/vpn_pptp_users.php:91
+#: usr/local/www/system_authservers.php:426 usr/local/www/vpn_l2tp.php:285
+#: usr/local/www/system_authservers.php:433 usr/local/www/vpn_pptp.php:306
msgid "Users"
msgstr "Usuários"
-#: usr/local/www/vpn_pptp.php:320
+#: usr/local/www/vpn_pptp.php:320 usr/local/www/vpn_pptp.php:322
+#: usr/local/www/vpn_pptp.php:325
msgid "Redirect incoming PPTP connections to"
msgstr "Redirecionar conexões PPTP de entrada para"
-#: usr/local/www/vpn_pptp.php:322
+#: usr/local/www/vpn_pptp.php:322 usr/local/www/vpn_pptp.php:324
+#: usr/local/www/vpn_pptp.php:327
msgid "PPTP redirection"
msgstr "Redirecionamento PPTP"
-#: usr/local/www/vpn_pptp.php:326
+#: usr/local/www/vpn_pptp.php:326 usr/local/www/vpn_pptp.php:328
+#: usr/local/www/vpn_pptp.php:331
msgid ""
"Enter the IP address of a host which will accept incoming PPTP connections"
msgstr "Informe o endereço IP do host que aceitará conexões PPTP de entrada"
-#: usr/local/www/vpn_pptp.php:332
+#: usr/local/www/vpn_pptp.php:332 usr/local/www/vpn_pptp.php:334
+#: usr/local/www/vpn_pptp.php:337
msgid "Enable PPTP server"
msgstr "Habilitar servidor PPTP"
-#: usr/local/www/vpn_pptp.php:335
+#: usr/local/www/vpn_pptp.php:335 usr/local/www/vpn_pptp.php:337
+#: usr/local/www/vpn_pptp.php:340
msgid "No. PPTP users"
msgstr "No. usuários PPTP"
-#: usr/local/www/vpn_pptp.php:349
+#: usr/local/www/vpn_pptp.php:349 usr/local/www/vpn_pptp.php:351
+#: usr/local/www/vpn_pptp.php:354
msgid "Hint: 10 is ten PPTP clients"
msgstr "Dica: 10 são dez clientes PPTP"
-#: usr/local/www/vpn_pptp.php:357
+#: usr/local/www/vpn_pptp.php:357 usr/local/www/vpn_pptp.php:359
+#: usr/local/www/vpn_pptp.php:362
msgid ""
"Enter the IP address the PPTP server should give to clients for use as their "
"\"gateway\""
@@ -21026,14 +26344,20 @@ msgstr ""
"clientes em seu \"gateway\""
#: usr/local/www/vpn_pptp.php:359 usr/local/www/vpn_l2tp.php:327
-#: usr/local/www/vpn_pppoe_edit.php:430
+#: usr/local/www/vpn_pppoe_edit.php:430 usr/local/www/vpn_pppoe_edit.php:431
+#: usr/local/www/vpn_pptp.php:361 usr/local/www/vpn_l2tp.php:328
+#: usr/local/www/vpn_l2tp.php:331 usr/local/www/vpn_pppoe_edit.php:434
+#: usr/local/www/vpn_pptp.php:364
msgid "Typically this is set to an unused IP just outside of the client range"
msgstr ""
"Normalmente, isto é definido como um IP não utilizado fora do range do "
"cliente"
#: usr/local/www/vpn_pptp.php:362 usr/local/www/vpn_l2tp.php:330
-#: usr/local/www/vpn_pppoe_edit.php:433
+#: usr/local/www/vpn_pppoe_edit.php:433 usr/local/www/vpn_pppoe_edit.php:434
+#: usr/local/www/vpn_pptp.php:364 usr/local/www/vpn_l2tp.php:331
+#: usr/local/www/vpn_l2tp.php:334 usr/local/www/vpn_pppoe_edit.php:437
+#: usr/local/www/vpn_pptp.php:367
msgid ""
"NOTE: This should NOT be set to any IP address currently in use on this "
"firewall"
@@ -21042,37 +26366,52 @@ msgstr ""
"neste firewall "
#: usr/local/www/vpn_pptp.php:365 usr/local/www/vpn_l2tp.php:333
-#: usr/local/www/vpn_pppoe_edit.php:436
+#: usr/local/www/vpn_pppoe_edit.php:436 usr/local/www/vpn_pppoe_edit.php:437
+#: usr/local/www/vpn_pptp.php:367 usr/local/www/vpn_pppoe_edit.php:440
+#: usr/local/www/vpn_pptp.php:370
msgid "Remote address range"
msgstr "Intervalo de endereço remoto"
-#: usr/local/www/vpn_pptp.php:370
+#: usr/local/www/vpn_pptp.php:370 usr/local/www/vpn_pptp.php:372
+#: usr/local/www/vpn_pptp.php:375
msgid "Specify the starting address for the client IP subnet"
msgstr "Especifique o endereço de início para a subrede do IP do cliente"
-#: usr/local/www/vpn_pptp.php:373
+#: usr/local/www/vpn_pptp.php:373 usr/local/www/vpn_pptp.php:375
+#: usr/local/www/vpn_pptp.php:378
msgid "PPTP DNS Servers"
msgstr "Servidores DNS PPTP"
-#: usr/local/www/vpn_pptp.php:379
+#: usr/local/www/vpn_pptp.php:379 usr/local/www/vpn_pptp.php:381
+#: usr/local/www/vpn_pptp.php:384
msgid "primary and secondary DNS servers assigned to PPTP clients"
msgstr "servidores DNS primário e secundário atribuídos a clientes PPTP"
#: usr/local/www/vpn_pptp.php:382 usr/local/www/vpn_l2tp.php:404
+#: usr/local/www/vpn_pptp.php:384 usr/local/www/vpn_l2tp.php:405
+#: usr/local/www/vpn_l2tp.php:408 usr/local/www/vpn_pptp.php:387
msgid "WINS Server"
msgstr "Servidor WINS"
#: usr/local/www/vpn_pptp.php:388 usr/local/www/vpn_l2tp.php:410
-#: usr/local/www/vpn_pppoe_edit.php:461
+#: usr/local/www/vpn_pppoe_edit.php:461 usr/local/www/vpn_pppoe_edit.php:462
+#: usr/local/www/vpn_pptp.php:390 usr/local/www/vpn_l2tp.php:411
+#: usr/local/www/vpn_l2tp.php:414 usr/local/www/vpn_pppoe_edit.php:465
+#: usr/local/www/vpn_pptp.php:393
msgid "RADIUS"
msgstr "RADIUS"
#: usr/local/www/vpn_pptp.php:391 usr/local/www/vpn_l2tp.php:413
-#: usr/local/www/vpn_pppoe_edit.php:464
+#: usr/local/www/vpn_pppoe_edit.php:464 usr/local/www/vpn_pppoe_edit.php:465
+#: usr/local/www/vpn_pptp.php:393 usr/local/www/vpn_l2tp.php:414
+#: usr/local/www/vpn_l2tp.php:417 usr/local/www/vpn_pppoe_edit.php:468
+#: usr/local/www/vpn_pptp.php:396
msgid "Use a RADIUS server for authentication"
msgstr "Usar um servidor RADIUS para autenticação"
#: usr/local/www/vpn_pptp.php:392 usr/local/www/vpn_pppoe_edit.php:465
+#: usr/local/www/vpn_pppoe_edit.php:466 usr/local/www/vpn_pptp.php:394
+#: usr/local/www/vpn_pppoe_edit.php:469 usr/local/www/vpn_pptp.php:397
msgid ""
"When set, all users will be authenticated using the RADIUS server specified "
"below. The local user database will not be used"
@@ -21081,19 +26420,26 @@ msgstr ""
"RADIUS especificado abaixo. A base de dados de usuários local não será usada"
#: usr/local/www/vpn_pptp.php:397 usr/local/www/vpn_l2tp.php:417
-#: usr/local/www/vpn_pppoe_edit.php:470
+#: usr/local/www/vpn_pppoe_edit.php:470 usr/local/www/vpn_pppoe_edit.php:471
+#: usr/local/www/vpn_pptp.php:399 usr/local/www/vpn_l2tp.php:418
+#: usr/local/www/vpn_l2tp.php:421 usr/local/www/vpn_pppoe_edit.php:474
+#: usr/local/www/vpn_pptp.php:402
msgid "Enable RADIUS accounting"
msgstr "Habilitar RADIUS accounting"
#: usr/local/www/vpn_pptp.php:398 usr/local/www/vpn_pppoe_edit.php:472
+#: usr/local/www/vpn_pppoe_edit.php:473 usr/local/www/vpn_pptp.php:400
+#: usr/local/www/vpn_pppoe_edit.php:476 usr/local/www/vpn_pptp.php:403
msgid "Sends accounting packets to the RADIUS server"
msgstr "Envia pacotes de accounting para o servidor RADIUS"
-#: usr/local/www/vpn_pptp.php:401
+#: usr/local/www/vpn_pptp.php:401 usr/local/www/vpn_pptp.php:403
+#: usr/local/www/vpn_pptp.php:406
msgid "Secondary RADIUS server for failover authentication"
msgstr "Servidor RADIUS secundário para autenticação failover"
-#: usr/local/www/vpn_pptp.php:402
+#: usr/local/www/vpn_pptp.php:402 usr/local/www/vpn_pptp.php:404
+#: usr/local/www/vpn_pptp.php:407
msgid ""
"When set, all requests will go to the secondary server when primary fails"
msgstr ""
@@ -21101,26 +26447,36 @@ msgstr ""
"quando o primário falhar"
#: usr/local/www/vpn_pptp.php:405 usr/local/www/vpn_pppoe_edit.php:492
+#: usr/local/www/vpn_pppoe_edit.php:493 usr/local/www/vpn_pptp.php:407
+#: usr/local/www/vpn_pppoe_edit.php:496 usr/local/www/vpn_pptp.php:410
msgid "RADIUS issued IPs"
msgstr "IPs emitidos pelo RADIUS"
-#: usr/local/www/vpn_pptp.php:406
+#: usr/local/www/vpn_pptp.php:406 usr/local/www/vpn_pptp.php:408
+#: usr/local/www/vpn_pptp.php:411
msgid "Issue IP addresses via RADIUS server"
msgstr "Emite endereços IP via servidor RADIUS"
-#: usr/local/www/vpn_pptp.php:411
+#: usr/local/www/vpn_pptp.php:411 usr/local/www/vpn_pptp.php:413
+#: usr/local/www/vpn_pptp.php:416
msgid "RADIUS NAS IP"
msgstr "IP NAS do RADIUS"
#: usr/local/www/vpn_pptp.php:417 usr/local/www/vpn_pppoe_edit.php:485
+#: usr/local/www/vpn_pppoe_edit.php:486 usr/local/www/vpn_pptp.php:419
+#: usr/local/www/vpn_pppoe_edit.php:489 usr/local/www/vpn_pptp.php:422
msgid "RADIUS Accounting Update"
msgstr "Atualização de accounting do RADIUS"
-#: usr/local/www/vpn_pptp.php:423
+#: usr/local/www/vpn_pptp.php:423 usr/local/www/vpn_pptp.php:425
+#: usr/local/www/vpn_l2tp.php:422 usr/local/www/vpn_l2tp.php:425
+#: usr/local/www/vpn_pptp.php:428
msgid "RADIUS Server"
msgstr "Servidor RADIUS"
#: usr/local/www/vpn_pptp.php:429 usr/local/www/vpn_pptp.php:446
+#: usr/local/www/vpn_pptp.php:431 usr/local/www/vpn_pptp.php:448
+#: usr/local/www/vpn_pptp.php:434 usr/local/www/vpn_pptp.php:451
msgid ""
"Enter the IP address, RADIUS port, and RADIUS accounting port of the RADIUS "
"server"
@@ -21129,7 +26485,10 @@ msgstr ""
"RADIUS"
#: usr/local/www/vpn_pptp.php:436 usr/local/www/vpn_pppoe_edit.php:510
-#: usr/local/www/vpn_pppoe_edit.php:527
+#: usr/local/www/vpn_pppoe_edit.php:527 usr/local/www/vpn_pppoe_edit.php:511
+#: usr/local/www/vpn_pppoe_edit.php:528 usr/local/www/vpn_pptp.php:438
+#: usr/local/www/vpn_pppoe_edit.php:514 usr/local/www/vpn_pppoe_edit.php:531
+#: usr/local/www/vpn_pptp.php:441
msgid ""
"Enter the shared secret that will be used to authenticate to the RADIUS "
"server"
@@ -21137,11 +26496,13 @@ msgstr ""
"Informe o segredo compartilhado que será usado para autenticar no servidor "
"RADIUS"
-#: usr/local/www/vpn_pptp.php:449
+#: usr/local/www/vpn_pptp.php:449 usr/local/www/vpn_pptp.php:451
+#: usr/local/www/vpn_pptp.php:454
msgid "Secondary RADIUS shared secret"
msgstr "Segredo compartilhado secundário do RADIUS"
-#: usr/local/www/vpn_pptp.php:453
+#: usr/local/www/vpn_pptp.php:453 usr/local/www/vpn_pptp.php:455
+#: usr/local/www/vpn_pptp.php:458
msgid ""
"Enter the shared secret that will be used to authenticate to the secondary "
"RADIUS server"
@@ -21149,11 +26510,13 @@ msgstr ""
"Informe o segredo compartilhado que será usado para autenticar no servidor "
"RADIUS secundário"
-#: usr/local/www/vpn_pptp.php:463
+#: usr/local/www/vpn_pptp.php:463 usr/local/www/vpn_pptp.php:465
+#: usr/local/www/vpn_pptp.php:468
msgid "Require 128-bit encryption"
msgstr "Requere criptografia 128-bits"
-#: usr/local/www/vpn_pptp.php:464
+#: usr/local/www/vpn_pptp.php:464 usr/local/www/vpn_pptp.php:466
+#: usr/local/www/vpn_pptp.php:469
msgid ""
"When set, only 128-bit encryption will be accepted. Otherwise 40-bit and 56-"
"bit encryption will be accepted as well. Note that encryption will always be "
@@ -21165,33 +26528,38 @@ msgstr ""
"criptografia será sempre forçada nas conexões PPTP (i.e. conexões não "
"criptografadas não serão aceitas)"
-#: usr/local/www/vpn_pptp.php:478
+#: usr/local/www/vpn_pptp.php:478 usr/local/www/vpn_pptp.php:480
+#: usr/local/www/vpn_pptp.php:483
msgid "don't forget to "
msgstr "não esqueça de "
-#: usr/local/www/vpn_pptp.php:478
+#: usr/local/www/vpn_pptp.php:478 usr/local/www/vpn_pptp.php:480
+#: usr/local/www/vpn_pptp.php:483
msgid "add a firewall rule"
msgstr "adicionar uma regra de firewall"
-#: usr/local/www/vpn_pptp.php:478
+#: usr/local/www/vpn_pptp.php:478 usr/local/www/vpn_pptp.php:480
+#: usr/local/www/vpn_pptp.php:483
msgid "to permit traffic from PPTP clients"
msgstr "para permitir tráfego de clientes PPTP"
#: usr/local/www/vpn_pptp_users.php:81 usr/local/www/vpn_l2tp_users.php:84
+#: usr/local/www/vpn_l2tp_users.php:85 usr/local/www/vpn_pptp_users.php:82
msgid "Warning: RADIUS is enabled. The local user database will not be used."
msgstr ""
"Advertência: RADIUS está habilitado. A base de dados de usuários local não "
"será usada."
-#: usr/local/www/vpn_pptp_users.php:83
+#: usr/local/www/vpn_pptp_users.php:83 usr/local/www/vpn_pptp_users.php:84
msgid "The PPTP user list has been modified"
msgstr "A lista de usuários PPTP foi modificada;"
#: usr/local/www/vpn_pptp_users.php:83 usr/local/www/vpn_l2tp_users.php:86
+#: usr/local/www/vpn_l2tp_users.php:87 usr/local/www/vpn_pptp_users.php:84
msgid "You must apply the changes in order for them to take effect"
msgstr "Você deve aplicar as mudanças para que elas tenham efeito"
-#: usr/local/www/vpn_pptp_users.php:83
+#: usr/local/www/vpn_pptp_users.php:83 usr/local/www/vpn_pptp_users.php:84
msgid "Warning: this will terminate all current PPTP sessions"
msgstr "Advertência: isso irá finaliar todas as sessões PPTP atuais"
@@ -21199,16 +26567,22 @@ msgstr "Advertência: isso irá finaliar todas as sessões PPTP atuais"
#: usr/local/www/system_usermanager.php:842
#: usr/local/www/vpn_l2tp_users.php:120
#: usr/local/www/system_usermanager.php:840
+#: usr/local/www/system_usermanager.php:845
+#: usr/local/www/vpn_l2tp_users.php:121 usr/local/www/vpn_pptp_users.php:105
+#: usr/local/www/vpn_pptp_users.php:128
msgid "add user"
msgstr "adicionar usuário"
#: usr/local/www/vpn_pptp_users.php:117
#: usr/local/www/system_usermanager.php:824
#: usr/local/www/system_usermanager.php:822
+#: usr/local/www/system_usermanager.php:825
+#: usr/local/www/vpn_pptp_users.php:118
msgid "edit user"
msgstr "editar usuário"
#: usr/local/www/vpn_pptp_users.php:118 usr/local/www/vpn_l2tp_users.php:115
+#: usr/local/www/vpn_l2tp_users.php:116 usr/local/www/vpn_pptp_users.php:119
msgid "Do you really want to delete this user?"
msgstr "Você realmente deseja apagar esse usuário?"
@@ -21216,6 +26590,8 @@ msgstr "Você realmente deseja apagar esse usuário?"
#: usr/local/www/system_usermanager.php:829
#: usr/local/www/vpn_l2tp_users.php:115
#: usr/local/www/system_usermanager.php:827
+#: usr/local/www/system_usermanager.php:830
+#: usr/local/www/vpn_l2tp_users.php:116 usr/local/www/vpn_pptp_users.php:119
msgid "delete user"
msgstr "apagar usuário"
@@ -21224,6 +26600,7 @@ msgstr "apagar usuário"
#: usr/local/www/system_usermanager.php:199
#: usr/local/www/vpn_l2tp_users_edit.php:87
#: usr/local/www/services_dyndns_edit.php:110
+#: usr/local/www/vpn_l2tp_users_edit.php:88
msgid "The username contains invalid characters."
msgstr "O nome de usuário contém caracteres inválidos."
@@ -21233,6 +26610,7 @@ msgstr "A senha não pode iniciar com '!'."
#: usr/local/www/vpn_pptp_users_edit.php:91
#: usr/local/www/vpn_l2tp_users_edit.php:90
+#: usr/local/www/vpn_l2tp_users_edit.php:91
msgid "The password contains invalid characters."
msgstr "A senha contém caracteres inválidos."
@@ -21240,31 +26618,39 @@ msgstr "A senha contém caracteres inválidos."
#: usr/local/www/system_usermanager.php:205
#: usr/local/www/system_usermanager_passwordmg.php:54
#: usr/local/www/vpn_l2tp_users_edit.php:93
+#: usr/local/www/vpn_l2tp_users_edit.php:94
msgid "The passwords do not match."
msgstr "As senhas não correspondem."
#: usr/local/www/vpn_pptp_users_edit.php:97
#: usr/local/www/vpn_l2tp_users_edit.php:96
+#: usr/local/www/vpn_l2tp_users_edit.php:97
msgid "The IP address entered is not valid."
msgstr "O endereço IP informado não é válido."
#: usr/local/www/vpn_pptp_users_edit.php:104
#: usr/local/www/system_usermanager.php:215
#: usr/local/www/vpn_l2tp_users_edit.php:103
+#: usr/local/www/vpn_l2tp_users_edit.php:104
msgid "Another entry with the same username already exists."
msgstr "Outra entrada com o mesmo nome de usuário já existe."
#: usr/local/www/vpn_pptp_users_edit.php:155
#: usr/local/www/vpn_l2tp_users_edit.php:163
+#: usr/local/www/vpn_pptp_users_edit.php:156
+#: usr/local/www/vpn_l2tp_users_edit.php:164
msgid "confirmation"
msgstr "confirmação"
#: usr/local/www/vpn_pptp_users_edit.php:156
+#: usr/local/www/vpn_pptp_users_edit.php:157
msgid "If you want to change the users' password, enter it here twice."
msgstr "Se você desejar mudar a senha do usuário, informe-a duas vezes aqui."
#: usr/local/www/vpn_pptp_users_edit.php:163
#: usr/local/www/vpn_l2tp_users_edit.php:171
+#: usr/local/www/vpn_pptp_users_edit.php:164
+#: usr/local/www/vpn_l2tp_users_edit.php:172
msgid ""
"If you want the user to be assigned a specific IP address, enter it here."
msgstr ""
@@ -21296,11 +26682,14 @@ msgstr "ação '%s' modificada:"
#: usr/local/www/load_balancer_relay_action_edit.php:186
#: usr/local/www/load_balancer_relay_protocol_edit.php:144
+#: usr/local/www/load_balancer_relay_protocol_edit.php:142
+#: usr/local/www/load_balancer_relay_action_edit.php:184
msgid "DNS"
msgstr "DNS"
#: usr/local/www/load_balancer_relay_action_edit.php:408
#: usr/local/www/load_balancer_relay_action_edit.php:407
+#: usr/local/www/load_balancer_relay_action_edit.php:405
msgid "Edit Load Balancer - Relay Action entry"
msgstr "Editar Balanceador de Carga - Entrada de Ação Relay"
@@ -21308,6 +26697,7 @@ msgstr "Editar Balanceador de Carga - Entrada de Ação Relay"
#: usr/local/www/services_rfc2136_edit.php:71
#: usr/local/www/services_rfc2136_edit.php:173
#: usr/local/www/load_balancer_relay_action_edit.php:507
+#: usr/local/www/load_balancer_relay_action_edit.php:505
msgid "Key"
msgstr "Chave"
@@ -21315,6 +26705,8 @@ msgstr "Chave"
#: usr/local/www/load_balancer_relay_action_edit.php:537
#: usr/local/www/load_balancer_relay_action_edit.php:516
#: usr/local/www/load_balancer_relay_action_edit.php:536
+#: usr/local/www/load_balancer_relay_action_edit.php:514
+#: usr/local/www/load_balancer_relay_action_edit.php:534
msgid "TODO"
msgstr "TODO"
@@ -21357,6 +26749,7 @@ msgstr ""
"uma lista com as chaves para serem armazenadas."
#: usr/local/www/xmlrpc.php:156 usr/local/www/xmlrpc.php:152
+#: usr/local/www/xmlrpc.php:159
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 "
@@ -21371,11 +26764,15 @@ msgstr ""
#: usr/local/www/xmlrpc.php:203 usr/local/www/xmlrpc.php:282
#: usr/local/www/xmlrpc.php:307 usr/local/www/xmlrpc.php:212
#: usr/local/www/xmlrpc.php:291 usr/local/www/xmlrpc.php:316
+#: usr/local/www/xmlrpc.php:288 usr/local/www/xmlrpc.php:313
+#: usr/local/www/xmlrpc.php:224 usr/local/www/xmlrpc.php:308
+#: usr/local/www/xmlrpc.php:337
#, php-format
msgid "Merged in config (%s sections) from XMLRPC client."
msgstr "Mescaldo em config (seções %s) do cliente XMLRPC."
#: usr/local/www/xmlrpc.php:263 usr/local/www/xmlrpc.php:272
+#: usr/local/www/xmlrpc.php:269 usr/local/www/xmlrpc.php:286
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 "
@@ -21388,6 +26785,7 @@ msgstr ""
"função retorna verdadeiro ao finalizar."
#: usr/local/www/xmlrpc.php:288 usr/local/www/xmlrpc.php:297
+#: usr/local/www/xmlrpc.php:294 usr/local/www/xmlrpc.php:314
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 "
@@ -21400,6 +26798,7 @@ msgstr ""
"verdadeiro ao finalizar."
#: usr/local/www/xmlrpc.php:312 usr/local/www/xmlrpc.php:321
+#: usr/local/www/xmlrpc.php:318 usr/local/www/xmlrpc.php:342
msgid ""
"Basic XMLRPC wrapper for filter_configure. This method must be called with "
"one paramater: a string containing the local system\\'s password. This "
@@ -21410,11 +26809,14 @@ msgstr ""
"verdadeiro ao finalizar."
#: usr/local/www/xmlrpc.php:342 usr/local/www/xmlrpc.php:351
+#: usr/local/www/xmlrpc.php:348 usr/local/www/xmlrpc.php:372
msgid "Basic XMLRPC wrapper for configuring CARP interfaces."
msgstr "Wrapper básico de XMLRPC para configurar interfaces CARP."
#: usr/local/www/xmlrpc.php:364 usr/local/www/xmlrpc.php:385
#: usr/local/www/xmlrpc.php:373 usr/local/www/xmlrpc.php:394
+#: usr/local/www/xmlrpc.php:370 usr/local/www/xmlrpc.php:391
+#: usr/local/www/xmlrpc.php:397 usr/local/www/xmlrpc.php:418
msgid ""
"Basic XMLRPC wrapper for check_firmware_version. This function will return "
"the output of check_firmware_version upon completion."
@@ -21423,6 +26825,7 @@ msgstr ""
"o resultado de check_firmware_version após finalizar."
#: usr/local/www/xmlrpc.php:406 usr/local/www/xmlrpc.php:415
+#: usr/local/www/xmlrpc.php:412 usr/local/www/xmlrpc.php:439
msgid "Basic XMLRPC wrapper for rc.reboot."
msgstr "Wrapper básico de XMLRPC para rc.reboot."
@@ -21459,23 +26862,29 @@ msgid "action"
msgstr "ação"
#: usr/local/www/load_balancer_relay_protocol_edit.php:192
+#: usr/local/www/load_balancer_relay_protocol_edit.php:190
msgid "Edit Load Balancer - Relay Protocol entry"
msgstr "Editar Balanceador de Carga - Entrada de Protocolo Relay"
#: usr/local/www/load_balancer_relay_protocol_edit.php:227
+#: usr/local/www/load_balancer_relay_protocol_edit.php:225
msgid "Add / remove available actions"
msgstr "Adicionar / Remover ações disponíveis"
#: usr/local/www/load_balancer_relay_protocol_edit.php:237
+#: usr/local/www/load_balancer_relay_protocol_edit.php:235
msgid "Available Actions"
msgstr "Ações Disponíveis"
#: usr/local/www/load_balancer_relay_protocol_edit.php:252
#: usr/local/www/system_crlmanager.php:474
+#: usr/local/www/load_balancer_relay_protocol_edit.php:250
+#: usr/local/www/system_crlmanager.php:507
msgid "Add"
msgstr "Adicionar"
#: usr/local/www/load_balancer_relay_protocol_edit.php:259
+#: usr/local/www/load_balancer_relay_protocol_edit.php:257
msgid "Enabled Actions"
msgstr "Habilitar Ações"
@@ -21507,10 +26916,12 @@ msgid "System: Packages"
msgstr "Sistema: Pacotes"
#: usr/local/www/services_captiveportal_hostname.php:111
+#: usr/local/www/services_captiveportal_hostname.php:109
msgid "Allowed IP Addresses"
msgstr "Endereços IP permitidos"
#: usr/local/www/services_captiveportal_hostname.php:173
+#: usr/local/www/services_captiveportal_hostname.php:171
msgid ""
"Adding allowed Hostnames will allow a DNS hostname access to/from access "
"through the captive portal without being taken to the portal page. This can "
@@ -21528,23 +26939,29 @@ msgstr ""
#: usr/local/www/services_captiveportal_hostname.php:177
#: usr/local/www/services_captiveportal_hostname.php:184
+#: usr/local/www/services_captiveportal_hostname.php:175
+#: usr/local/www/services_captiveportal_hostname.php:182
msgid "the Hostname are allowed"
msgstr "o hostname está permitido"
#: usr/local/www/services_captiveportal_hostname_edit.php:62
+#: usr/local/www/services_captiveportal_hostname_edit.php:59
msgid "Edit allowed Hostname"
msgstr "Editar hostname permitido"
#: usr/local/www/services_captiveportal_hostname_edit.php:102
+#: usr/local/www/services_captiveportal_hostname_edit.php:100
msgid "Allowed Hostname"
msgstr "Hostname permitido"
#: usr/local/www/services_captiveportal_hostname_edit.php:107
+#: usr/local/www/services_captiveportal_hostname_edit.php:105
#, php-format
msgid "A valid Hostname must be specified. [%s]"
msgstr "Um hostname válido deve ser especificado. [%s]"
#: usr/local/www/services_captiveportal_hostname_edit.php:172
+#: usr/local/www/services_captiveportal_hostname_edit.php:170
msgid ""
"to always allow an Hostname through the captive portal (without "
"authentication)"
@@ -21552,6 +26969,7 @@ msgstr ""
"para sempre permitir um hostname através do portal captive (sem autenticação)"
#: usr/local/www/services_captiveportal_hostname_edit.php:173
+#: usr/local/www/services_captiveportal_hostname_edit.php:171
msgid ""
"to allow access from all clients (even non-authenticated ones) behind the "
"portal to this Hostname"
@@ -21560,16 +26978,19 @@ msgstr ""
"atrás do portal para esse Hostname"
#: usr/local/www/services_captiveportal_hostname_edit.php:192
+#: usr/local/www/services_captiveportal_hostname_edit.php:190
msgid "Enter a upload limit to be enforced on this Hostname in Kbit/s"
msgstr ""
"Informe um limite de upload para ser utilizado nesse Hostname em Kbit/s"
#: usr/local/www/services_captiveportal_hostname_edit.php:198
+#: usr/local/www/services_captiveportal_hostname_edit.php:196
msgid "Enter a download limit to be enforced on this Hostname in Kbit/s"
msgstr ""
"Informe o limite de download para ser utilizado nesse Hostname em Kbit/s"
#: usr/local/www/services_captiveportal_vouchers.php:67
+#: usr/local/www/services_captiveportal_vouchers.php:64
msgid ""
"You will need to recreate any existing Voucher Rolls due to the public and "
"private key changes. Click cancel if you do not wish to recreate the "
@@ -21580,102 +27001,152 @@ msgstr ""
"vouchers."
#: usr/local/www/services_captiveportal_vouchers.php:114
+#: usr/local/www/services_captiveportal_vouchers.php:123
+#: usr/local/www/services_captiveportal_vouchers.php:130
msgid "Voucher invalid"
msgstr "Voucher inválido"
#: usr/local/www/services_captiveportal_vouchers.php:116
+#: usr/local/www/services_captiveportal_vouchers.php:125
+#: usr/local/www/services_captiveportal_vouchers.php:132
msgid "Voucher expired"
msgstr "Voucher expirado"
#: usr/local/www/services_captiveportal_vouchers.php:139
+#: usr/local/www/services_captiveportal_vouchers.php:148
+#: usr/local/www/services_captiveportal_vouchers.php:155
msgid "Cannot write private key file"
msgstr "Não pode escrever no arquivo de chave privada"
#: usr/local/www/services_captiveportal_vouchers.php:157
+#: usr/local/www/services_captiveportal_vouchers.php:166
+#: usr/local/www/services_captiveportal_vouchers.php:175
msgid "Need private RSA key to print vouchers"
msgstr "É necessária uma chave RSA privada para imprimir vouchers"
#: usr/local/www/services_captiveportal_vouchers.php:191
+#: usr/local/www/services_captiveportal_vouchers.php:201
+#: usr/local/www/services_captiveportal_vouchers.php:210
msgid "charset"
msgstr "charset"
#: usr/local/www/services_captiveportal_vouchers.php:191
+#: usr/local/www/services_captiveportal_vouchers.php:201
+#: usr/local/www/services_captiveportal_vouchers.php:210
msgid "rollbits"
msgstr "rollbits"
#: usr/local/www/services_captiveportal_vouchers.php:191
+#: usr/local/www/services_captiveportal_vouchers.php:201
+#: usr/local/www/services_captiveportal_vouchers.php:210
msgid "ticketbits"
msgstr "ticketbits"
#: usr/local/www/services_captiveportal_vouchers.php:191
+#: usr/local/www/services_captiveportal_vouchers.php:201
+#: usr/local/www/services_captiveportal_vouchers.php:210
msgid "checksumbits"
msgstr "checksumbits"
#: usr/local/www/services_captiveportal_vouchers.php:191
+#: usr/local/www/services_captiveportal_vouchers.php:201
+#: usr/local/www/services_captiveportal_vouchers.php:210
msgid "publickey"
msgstr "publickey"
#: usr/local/www/services_captiveportal_vouchers.php:191
+#: usr/local/www/services_captiveportal_vouchers.php:201
+#: usr/local/www/services_captiveportal_vouchers.php:210
msgid "magic"
msgstr "magic"
#: usr/local/www/services_captiveportal_vouchers.php:194
#: usr/local/www/services_captiveportal_vouchers.php:565
#: usr/local/www/services_captiveportal_vouchers.php:572
+#: usr/local/www/services_captiveportal_vouchers.php:204
+#: usr/local/www/services_captiveportal_vouchers.php:585
+#: usr/local/www/services_captiveportal_vouchers.php:213
+#: usr/local/www/services_captiveportal_vouchers.php:594
msgid "Synchronize Voucher Database IP"
msgstr "Sincronizar IP de base de dados de Vouchers"
#: usr/local/www/services_captiveportal_vouchers.php:194
+#: usr/local/www/services_captiveportal_vouchers.php:204
+#: usr/local/www/services_captiveportal_vouchers.php:213
msgid "Sync port"
msgstr "Porta de sincronização"
#: usr/local/www/services_captiveportal_vouchers.php:194
+#: usr/local/www/services_captiveportal_vouchers.php:204
+#: usr/local/www/services_captiveportal_vouchers.php:213
msgid "Sync password"
msgstr "Senha de sincronização"
#: usr/local/www/services_captiveportal_vouchers.php:194
+#: usr/local/www/services_captiveportal_vouchers.php:204
+#: usr/local/www/services_captiveportal_vouchers.php:213
msgid "Sync username"
msgstr "Sincronização de usuário"
#: usr/local/www/services_captiveportal_vouchers.php:203
+#: usr/local/www/services_captiveportal_vouchers.php:213
+#: usr/local/www/services_captiveportal_vouchers.php:222
msgid "Need at least 2 characters to create vouchers."
msgstr "São necessários pelo menos 2 caracteres para criar vouchers."
#: usr/local/www/services_captiveportal_vouchers.php:205
+#: usr/local/www/services_captiveportal_vouchers.php:215
+#: usr/local/www/services_captiveportal_vouchers.php:224
msgid "Double quotes aren't allowed."
msgstr "Aspas não são permitidas."
#: usr/local/www/services_captiveportal_vouchers.php:207
+#: usr/local/www/services_captiveportal_vouchers.php:217
+#: usr/local/www/services_captiveportal_vouchers.php:226
msgid "aren't allowed."
msgstr "não são permitidas."
#: usr/local/www/services_captiveportal_vouchers.php:209
+#: usr/local/www/services_captiveportal_vouchers.php:219
+#: usr/local/www/services_captiveportal_vouchers.php:228
msgid "# of Bits to store Roll Id needs to be between 1..31."
msgstr "# de Bits para armazenar Id da Lista precisa estar entre 1..31."
#: usr/local/www/services_captiveportal_vouchers.php:211
+#: usr/local/www/services_captiveportal_vouchers.php:221
+#: usr/local/www/services_captiveportal_vouchers.php:230
msgid "# of Bits to store Ticket Id needs to be between 1..16."
msgstr "# de Bits para armazenar Ticket Id precisa estar entre 1..16."
#: usr/local/www/services_captiveportal_vouchers.php:213
+#: usr/local/www/services_captiveportal_vouchers.php:223
+#: usr/local/www/services_captiveportal_vouchers.php:232
msgid "# of Bits to store checksum needs to be between 1..31."
msgstr "# de Bits para armazenar checksum precisa estar entre 1..31."
#: usr/local/www/services_captiveportal_vouchers.php:215
+#: usr/local/www/services_captiveportal_vouchers.php:225
+#: usr/local/www/services_captiveportal_vouchers.php:234
msgid "This doesn't look like an RSA Public key."
msgstr "Isso não parece uma chave RSA pública."
#: usr/local/www/services_captiveportal_vouchers.php:217
+#: usr/local/www/services_captiveportal_vouchers.php:227
+#: usr/local/www/services_captiveportal_vouchers.php:236
msgid "This doesn't look like an RSA Private key."
msgstr "Isso não parece uma chave RSA privada."
#: usr/local/www/services_captiveportal_vouchers.php:219
+#: usr/local/www/services_captiveportal_vouchers.php:229
+#: usr/local/www/services_captiveportal_vouchers.php:238
msgid "You cannot sync the voucher database to this host (itself)."
msgstr ""
"Você não pode sincronizar o banco de dados do vouche para este host (em si)."
#: usr/local/www/services_captiveportal_vouchers.php:421
#: usr/local/www/services_captiveportal_vouchers.php:428
+#: usr/local/www/services_captiveportal_vouchers.php:441
+#: usr/local/www/services_captiveportal_vouchers.php:450
msgid "Enable Vouchers"
msgstr "Habilitar Vouchers"
@@ -21683,17 +27154,28 @@ msgstr "Habilitar Vouchers"
#: usr/local/www/services_captiveportal_vouchers_edit.php:173
#: usr/local/www/status_captiveportal_vouchers.php:116
#: usr/local/www/services_captiveportal_vouchers.php:442
+#: usr/local/www/status_captiveportal_vouchers.php:117
+#: usr/local/www/services_captiveportal_vouchers.php:455
+#: usr/local/www/services_captiveportal_vouchers_edit.php:171
+#: usr/local/www/services_captiveportal_vouchers.php:464
+#: usr/local/www/status_captiveportal_vouchers.php:122
msgid "Roll"
msgstr "Lista"
#: usr/local/www/services_captiveportal_vouchers.php:436
#: usr/local/www/status_captiveportal_voucher_rolls.php:86
#: usr/local/www/services_captiveportal_vouchers.php:443
+#: usr/local/www/services_captiveportal_vouchers.php:456
+#: usr/local/www/status_captiveportal_voucher_rolls.php:87
+#: usr/local/www/services_captiveportal_vouchers.php:465
+#: usr/local/www/status_captiveportal_voucher_rolls.php:89
msgid "Minutes/Ticket"
msgstr "Minutos/Ticket"
#: usr/local/www/services_captiveportal_vouchers.php:437
#: usr/local/www/services_captiveportal_vouchers.php:444
+#: usr/local/www/services_captiveportal_vouchers.php:457
+#: usr/local/www/services_captiveportal_vouchers.php:466
msgid "of Tickets"
msgstr "de Tickets"
@@ -21701,16 +27183,25 @@ msgstr "de Tickets"
#: usr/local/www/services_captiveportal_vouchers_edit.php:197
#: usr/local/www/status_captiveportal_voucher_rolls.php:88
#: usr/local/www/services_captiveportal_vouchers.php:445
+#: usr/local/www/services_captiveportal_vouchers.php:458
+#: usr/local/www/services_captiveportal_vouchers_edit.php:195
+#: usr/local/www/status_captiveportal_voucher_rolls.php:89
+#: usr/local/www/services_captiveportal_vouchers.php:467
+#: usr/local/www/status_captiveportal_voucher_rolls.php:91
msgid "Comment"
msgstr "Comentar"
#: usr/local/www/services_captiveportal_vouchers.php:458
#: usr/local/www/services_captiveportal_vouchers.php:465
+#: usr/local/www/services_captiveportal_vouchers.php:478
+#: usr/local/www/services_captiveportal_vouchers.php:487
msgid "edit voucher"
msgstr "editar voucher"
#: usr/local/www/services_captiveportal_vouchers.php:459
#: usr/local/www/services_captiveportal_vouchers.php:466
+#: usr/local/www/services_captiveportal_vouchers.php:479
+#: usr/local/www/services_captiveportal_vouchers.php:488
msgid ""
"Do you really want to delete this voucher? This makes all vouchers from this "
"roll invalid"
@@ -21720,21 +27211,29 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:459
#: usr/local/www/services_captiveportal_vouchers.php:466
+#: usr/local/www/services_captiveportal_vouchers.php:479
+#: usr/local/www/services_captiveportal_vouchers.php:488
msgid "delete vouchers"
msgstr "remover vouchers"
#: usr/local/www/services_captiveportal_vouchers.php:460
#: usr/local/www/services_captiveportal_vouchers.php:467
+#: usr/local/www/services_captiveportal_vouchers.php:480
+#: usr/local/www/services_captiveportal_vouchers.php:489
msgid "generate vouchers for this roll to CSV file"
msgstr "gerar vouchers para essa lista em arquivo CSV"
#: usr/local/www/services_captiveportal_vouchers.php:470
#: usr/local/www/services_captiveportal_vouchers.php:477
+#: usr/local/www/services_captiveportal_vouchers.php:490
+#: usr/local/www/services_captiveportal_vouchers.php:499
msgid "add voucher"
msgstr "adicionar voucher"
#: usr/local/www/services_captiveportal_vouchers.php:475
#: usr/local/www/services_captiveportal_vouchers.php:482
+#: usr/local/www/services_captiveportal_vouchers.php:495
+#: usr/local/www/services_captiveportal_vouchers.php:504
msgid ""
"Create, generate and activate Rolls with Vouchers that allow access through "
"the captive portal for the configured time. Once a voucher is activated, its "
@@ -21751,6 +27250,8 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:481
#: usr/local/www/services_captiveportal_vouchers.php:488
+#: usr/local/www/services_captiveportal_vouchers.php:501
+#: usr/local/www/services_captiveportal_vouchers.php:510
msgid ""
"Enable Voucher support first using the checkbox above and hit Save at the "
"bottom."
@@ -21760,11 +27261,15 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:486
#: usr/local/www/services_captiveportal_vouchers.php:493
+#: usr/local/www/services_captiveportal_vouchers.php:506
+#: usr/local/www/services_captiveportal_vouchers.php:515
msgid "Voucher public key"
msgstr "Chave pública de Voucher"
#: usr/local/www/services_captiveportal_vouchers.php:491
#: usr/local/www/services_captiveportal_vouchers.php:498
+#: usr/local/www/services_captiveportal_vouchers.php:511
+#: usr/local/www/services_captiveportal_vouchers.php:520
msgid ""
"Paste an RSA public key (64 Bit or smaller) in PEM format here. This key is "
"used to decrypt vouchers."
@@ -21775,22 +27280,34 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:491
#: usr/local/www/services_captiveportal_vouchers.php:498
#: usr/local/www/services_captiveportal_vouchers.php:505
+#: usr/local/www/services_captiveportal_vouchers.php:511
+#: usr/local/www/services_captiveportal_vouchers.php:518
+#: usr/local/www/services_captiveportal_vouchers.php:520
+#: usr/local/www/services_captiveportal_vouchers.php:527
msgid "Generate"
msgstr "Gerar"
#: usr/local/www/services_captiveportal_vouchers.php:491
#: usr/local/www/services_captiveportal_vouchers.php:498
#: usr/local/www/services_captiveportal_vouchers.php:505
+#: usr/local/www/services_captiveportal_vouchers.php:511
+#: usr/local/www/services_captiveportal_vouchers.php:518
+#: usr/local/www/services_captiveportal_vouchers.php:520
+#: usr/local/www/services_captiveportal_vouchers.php:527
msgid "new key"
msgstr "nova chave"
#: usr/local/www/services_captiveportal_vouchers.php:494
#: usr/local/www/services_captiveportal_vouchers.php:501
+#: usr/local/www/services_captiveportal_vouchers.php:514
+#: usr/local/www/services_captiveportal_vouchers.php:523
msgid "Voucher private key"
msgstr "Chave privada de Voucher"
#: usr/local/www/services_captiveportal_vouchers.php:498
#: usr/local/www/services_captiveportal_vouchers.php:505
+#: usr/local/www/services_captiveportal_vouchers.php:518
+#: usr/local/www/services_captiveportal_vouchers.php:527
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 "
@@ -21802,11 +27319,15 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:502
#: usr/local/www/services_captiveportal_vouchers.php:509
+#: usr/local/www/services_captiveportal_vouchers.php:522
+#: usr/local/www/services_captiveportal_vouchers.php:531
msgid "Character set"
msgstr "Conjunto de caracteres"
#: usr/local/www/services_captiveportal_vouchers.php:506
#: usr/local/www/services_captiveportal_vouchers.php:513
+#: usr/local/www/services_captiveportal_vouchers.php:526
+#: usr/local/www/services_captiveportal_vouchers.php:535
msgid ""
"Tickets are generated with the specified character set. It should contain "
"printable characters (numbers, lower case and upper case letters) that are "
@@ -21819,11 +27340,15 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:510
#: usr/local/www/services_captiveportal_vouchers.php:517
+#: usr/local/www/services_captiveportal_vouchers.php:530
+#: usr/local/www/services_captiveportal_vouchers.php:539
msgid "of Roll Bits"
msgstr "de Bits de Lista"
#: usr/local/www/services_captiveportal_vouchers.php:514
#: usr/local/www/services_captiveportal_vouchers.php:521
+#: usr/local/www/services_captiveportal_vouchers.php:534
+#: usr/local/www/services_captiveportal_vouchers.php:543
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 "
@@ -21835,11 +27360,15 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:518
#: usr/local/www/services_captiveportal_vouchers.php:525
+#: usr/local/www/services_captiveportal_vouchers.php:538
+#: usr/local/www/services_captiveportal_vouchers.php:547
msgid "of Ticket Bits"
msgstr "de Ticket Bits"
#: usr/local/www/services_captiveportal_vouchers.php:522
#: usr/local/www/services_captiveportal_vouchers.php:529
+#: usr/local/www/services_captiveportal_vouchers.php:542
+#: usr/local/www/services_captiveportal_vouchers.php:551
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 "
@@ -21854,11 +27383,15 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:526
#: usr/local/www/services_captiveportal_vouchers.php:533
+#: usr/local/www/services_captiveportal_vouchers.php:546
+#: usr/local/www/services_captiveportal_vouchers.php:555
msgid "of Checksum Bits"
msgstr "de Checksum Bits"
#: usr/local/www/services_captiveportal_vouchers.php:530
#: usr/local/www/services_captiveportal_vouchers.php:537
+#: usr/local/www/services_captiveportal_vouchers.php:550
+#: usr/local/www/services_captiveportal_vouchers.php:559
msgid ""
"Reserves a range in each voucher to store a simple checksum over Roll # and "
"Ticket#. Allowed range is 0..31."
@@ -21868,11 +27401,15 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:534
#: usr/local/www/services_captiveportal_vouchers.php:541
+#: usr/local/www/services_captiveportal_vouchers.php:554
+#: usr/local/www/services_captiveportal_vouchers.php:563
msgid "Magic Number"
msgstr "Número mágico"
#: usr/local/www/services_captiveportal_vouchers.php:538
#: usr/local/www/services_captiveportal_vouchers.php:545
+#: usr/local/www/services_captiveportal_vouchers.php:558
+#: usr/local/www/services_captiveportal_vouchers.php:567
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 "
@@ -21885,11 +27422,15 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:542
#: usr/local/www/services_captiveportal_vouchers.php:549
+#: usr/local/www/services_captiveportal_vouchers.php:562
+#: usr/local/www/services_captiveportal_vouchers.php:571
msgid "Invalid Voucher Message"
msgstr "Mensagem de Voucher Inválido"
#: usr/local/www/services_captiveportal_vouchers.php:545
#: usr/local/www/services_captiveportal_vouchers.php:552
+#: usr/local/www/services_captiveportal_vouchers.php:565
+#: usr/local/www/services_captiveportal_vouchers.php:574
msgid ""
"Error message displayed for invalid vouchers on captive portal error page"
msgstr ""
@@ -21898,11 +27439,15 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:549
#: usr/local/www/services_captiveportal_vouchers.php:556
+#: usr/local/www/services_captiveportal_vouchers.php:569
+#: usr/local/www/services_captiveportal_vouchers.php:578
msgid "Expired Voucher Message"
msgstr "Mensagem de Voucher Expirado"
#: usr/local/www/services_captiveportal_vouchers.php:552
#: usr/local/www/services_captiveportal_vouchers.php:559
+#: usr/local/www/services_captiveportal_vouchers.php:572
+#: usr/local/www/services_captiveportal_vouchers.php:581
msgid ""
"Error message displayed for expired vouchers on captive portal error page"
msgstr ""
@@ -21911,11 +27456,15 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:562
#: usr/local/www/services_captiveportal_vouchers.php:569
+#: usr/local/www/services_captiveportal_vouchers.php:582
+#: usr/local/www/services_captiveportal_vouchers.php:591
msgid "Voucher database synchronization"
msgstr "Sincronização de base de dados de Vouchers"
#: usr/local/www/services_captiveportal_vouchers.php:568
#: usr/local/www/services_captiveportal_vouchers.php:575
+#: usr/local/www/services_captiveportal_vouchers.php:588
+#: usr/local/www/services_captiveportal_vouchers.php:597
msgid ""
"IP address of master nodes webConfigurator to synchronize voucher database "
"and used vouchers from."
@@ -21925,43 +27474,59 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:569
#: usr/local/www/services_captiveportal_vouchers.php:576
+#: usr/local/www/services_captiveportal_vouchers.php:589
+#: usr/local/www/services_captiveportal_vouchers.php:598
msgid "NOTE: this should be setup on the slave nodes and not the primary node!"
msgstr ""
"NOTA: Isso deve ser configurado nos nodes secundarios e não nos primarios!"
#: usr/local/www/services_captiveportal_vouchers.php:573
#: usr/local/www/services_captiveportal_vouchers.php:580
+#: usr/local/www/services_captiveportal_vouchers.php:593
+#: usr/local/www/services_captiveportal_vouchers.php:602
msgid "Voucher sync port"
msgstr "Porta de sincronização do Voucher"
#: usr/local/www/services_captiveportal_vouchers.php:576
#: usr/local/www/services_captiveportal_vouchers.php:583
+#: usr/local/www/services_captiveportal_vouchers.php:596
+#: usr/local/www/services_captiveportal_vouchers.php:605
msgid ""
"This is the port of the master voucher nodes webConfigurator. Example: 443"
msgstr "Essa é a porta do master voucher nodes webConfigurator. Exemplo: 443"
#: usr/local/www/services_captiveportal_vouchers.php:580
#: usr/local/www/services_captiveportal_vouchers.php:587
+#: usr/local/www/services_captiveportal_vouchers.php:600
+#: usr/local/www/services_captiveportal_vouchers.php:609
msgid "Voucher sync username"
msgstr "Nome de usuário de sincronização do Voucher"
#: usr/local/www/services_captiveportal_vouchers.php:583
#: usr/local/www/services_captiveportal_vouchers.php:590
+#: usr/local/www/services_captiveportal_vouchers.php:603
+#: usr/local/www/services_captiveportal_vouchers.php:612
msgid "This is the username of the master voucher nodes webConfigurator."
msgstr "Esse é o nome de usuário do master voucher nodes webConfigurator."
#: usr/local/www/services_captiveportal_vouchers.php:587
#: usr/local/www/services_captiveportal_vouchers.php:594
+#: usr/local/www/services_captiveportal_vouchers.php:607
+#: usr/local/www/services_captiveportal_vouchers.php:616
msgid "Voucher sync password"
msgstr "Senha de sincronização do Voucher"
#: usr/local/www/services_captiveportal_vouchers.php:590
#: usr/local/www/services_captiveportal_vouchers.php:597
+#: usr/local/www/services_captiveportal_vouchers.php:610
+#: usr/local/www/services_captiveportal_vouchers.php:619
msgid "This is the password of the master voucher nodes webConfigurator."
msgstr "Esse é a senha do master voucher nodes webConfigurator."
#: usr/local/www/services_captiveportal_vouchers.php:604
#: usr/local/www/services_captiveportal_vouchers.php:611
+#: usr/local/www/services_captiveportal_vouchers.php:625
+#: usr/local/www/services_captiveportal_vouchers.php:634
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 "
@@ -21973,6 +27538,8 @@ msgstr ""
#: usr/local/www/services_captiveportal_vouchers.php:606
#: usr/local/www/services_captiveportal_vouchers.php:613
+#: usr/local/www/services_captiveportal_vouchers.php:627
+#: usr/local/www/services_captiveportal_vouchers.php:636
msgid ""
"Specifying the Voucher Database Synchronization options will not record any "
"other value from the other options. They will be retrieved/synced from the "
@@ -21983,46 +27550,56 @@ msgstr ""
"partir do master."
#: usr/local/www/services_captiveportal_vouchers_edit.php:48
+#: usr/local/www/services_captiveportal_vouchers_edit.php:45
msgid "Edit Voucher Rolls"
msgstr "Editar Listad de Voucher"
#: usr/local/www/services_captiveportal_vouchers_edit.php:101
+#: usr/local/www/services_captiveportal_vouchers_edit.php:99
#, php-format
msgid "Roll number %s already exists."
msgstr "Número de lista %s já existe."
#: usr/local/www/services_captiveportal_vouchers_edit.php:107
+#: usr/local/www/services_captiveportal_vouchers_edit.php:105
#, php-format
msgid "Roll number must be numeric and less than %s"
msgstr "Número de lista deve ser numérico e menor que %s"
#: usr/local/www/services_captiveportal_vouchers_edit.php:110
+#: usr/local/www/services_captiveportal_vouchers_edit.php:108
#, php-format
msgid "A roll has at least one voucher and less than %s."
msgstr "Uma lista tem no mínimo um voucher e menos que %s."
#: usr/local/www/services_captiveportal_vouchers_edit.php:113
+#: usr/local/www/services_captiveportal_vouchers_edit.php:111
msgid "Each voucher must be good for at least 1 minute."
msgstr "Cada voucher deve ser bom por pelo menos 1 minuto."
#: usr/local/www/services_captiveportal_vouchers_edit.php:134
+#: usr/local/www/services_captiveportal_vouchers_edit.php:132
#, php-format
msgid "All %1$s vouchers from Roll %2$s marked unused"
msgstr "Todos %1$s vouchers da Lista %2$s são marcados como não usados"
#: usr/local/www/services_captiveportal_vouchers_edit.php:177
+#: usr/local/www/services_captiveportal_vouchers_edit.php:175
msgid "Enter the Roll"
msgstr "Informe a Lista"
#: usr/local/www/services_captiveportal_vouchers_edit.php:177
+#: usr/local/www/services_captiveportal_vouchers_edit.php:175
msgid "found on top of the generated/printed vouchers"
msgstr "encontrado no topo dos vouchers gerados/impressos"
#: usr/local/www/services_captiveportal_vouchers_edit.php:181
+#: usr/local/www/services_captiveportal_vouchers_edit.php:179
msgid "Minutes per Ticket"
msgstr "Minutos por Ticket"
#: usr/local/www/services_captiveportal_vouchers_edit.php:185
+#: usr/local/www/services_captiveportal_vouchers_edit.php:183
msgid ""
"Defines the time in minutes that a user is allowed access. The clock starts "
"ticking the first time a voucher is used for authentication"
@@ -22031,10 +27608,12 @@ msgstr ""
"inicia a contagem a primeira vez que um voucher é usado para autenticação"
#: usr/local/www/services_captiveportal_vouchers_edit.php:193
+#: usr/local/www/services_captiveportal_vouchers_edit.php:191
msgid "Enter the number of vouchers"
msgstr "Informe o número de vouchers"
#: usr/local/www/services_captiveportal_vouchers_edit.php:193
+#: usr/local/www/services_captiveportal_vouchers_edit.php:191
msgid ""
"found on top of the generated/printed vouchers. WARNING: Changing this "
"number for an existing Roll will mark all vouchers as unused again"
@@ -22044,6 +27623,7 @@ msgstr ""
"novamente"
#: usr/local/www/services_captiveportal_vouchers_edit.php:201
+#: usr/local/www/services_captiveportal_vouchers_edit.php:199
msgid "Can be used to further identify this roll. Ignored by the system"
msgstr ""
"Pode ser usado para identificação adicional dessa lista. Ignorado pelo "
@@ -22124,6 +27704,7 @@ msgid "Filter Reload Status"
msgstr "Status do Filtro"
#: usr/local/www/status_filter_reload.php:88
+#: usr/local/www/status_filter_reload.php:89
msgid ""
"This page will automatically refresh every 3 seconds until the filter is "
"done reloading"
@@ -22135,17 +27716,17 @@ msgstr ""
msgid "Routing tables"
msgstr "Tabela de roteamento"
-#: usr/local/www/diag_routes.php:58
+#: usr/local/www/diag_routes.php:58 usr/local/www/diag_routes.php:59
msgid "Name resolution"
msgstr "Resolução de nomes"
-#: usr/local/www/diag_routes.php:62
+#: usr/local/www/diag_routes.php:62 usr/local/www/diag_routes.php:63
msgid "Enable this to attempt to resolve names when displaying the tables."
msgstr ""
"Habilitar isto para tentar resolver nomes quando visualizar a tabela de "
"estados."
-#: usr/local/www/diag_routes.php:69
+#: usr/local/www/diag_routes.php:69 usr/local/www/diag_routes.php:70
msgid "Show"
msgstr "Mostrar"
@@ -22166,15 +27747,15 @@ msgstr "ttl"
msgid "Maximum number of hops must be between 1 and %s"
msgstr "Número máximo de saltos deve estar entre 1 e %s"
-#: usr/local/www/diag_traceroute.php:94
+#: usr/local/www/diag_traceroute.php:94 usr/local/www/diag_traceroute.php:112
msgid "Maximum number of hops"
msgstr "Número máximo de saltos"
-#: usr/local/www/diag_traceroute.php:104
+#: usr/local/www/diag_traceroute.php:104 usr/local/www/diag_traceroute.php:128
msgid "Use ICMP"
msgstr "Usar ICMP"
-#: usr/local/www/diag_traceroute.php:117
+#: usr/local/www/diag_traceroute.php:117 usr/local/www/diag_traceroute.php:141
msgid ""
"Traceroute may take a while to complete. You may hit the Stop button on your "
"browser at any time to see the progress of failed traceroutes."
@@ -22183,7 +27764,7 @@ msgstr ""
"botão de parada em seu navegador a qualquer hora para ver o andamento das "
"falhas dos traceroutes."
-#: usr/local/www/diag_traceroute.php:120
+#: usr/local/www/diag_traceroute.php:120 usr/local/www/diag_traceroute.php:144
msgid "Traceroute output:"
msgstr "Saída de traceroute:"
@@ -22192,7 +27773,9 @@ msgid "Multi-wan is not supported from this utility currently."
msgstr "Este utilitário não suporta Multi-wan atualmente."
#: usr/local/www/status_graph.php:85 usr/local/www/fbegin.inc:173
-#: usr/local/www/fbegin.inc:191
+#: usr/local/www/fbegin.inc:191 usr/local/www/fbegin.inc:199
+#: usr/local/www/status_graph.php:90 usr/local/www/status_graph.php:101
+#: usr/local/www/fbegin.inc:190
msgid "Traffic Graph"
msgstr "Gráfico de tráfego"
@@ -22205,26 +27788,32 @@ msgstr ""
"download do plugin do Adobe SVG"
#: usr/local/www/status_graph.php:203 usr/local/www/status_graph.php:198
+#: usr/local/www/status_graph.php:209 usr/local/www/status_graph.php:220
msgid "Host IP"
msgstr "IP do Host"
#: usr/local/www/status_graph.php:204 usr/local/www/status_graph.php:199
+#: usr/local/www/status_graph.php:210 usr/local/www/status_graph.php:221
msgid "Bandwidth In"
msgstr "Tamanho de banda de entrada"
#: usr/local/www/status_graph.php:205 usr/local/www/status_graph.php:200
+#: usr/local/www/status_graph.php:211 usr/local/www/status_graph.php:222
msgid "Bandwidth Out"
msgstr "Tamanho de banda de saída"
#: usr/local/www/status_graph.php:291 usr/local/www/status_graph.php:286
+#: usr/local/www/status_graph.php:297 usr/local/www/status_graph.php:308
msgid "the"
msgstr "o"
#: usr/local/www/status_graph.php:291 usr/local/www/status_graph.php:286
+#: usr/local/www/status_graph.php:297 usr/local/www/status_graph.php:308
msgid "Adobe SVG Viewer"
msgstr "Visualizador Adobe SVG"
#: usr/local/www/status_graph.php:291 usr/local/www/status_graph.php:286
+#: usr/local/www/status_graph.php:297 usr/local/www/status_graph.php:308
msgid ""
"Firefox 1.5 or later or other browser supporting SVG is required to view the "
"graph"
@@ -22232,7 +27821,7 @@ msgstr ""
"Firefox 1.5 ou versão mais recente ou outro browser que suporte SVG é "
"requerido para visualizar o gráfico"
-#: usr/local/www/carp_status.php:71
+#: usr/local/www/carp_status.php:71 usr/local/www/carp_status.php:67
#, php-format
msgid ""
"%s IPs have been disabled. Please note that disabling does not survive a "
@@ -22241,23 +27830,23 @@ msgstr ""
"%s IPs foram desabilitados. Por favor, estas alterações não estarão "
"disponíveis no próximo boot."
-#: usr/local/www/carp_status.php:73
+#: usr/local/www/carp_status.php:73 usr/local/www/carp_status.php:69
msgid "CARP has been enabled."
msgstr "CARP foi habilitado."
-#: usr/local/www/carp_status.php:127
+#: usr/local/www/carp_status.php:127 usr/local/www/carp_status.php:120
msgid "Enable Carp"
msgstr "Habilitar CARP"
-#: usr/local/www/carp_status.php:130
+#: usr/local/www/carp_status.php:130 usr/local/www/carp_status.php:123
msgid "Disable Carp"
msgstr "Desabilitar CARP"
-#: usr/local/www/carp_status.php:138
+#: usr/local/www/carp_status.php:138 usr/local/www/carp_status.php:131
msgid "CARP Interface"
msgstr "Interface CARP"
-#: usr/local/www/carp_status.php:144
+#: usr/local/www/carp_status.php:144 usr/local/www/carp_status.php:137
msgid "Could not locate any defined CARP interfaces."
msgstr "Não foi possível localizar interfaces CARP definidas."
@@ -22265,21 +27854,26 @@ msgstr "Não foi possível localizar interfaces CARP definidas."
msgid "You can configure CARP settings"
msgstr "Você pode definir as configurações CARP"
-#: usr/local/www/carp_status.php:202
+#: usr/local/www/carp_status.php:202 usr/local/www/carp_status.php:195
msgid "pfSync nodes"
msgstr "Nós pfSync"
#: usr/local/www/status_interfaces.php:81
+#: usr/local/www/status_interfaces.php:84
msgid "interface"
msgstr "interface"
#: usr/local/www/status_interfaces.php:99
#: usr/local/www/status_interfaces.php:117
+#: usr/local/www/status_interfaces.php:102
+#: usr/local/www/status_interfaces.php:120
msgid "Release"
msgstr "Lançamento"
#: usr/local/www/status_interfaces.php:102
#: usr/local/www/status_interfaces.php:120
+#: usr/local/www/status_interfaces.php:105
+#: usr/local/www/status_interfaces.php:123
msgid "Renew"
msgstr "Renovar"
@@ -22291,98 +27885,122 @@ msgstr "Renovar"
#: usr/local/www/status_interfaces.php:150
#: usr/local/www/status_interfaces.php:165
#: usr/local/www/status_interfaces.php:181
+#: usr/local/www/status_interfaces.php:138
+#: usr/local/www/status_interfaces.php:153
+#: usr/local/www/status_interfaces.php:168
+#: usr/local/www/status_interfaces.php:184
msgid "Connect"
msgstr "Conectar"
#: usr/local/www/status_interfaces.php:171
#: usr/local/www/status_interfaces.php:189
+#: usr/local/www/status_interfaces.php:192
msgid "Uptime "
msgstr "Uptime"
#: usr/local/www/status_interfaces.php:200
#: usr/local/www/status_interfaces.php:274
+#: usr/local/www/status_interfaces.php:277
msgid "Subnet mask IPv4"
msgstr "Máscara de Subrede IPv4"
#: usr/local/www/status_interfaces.php:207
#: usr/local/www/status_interfaces.php:281
+#: usr/local/www/status_interfaces.php:284
msgid "Gateway IPv4"
msgstr "Gateway IPv4"
#: usr/local/www/status_interfaces.php:224
#: usr/local/www/status_interfaces.php:305
+#: usr/local/www/status_interfaces.php:308
msgid "Subnet mask IPv6"
msgstr "Máscara de Subrede IPv6"
#: usr/local/www/status_interfaces.php:239
#: usr/local/www/status_interfaces.php:320
+#: usr/local/www/status_interfaces.php:323
msgid "ISP DNS servers"
msgstr "Servidores DNS ISP"
#: usr/local/www/status_interfaces.php:251
#: usr/local/www/status_interfaces.php:332
+#: usr/local/www/status_interfaces.php:335
msgid "Media"
msgstr "Media"
#: usr/local/www/status_interfaces.php:272
#: usr/local/www/status_interfaces.php:369
+#: usr/local/www/status_interfaces.php:372
msgid "BSSID"
msgstr "BSSID"
#: usr/local/www/status_interfaces.php:279
#: usr/local/www/diag_dump_states_sources.php:148
#: usr/local/www/status_interfaces.php:376
+#: usr/local/www/status_interfaces.php:379
+#: usr/local/www/diag_dump_states_sources.php:147
+#: usr/local/www/diag_system_pftop.php:158
msgid "Rate"
msgstr "Taxa"
#: usr/local/www/status_interfaces.php:286
#: usr/local/www/status_interfaces.php:383
+#: usr/local/www/status_interfaces.php:386
msgid "RSSI"
msgstr "RSSI"
#: usr/local/www/status_interfaces.php:293
#: usr/local/www/status_interfaces.php:390
+#: usr/local/www/status_interfaces.php:393
msgid "In/out packets"
msgstr "Pacotes de entrada/saída"
#: usr/local/www/status_interfaces.php:302
#: usr/local/www/status_interfaces.php:399
+#: usr/local/www/status_interfaces.php:402
msgid "In/out packets (pass)"
msgstr "Pacotes de entrada/saída (liberados)"
#: usr/local/www/status_interfaces.php:311
#: usr/local/www/status_interfaces.php:408
+#: usr/local/www/status_interfaces.php:411
msgid "In/out packets (block)"
msgstr "Pacotes de entrada/saída (bloqueados)"
#: usr/local/www/status_interfaces.php:321
#: usr/local/www/status_interfaces.php:418
+#: usr/local/www/status_interfaces.php:421
msgid "In/out errors"
msgstr "Erros de entrada/saída "
#: usr/local/www/status_interfaces.php:329
#: usr/local/www/status_interfaces.php:426
+#: usr/local/www/status_interfaces.php:429
msgid "Collisions"
msgstr "Colisões"
#: usr/local/www/status_interfaces.php:338
#: usr/local/www/status_interfaces.php:435
+#: usr/local/www/status_interfaces.php:438
#, php-format
msgid "Bridge (%s)"
msgstr "Ponte (%s)"
#: usr/local/www/status_interfaces.php:360
#: usr/local/www/status_interfaces.php:457
+#: usr/local/www/status_interfaces.php:460
msgid "Interrupts/Second"
msgstr "Interrupções/Segundo"
#: usr/local/www/status_interfaces.php:363
#: usr/local/www/status_interfaces.php:460
+#: usr/local/www/status_interfaces.php:463
msgid "total"
msgstr "total"
#: usr/local/www/status_interfaces.php:376
#: usr/local/www/status_interfaces.php:473
+#: usr/local/www/status_interfaces.php:476
#, php-format
msgid ""
"Using dial-on-demand will bring the connection up again if any packet "
@@ -22396,47 +28014,50 @@ msgstr ""
"discagem sob demanda se quiser ter certeza de que a linha se manterá "
"desconectada."
-#: usr/local/www/exec.php:91
+#: usr/local/www/exec.php:91 usr/local/www/exec.php:93
msgid "Execute command"
msgstr "Executar comando"
-#: usr/local/www/exec.php:153
+#: usr/local/www/exec.php:153 usr/local/www/exec.php:155
msgid "Nothing to recall"
msgstr "Nada para lembrar"
-#: usr/local/www/exec.php:222
+#: usr/local/www/exec.php:222 usr/local/www/exec.php:224
msgid "Note: this function is unsupported. Use it on your own risk"
msgstr "Nota: Esta função não é suportada. Use-a sob seu próprio risco"
-#: usr/local/www/exec.php:253
+#: usr/local/www/exec.php:253 usr/local/www/exec.php:255
msgid "Execute Shell command"
msgstr "Executar comando Shell"
#: usr/local/www/exec.php:256 usr/local/www/exec.php:309
+#: usr/local/www/exec.php:258 usr/local/www/exec.php:311
msgid "Command"
msgstr "Comando"
#: usr/local/www/exec.php:264 usr/local/www/exec.php:315
+#: usr/local/www/exec.php:266 usr/local/www/exec.php:317
msgid "Execute"
msgstr "Executar"
#: usr/local/www/exec.php:266 usr/local/www/status_upnp.php:77
+#: usr/local/www/exec.php:268 usr/local/www/status_upnp.php:78
msgid "Clear"
msgstr "Limpar"
-#: usr/local/www/exec.php:276
+#: usr/local/www/exec.php:276 usr/local/www/exec.php:278
msgid "File to download"
msgstr "Arquivo para download"
-#: usr/local/www/exec.php:293
+#: usr/local/www/exec.php:293 usr/local/www/exec.php:295
msgid "File to upload"
msgstr "Arquivo para carregar"
-#: usr/local/www/exec.php:306
+#: usr/local/www/exec.php:306 usr/local/www/exec.php:308
msgid "PHP Execute"
msgstr "Executar PHP"
-#: usr/local/www/exec.php:317
+#: usr/local/www/exec.php:317 usr/local/www/exec.php:319
msgid "Example"
msgstr "Exemplo"
@@ -22445,10 +28066,12 @@ msgid "Nothing specified. Cannot continue."
msgstr "Nada especificado. Não pode continuar."
#: usr/local/www/fbegin.inc:88 usr/local/www/fbegin.inc:105
+#: usr/local/www/fbegin.inc:114 usr/local/www/fbegin.inc:106
msgid "Packages"
msgstr "Pacotes"
#: usr/local/www/fbegin.inc:89 usr/local/www/fbegin.inc:106
+#: usr/local/www/fbegin.inc:115 usr/local/www/fbegin.inc:107
msgid "Setup Wizard"
msgstr "Wizard de Configuração"
@@ -22457,26 +28080,37 @@ msgstr "Wizard de Configuração"
#: usr/local/www/diag_logs_resolver.php:98 usr/local/www/diag_logs.php:97
#: usr/local/www/diag_logs_wireless.php:86
#: usr/local/www/diag_logs_gateways.php:98
+#: usr/local/www/diag_logs_routing.php:85 usr/local/www/fbegin.inc:116
+#: usr/local/www/diag_logs_resolver.php:99
+#: usr/local/www/diag_logs_wireless.php:87
+#: usr/local/www/diag_logs_gateways.php:99 usr/local/www/fbegin.inc:108
msgid "Routing"
msgstr "Roteamento"
#: usr/local/www/fbegin.inc:91 usr/local/www/fbegin.inc:108
+#: usr/local/www/fbegin.inc:117 usr/local/www/fbegin.inc:109
msgid "Cert Manager"
msgstr "Ger. de certificados"
#: usr/local/www/fbegin.inc:123 usr/local/www/services_dhcpv6_relay.php:101
-#: usr/local/www/fbegin.inc:140
+#: usr/local/www/fbegin.inc:140 usr/local/www/fbegin.inc:149
+#: usr/local/www/fbegin.inc:141
msgid "DHCPv6 Relay"
msgstr "DHCPv6 Relay"
#: usr/local/www/fbegin.inc:126 usr/local/www/fbegin.inc:143
#: usr/local/www/services_dhcpv6.php:581
+#: usr/local/www/services_router_advertisements.php:260
+#: usr/local/www/services_dhcpv6.php:502 usr/local/www/services_dhcpv6.php:512
+#: usr/local/www/services_dhcpv6.php:513 usr/local/www/services_dhcpv6.php:523
msgid "DHCPv6 Server"
msgstr "Servidor DHCPv6"
#: usr/local/www/fbegin.inc:129 usr/local/www/status_services.php:316
#: usr/local/www/widgets/widgets/services_status.widget.php:121
-#: usr/local/www/fbegin.inc:146
+#: usr/local/www/fbegin.inc:146 etc/inc/service-utils.inc:299
+#: usr/local/www/fbegin.inc:155 usr/local/www/fbegin.inc:147
+#: etc/inc/service-utils.inc:298
msgid "IGMP proxy"
msgstr "Proxy IGMP"
@@ -22485,40 +28119,50 @@ msgid "OLSR"
msgstr "OLSR"
#: usr/local/www/fbegin.inc:132 usr/local/www/vpn_pppoe_edit.php:234
-#: usr/local/www/fbegin.inc:150
+#: usr/local/www/fbegin.inc:150 usr/local/www/fbegin.inc:158
+#: usr/local/www/vpn_pppoe_edit.php:237
msgid "PPPoE Server"
msgstr "Servidor PPPoE"
#: usr/local/www/fbegin.inc:133 usr/local/www/fbegin.inc:151
+#: usr/local/www/fbegin.inc:159
msgid "RIP"
msgstr "RIP"
#: usr/local/www/fbegin.inc:139 usr/local/www/fbegin.inc:175
#: usr/local/www/fbegin.inc:157 usr/local/www/fbegin.inc:193
+#: usr/local/www/fbegin.inc:165 usr/local/www/fbegin.inc:201
+#: usr/local/www/fbegin.inc:156 usr/local/www/fbegin.inc:192
msgid "UPnP &amp; NAT-PMP"
msgstr "UPnP &amp; NAT-PMP"
#: usr/local/www/fbegin.inc:157 usr/local/www/fbegin.inc:174
+#: usr/local/www/fbegin.inc:182 usr/local/www/fbegin.inc:173
msgid "CARP (failover)"
msgstr "CARP (failover)"
#: usr/local/www/fbegin.inc:158 usr/local/www/fbegin.inc:175
+#: usr/local/www/fbegin.inc:183 usr/local/www/fbegin.inc:174
msgid "Dashboard"
msgstr "Dashboard"
#: usr/local/www/fbegin.inc:160 usr/local/www/fbegin.inc:177
+#: usr/local/www/fbegin.inc:185 usr/local/www/fbegin.inc:176
msgid "DHCP Leases"
msgstr "Concessões DHCP"
#: usr/local/www/fbegin.inc:161 usr/local/www/fbegin.inc:178
+#: usr/local/www/fbegin.inc:186 usr/local/www/fbegin.inc:177
msgid "DHCPv6 Leases"
msgstr "Concessões DHCPv6"
#: usr/local/www/fbegin.inc:162 usr/local/www/fbegin.inc:179
+#: usr/local/www/fbegin.inc:187 usr/local/www/fbegin.inc:178
msgid "Filter Reload"
msgstr "Recarregar Filtro"
#: usr/local/www/fbegin.inc:168 usr/local/www/fbegin.inc:186
+#: usr/local/www/fbegin.inc:194 usr/local/www/fbegin.inc:185
msgid "Package Logs"
msgstr "Logs de pacotes"
@@ -22529,6 +28173,8 @@ msgstr "Logs de pacotes"
#: usr/local/www/fbegin.inc:187
#: usr/local/www/status_rrd_graph_settings.php:138
#: usr/local/www/status_queues.php:101 usr/local/www/status_rrd_graph.php:386
+#: usr/local/www/fbegin.inc:195 usr/local/www/status_rrd_graph.php:411
+#: usr/local/www/status_queues.php:109 usr/local/www/fbegin.inc:186
msgid "Queues"
msgstr "Filas"
@@ -22539,11 +28185,14 @@ msgstr "Filas"
#: usr/local/www/fbegin.inc:188
#: usr/local/www/status_rrd_graph_settings.php:114
#: usr/local/www/status_rrd_graph_settings.php:172
-#: usr/local/www/status_rrd_graph.php:244
+#: usr/local/www/status_rrd_graph.php:244 usr/local/www/fbegin.inc:196
+#: usr/local/www/status_rrd_graph_img.php:43
+#: usr/local/www/status_rrd_graph.php:248 usr/local/www/fbegin.inc:187
msgid "RRD Graphs"
msgstr "Gráficos RRD"
#: usr/local/www/fbegin.inc:172 usr/local/www/fbegin.inc:190
+#: usr/local/www/fbegin.inc:198 usr/local/www/fbegin.inc:189
msgid "System Logs"
msgstr "Logs do sistema"
@@ -22552,96 +28201,119 @@ msgid "ARP Tables"
msgstr "Tabela ARP"
#: usr/local/www/fbegin.inc:191 usr/local/www/fbegin.inc:209
+#: usr/local/www/fbegin.inc:217 usr/local/www/fbegin.inc:208
msgid "Command Prompt"
msgstr "Prompt de Comando"
#: usr/local/www/fbegin.inc:193 usr/local/www/fbegin.inc:211
+#: usr/local/www/fbegin.inc:219 usr/local/www/fbegin.inc:210
msgid "Edit File"
msgstr "Editar arquivo"
#: usr/local/www/fbegin.inc:194 usr/local/www/fbegin.inc:212
+#: usr/local/www/fbegin.inc:220 usr/local/www/fbegin.inc:211
msgid "Factory Defaults"
msgstr "Padrão de fábrica"
#: usr/local/www/fbegin.inc:195 usr/local/www/fbegin.inc:213
+#: usr/local/www/fbegin.inc:221 usr/local/www/fbegin.inc:212
msgid "Halt System"
msgstr "Desligar sistema"
#: usr/local/www/fbegin.inc:196 usr/local/www/fbegin.inc:214
+#: usr/local/www/fbegin.inc:222 usr/local/www/fbegin.inc:213
msgid "Limiter Info"
msgstr "Limitador"
#: usr/local/www/fbegin.inc:197 usr/local/www/diag_ndp.php:103
-#: usr/local/www/fbegin.inc:215
+#: usr/local/www/fbegin.inc:215 usr/local/www/fbegin.inc:223
+#: usr/local/www/fbegin.inc:214
msgid "NDP Table"
msgstr "Tabela NDP"
#: usr/local/www/fbegin.inc:201 usr/local/www/fbegin.inc:219
+#: usr/local/www/fbegin.inc:227
msgid "pfInfo"
msgstr "pfInfo"
#: usr/local/www/fbegin.inc:202 usr/local/www/fbegin.inc:220
+#: usr/local/www/fbegin.inc:228
msgid "pfTop"
msgstr "pfTop"
#: usr/local/www/fbegin.inc:203 usr/local/www/fbegin.inc:221
+#: usr/local/www/fbegin.inc:229
msgid "Reboot"
msgstr "Reiniciar"
#: usr/local/www/fbegin.inc:205 usr/local/www/fbegin.inc:223
#: usr/local/www/widgets/widgets/smart_status.widget.php:38
+#: usr/local/www/fbegin.inc:231
msgid "SMART Status"
msgstr "Status SMART"
#: usr/local/www/fbegin.inc:207 usr/local/www/fbegin.inc:225
+#: usr/local/www/fbegin.inc:234 usr/local/www/fbegin.inc:226
msgid "States Summary"
msgstr "Resumo da Tabela de Estados"
#: usr/local/www/fbegin.inc:208 usr/local/www/fbegin.inc:226
+#: usr/local/www/fbegin.inc:235 usr/local/www/fbegin.inc:227
msgid "System Activity"
msgstr "Atividades do Sistema"
#: usr/local/www/fbegin.inc:216 usr/local/www/fbegin.inc:233
+#: usr/local/www/fbegin.inc:242 usr/local/www/fbegin.inc:234
msgid "Restart HTTPD"
msgstr "Reiniciar HTTPD"
#: usr/local/www/fbegin.inc:222 usr/local/www/fbegin.inc:240
+#: usr/local/www/fbegin.inc:249 usr/local/www/fbegin.inc:241
msgid "About this Page"
msgstr "Sobre esta página"
#: usr/local/www/fbegin.inc:224 usr/local/www/fbegin.inc:242
+#: usr/local/www/fbegin.inc:251 usr/local/www/fbegin.inc:243
msgid "Bug Database"
msgstr "Banco de Dados de Bugs"
#: usr/local/www/fbegin.inc:225 usr/local/www/fbegin.inc:243
+#: usr/local/www/fbegin.inc:252 usr/local/www/fbegin.inc:244
msgid "User Forum"
msgstr "Fórum Usuário"
#: usr/local/www/fbegin.inc:226 usr/local/www/fbegin.inc:244
+#: usr/local/www/fbegin.inc:253 usr/local/www/fbegin.inc:245
msgid "Documentation"
msgstr "Documentação"
#: usr/local/www/fbegin.inc:227 usr/local/www/fbegin.inc:245
+#: usr/local/www/fbegin.inc:254 usr/local/www/fbegin.inc:246
msgid "Developers Wiki"
msgstr "Wiki de desenvolvedores"
#: usr/local/www/fbegin.inc:228 usr/local/www/fbegin.inc:246
+#: usr/local/www/fbegin.inc:255 usr/local/www/fbegin.inc:247
msgid "Paid Support"
msgstr "Suporte à pagamentos"
#: usr/local/www/fbegin.inc:229 usr/local/www/fbegin.inc:247
+#: usr/local/www/fbegin.inc:256 usr/local/www/fbegin.inc:248
msgid "pfSense Book"
msgstr "Livro pfSense"
#: usr/local/www/fbegin.inc:230 usr/local/www/fbegin.inc:248
+#: usr/local/www/fbegin.inc:257 usr/local/www/fbegin.inc:249
msgid "Search portal"
msgstr "Portal fonte"
#: usr/local/www/fbegin.inc:231 usr/local/www/fbegin.inc:249
+#: usr/local/www/fbegin.inc:258 usr/local/www/fbegin.inc:250
msgid "FreeBSD Handbook"
msgstr "FreeBSD Handbook"
#: usr/local/www/fbegin.inc:376 usr/local/www/fbegin.inc:394
+#: usr/local/www/fbegin.inc:340 usr/local/www/fbegin.inc:332
msgid "Help"
msgstr "Ajuda"
@@ -22658,6 +28330,7 @@ msgid "Help for items on this page."
msgstr "Ajuda para os itens nesta página."
#: usr/local/www/fbegin.inc:441 usr/local/www/fbegin.inc:459
+#: usr/local/www/fbegin.inc:429 usr/local/www/fbegin.inc:421
msgid ""
"Packages are currently being reinstalled in the background.<p>Do not make "
"changes in the GUI until this is complete."
@@ -22666,56 +28339,67 @@ msgstr ""
"alterações na interface Web até que isto esteja completo."
#: usr/local/www/status_queues.php:98 usr/local/www/status_queues.php:101
+#: usr/local/www/status_queues.php:109
msgid "Traffic shaper"
msgstr "Traffic shaper"
#: usr/local/www/status_queues.php:107 usr/local/www/status_queues.php:110
+#: usr/local/www/status_queues.php:111 usr/local/www/status_queues.php:117
msgid "Traffic shaping is not configured."
msgstr "Modelagem de tráfego não está configurado."
#: usr/local/www/status_queues.php:136 usr/local/www/status_queues.php:143
+#: usr/local/www/status_queues.php:144 usr/local/www/status_queues.php:149
msgid "Statistics"
msgstr "Estatísticas"
#: usr/local/www/status_queues.php:158 usr/local/www/status_queues.php:165
+#: usr/local/www/status_queues.php:166 usr/local/www/status_queues.php:223
msgid "Loading"
msgstr "Carregando"
#: usr/local/www/status_queues.php:173 usr/local/www/status_queues.php:181
+#: usr/local/www/status_queues.php:182 usr/local/www/status_queues.php:164
msgid "Queue graphs take 5 seconds to sample data"
msgstr "Gráficos de filas levam 5 segundos para gerar dados de amostra"
#: usr/local/www/status_queues.php:174 usr/local/www/status_queues.php:182
+#: usr/local/www/status_queues.php:183 usr/local/www/status_queues.php:165
msgid "You can configure the Traffic Shaper"
msgstr "Você pode configurar o Traffic Shaper"
#: usr/local/www/status_rrd_graph.php:211
#: usr/local/www/status_rrd_graph_settings.php:59
#: usr/local/www/status_rrd_graph.php:174
+#: usr/local/www/status_rrd_graph.php:179
msgid "Inverse"
msgstr "Inverso"
#: usr/local/www/status_rrd_graph.php:212
#: usr/local/www/status_rrd_graph_settings.php:60
#: usr/local/www/status_rrd_graph.php:175
+#: usr/local/www/status_rrd_graph.php:180
msgid "Absolute"
msgstr "Absoluto"
#: usr/local/www/status_rrd_graph.php:214
#: usr/local/www/status_rrd_graph_settings.php:61
#: usr/local/www/status_rrd_graph.php:234
+#: usr/local/www/status_rrd_graph.php:238
msgid "Absolute Timespans"
msgstr "Timespans absolutos"
#: usr/local/www/status_rrd_graph.php:214
#: usr/local/www/status_rrd_graph_settings.php:62
#: usr/local/www/status_rrd_graph.php:234
+#: usr/local/www/status_rrd_graph.php:238
msgid "Current Period"
msgstr "Período atual"
#: usr/local/www/status_rrd_graph.php:214
#: usr/local/www/status_rrd_graph_settings.php:63
#: usr/local/www/status_rrd_graph.php:234
+#: usr/local/www/status_rrd_graph.php:238
msgid "Previous Period"
msgstr "Período anterior"
@@ -22724,6 +28408,7 @@ msgstr "Período anterior"
#: usr/local/www/status_rrd_graph_settings.php:130
#: usr/local/www/status_rrd_graph_settings.php:131
#: usr/local/www/status_rrd_graph.php:379
+#: usr/local/www/status_rrd_graph.php:404
msgid "Traffic"
msgstr "Tráfego"
@@ -22732,6 +28417,7 @@ msgstr "Tráfego"
#: usr/local/www/status_rrd_graph_settings.php:132
#: usr/local/www/status_rrd_graph_settings.php:133
#: usr/local/www/status_rrd_graph.php:381
+#: usr/local/www/status_rrd_graph.php:406
msgid "Packets"
msgstr "Pacotes"
@@ -22740,6 +28426,7 @@ msgstr "Pacotes"
#: usr/local/www/status_rrd_graph_settings.php:134
#: usr/local/www/status_rrd_graph_settings.php:135
#: usr/local/www/status_rrd_graph.php:383
+#: usr/local/www/status_rrd_graph.php:408
msgid "Quality"
msgstr "Qualidade"
@@ -22747,6 +28434,7 @@ msgstr "Qualidade"
#: usr/local/www/status_rrd_graph_settings.php:139
#: usr/local/www/status_rrd_graph_settings.php:140
#: usr/local/www/status_rrd_graph.php:388
+#: usr/local/www/status_rrd_graph.php:413
msgid "QueueDrops"
msgstr "Quedas de fila"
@@ -22754,11 +28442,13 @@ msgstr "Quedas de fila"
#: usr/local/www/status_rrd_graph_settings.php:147
#: usr/local/www/status_rrd_graph_settings.php:148
#: usr/local/www/status_rrd_graph.php:396
+#: usr/local/www/status_rrd_graph.php:421
msgid "Cellular"
msgstr "Celular"
#: usr/local/www/status_rrd_graph.php:371
#: usr/local/www/status_rrd_graph.php:419
+#: usr/local/www/status_rrd_graph.php:451
msgid ""
"Note: Change of color and/or style may not take effect until the next refresh"
msgstr ""
@@ -22767,51 +28457,61 @@ msgstr ""
#: usr/local/www/status_rrd_graph.php:375
#: usr/local/www/status_rrd_graph.php:423
+#: usr/local/www/status_rrd_graph.php:455
msgid "Graphs:"
msgstr "Gráficos:"
#: usr/local/www/status_rrd_graph.php:432
#: usr/local/www/status_rrd_graph.php:480
+#: usr/local/www/status_rrd_graph.php:515
msgid "Style:"
msgstr "Estilo:"
#: usr/local/www/status_rrd_graph.php:446
#: usr/local/www/status_rrd_graph.php:494
+#: usr/local/www/status_rrd_graph.php:529
msgid "Period:"
msgstr "Período:"
#: usr/local/www/status_rrd_graph.php:461
#: usr/local/www/status_rrd_graph.php:513
+#: usr/local/www/status_rrd_graph.php:548
msgid "Start:"
msgstr "Início:"
#: usr/local/www/status_rrd_graph.php:463
#: usr/local/www/status_rrd_graph.php:515
+#: usr/local/www/status_rrd_graph.php:550
msgid "End:"
msgstr "Fim:"
#: usr/local/www/status_rrd_graph.php:465
#: usr/local/www/status_rrd_graph.php:517
+#: usr/local/www/status_rrd_graph.php:552
msgid "Go"
msgstr "Ir"
#: usr/local/www/status_rrd_graph_img.php:41
+#: usr/local/www/status_rrd_graph_img.php:43
msgid "Image viewer"
msgstr "Visualizador de imagem"
#: usr/local/www/status_rrd_graph_img.php:216
+#: usr/local/www/status_rrd_graph_img.php:221
#, php-format
msgid "rrdcolors.inc.php for theme %s does not exist, using defaults!"
msgstr "rrdcolors.inc.php para tema %s não existe, usando padrões!"
#: usr/local/www/status_rrd_graph_img.php:1095
#: usr/local/www/status_rrd_graph_img.php:1088
+#: usr/local/www/status_rrd_graph_img.php:1093
#, php-format
msgid "Sorry we do not have data to graph for %s"
msgstr "Lamento, não temos dados para gerar gráfico para %s"
#: usr/local/www/status_rrd_graph_img.php:1115
#: usr/local/www/status_rrd_graph_img.php:1108
+#: usr/local/www/status_rrd_graph_img.php:1113
#, php-format
msgid "Failed to create graph with error code %1$s, the error is: %2$s"
msgstr "Falhou ao criar gráfico com o código de erro %1$s, o erro é: %2$s"
@@ -22819,6 +28519,8 @@ msgstr "Falhou ao criar gráfico com o código de erro %1$s, o erro é: %2$s"
#: usr/local/www/status_rrd_graph_img.php:1117
#: usr/local/www/status_rrd_graph_img.php:1124
#: usr/local/www/status_rrd_graph_img.php:1110
+#: usr/local/www/status_rrd_graph_img.php:1115
+#: usr/local/www/status_rrd_graph_img.php:1122
#, php-format
msgid "failed to create graph from %s%s, removing database"
msgstr "falhou ao criar gráfico de %s%s, removendo da base de dados"
@@ -22882,56 +28584,67 @@ msgstr ""
#: usr/local/www/status_services.php:60
#: usr/local/www/widgets/widgets/services_status.widget.php:54
+#: etc/inc/service-utils.inc:387 etc/inc/service-utils.inc:386
msgid "Not available."
msgstr "Não disponível."
-#: usr/local/www/status_services.php:112
+#: usr/local/www/status_services.php:112 usr/local/www/status_services.php:100
+#: usr/local/www/status_services.php:98
#, php-format
msgid "%s has been restarted."
msgstr "%s foi reiniciado."
-#: usr/local/www/status_services.php:159
+#: usr/local/www/status_services.php:159 usr/local/www/status_services.php:151
+#: usr/local/www/status_services.php:149
#, php-format
msgid "%s has been started."
msgstr "%s foi iniciado."
-#: usr/local/www/status_services.php:218
+#: usr/local/www/status_services.php:218 usr/local/www/status_services.php:214
+#: usr/local/www/status_services.php:212
#, php-format
msgid "%s has been stopped."
msgstr "%s foi interrompido."
#: usr/local/www/status_services.php:269
#: usr/local/www/widgets/widgets/services_status.widget.php:74
+#: etc/inc/service-utils.inc:247 etc/inc/service-utils.inc:246
msgid "NTP clock sync"
msgstr "Sincronização de relógio NTP"
#: usr/local/www/status_services.php:302
#: usr/local/www/widgets/widgets/services_status.widget.php:107
+#: etc/inc/service-utils.inc:285 etc/inc/service-utils.inc:284
msgid "DHCP Service"
msgstr "Serviço DHCP"
#: usr/local/www/status_services.php:309
#: usr/local/www/widgets/widgets/services_status.widget.php:114
+#: etc/inc/service-utils.inc:292 etc/inc/service-utils.inc:291
msgid "SNMP Service"
msgstr "Serviço SNMP"
#: usr/local/www/status_services.php:323
#: usr/local/www/widgets/widgets/services_status.widget.php:128
+#: etc/inc/service-utils.inc:306 etc/inc/service-utils.inc:305
msgid "UPnP Service"
msgstr "Serviço UPnP"
#: usr/local/www/status_services.php:353
#: usr/local/www/widgets/widgets/services_status.widget.php:158
+#: etc/inc/service-utils.inc:343 etc/inc/service-utils.inc:342
msgid "Server load balancing daemon"
msgstr "Daemon do balanceamento de carga do servidor"
#: usr/local/www/status_services.php:380
#: usr/local/www/widgets/widgets/services_status.widget.php:210
+#: etc/inc/service-utils.inc:411 etc/inc/service-utils.inc:410
msgid "Running"
msgstr "Executando"
#: usr/local/www/status_services.php:383
#: usr/local/www/widgets/widgets/services_status.widget.php:213
+#: etc/inc/service-utils.inc:420 etc/inc/service-utils.inc:419
msgid "Stopped"
msgstr "Interrompido"
@@ -22952,6 +28665,9 @@ msgstr "Iniciar Serviço"
#: usr/local/www/status_services.php:412
#: usr/local/www/widgets/widgets/services_status.widget.php:242
+#: usr/local/www/status_services.php:271
+#: usr/local/www/widgets/widgets/services_status.widget.php:83
+#: usr/local/www/status_services.php:269
msgid "No services found"
msgstr "Nenhum serviço encontrado"
@@ -22963,15 +28679,16 @@ msgstr "Regras foram limpas e o daemon reiniciado"
msgid "UPnP &amp; NAT-PMP Status"
msgstr "UPnP &amp; Status NAT-PMP"
-#: usr/local/www/status_upnp.php:67
+#: usr/local/www/status_upnp.php:67 usr/local/www/status_upnp.php:68
msgid "UPnP is currently disabled."
msgstr "UPnP está atualmente desabilitado."
-#: usr/local/www/status_upnp.php:77
+#: usr/local/www/status_upnp.php:77 usr/local/www/status_upnp.php:78
msgid "all currently connected sessions"
msgstr "todas as sessões atualmente conectadas"
#: usr/local/www/diag_arp.php:261 usr/local/www/fbegin.inc:206
+#: usr/local/www/fbegin.inc:214 usr/local/www/fbegin.inc:205
msgid "ARP Table"
msgstr "Tabela ARP"
@@ -22983,6 +28700,7 @@ msgstr "Carregando, por favor aguarde..."
#: usr/local/www/services_dyndns_edit.php:158
#: usr/local/www/services_dyndns_edit.php:92
#: usr/local/www/services_dyndns_edit.php:216
+#: usr/local/www/services_dyndns_edit.php:220
msgid "Service type"
msgstr "Tipo de Serviço"
@@ -22995,38 +28713,46 @@ msgstr "O MX contém caracteres inválidos."
#: usr/local/www/services_dyndns_edit.php:147
#: usr/local/www/services_dyndns_edit.php:156
#: usr/local/www/services_dyndns_edit.php:205
+#: usr/local/www/services_dyndns_edit.php:160
+#: usr/local/www/services_dyndns_edit.php:209
msgid "Dynamic DNS client"
msgstr "Cliente DNS dinâmico"
#: usr/local/www/services_dyndns_edit.php:154
#: usr/local/www/services_rfc2136_edit.php:188
#: usr/local/www/services_dyndns_edit.php:212
+#: usr/local/www/services_dyndns_edit.php:216
msgid "yes"
msgstr "sim"
#: usr/local/www/services_dyndns_edit.php:172
#: usr/local/www/services_rfc2136_edit.php:134
#: usr/local/www/services_dyndns_edit.php:230
+#: usr/local/www/services_dyndns_edit.php:234
msgid "Interface to monitor"
msgstr "Interface para monitorar"
#: usr/local/www/services_dyndns_edit.php:191
#: usr/local/www/services_dyndns_edit.php:274
+#: usr/local/www/services_dyndns_edit.php:278
msgid "Enter the complete host/domain name. example: myhost.dyndns.org"
msgstr "Informe um nome de host/domínio completo. Exemplo: myhost.dyndns.org"
#: usr/local/www/services_dyndns_edit.php:192
#: usr/local/www/services_dyndns_edit.php:275
+#: usr/local/www/services_dyndns_edit.php:279
msgid "For he.net tunnelbroker, enter your tunnel ID"
msgstr "Para tunnelbroker he.net, digite o ID do túnel"
#: usr/local/www/services_dyndns_edit.php:197
#: usr/local/www/services_dyndns_edit.php:280
+#: usr/local/www/services_dyndns_edit.php:284
msgid "MX"
msgstr "MX"
#: usr/local/www/services_dyndns_edit.php:201
#: usr/local/www/services_dyndns_edit.php:284
+#: usr/local/www/services_dyndns_edit.php:288
msgid ""
"Note: With DynDNS service you can only use a hostname, not an IP address."
msgstr ""
@@ -23035,6 +28761,7 @@ msgstr ""
#: usr/local/www/services_dyndns_edit.php:203
#: usr/local/www/services_dyndns_edit.php:286
+#: usr/local/www/services_dyndns_edit.php:290
msgid ""
"Set this option only if you need a special MX record. Not all services "
"support this."
@@ -23044,16 +28771,19 @@ msgstr ""
#: usr/local/www/services_dyndns_edit.php:207
#: usr/local/www/services_dyndns_edit.php:290
+#: usr/local/www/services_dyndns_edit.php:294
msgid "Wildcards"
msgstr "Wildcards"
#: usr/local/www/services_dyndns_edit.php:210
#: usr/local/www/services_dyndns_edit.php:293
+#: usr/local/www/services_dyndns_edit.php:297
msgid "Enable "
msgstr "Habilitar"
#: usr/local/www/services_dyndns_edit.php:210
#: usr/local/www/services_dyndns_edit.php:293
+#: usr/local/www/services_dyndns_edit.php:297
msgid "Wildcard"
msgstr "Wildcard"
@@ -23064,6 +28794,7 @@ msgstr ""
#: usr/local/www/services_dyndns_edit.php:224
#: usr/local/www/services_dyndns_edit.php:309
+#: usr/local/www/services_dyndns_edit.php:313
msgid ""
"FreeDNS (freedns.afraid.org): Enter your \"Authentication Token\" provided "
"by FreeDNS."
@@ -23073,6 +28804,7 @@ msgstr ""
#: usr/local/www/services_dyndns_edit.php:246
#: usr/local/www/services_dyndns_edit.php:377
+#: usr/local/www/services_dyndns_edit.php:381
#, php-format
msgid ""
"You must configure a DNS server in %sSystem:\n"
@@ -23200,12 +28932,16 @@ msgstr "Clientes RFC 2136"
#: usr/local/www/services_rfc2136.php:99
#: usr/local/www/vpn_openvpn_client.php:894
#: usr/local/www/vpn_openvpn_client.php:899
+#: usr/local/www/vpn_openvpn_client.php:952
+#: usr/local/www/services_rfc2136.php:118
+#: usr/local/www/vpn_openvpn_client.php:971
msgid "Do you really want to delete this client?"
msgstr "Você realmente deseja apagar esse cliente?"
#: usr/local/www/services_rfc2136_edit.php:71
#: usr/local/www/services_rfc2136_edit.php:153
#: usr/local/www/services_dyndns_edit.php:348
+#: usr/local/www/services_dyndns_edit.php:352
msgid "TTL"
msgstr "TTL"
@@ -23246,6 +28982,7 @@ msgstr "Tipo de chave"
#: usr/local/www/services_rfc2136_edit.php:168
#: usr/local/www/services_captiveportal_zones.php:52
+#: usr/local/www/services_captiveportal_zones.php:53
msgid "Zone"
msgstr "Zona"
@@ -23273,10 +29010,15 @@ msgstr ""
"para atualizações DNS dinâmicas funcionarem."
#: usr/local/www/status_captiveportal_test.php:82
+#: usr/local/www/status_captiveportal_test.php:83
+#: usr/local/www/status_captiveportal_expire.php:82
+#: usr/local/www/status_captiveportal_test.php:84
msgid "Voucher(s)"
msgstr "Voucher(s)"
#: usr/local/www/status_captiveportal_test.php:86
+#: usr/local/www/status_captiveportal_test.php:87
+#: usr/local/www/status_captiveportal_test.php:88
msgid ""
"Enter multiple vouchers separated by space or newline. The remaining time, "
"if valid, will be shown for each voucher"
@@ -23285,42 +29027,62 @@ msgstr ""
"remanescente, se válido, será exibido para cada voucher"
#: usr/local/www/status_captiveportal_voucher_rolls.php:85
+#: usr/local/www/status_captiveportal_voucher_rolls.php:86
+#: usr/local/www/status_captiveportal_voucher_rolls.php:88
msgid "Roll#"
msgstr "Lista#"
#: usr/local/www/status_captiveportal_voucher_rolls.php:87
+#: usr/local/www/status_captiveportal_voucher_rolls.php:88
+#: usr/local/www/status_captiveportal_voucher_rolls.php:90
msgid "# of Tickets"
msgstr "# de Tickets"
#: usr/local/www/status_captiveportal_voucher_rolls.php:89
+#: usr/local/www/status_captiveportal_voucher_rolls.php:90
+#: usr/local/www/status_captiveportal_voucher_rolls.php:92
msgid "used"
msgstr "usado"
#: usr/local/www/status_captiveportal_voucher_rolls.php:90
+#: usr/local/www/status_captiveportal_voucher_rolls.php:91
+#: usr/local/www/status_captiveportal_voucher_rolls.php:93
msgid "active"
msgstr "ativo"
#: usr/local/www/status_captiveportal_voucher_rolls.php:91
+#: usr/local/www/status_captiveportal_voucher_rolls.php:92
+#: usr/local/www/status_captiveportal_voucher_rolls.php:94
msgid "ready"
msgstr "pronto"
#: usr/local/www/status_captiveportal_vouchers.php:115
+#: usr/local/www/status_captiveportal_vouchers.php:116
+#: usr/local/www/status_captiveportal_vouchers.php:121
msgid "Voucher"
msgstr "Voucher"
#: usr/local/www/status_captiveportal_vouchers.php:117
+#: usr/local/www/status_captiveportal_vouchers.php:118
+#: usr/local/www/status_captiveportal_vouchers.php:123
msgid "Activated at"
msgstr "Ativado em"
#: usr/local/www/status_captiveportal_vouchers.php:118
+#: usr/local/www/status_captiveportal_vouchers.php:119
+#: usr/local/www/status_captiveportal_vouchers.php:124
msgid "Expires in"
msgstr "Expira em"
#: usr/local/www/status_captiveportal_vouchers.php:119
+#: usr/local/www/status_captiveportal_vouchers.php:120
+#: usr/local/www/status_captiveportal_vouchers.php:125
msgid "Expires at"
msgstr "Expira em"
#: usr/local/www/status_captiveportal_vouchers.php:127
+#: usr/local/www/status_captiveportal_vouchers.php:128
+#: usr/local/www/status_captiveportal_vouchers.php:133
msgid "min"
msgstr "min"
@@ -23333,6 +29095,9 @@ msgstr "Concessões DHCP"
#: usr/local/www/status_dhcpv6_leases.php:328
#: usr/local/www/status_dhcpv6_leases.php:372
#: usr/local/www/status_dhcp_leases.php:308
+#: usr/local/www/status_dhcpv6_leases.php:373
+#: usr/local/www/status_dhcp_leases.php:310
+#: usr/local/www/status_dhcpv6_leases.php:376
msgid "Failover Group"
msgstr "Grupo de Failover"
@@ -23340,6 +29105,9 @@ msgstr "Grupo de Failover"
#: usr/local/www/status_dhcpv6_leases.php:329
#: usr/local/www/status_dhcpv6_leases.php:373
#: usr/local/www/status_dhcp_leases.php:309
+#: usr/local/www/status_dhcpv6_leases.php:374
+#: usr/local/www/status_dhcp_leases.php:311
+#: usr/local/www/status_dhcpv6_leases.php:377
msgid "My State"
msgstr "Meu estado"
@@ -23351,6 +29119,11 @@ msgstr "Meu estado"
#: usr/local/www/status_dhcpv6_leases.php:376
#: usr/local/www/status_dhcp_leases.php:310
#: usr/local/www/status_dhcp_leases.php:312
+#: usr/local/www/status_dhcpv6_leases.php:375
+#: usr/local/www/status_dhcpv6_leases.php:377
+#: usr/local/www/status_dhcp_leases.php:314
+#: usr/local/www/status_dhcpv6_leases.php:378
+#: usr/local/www/status_dhcpv6_leases.php:380
msgid "Since"
msgstr "Desde"
@@ -23358,6 +29131,9 @@ msgstr "Desde"
#: usr/local/www/status_dhcpv6_leases.php:331
#: usr/local/www/status_dhcpv6_leases.php:375
#: usr/local/www/status_dhcp_leases.php:311
+#: usr/local/www/status_dhcpv6_leases.php:376
+#: usr/local/www/status_dhcp_leases.php:313
+#: usr/local/www/status_dhcpv6_leases.php:379
msgid "Peer State"
msgstr "Estado do peer"
@@ -23366,6 +29142,11 @@ msgstr "Estado do peer"
#: usr/local/www/status_dhcpv6_leases.php:408
#: usr/local/www/status_dhcpv6_leases.php:485
#: usr/local/www/status_dhcp_leases.php:343
+#: usr/local/www/status_dhcpv6_leases.php:409
+#: usr/local/www/status_dhcpv6_leases.php:486
+#: usr/local/www/status_dhcp_leases.php:345
+#: usr/local/www/status_dhcpv6_leases.php:412
+#: usr/local/www/status_dhcpv6_leases.php:489
msgid "End"
msgstr "Fim"
@@ -23376,6 +29157,11 @@ msgstr "Fim"
#: usr/local/www/status_dhcpv6_leases.php:365
#: usr/local/www/status_dhcpv6_leases.php:409
#: usr/local/www/status_dhcp_leases.php:344
+#: usr/local/www/status_dhcpv6_leases.php:410
+#: usr/local/www/status_gateways.php:128 usr/local/www/status_gateways.php:132
+#: usr/local/www/status_dhcp_leases.php:346
+#: usr/local/www/status_gateway_groups.php:133
+#: usr/local/www/status_dhcpv6_leases.php:413
msgid "Online"
msgstr "No ar"
@@ -23383,11 +29169,15 @@ msgstr "No ar"
#: usr/local/www/status_dhcpv6_leases.php:366
#: usr/local/www/status_dhcpv6_leases.php:410
#: usr/local/www/status_dhcp_leases.php:345
+#: usr/local/www/status_dhcpv6_leases.php:411
+#: usr/local/www/status_dhcp_leases.php:347
+#: usr/local/www/status_dhcpv6_leases.php:414
msgid "Lease Type"
msgstr "Tipo de concessão"
#: usr/local/www/status_dhcp_leases.php:368
#: usr/local/www/status_dhcp_leases.php:389
+#: usr/local/www/status_dhcp_leases.php:393
msgid "send Wake on LAN packet to this MAC address"
msgstr "enviar pacote Wake on LAN para esse endereço MAC"
@@ -23395,11 +29185,15 @@ msgstr "enviar pacote Wake on LAN para esse endereço MAC"
#: usr/local/www/status_dhcpv6_leases.php:417
#: usr/local/www/status_dhcpv6_leases.php:461
#: usr/local/www/status_dhcp_leases.php:411
+#: usr/local/www/status_dhcpv6_leases.php:462
+#: usr/local/www/status_dhcp_leases.php:415
+#: usr/local/www/status_dhcpv6_leases.php:465
msgid "add a static mapping for this MAC address"
msgstr "adicionar um mapeamento estático para esse endereço MAC"
#: usr/local/www/status_dhcp_leases.php:397
#: usr/local/www/status_dhcp_leases.php:418
+#: usr/local/www/status_dhcp_leases.php:422
msgid "add a Wake on LAN mapping for this MAC address"
msgstr "adicionar um mapeamento Wake on LAN para esse endereço MAC"
@@ -23407,6 +29201,9 @@ msgstr "adicionar um mapeamento Wake on LAN para esse endereço MAC"
#: usr/local/www/status_dhcpv6_leases.php:426
#: usr/local/www/status_dhcpv6_leases.php:470
#: usr/local/www/status_dhcp_leases.php:423
+#: usr/local/www/status_dhcpv6_leases.php:471
+#: usr/local/www/status_dhcp_leases.php:427
+#: usr/local/www/status_dhcpv6_leases.php:474
msgid "delete this DHCP lease"
msgstr "apague essa concessão DHCP"
@@ -23414,6 +29211,9 @@ msgstr "apague essa concessão DHCP"
#: usr/local/www/status_dhcpv6_leases.php:439
#: usr/local/www/status_dhcpv6_leases.php:540
#: usr/local/www/status_dhcp_leases.php:436
+#: usr/local/www/status_dhcpv6_leases.php:541
+#: usr/local/www/status_dhcp_leases.php:440
+#: usr/local/www/status_dhcpv6_leases.php:544
msgid "Show active and static leases only"
msgstr "Exibir concessões ativas e estáticas somente"
@@ -23421,6 +29221,9 @@ msgstr "Exibir concessões ativas e estáticas somente"
#: usr/local/www/status_dhcpv6_leases.php:442
#: usr/local/www/status_dhcpv6_leases.php:543
#: usr/local/www/status_dhcp_leases.php:439
+#: usr/local/www/status_dhcpv6_leases.php:544
+#: usr/local/www/status_dhcp_leases.php:443
+#: usr/local/www/status_dhcpv6_leases.php:547
msgid "Show all configured leases"
msgstr "Exibir todas as concessões configuradas"
@@ -23428,21 +29231,27 @@ msgstr "Exibir todas as concessões configuradas"
#: usr/local/www/status_dhcpv6_leases.php:446
#: usr/local/www/status_dhcpv6_leases.php:547
#: usr/local/www/status_dhcp_leases.php:443
+#: usr/local/www/status_dhcpv6_leases.php:548
+#: usr/local/www/status_dhcp_leases.php:447
+#: usr/local/www/status_dhcpv6_leases.php:551
msgid "No leases file found. Is the DHCP server active"
msgstr "Nenhum arquivo de concessões encontrado. O servidor DHCP está ativo?"
#: usr/local/www/status_gateway_groups.php:100
+#: usr/local/www/status_gateway_groups.php:101
#, php-format
msgid "Tier %s"
msgstr "Camada %s"
#: usr/local/www/status_gateway_groups.php:126
-#: usr/local/www/status_gateways.php:121
+#: usr/local/www/status_gateways.php:121 usr/local/www/status_gateways.php:122
+#: usr/local/www/status_gateway_groups.php:127
msgid "Warning, Packetloss"
msgstr "Aviso, perda de pacote"
#: usr/local/www/status_gateway_groups.php:129
-#: usr/local/www/status_gateways.php:124
+#: usr/local/www/status_gateways.php:124 usr/local/www/status_gateways.php:125
+#: usr/local/www/status_gateway_groups.php:130
msgid "Warning, Latency"
msgstr "Advertência, latência"
@@ -23452,14 +29261,15 @@ msgstr "Advertência, latência"
#: usr/local/www/widgets/widgets/gateways.widget.php:69
#: usr/local/www/widgets/widgets/gateways.widget.php:77
#: usr/local/www/widgets/widgets/gateways.widget.php:98
+#: usr/local/www/status_gateway_groups.php:136
msgid "Gathering data"
msgstr "Coletando dados"
-#: usr/local/www/status_gateways.php:75
+#: usr/local/www/status_gateways.php:75 usr/local/www/status_gateways.php:76
msgid "RTT"
msgstr "RTT"
-#: usr/local/www/status_gateways.php:76
+#: usr/local/www/status_gateways.php:76 usr/local/www/status_gateways.php:77
msgid "Loss"
msgstr "Perda"
@@ -23490,10 +29300,18 @@ msgstr "Visualizador Adobe SVG"
#: usr/local/www/vpn_ipsec_phase2.php:453
#: usr/local/www/vpn_ipsec_phase2.php:495
#: usr/local/www/vpn_ipsec_phase2.php:501
+#: usr/local/www/vpn_ipsec_phase2.php:519
+#: usr/local/www/vpn_ipsec_phase2.php:555
+#: usr/local/www/vpn_ipsec_phase2.php:597
+#: usr/local/www/vpn_ipsec_phase2.php:603
+#: usr/local/www/vpn_ipsec_phase2.php:541
+#: usr/local/www/vpn_ipsec_phase2.php:576
+#: usr/local/www/vpn_ipsec_phase2.php:618
+#: usr/local/www/vpn_ipsec_phase2.php:624
msgid "Address"
msgstr "Endereço"
-#: usr/local/www/status_openvpn.php:145
+#: usr/local/www/status_openvpn.php:145 usr/local/www/status_openvpn.php:146
msgid "Client connections"
msgstr "Conexões de clientes"
@@ -23503,54 +29321,72 @@ msgstr "Conexões de clientes"
#: usr/local/www/vpn_openvpn_csc.php:673
#: usr/local/www/system_certmanager.php:743
#: usr/local/www/system_certmanager.php:896
-#: usr/local/www/system_camanager.php:535
+#: usr/local/www/system_camanager.php:535 usr/local/www/status_openvpn.php:153
+#: usr/local/www/vpn_openvpn_csc.php:672
+#: usr/local/www/system_camanager.php:559 usr/local/www/status_openvpn.php:214
+#: usr/local/www/system_certmanager.php:768
+#: usr/local/www/system_certmanager.php:938
msgid "Common Name"
msgstr "Nome Comum"
-#: usr/local/www/status_openvpn.php:153
+#: usr/local/www/status_openvpn.php:153 usr/local/www/status_openvpn.php:154
+#: usr/local/www/status_openvpn.php:215
msgid "Real Address"
msgstr "Endereço Real"
-#: usr/local/www/status_openvpn.php:154
+#: usr/local/www/status_openvpn.php:154 usr/local/www/status_openvpn.php:155
msgid "Virtual Address"
msgstr "Endereço Virtual"
#: usr/local/www/status_openvpn.php:155 usr/local/www/status_openvpn.php:213
-#: usr/local/www/status_openvpn.php:264
+#: usr/local/www/status_openvpn.php:264 usr/local/www/status_openvpn.php:156
+#: usr/local/www/status_openvpn.php:216 usr/local/www/status_openvpn.php:267
+#: usr/local/www/status_openvpn.php:315
msgid "Connected Since"
msgstr "Conectado desde"
#: usr/local/www/status_openvpn.php:156 usr/local/www/status_openvpn.php:216
-#: usr/local/www/status_openvpn.php:267
+#: usr/local/www/status_openvpn.php:267 usr/local/www/status_openvpn.php:157
+#: usr/local/www/status_openvpn.php:219 usr/local/www/status_openvpn.php:270
+#: usr/local/www/status_openvpn.php:318
msgid "Bytes Sent"
msgstr "Bytes Enviados"
#: usr/local/www/status_openvpn.php:157 usr/local/www/status_openvpn.php:217
-#: usr/local/www/status_openvpn.php:268
+#: usr/local/www/status_openvpn.php:268 usr/local/www/status_openvpn.php:158
+#: usr/local/www/status_openvpn.php:220 usr/local/www/status_openvpn.php:271
+#: usr/local/www/status_openvpn.php:319
msgid "Bytes Received"
msgstr "Bytes Recebidos"
-#: usr/local/www/status_openvpn.php:184
+#: usr/local/www/status_openvpn.php:184 usr/local/www/status_openvpn.php:185
msgid "Kill client connection from"
msgstr "Matar conexão de cliente de"
-#: usr/local/www/status_openvpn.php:205
+#: usr/local/www/status_openvpn.php:205 usr/local/www/status_openvpn.php:208
+#: usr/local/www/status_openvpn.php:256
msgid "Peer to Peer Server Instance Statistics"
msgstr "Estatísticas da instância do servidor Peer to Peer"
#: usr/local/www/status_openvpn.php:214 usr/local/www/status_openvpn.php:265
+#: usr/local/www/status_openvpn.php:217 usr/local/www/status_openvpn.php:268
+#: usr/local/www/status_openvpn.php:316
msgid "Virtual Addr"
msgstr "Endereço Virtual"
#: usr/local/www/status_openvpn.php:215 usr/local/www/status_openvpn.php:266
+#: usr/local/www/status_openvpn.php:218 usr/local/www/status_openvpn.php:269
+#: usr/local/www/status_openvpn.php:317
msgid "Remote Host"
msgstr "Host Remoto"
-#: usr/local/www/status_openvpn.php:256
+#: usr/local/www/status_openvpn.php:256 usr/local/www/status_openvpn.php:259
+#: usr/local/www/status_openvpn.php:307
msgid "Client Instance Statistics"
msgstr "Estatísticas de instâncias de clientes"
-#: usr/local/www/status_openvpn.php:304
+#: usr/local/www/status_openvpn.php:304 usr/local/www/status_openvpn.php:307
+#: usr/local/www/status_openvpn.php:355
msgid ""
"You need to bind each OpenVPN client to enable its management daemon: use "
"'Local port' setting in the OpenVPN client screen"
@@ -23558,7 +29394,8 @@ msgstr ""
"Você precisa vincular cada cliente OpenVPN para habilitar seu daemon de "
"gerenciamento: use configuração de 'Porta Local' na tela do cliente OpenVPN"
-#: usr/local/www/status_openvpn.php:308
+#: usr/local/www/status_openvpn.php:308 usr/local/www/status_openvpn.php:311
+#: usr/local/www/status_openvpn.php:359
msgid "No OpenVPN instance defined"
msgstr "Nenhuma instância do OpenVPN definida"
@@ -23597,6 +29434,9 @@ msgstr "Avançado: Acesso de Administrador"
#: usr/local/www/system_advanced_firewall.php:229
#: usr/local/www/system_advanced_notifications.php:160
#: usr/local/www/system_advanced_misc.php:232
+#: usr/local/www/system_advanced_misc.php:251
+#: usr/local/www/system_advanced_misc.php:255
+#: usr/local/www/system_advanced_firewall.php:258
msgid "Admin Access"
msgstr "Acesso de Administrador"
@@ -23609,6 +29449,9 @@ msgstr "Acesso de Administrador"
#: usr/local/www/system_advanced_firewall.php:230
#: usr/local/www/system_advanced_notifications.php:161
#: usr/local/www/system_advanced_misc.php:233
+#: usr/local/www/system_advanced_misc.php:252
+#: usr/local/www/system_advanced_misc.php:256
+#: usr/local/www/system_advanced_firewall.php:259
msgid "Firewall / NAT"
msgstr "Firewall / NAT"
@@ -23621,6 +29464,9 @@ msgstr "Firewall / NAT"
#: usr/local/www/system_advanced_firewall.php:231
#: usr/local/www/system_advanced_notifications.php:162
#: usr/local/www/system_advanced_misc.php:234
+#: usr/local/www/system_advanced_misc.php:253
+#: usr/local/www/system_advanced_misc.php:257
+#: usr/local/www/system_advanced_firewall.php:260
msgid "Networking"
msgstr "Rede"
@@ -23633,6 +29479,9 @@ msgstr "Rede"
#: usr/local/www/system_advanced_firewall.php:232
#: usr/local/www/system_advanced_notifications.php:163
#: usr/local/www/system_advanced_misc.php:235
+#: usr/local/www/system_advanced_misc.php:254
+#: usr/local/www/system_advanced_misc.php:258
+#: usr/local/www/system_advanced_firewall.php:261
msgid "Miscellaneous"
msgstr "Diversos"
@@ -23645,6 +29494,9 @@ msgstr "Diversos"
#: usr/local/www/system_advanced_firewall.php:233
#: usr/local/www/system_advanced_notifications.php:164
#: usr/local/www/system_advanced_misc.php:236
+#: usr/local/www/system_advanced_misc.php:255
+#: usr/local/www/system_advanced_misc.php:259
+#: usr/local/www/system_advanced_firewall.php:262
msgid "System Tunables"
msgstr "Ajustes do sistema"
@@ -23657,6 +29509,9 @@ msgstr "Ajustes do sistema"
#: usr/local/www/system_advanced_firewall.php:234
#: usr/local/www/system_advanced_notifications.php:165
#: usr/local/www/system_advanced_misc.php:237
+#: usr/local/www/system_advanced_misc.php:256
+#: usr/local/www/system_advanced_misc.php:260
+#: usr/local/www/system_advanced_firewall.php:263
msgid "Notifications"
msgstr "Notificações"
@@ -23677,6 +29532,8 @@ msgid "a Certificate before SSL can be enabled."
msgstr "um Certificado antes de habilitar o SSL."
#: usr/local/www/system_advanced_admin.php:324
+#: usr/local/www/services_captiveportal.php:872
+#: usr/local/www/services_captiveportal.php:874
msgid "SSL Certificate"
msgstr "Certificado SSL"
@@ -23973,36 +29830,43 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:78
#: usr/local/www/system_advanced_firewall.php:77
+#: usr/local/www/system_advanced_firewall.php:88
msgid "The Firewall Maximum States value must be an integer."
msgstr "O valor de estado máximo do Firewall deve ser um inteiro."
#: usr/local/www/system_advanced_firewall.php:81
#: usr/local/www/system_advanced_firewall.php:83
+#: usr/local/www/system_advanced_firewall.php:94
msgid "The Firewall Maximum Table Entries value must be an integer."
msgstr "O valor máximo das entradas da tabela do Firewall deve ser um inteiro."
#: usr/local/www/system_advanced_firewall.php:84
#: usr/local/www/system_advanced_firewall.php:86
+#: usr/local/www/system_advanced_firewall.php:97
msgid "The TCP idle timeout must be an integer."
msgstr "O tempo ocioso TCP deve ser um inteiro."
#: usr/local/www/system_advanced_firewall.php:87
#: usr/local/www/system_advanced_firewall.php:89
+#: usr/local/www/system_advanced_firewall.php:100
msgid "The Reflection timeout must be an integer."
msgstr "O tempo de expiração de Reflection deve ser um inteiro."
#: usr/local/www/system_advanced_firewall.php:178
#: usr/local/www/system_advanced_firewall.php:192
+#: usr/local/www/system_advanced_firewall.php:221
msgid "Advanced: Firewall and NAT"
msgstr "Avançado: Firewall e NAT"
#: usr/local/www/system_advanced_firewall.php:190
#: usr/local/www/system_advanced_firewall.php:204
+#: usr/local/www/system_advanced_firewall.php:233
msgid "as the name says, it's the normal optimization algorithm"
msgstr "como o nome diz, é o algoritmo de otimização normal"
#: usr/local/www/system_advanced_firewall.php:191
#: usr/local/www/system_advanced_firewall.php:205
+#: usr/local/www/system_advanced_firewall.php:234
msgid ""
"used for high latency links, such as satellite links. Expires idle "
"connections later than default"
@@ -24030,21 +29894,25 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:239
#: usr/local/www/system_advanced_firewall.php:253
+#: usr/local/www/system_advanced_firewall.php:282
msgid "Firewall Advanced"
msgstr "Firewall Avançado"
#: usr/local/www/system_advanced_firewall.php:242
#: usr/local/www/system_advanced_firewall.php:256
+#: usr/local/www/system_advanced_firewall.php:285
msgid "IP Do-Not-Fragment compatibility"
msgstr "Compatibilidade com IP Do-Not-Fragment"
#: usr/local/www/system_advanced_firewall.php:245
#: usr/local/www/system_advanced_firewall.php:259
+#: usr/local/www/system_advanced_firewall.php:288
msgid "Clear invalid DF bits instead of dropping the packets"
msgstr "Limpar bits DF inválidos ao invés de descartar os pacotes"
#: usr/local/www/system_advanced_firewall.php:246
#: usr/local/www/system_advanced_firewall.php:260
+#: usr/local/www/system_advanced_firewall.php:289
msgid ""
"This allows for communications with hosts that generate fragmented packets "
"with the don't fragment (DF) bit set. Linux NFS is known to do this. This "
@@ -24058,11 +29926,13 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:253
#: usr/local/www/system_advanced_firewall.php:267
+#: usr/local/www/system_advanced_firewall.php:296
msgid "IP Random id generation"
msgstr "Geração de id Randômico de IP"
#: usr/local/www/system_advanced_firewall.php:256
#: usr/local/www/system_advanced_firewall.php:270
+#: usr/local/www/system_advanced_firewall.php:299
msgid ""
"Insert a stronger id into IP header of packets passing through the filter."
msgstr ""
@@ -24070,6 +29940,7 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:257
#: usr/local/www/system_advanced_firewall.php:271
+#: usr/local/www/system_advanced_firewall.php:300
msgid ""
"Replaces the IP identification field of packets with random values to "
"compensate for operating systems that use predictable values. This option "
@@ -24083,72 +29954,86 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:264
#: usr/local/www/system_advanced_firewall.php:278
+#: usr/local/www/system_advanced_firewall.php:307
msgid "Firewall Optimization Options"
msgstr "Opções de Otimização do Firewall"
#: usr/local/www/system_advanced_firewall.php:267
#: usr/local/www/system_advanced_firewall.php:281
+#: usr/local/www/system_advanced_firewall.php:310
msgid "normal"
msgstr "normal"
#: usr/local/www/system_advanced_firewall.php:268
#: usr/local/www/system_advanced_firewall.php:282
+#: usr/local/www/system_advanced_firewall.php:311
msgid "high-latency"
msgstr "alta-latência"
#: usr/local/www/system_advanced_firewall.php:269
#: usr/local/www/system_advanced_firewall.php:283
+#: usr/local/www/system_advanced_firewall.php:312
msgid "aggressive"
msgstr "agressivo"
#: usr/local/www/system_advanced_firewall.php:270
#: usr/local/www/system_advanced_firewall.php:284
+#: usr/local/www/system_advanced_firewall.php:313
msgid "conservative"
msgstr "conservador"
#: usr/local/www/system_advanced_firewall.php:278
#: usr/local/www/system_advanced_firewall.php:292
+#: usr/local/www/system_advanced_firewall.php:321
msgid "Select the type of state table optimization to use"
msgstr "Selecione o tipo de otimização de tabela de estado a ser usado"
#: usr/local/www/system_advanced_firewall.php:282
#: usr/local/www/system_advanced_firewall.php:296
+#: usr/local/www/system_advanced_firewall.php:325
msgid "Disable Firewall"
msgstr "Desabilitar Firewall"
#: usr/local/www/system_advanced_firewall.php:285
#: usr/local/www/system_advanced_firewall.php:299
+#: usr/local/www/system_advanced_firewall.php:328
msgid "Disable all packet filtering."
msgstr "Desabilitar todos os filtros de pacotes."
#: usr/local/www/system_advanced_firewall.php:287
#: usr/local/www/system_advanced_firewall.php:301
+#: usr/local/www/system_advanced_firewall.php:330
#, php-format
msgid "Note: This converts %s into a routing only platform!"
msgstr "Nota: Isso converte %s em uma plataforma de roteamento somente!"
#: usr/local/www/system_advanced_firewall.php:288
#: usr/local/www/system_advanced_firewall.php:302
+#: usr/local/www/system_advanced_firewall.php:331
msgid "Note: This will also turn off NAT!"
msgstr "Nota: Isso também irá desligar o NAT!"
#: usr/local/www/system_advanced_firewall.php:289
#: usr/local/www/system_advanced_firewall.php:303
+#: usr/local/www/system_advanced_firewall.php:332
msgid "If you only want to disable NAT, and not firewall rules, visit the"
msgstr "Se você quer desabilitar o NAT, e não regras de firewall, visite o"
#: usr/local/www/system_advanced_firewall.php:289
#: usr/local/www/system_advanced_firewall.php:303
+#: usr/local/www/system_advanced_firewall.php:332
msgid "Outbound NAT"
msgstr "NAT de saída"
#: usr/local/www/system_advanced_firewall.php:294
#: usr/local/www/system_advanced_firewall.php:308
+#: usr/local/www/system_advanced_firewall.php:337
msgid "Disable Firewall Scrub"
msgstr "Desabilitar Firewall Scrub"
#: usr/local/www/system_advanced_firewall.php:297
#: usr/local/www/system_advanced_firewall.php:311
+#: usr/local/www/system_advanced_firewall.php:340
msgid ""
"Disables the PF scrubbing option which can sometimes interfere with NFS and "
"PPTP traffic."
@@ -24158,16 +30043,19 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:302
#: usr/local/www/system_advanced_firewall.php:316
+#: usr/local/www/system_advanced_firewall.php:360
msgid "Firewall Maximum States"
msgstr "Estados Máximos do Firewall"
#: usr/local/www/system_advanced_firewall.php:306
#: usr/local/www/system_advanced_firewall.php:320
+#: usr/local/www/system_advanced_firewall.php:364
msgid "Maximum number of connections to hold in the firewall state table."
msgstr "Número máximo de conexões para manter na table de estado do firewall."
#: usr/local/www/system_advanced_firewall.php:308
#: usr/local/www/system_advanced_firewall.php:322
+#: usr/local/www/system_advanced_firewall.php:366
msgid ""
"Note: Leave this blank for the default. On your system the default size is:"
msgstr ""
@@ -24175,11 +30063,13 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:312
#: usr/local/www/system_advanced_firewall.php:342
+#: usr/local/www/system_advanced_firewall.php:386
msgid "Firewall Maximum Table Entries"
msgstr "Máximo de Entradas da Tabela do Firewall"
#: usr/local/www/system_advanced_firewall.php:316
#: usr/local/www/system_advanced_firewall.php:346
+#: usr/local/www/system_advanced_firewall.php:390
msgid ""
"Maximum number of table entries for systems such as aliases, sshlockout, "
"snort, etc, combined."
@@ -24190,27 +30080,34 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:319
#: usr/local/www/system_advanced_firewall.php:334
#: usr/local/www/system_advanced_firewall.php:349
+#: usr/local/www/system_advanced_firewall.php:378
+#: usr/local/www/system_advanced_firewall.php:393
msgid "Note: Leave this blank for the default."
msgstr "Nota: Deixe isso em branco para o padrão."
#: usr/local/www/system_advanced_firewall.php:321
#: usr/local/www/system_advanced_firewall.php:336
#: usr/local/www/system_advanced_firewall.php:351
+#: usr/local/www/system_advanced_firewall.php:380
+#: usr/local/www/system_advanced_firewall.php:395
msgid "On your system the default size is:"
msgstr "Em seu sistema o tamanho padrão é:"
#: usr/local/www/system_advanced_firewall.php:327
#: usr/local/www/system_advanced_firewall.php:357
+#: usr/local/www/system_advanced_firewall.php:401
msgid "Static route filtering"
msgstr "Filtragem de rota estática"
#: usr/local/www/system_advanced_firewall.php:330
#: usr/local/www/system_advanced_firewall.php:360
+#: usr/local/www/system_advanced_firewall.php:404
msgid "Bypass firewall rules for traffic on the same interface"
msgstr "Evitar regras de firewall para tráfego na mesma interface"
#: usr/local/www/system_advanced_firewall.php:332
#: usr/local/www/system_advanced_firewall.php:362
+#: usr/local/www/system_advanced_firewall.php:406
msgid ""
"This option only applies if you have defined one or more static routes. If "
"it is enabled, traffic that enters and leaves through the same interface "
@@ -24224,22 +30121,26 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:342
#: usr/local/www/system_advanced_firewall.php:372
+#: usr/local/www/system_advanced_firewall.php:416
msgid "Disable all auto-added VPN rules."
msgstr "Desabilita as regras VPN auto-adicionadas."
#: usr/local/www/system_advanced_firewall.php:344
#: usr/local/www/system_advanced_firewall.php:374
+#: usr/local/www/system_advanced_firewall.php:418
msgid "Note: This disables automatically added rules for IPsec, PPTP."
msgstr ""
"Nota: Isso desativa automaticamente as regras adicionadas de IPsec, PPTP."
#: usr/local/www/system_advanced_firewall.php:352
#: usr/local/www/system_advanced_firewall.php:382
+#: usr/local/www/system_advanced_firewall.php:426
msgid "Disable reply-to on WAN rules"
msgstr "Desabilitar reply-to nas regras WAN"
#: usr/local/www/system_advanced_firewall.php:354
#: usr/local/www/system_advanced_firewall.php:384
+#: usr/local/www/system_advanced_firewall.php:428
msgid ""
"With Multi-WAN you generally want to ensure traffic leaves the same "
"interface it arrives on, hence reply-to is added automatically by default. "
@@ -24254,6 +30155,7 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:364
#: usr/local/www/system_advanced_firewall.php:404
+#: usr/local/www/system_advanced_firewall.php:466
msgid "Network Address Translation"
msgstr "Tradução de Endereço de Rede"
@@ -24275,6 +30177,7 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:374
#: usr/local/www/system_advanced_firewall.php:425
+#: usr/local/www/system_advanced_firewall.php:487
msgid "Reflection Timeout"
msgstr "Tempo de expiração de Reflection"
@@ -24304,6 +30207,7 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:391
#: usr/local/www/system_advanced_firewall.php:448
+#: usr/local/www/system_advanced_firewall.php:510
msgid ""
"Automatically create outbound NAT rules which assist inbound NAT rules that "
"direct traffic back out to the same subnet it originated from."
@@ -24321,31 +30225,41 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:397
#: usr/local/www/system_advanced_firewall.php:456
+#: usr/local/www/system_advanced_firewall.php:518
msgid "TFTP Proxy"
msgstr "TFTP Proxy"
#: usr/local/www/system_advanced_firewall.php:407
#: usr/local/www/system_advanced_firewall.php:466
+#: usr/local/www/system_advanced_firewall.php:528
msgid "Choose the interfaces where you want TFTP proxy helper to be enabled."
msgstr "Escolha as interfaces onde deseja habilitar o TFTP proxy helper."
#: usr/local/www/system_advanced_misc.php:179
#: usr/local/www/system_advanced_misc.php:199
+#: usr/local/www/system_advanced_misc.php:218
+#: usr/local/www/system_advanced_misc.php:222
msgid "Advanced: Miscellaneous"
msgstr "Avançado: Diversos"
#: usr/local/www/system_advanced_misc.php:229
#: usr/local/www/system_advanced_misc.php:255
+#: usr/local/www/system_advanced_misc.php:274
+#: usr/local/www/system_advanced_misc.php:278
msgid "Proxy support"
msgstr "Suporte a Proxy"
#: usr/local/www/system_advanced_misc.php:232
#: usr/local/www/system_advanced_misc.php:258
+#: usr/local/www/system_advanced_misc.php:277
+#: usr/local/www/system_advanced_misc.php:281
msgid "Proxy URL"
msgstr "URL do Proxy"
#: usr/local/www/system_advanced_misc.php:236
#: usr/local/www/system_advanced_misc.php:262
+#: usr/local/www/system_advanced_misc.php:281
+#: usr/local/www/system_advanced_misc.php:285
#, php-format
msgid "Proxy url for allowing %s to use this proxy to connect outside."
msgstr ""
@@ -24353,11 +30267,15 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:240
#: usr/local/www/system_advanced_misc.php:266
+#: usr/local/www/system_advanced_misc.php:285
+#: usr/local/www/system_advanced_misc.php:289
msgid "Proxy Port"
msgstr "Porta do Proxy"
#: usr/local/www/system_advanced_misc.php:244
#: usr/local/www/system_advanced_misc.php:270
+#: usr/local/www/system_advanced_misc.php:289
+#: usr/local/www/system_advanced_misc.php:293
#, php-format
msgid ""
"Proxy port to use when %s connects to the proxy URL configured above. "
@@ -24368,11 +30286,15 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:248
#: usr/local/www/system_advanced_misc.php:274
+#: usr/local/www/system_advanced_misc.php:293
+#: usr/local/www/system_advanced_misc.php:297
msgid "Proxy Username"
msgstr "Usuário Proxy"
#: usr/local/www/system_advanced_misc.php:252
#: usr/local/www/system_advanced_misc.php:278
+#: usr/local/www/system_advanced_misc.php:297
+#: usr/local/www/system_advanced_misc.php:301
#, php-format
msgid "Proxy username for allowing %s to use this proxy to connect outside"
msgstr ""
@@ -24381,11 +30303,15 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:256
#: usr/local/www/system_advanced_misc.php:282
+#: usr/local/www/system_advanced_misc.php:301
+#: usr/local/www/system_advanced_misc.php:305
msgid "Proxy Pass"
msgstr "Proxy Pass"
#: usr/local/www/system_advanced_misc.php:260
#: usr/local/www/system_advanced_misc.php:286
+#: usr/local/www/system_advanced_misc.php:305
+#: usr/local/www/system_advanced_misc.php:309
#, php-format
msgid "Proxy password for allowing %s to use this proxy to connect outside"
msgstr ""
@@ -24397,11 +30323,19 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:290
#: usr/local/www/system_advanced_misc.php:293
#: usr/local/www/system_advanced_misc.php:314
+#: usr/local/www/system_advanced_misc.php:309
+#: usr/local/www/system_advanced_misc.php:312
+#: usr/local/www/system_advanced_misc.php:333
+#: usr/local/www/system_advanced_misc.php:313
+#: usr/local/www/system_advanced_misc.php:316
+#: usr/local/www/system_advanced_misc.php:337
msgid "Load Balancing"
msgstr "Balanceando de Carga"
#: usr/local/www/system_advanced_misc.php:270
#: usr/local/www/system_advanced_misc.php:296
+#: usr/local/www/system_advanced_misc.php:315
+#: usr/local/www/system_advanced_misc.php:319
msgid "Use sticky connections"
msgstr "Use conexões sticky"
@@ -24423,11 +30357,15 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:285
#: usr/local/www/system_advanced_misc.php:317
+#: usr/local/www/system_advanced_misc.php:336
+#: usr/local/www/system_advanced_misc.php:340
msgid "Allow default gateway switching"
msgstr "Permitir a alteração de rota padrão"
#: usr/local/www/system_advanced_misc.php:286
#: usr/local/www/system_advanced_misc.php:318
+#: usr/local/www/system_advanced_misc.php:337
+#: usr/local/www/system_advanced_misc.php:341
msgid ""
"If the link where the default gateway resides fails switch the default "
"gateway to another available one."
@@ -24437,16 +30375,22 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:294
#: usr/local/www/system_advanced_misc.php:326
+#: usr/local/www/system_advanced_misc.php:345
+#: usr/local/www/system_advanced_misc.php:349
msgid "Power savings"
msgstr "Economia de energia"
#: usr/local/www/system_advanced_misc.php:297
#: usr/local/www/system_advanced_misc.php:329
+#: usr/local/www/system_advanced_misc.php:348
+#: usr/local/www/system_advanced_misc.php:352
msgid "PowerD"
msgstr "PowerD"
#: usr/local/www/system_advanced_misc.php:300
#: usr/local/www/system_advanced_misc.php:332
+#: usr/local/www/system_advanced_misc.php:351
+#: usr/local/www/system_advanced_misc.php:355
msgid "Use PowerD"
msgstr "Use PowerD"
@@ -24515,21 +30459,29 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:340
#: usr/local/www/system_advanced_misc.php:383
+#: usr/local/www/system_advanced_misc.php:432
+#: usr/local/www/system_advanced_misc.php:444
msgid "IP Security"
msgstr "Segurança IP"
#: usr/local/www/system_advanced_misc.php:343
#: usr/local/www/system_advanced_misc.php:386
+#: usr/local/www/system_advanced_misc.php:435
+#: usr/local/www/system_advanced_misc.php:447
msgid "Security Associations"
msgstr "Associações de Segurança"
#: usr/local/www/system_advanced_misc.php:346
#: usr/local/www/system_advanced_misc.php:389
+#: usr/local/www/system_advanced_misc.php:438
+#: usr/local/www/system_advanced_misc.php:450
msgid "Prefer older IPsec SAs"
msgstr "Prefira IPsec SAs mais velhos"
#: usr/local/www/system_advanced_misc.php:348
#: usr/local/www/system_advanced_misc.php:391
+#: usr/local/www/system_advanced_misc.php:440
+#: usr/local/www/system_advanced_misc.php:452
msgid ""
"By default, if several SAs match, the newest one is preferred if it's at "
"least 30 seconds old. Select this option to always prefer old SAs over new "
@@ -24541,16 +30493,22 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:354
#: usr/local/www/system_advanced_misc.php:397
+#: usr/local/www/system_advanced_misc.php:446
+#: usr/local/www/system_advanced_misc.php:458
msgid "IPsec Debug"
msgstr "Depuração de IPsec"
#: usr/local/www/system_advanced_misc.php:357
#: usr/local/www/system_advanced_misc.php:400
+#: usr/local/www/system_advanced_misc.php:449
+#: usr/local/www/system_advanced_misc.php:461
msgid "Start racoon in debug mode"
msgstr "Iniciar racoon no modo de depuração"
#: usr/local/www/system_advanced_misc.php:359
#: usr/local/www/system_advanced_misc.php:402
+#: usr/local/www/system_advanced_misc.php:451
+#: usr/local/www/system_advanced_misc.php:463
msgid ""
"Launches racoon in debug mode so that more verbose logs will be generated to "
"aid in troubleshooting."
@@ -24560,21 +30518,29 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:361
#: usr/local/www/system_advanced_misc.php:404
+#: usr/local/www/system_advanced_misc.php:453
+#: usr/local/www/system_advanced_misc.php:465
msgid "NOTE: Changing this setting will restart racoon."
msgstr "NOTA: Alterar essa configuração irá reiniciar racoon."
#: usr/local/www/system_advanced_misc.php:365
#: usr/local/www/system_advanced_misc.php:408
+#: usr/local/www/system_advanced_misc.php:457
+#: usr/local/www/system_advanced_misc.php:469
msgid "Maximum MSS"
msgstr "Máximo MSS"
#: usr/local/www/system_advanced_misc.php:368
#: usr/local/www/system_advanced_misc.php:411
+#: usr/local/www/system_advanced_misc.php:460
+#: usr/local/www/system_advanced_misc.php:472
msgid "Enable MSS clamping on VPN traffic"
msgstr "Habilitar MSS clamping no tráfego da VPN"
#: usr/local/www/system_advanced_misc.php:372
#: usr/local/www/system_advanced_misc.php:415
+#: usr/local/www/system_advanced_misc.php:464
+#: usr/local/www/system_advanced_misc.php:476
msgid ""
"Enable MSS clamping on TCP flows over VPN. This helps overcome problems with "
"PMTUD on IPsec VPN links. If left blank, the default value is 1400 bytes. "
@@ -24585,11 +30551,15 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:383
#: usr/local/www/system_advanced_misc.php:426
+#: usr/local/www/system_advanced_misc.php:475
+#: usr/local/www/system_advanced_misc.php:487
msgid "Schedule States"
msgstr "Estados de agendamento"
#: usr/local/www/system_advanced_misc.php:387
#: usr/local/www/system_advanced_misc.php:430
+#: usr/local/www/system_advanced_misc.php:479
+#: usr/local/www/system_advanced_misc.php:491
msgid ""
"By default schedules clear the states of existing connections when the "
"expiration time has come. This option overrides that behavior by not "
@@ -24601,11 +30571,15 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:395
#: usr/local/www/system_advanced_misc.php:438
+#: usr/local/www/system_advanced_misc.php:487
+#: usr/local/www/system_advanced_misc.php:499
msgid "Gateway Monitoring"
msgstr "Monitoramento do Gateway"
#: usr/local/www/system_advanced_misc.php:402
#: usr/local/www/system_advanced_misc.php:445
+#: usr/local/www/system_advanced_misc.php:494
+#: usr/local/www/system_advanced_misc.php:506
msgid ""
"By default the monitoring process will flush states for a gateway that goes "
"down. This option overrides that behavior by not clearing states for "
@@ -24617,21 +30591,29 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:411
#: usr/local/www/system_advanced_misc.php:454
+#: usr/local/www/system_advanced_misc.php:503
+#: usr/local/www/system_advanced_misc.php:515
msgid "Hardware Settings"
msgstr "Configurações de Hardware"
#: usr/local/www/system_advanced_misc.php:414
#: usr/local/www/system_advanced_misc.php:457
+#: usr/local/www/system_advanced_misc.php:506
+#: usr/local/www/system_advanced_misc.php:518
msgid "Hard disk standby time "
msgstr "Tempo de espera do disco rígido"
#: usr/local/www/system_advanced_misc.php:421
#: usr/local/www/system_advanced_misc.php:464
+#: usr/local/www/system_advanced_misc.php:513
+#: usr/local/www/system_advanced_misc.php:525
msgid "Always on"
msgstr "Sempre ligado"
#: usr/local/www/system_advanced_misc.php:430
#: usr/local/www/system_advanced_misc.php:473
+#: usr/local/www/system_advanced_misc.php:522
+#: usr/local/www/system_advanced_misc.php:534
msgid ""
"Puts the hard disk into standby mode when the selected amount of time after "
"the last access has elapsed."
@@ -24641,6 +30623,8 @@ msgstr ""
#: usr/local/www/system_advanced_misc.php:431
#: usr/local/www/system_advanced_misc.php:474
+#: usr/local/www/system_advanced_misc.php:523
+#: usr/local/www/system_advanced_misc.php:535
msgid "Do not set this for CF cards."
msgstr "Não configure isso para cartões CF."
@@ -24943,6 +30927,7 @@ msgid "Authentication Servers"
msgstr "Servidores de Autenticação"
#: usr/local/www/system_authservers.php:83
+#: usr/local/www/system_authservers.php:84
msgid "deleted"
msgstr "apagado"
@@ -24971,95 +30956,171 @@ msgstr "apagado"
#: usr/local/www/system_certmanager.php:594
#: usr/local/www/system_certmanager.php:967
#: usr/local/www/system_usermanager.php:703
+#: usr/local/www/system_crlmanager.php:192
+#: usr/local/www/system_crlmanager.php:199
+#: usr/local/www/system_crlmanager.php:319
+#: usr/local/www/system_crlmanager.php:404
+#: usr/local/www/system_authservers.php:161
+#: usr/local/www/system_authservers.php:184
+#: usr/local/www/system_authservers.php:443
+#: usr/local/www/system_camanager.php:167
+#: usr/local/www/system_camanager.php:179
+#: usr/local/www/system_camanager.php:194
+#: usr/local/www/system_camanager.php:376
+#: usr/local/www/system_certmanager.php:195
+#: usr/local/www/system_certmanager.php:207
+#: usr/local/www/system_certmanager.php:225
+#: usr/local/www/system_certmanager.php:403
+#: usr/local/www/system_certmanager.php:603
+#: usr/local/www/system_certmanager.php:1009
+#: usr/local/www/system_authservers.php:162
+#: usr/local/www/system_authservers.php:185
+#: usr/local/www/system_authservers.php:450
msgid "Descriptive name"
msgstr "Nome descritivo"
#: usr/local/www/system_authservers.php:163
#: usr/local/www/system_authservers.php:484
+#: usr/local/www/system_authservers.php:164
+#: usr/local/www/system_authservers.php:489
+#: usr/local/www/system_authservers.php:165
+#: usr/local/www/system_authservers.php:496
msgid "Port value"
msgstr "Valor da porta"
#: usr/local/www/system_authservers.php:164
#: usr/local/www/system_authservers.php:490
+#: usr/local/www/system_authservers.php:165
+#: usr/local/www/system_authservers.php:495
+#: usr/local/www/system_authservers.php:166
+#: usr/local/www/system_authservers.php:502
msgid "Transport"
msgstr "Transporte"
#: usr/local/www/system_authservers.php:165
#: usr/local/www/system_authservers.php:526
+#: usr/local/www/system_authservers.php:166
+#: usr/local/www/system_authservers.php:531
+#: usr/local/www/system_authservers.php:167
+#: usr/local/www/system_authservers.php:538
msgid "Protocol version"
msgstr "Versão do protocolo"
#: usr/local/www/system_authservers.php:166
+#: usr/local/www/system_authservers.php:167
+#: usr/local/www/system_authservers.php:168
msgid "Search level"
msgstr "Nível de busca"
#: usr/local/www/system_authservers.php:167
+#: usr/local/www/system_authservers.php:168
+#: usr/local/www/system_authservers.php:169
msgid "User naming Attribute"
msgstr "Atributo de nomeação de usuário"
#: usr/local/www/system_authservers.php:168
+#: usr/local/www/system_authservers.php:169
+#: usr/local/www/system_authservers.php:170
msgid "Group naming Attribute"
msgstr "Atributo de nomeação de grupo"
#: usr/local/www/system_authservers.php:169
#: usr/local/www/system_authservers.php:665
+#: usr/local/www/system_authservers.php:170
+#: usr/local/www/system_authservers.php:670
+#: usr/local/www/system_authservers.php:171
+#: usr/local/www/system_authservers.php:677
msgid "Group member attribute"
msgstr "Atributo de membro de grupo"
#: usr/local/www/system_authservers.php:170
+#: usr/local/www/system_authservers.php:171
+#: usr/local/www/system_authservers.php:172
msgid "Authentication container"
msgstr "Contêiner de autenticação"
#: usr/local/www/system_authservers.php:175
+#: usr/local/www/system_authservers.php:176
+#: usr/local/www/system_authservers.php:177
msgid "Bind user DN"
msgstr "DN de usuário de Bind"
#: usr/local/www/system_authservers.php:176
+#: usr/local/www/system_authservers.php:177
+#: usr/local/www/system_authservers.php:178
msgid "Bind Password"
msgstr "Senha de bind"
#: usr/local/www/system_authservers.php:191
#: usr/local/www/system_authservers.php:707
+#: usr/local/www/system_authservers.php:192
+#: usr/local/www/system_authservers.php:712
+#: usr/local/www/system_authservers.php:193
+#: usr/local/www/system_authservers.php:719
msgid "Authentication port value"
msgstr "Valor da porta de autenticação"
#: usr/local/www/system_authservers.php:197
#: usr/local/www/system_authservers.php:713
+#: usr/local/www/system_authservers.php:198
+#: usr/local/www/system_authservers.php:718
+#: usr/local/www/system_authservers.php:199
+#: usr/local/www/system_authservers.php:725
msgid "Accounting port value"
msgstr "Valor da porta de Accounting"
#: usr/local/www/system_authservers.php:202
#: usr/local/www/system_authservers.php:686
+#: usr/local/www/system_authservers.php:203
+#: usr/local/www/system_authservers.php:691
+#: usr/local/www/system_authservers.php:204
+#: usr/local/www/system_authservers.php:698
msgid "Shared Secret"
msgstr "Segredo compartilhado"
#: usr/local/www/system_authservers.php:209
+#: usr/local/www/system_authservers.php:210
+#: usr/local/www/system_authservers.php:211
msgid "The host name contains invalid characters."
msgstr "O nome do host contém caracteres inválidos."
#: usr/local/www/system_authservers.php:212
+#: usr/local/www/system_authservers.php:213
+#: usr/local/www/system_authservers.php:214
msgid "An authentication server with the same name already exists."
msgstr "Um servidor de autenticação com o mesmo nome já existe."
#: usr/local/www/system_authservers.php:382
+#: usr/local/www/system_authservers.php:383
+#: usr/local/www/system_authservers.php:390
msgid "Please fill the required values."
msgstr "Por favor, preencha os valores requeridos."
#: usr/local/www/system_authservers.php:388
+#: usr/local/www/system_authservers.php:389
+#: usr/local/www/system_authservers.php:396
msgid "Please fill the bind username/password."
msgstr "Por favor, preencha o usuário/senha de bind."
#: usr/local/www/system_authservers.php:406
#: usr/local/www/system_usermanager_settings.php:103
+#: usr/local/www/system_authservers.php:411
+#: usr/local/www/system_authservers.php:418
msgid "Popup blocker detected. Action aborted."
msgstr "Detectado bloqueio de popup. Ação abortada."
#: usr/local/www/system_authservers.php:475
+#: usr/local/www/system_authservers.php:480
+#: usr/local/www/system_authservers.php:487
msgid "LDAP Server Settings"
msgstr "Configurações do Servidor LDAP"
#: usr/local/www/system_authservers.php:478
#: usr/local/www/system_authservers.php:680
+#: usr/local/www/system_authservers.php:483
+#: usr/local/www/system_authservers.php:685
+#: usr/local/www/system_authservers.php:490
+#: usr/local/www/system_authservers.php:692
msgid "Hostname or IP address"
msgstr "Nome de host ou endereço IP"
@@ -25068,41 +31129,63 @@ msgstr "Nome de host ou endereço IP"
#: usr/local/www/vpn_openvpn_server.php:778
#: usr/local/www/vpn_openvpn_server.php:851
#: usr/local/www/vpn_openvpn_client.php:634
+#: usr/local/www/vpn_openvpn_server.php:879
+#: usr/local/www/vpn_openvpn_client.php:652
+#: usr/local/www/system_authservers.php:510
+#: usr/local/www/vpn_openvpn_client.php:671
+#: usr/local/www/system_authservers.php:517
+#: usr/local/www/vpn_openvpn_server.php:906
msgid "Peer Certificate Authority"
msgstr "Peer com Fonte Certificadora"
#: usr/local/www/system_authservers.php:518
+#: usr/local/www/system_authservers.php:523
+#: usr/local/www/system_authservers.php:530
msgid "This option is used if 'SSL Encrypted' option is choosen."
msgstr ""
"Esta opções é utilizada se a opções 'Criptografado por SSL' estiver "
"selecionada."
#: usr/local/www/system_authservers.php:519
+#: usr/local/www/system_authservers.php:524
+#: usr/local/www/system_authservers.php:531
msgid "It must match with the CA in the AD otherwise problems will arise."
msgstr ""
"Ele deve corresponder com o CA na AD caso contrário irá haver problemas."
#: usr/local/www/system_authservers.php:541
+#: usr/local/www/system_authservers.php:546
+#: usr/local/www/system_authservers.php:553
msgid "Search scope"
msgstr "Escopo de busca"
#: usr/local/www/system_authservers.php:545
+#: usr/local/www/system_authservers.php:550
+#: usr/local/www/system_authservers.php:557
msgid "Level:"
msgstr "Nível:"
#: usr/local/www/system_authservers.php:560
+#: usr/local/www/system_authservers.php:565
+#: usr/local/www/system_authservers.php:572
msgid "Base DN:"
msgstr "DN Base:"
#: usr/local/www/system_authservers.php:570
+#: usr/local/www/system_authservers.php:575
+#: usr/local/www/system_authservers.php:582
msgid "Authentication containers"
msgstr "Contêineres de autenticação"
#: usr/local/www/system_authservers.php:574
+#: usr/local/www/system_authservers.php:579
+#: usr/local/www/system_authservers.php:586
msgid "Containers:"
msgstr "Contêineres:"
#: usr/local/www/system_authservers.php:578
+#: usr/local/www/system_authservers.php:583
+#: usr/local/www/system_authservers.php:590
msgid ""
"Note: Semi-Colon separated. This will be prepended to the search base dn "
"above or you can specify full container path."
@@ -25111,18 +31194,26 @@ msgstr ""
"acima ou você pode especificar o caminho completo do contêiner."
#: usr/local/www/system_authservers.php:579
+#: usr/local/www/system_authservers.php:584
+#: usr/local/www/system_authservers.php:591
msgid "Example: CN=Users;DC=example"
msgstr "EXEMPLO: CN=Users;DC=example"
#: usr/local/www/system_authservers.php:580
+#: usr/local/www/system_authservers.php:585
+#: usr/local/www/system_authservers.php:592
msgid "Example: CN=Users,DC=example,DC=com;OU=OtherUsers,DC=example,DC=com "
msgstr "EXEMPLO: CN=Users,DC=example,DC=com;OU=OtherUsers,DC=example,DC=com "
#: usr/local/www/system_authservers.php:587
+#: usr/local/www/system_authservers.php:592
+#: usr/local/www/system_authservers.php:599
msgid "Extended Query"
msgstr "Consulta estendida"
#: usr/local/www/system_authservers.php:597
+#: usr/local/www/system_authservers.php:602
+#: usr/local/www/system_authservers.php:609
msgid ""
"Example: CN=Groupname,OU=MyGroups,DC=example,DC=com;OU=OtherUsers,DC=example,"
"DC=com "
@@ -25131,68 +31222,104 @@ msgstr ""
"DC=com"
#: usr/local/www/system_authservers.php:604
+#: usr/local/www/system_authservers.php:609
+#: usr/local/www/system_authservers.php:616
msgid "Bind credentials"
msgstr "Credenciais de Vínculo"
#: usr/local/www/system_authservers.php:612
+#: usr/local/www/system_authservers.php:617
+#: usr/local/www/system_authservers.php:624
msgid "Use anonymous binds to resolve distinguished names"
msgstr "Use vínculos anônimos para resolver nomes distintos"
#: usr/local/www/system_authservers.php:621
+#: usr/local/www/system_authservers.php:626
+#: usr/local/www/system_authservers.php:633
msgid "User DN:"
msgstr "DN do usuário:"
#: usr/local/www/system_authservers.php:637
+#: usr/local/www/system_authservers.php:642
+#: usr/local/www/system_authservers.php:649
msgid "Initial Template"
msgstr "Modelo inicial"
#: usr/local/www/system_authservers.php:653
+#: usr/local/www/system_authservers.php:658
+#: usr/local/www/system_authservers.php:665
msgid "User naming attribute"
msgstr "Atributo de nomeação de usuário"
#: usr/local/www/system_authservers.php:659
+#: usr/local/www/system_authservers.php:664
+#: usr/local/www/system_authservers.php:671
msgid "Group naming attribute"
msgstr "Atributo de nomeação de grupo"
#: usr/local/www/system_authservers.php:677
+#: usr/local/www/system_authservers.php:682
+#: usr/local/www/system_authservers.php:689
msgid "Radius Server Settings"
msgstr "Configurações do Servidor Radius"
#: usr/local/www/system_authservers.php:692
+#: usr/local/www/system_authservers.php:697
+#: usr/local/www/system_authservers.php:704
msgid "Services offered"
msgstr "Serviços oferecidos"
#: usr/local/www/system_authservers.php:737
+#: usr/local/www/system_authservers.php:743
+#: usr/local/www/system_authservers.php:759
msgid "Server Name"
msgstr "Nome do Servidor"
#: usr/local/www/system_authservers.php:739
+#: usr/local/www/system_authservers.php:745
+#: usr/local/www/system_authservers.php:761
msgid "Host Name"
msgstr "Nome do Host"
#: usr/local/www/system_authservers.php:756
#: usr/local/www/vpn_openvpn_server.php:1479
#: usr/local/www/vpn_openvpn_server.php:1621
+#: usr/local/www/vpn_openvpn_server.php:1662
+#: usr/local/www/system_authservers.php:764
+#: usr/local/www/system_authservers.php:780
+#: usr/local/www/vpn_openvpn_server.php:1714
msgid "edit server"
msgstr "editar servidor"
#: usr/local/www/system_authservers.php:759
+#: usr/local/www/system_authservers.php:767
+#: usr/local/www/system_authservers.php:783
msgid "Do you really want to delete this Server?"
msgstr "Você realmente deseja apagar esse Servidor?"
#: usr/local/www/system_authservers.php:760
#: usr/local/www/vpn_openvpn_server.php:1483
#: usr/local/www/vpn_openvpn_server.php:1625
+#: usr/local/www/vpn_openvpn_server.php:1666
+#: usr/local/www/system_authservers.php:768
+#: usr/local/www/system_authservers.php:784
+#: usr/local/www/vpn_openvpn_server.php:1718
msgid "delete server"
msgstr "apagar servidor"
#: usr/local/www/system_authservers.php:772
#: usr/local/www/vpn_openvpn_server.php:1496
#: usr/local/www/vpn_openvpn_server.php:1638
+#: usr/local/www/vpn_openvpn_server.php:1679
+#: usr/local/www/system_authservers.php:782
+#: usr/local/www/system_authservers.php:798
+#: usr/local/www/vpn_openvpn_server.php:1731
msgid "add server"
msgstr "adicionar servidor"
#: usr/local/www/system_authservers.php:779
+#: usr/local/www/system_authservers.php:789
+#: usr/local/www/system_authservers.php:805
msgid "Additional authentication servers can be added here."
msgstr "Servidores de autenticação adicionais podem ser adicionados aqui."
@@ -25208,11 +31335,11 @@ msgstr "Criar uma Autoridade de Certificadora interna"
msgid "Create an intermediate Certificate Authority"
msgstr "Cria uma Autoridade Certificadora intermediária"
-#: usr/local/www/system_camanager.php:50
+#: usr/local/www/system_camanager.php:50 usr/local/www/system_camanager.php:51
msgid "Certificate Authority Manager"
msgstr "Gerenciador de Autoridade de Certificadora"
-#: usr/local/www/system_camanager.php:95
+#: usr/local/www/system_camanager.php:95 usr/local/www/system_camanager.php:96
#, php-format
msgid "Certificate Authority %s and its CRLs (if any) successfully deleted"
msgstr ""
@@ -25224,10 +31351,15 @@ msgstr ""
#: usr/local/www/system_certmanager.php:511
#: usr/local/www/system_certmanager.php:193
#: usr/local/www/system_certmanager.php:610
+#: usr/local/www/system_camanager.php:168
+#: usr/local/www/system_camanager.php:409
+#: usr/local/www/system_certmanager.php:196
+#: usr/local/www/system_certmanager.php:619
msgid "Certificate data"
msgstr "Dados do Certificado"
#: usr/local/www/system_camanager.php:170
+#: usr/local/www/system_camanager.php:172
msgid "Encrypted private keys are not yet supported."
msgstr "Chaves privadas criptografadas não são suportadas ainda."
@@ -25246,6 +31378,13 @@ msgstr "Chaves privadas criptografadas não são suportadas ainda."
#: usr/local/www/system_certmanager.php:820
#: usr/local/www/system_usermanager.php:723
#: usr/local/www/system_camanager.php:454
+#: usr/local/www/system_camanager.php:180
+#: usr/local/www/system_camanager.php:196
+#: usr/local/www/system_camanager.php:461
+#: usr/local/www/system_certmanager.php:209
+#: usr/local/www/system_certmanager.php:226
+#: usr/local/www/system_certmanager.php:674
+#: usr/local/www/system_certmanager.php:845
msgid "Key length"
msgstr "Tamanho da chave"
@@ -25265,6 +31404,16 @@ msgstr "Tamanho da chave"
#: usr/local/www/system_camanager.php:470
#: usr/local/www/vpn_ipsec_phase2.php:645
#: usr/local/www/vpn_ipsec_phase1.php:771
+#: usr/local/www/system_crlmanager.php:367
+#: usr/local/www/vpn_ipsec_phase2.php:741
+#: usr/local/www/vpn_ipsec_phase1.php:768
+#: usr/local/www/system_camanager.php:181
+#: usr/local/www/system_camanager.php:197
+#: usr/local/www/system_camanager.php:493
+#: usr/local/www/system_certmanager.php:211
+#: usr/local/www/system_certmanager.php:723
+#: usr/local/www/vpn_ipsec_phase1.php:789
+#: usr/local/www/vpn_ipsec_phase2.php:762
msgid "Lifetime"
msgstr "Tempo de vida"
@@ -25274,6 +31423,10 @@ msgstr "Tempo de vida"
#: usr/local/www/system_certmanager.php:195
#: usr/local/www/system_certmanager.php:209
#: usr/local/www/system_certmanager.php:224
+#: usr/local/www/system_camanager.php:182
+#: usr/local/www/system_camanager.php:198
+#: usr/local/www/system_certmanager.php:212
+#: usr/local/www/system_certmanager.php:227
msgid "Distinguished name Country Code"
msgstr "Código de País de nome distinto"
@@ -25283,6 +31436,10 @@ msgstr "Código de País de nome distinto"
#: usr/local/www/system_certmanager.php:196
#: usr/local/www/system_certmanager.php:210
#: usr/local/www/system_certmanager.php:225
+#: usr/local/www/system_camanager.php:183
+#: usr/local/www/system_camanager.php:199
+#: usr/local/www/system_certmanager.php:213
+#: usr/local/www/system_certmanager.php:228
msgid "Distinguished name State or Province"
msgstr "Estado ou Província de nome distinto"
@@ -25292,6 +31449,10 @@ msgstr "Estado ou Província de nome distinto"
#: usr/local/www/system_certmanager.php:197
#: usr/local/www/system_certmanager.php:211
#: usr/local/www/system_certmanager.php:226
+#: usr/local/www/system_camanager.php:184
+#: usr/local/www/system_camanager.php:200
+#: usr/local/www/system_certmanager.php:214
+#: usr/local/www/system_certmanager.php:229
msgid "Distinguished name City"
msgstr "Cidade de nome distinto"
@@ -25301,6 +31462,10 @@ msgstr "Cidade de nome distinto"
#: usr/local/www/system_certmanager.php:198
#: usr/local/www/system_certmanager.php:212
#: usr/local/www/system_certmanager.php:227
+#: usr/local/www/system_camanager.php:185
+#: usr/local/www/system_camanager.php:201
+#: usr/local/www/system_certmanager.php:215
+#: usr/local/www/system_certmanager.php:230
msgid "Distinguished name Organization"
msgstr "Organização de nome distinto"
@@ -25310,6 +31475,10 @@ msgstr "Organização de nome distinto"
#: usr/local/www/system_certmanager.php:199
#: usr/local/www/system_certmanager.php:213
#: usr/local/www/system_certmanager.php:228
+#: usr/local/www/system_camanager.php:186
+#: usr/local/www/system_camanager.php:202
+#: usr/local/www/system_certmanager.php:216
+#: usr/local/www/system_certmanager.php:231
msgid "Distinguished name Email Address"
msgstr "Endereço de E-mail de nome distinto"
@@ -25319,12 +31488,18 @@ msgstr "Endereço de E-mail de nome distinto"
#: usr/local/www/system_certmanager.php:200
#: usr/local/www/system_certmanager.php:214
#: usr/local/www/system_certmanager.php:229
+#: usr/local/www/system_camanager.php:187
+#: usr/local/www/system_camanager.php:203
+#: usr/local/www/system_certmanager.php:217
+#: usr/local/www/system_certmanager.php:232
msgid "Distinguished name Common Name"
msgstr "Nome Comum de nome distinto"
#: usr/local/www/system_camanager.php:193
#: usr/local/www/system_camanager.php:436
#: usr/local/www/system_camanager.php:437
+#: usr/local/www/system_camanager.php:195
+#: usr/local/www/system_camanager.php:444
msgid "Signing Certificate Authority"
msgstr "Assinatura da Autoridade Certificadora"
@@ -25332,6 +31507,9 @@ msgstr "Assinatura da Autoridade Certificadora"
#: usr/local/www/system_certmanager.php:458
#: usr/local/www/system_crlmanager.php:283
#: usr/local/www/system_certmanager.php:557
+#: usr/local/www/system_crlmanager.php:284
+#: usr/local/www/system_camanager.php:355
+#: usr/local/www/system_certmanager.php:566
msgid "CAs"
msgstr "CAs"
@@ -25342,6 +31520,11 @@ msgstr "CAs"
#: usr/local/www/system_crlmanager.php:489
#: usr/local/www/system_certmanager.php:558
#: usr/local/www/system_camanager.php:569
+#: usr/local/www/system_crlmanager.php:285
+#: usr/local/www/system_crlmanager.php:522
+#: usr/local/www/system_camanager.php:356
+#: usr/local/www/system_camanager.php:593
+#: usr/local/www/system_certmanager.php:567
msgid "Certificates"
msgstr "Certificados"
@@ -25349,6 +31532,9 @@ msgstr "Certificados"
#: usr/local/www/system_certmanager.php:460
#: usr/local/www/system_crlmanager.php:285
#: usr/local/www/system_certmanager.php:559
+#: usr/local/www/system_crlmanager.php:286
+#: usr/local/www/system_camanager.php:357
+#: usr/local/www/system_certmanager.php:568
msgid "Certificate Revocation"
msgstr "Revogação de Certificado"
@@ -25356,22 +31542,29 @@ msgstr "Revogação de Certificado"
#: usr/local/www/system_certmanager.php:475
#: usr/local/www/system_crlmanager.php:300
#: usr/local/www/system_certmanager.php:574
+#: usr/local/www/system_crlmanager.php:301
+#: usr/local/www/system_camanager.php:383
+#: usr/local/www/system_certmanager.php:583
msgid "Method"
msgstr "Método"
#: usr/local/www/system_camanager.php:398
+#: usr/local/www/system_camanager.php:405
msgid "Existing Certificate Authority"
msgstr "Fonte Autorizadora Existente"
#: usr/local/www/system_camanager.php:410
+#: usr/local/www/system_camanager.php:417
msgid "Certificate Private Key"
msgstr "Chave Privada do Certificado"
#: usr/local/www/system_camanager.php:410
+#: usr/local/www/system_camanager.php:417
msgid "(optional)"
msgstr "(opcional)"
#: usr/local/www/system_camanager.php:414
+#: usr/local/www/system_camanager.php:421
msgid ""
"Paste the private key for the above certificate here. This is optional in "
"most cases, but required if you need to generate a Certificate Revocation "
@@ -25383,11 +31576,13 @@ msgstr ""
#: usr/local/www/system_camanager.php:420
#: usr/local/www/system_crlmanager.php:374
+#: usr/local/www/system_crlmanager.php:375
msgid "Serial"
msgstr "Serial"
#: usr/local/www/system_camanager.php:433
#: usr/local/www/system_camanager.php:434
+#: usr/local/www/system_camanager.php:441
msgid "Internal Certificate Authority"
msgstr "Fonte Autorizadora de Certificado Interno"
@@ -25396,6 +31591,9 @@ msgstr "Fonte Autorizadora de Certificado Interno"
#: usr/local/www/system_crlmanager.php:369
#: usr/local/www/system_certmanager.php:701
#: usr/local/www/system_camanager.php:473
+#: usr/local/www/system_crlmanager.php:370
+#: usr/local/www/system_camanager.php:496
+#: usr/local/www/system_certmanager.php:726
msgid "days"
msgstr "dias"
@@ -25405,6 +31603,9 @@ msgstr "dias"
#: usr/local/www/system_certmanager.php:709
#: usr/local/www/system_certmanager.php:842
#: usr/local/www/system_camanager.php:481
+#: usr/local/www/system_camanager.php:504
+#: usr/local/www/system_certmanager.php:734
+#: usr/local/www/system_certmanager.php:883
msgid "Country Code"
msgstr "Código do país"
@@ -25414,6 +31615,9 @@ msgstr "Código do país"
#: usr/local/www/system_certmanager.php:715
#: usr/local/www/system_certmanager.php:856
#: usr/local/www/system_camanager.php:495
+#: usr/local/www/system_camanager.php:519
+#: usr/local/www/system_certmanager.php:740
+#: usr/local/www/system_certmanager.php:898
msgid "State or Province"
msgstr "Estado ou Província"
@@ -25427,6 +31631,11 @@ msgstr "Estado ou Província"
#: usr/local/www/system_camanager.php:519
#: usr/local/www/system_camanager.php:529
#: usr/local/www/system_camanager.php:539
+#: usr/local/www/system_camanager.php:523
+#: usr/local/www/system_camanager.php:533
+#: usr/local/www/system_camanager.php:543
+#: usr/local/www/system_camanager.php:553
+#: usr/local/www/system_camanager.php:563
msgid "ex:"
msgstr "ex:"
@@ -25434,6 +31643,8 @@ msgstr "ex:"
#: usr/local/www/system_certmanager.php:696
#: usr/local/www/system_certmanager.php:862
#: usr/local/www/system_camanager.php:501
+#: usr/local/www/system_camanager.php:525
+#: usr/local/www/system_certmanager.php:904
msgid "Texas"
msgstr "Texas"
@@ -25443,6 +31654,9 @@ msgstr "Texas"
#: usr/local/www/system_certmanager.php:721
#: usr/local/www/system_certmanager.php:866
#: usr/local/www/system_camanager.php:505
+#: usr/local/www/system_camanager.php:529
+#: usr/local/www/system_certmanager.php:746
+#: usr/local/www/system_certmanager.php:908
msgid "City"
msgstr "Cidade"
@@ -25450,6 +31664,8 @@ msgstr "Cidade"
#: usr/local/www/system_certmanager.php:706
#: usr/local/www/system_certmanager.php:872
#: usr/local/www/system_camanager.php:511
+#: usr/local/www/system_camanager.php:535
+#: usr/local/www/system_certmanager.php:914
msgid "Austin"
msgstr "Austin"
@@ -25459,6 +31675,9 @@ msgstr "Austin"
#: usr/local/www/system_certmanager.php:727
#: usr/local/www/system_certmanager.php:876
#: usr/local/www/system_camanager.php:515
+#: usr/local/www/system_camanager.php:539
+#: usr/local/www/system_certmanager.php:752
+#: usr/local/www/system_certmanager.php:918
msgid "Organization"
msgstr "Organização"
@@ -25466,22 +31685,28 @@ msgstr "Organização"
#: usr/local/www/system_certmanager.php:716
#: usr/local/www/system_certmanager.php:882
#: usr/local/www/system_camanager.php:521
+#: usr/local/www/system_camanager.php:545
+#: usr/local/www/system_certmanager.php:924
msgid "My Company Inc."
msgstr "Minha Companhia Ltda."
#: usr/local/www/system_camanager.php:530
#: usr/local/www/system_camanager.php:531
+#: usr/local/www/system_camanager.php:555
msgid "admin@mycompany.com"
msgstr "admin@empresa.com"
#: usr/local/www/system_camanager.php:540
#: usr/local/www/system_camanager.php:541
+#: usr/local/www/system_camanager.php:565
msgid "internal-ca"
msgstr "CA interno"
#: usr/local/www/system_camanager.php:566
#: usr/local/www/system_crlmanager.php:488
#: usr/local/www/system_camanager.php:567
+#: usr/local/www/system_crlmanager.php:521
+#: usr/local/www/system_camanager.php:591
msgid "Internal"
msgstr "Interno"
@@ -25489,6 +31714,8 @@ msgstr "Interno"
#: usr/local/www/system_certmanager.php:855
#: usr/local/www/system_certmanager.php:1021
#: usr/local/www/system_camanager.php:568
+#: usr/local/www/system_camanager.php:592
+#: usr/local/www/system_certmanager.php:1063
msgid "Issuer"
msgstr "Emissor"
@@ -25496,6 +31723,8 @@ msgstr "Emissor"
#: usr/local/www/system_certmanager.php:856
#: usr/local/www/system_certmanager.php:1022
#: usr/local/www/system_camanager.php:570
+#: usr/local/www/system_camanager.php:594
+#: usr/local/www/system_certmanager.php:1064
msgid "Distinguished Name"
msgstr "Nome distinto"
@@ -25503,6 +31732,8 @@ msgstr "Nome distinto"
#: usr/local/www/system_certmanager.php:869
#: usr/local/www/system_certmanager.php:1036
#: usr/local/www/system_camanager.php:580
+#: usr/local/www/system_camanager.php:605
+#: usr/local/www/system_certmanager.php:1079
msgid "self-signed"
msgstr "auto-assinada"
@@ -25510,26 +31741,32 @@ msgstr "auto-assinada"
#: usr/local/www/system_certmanager.php:871
#: usr/local/www/system_certmanager.php:1038
#: usr/local/www/system_camanager.php:582
+#: usr/local/www/system_camanager.php:607
+#: usr/local/www/system_certmanager.php:1081
msgid "external"
msgstr "externa"
#: usr/local/www/system_camanager.php:626
#: usr/local/www/system_camanager.php:627
+#: usr/local/www/system_camanager.php:665
msgid "edit CA"
msgstr "Editar CA"
#: usr/local/www/system_camanager.php:629
#: usr/local/www/system_camanager.php:630
+#: usr/local/www/system_camanager.php:668
msgid "export CA cert"
msgstr "exportar certificado CA"
#: usr/local/www/system_camanager.php:633
#: usr/local/www/system_camanager.php:634
+#: usr/local/www/system_camanager.php:672
msgid "export CA private key"
msgstr "exportar chave privada da CA"
#: usr/local/www/system_camanager.php:636
#: usr/local/www/system_camanager.php:637
+#: usr/local/www/system_camanager.php:675
msgid ""
"Do you really want to delete this Certificate Authority and its CRLs, and "
"unreference any associated certificates?"
@@ -25539,6 +31776,7 @@ msgstr ""
#: usr/local/www/system_camanager.php:637
#: usr/local/www/system_camanager.php:638
+#: usr/local/www/system_camanager.php:676
msgid "delete ca"
msgstr "apagar CA"
@@ -25546,6 +31784,9 @@ msgstr "apagar CA"
#: usr/local/www/system_certmanager.php:952
#: usr/local/www/system_certmanager.php:1132
#: usr/local/www/system_camanager.php:650
+#: usr/local/www/system_certmanager.php:1135
+#: usr/local/www/system_camanager.php:688
+#: usr/local/www/system_certmanager.php:1191
msgid "add or import ca"
msgstr "adicionar ou importar CA"
@@ -25553,11 +31794,15 @@ msgstr "adicionar ou importar CA"
#: usr/local/www/system_certmanager.php:952
#: usr/local/www/system_certmanager.php:1132
#: usr/local/www/system_camanager.php:650
+#: usr/local/www/system_certmanager.php:1135
+#: usr/local/www/system_camanager.php:688
+#: usr/local/www/system_certmanager.php:1191
msgid "add ca"
msgstr "adicionar CA"
#: usr/local/www/system_camanager.php:656
#: usr/local/www/system_camanager.php:657
+#: usr/local/www/system_camanager.php:695
msgid "Additional trusted Certificate Authorities can be added here."
msgstr ""
"Fontes Certificadoras confiáveis adicionais podem ser adicionadas aqui."
@@ -25576,22 +31821,26 @@ msgstr "Criar uma Requisição de Assinatura de Certificado"
#: usr/local/www/system_certmanager.php:51
#: usr/local/www/system_certmanager.php:56
+#: usr/local/www/system_certmanager.php:57
msgid "Certificate Manager"
msgstr "Gerenciador de Certificado"
#: usr/local/www/system_certmanager.php:57
#: usr/local/www/system_certmanager.php:62
+#: usr/local/www/system_certmanager.php:63
msgid "Choose an existing certificate"
msgstr "Escolha um certificado existente"
#: usr/local/www/system_certmanager.php:96
#: usr/local/www/system_certmanager.php:101
+#: usr/local/www/system_certmanager.php:102
#, php-format
msgid "Certificate %s successfully deleted"
msgstr "Certificado %s foi apagado com sucesso"
#: usr/local/www/system_certmanager.php:166
#: usr/local/www/system_certmanager.php:194
+#: usr/local/www/system_certmanager.php:197
msgid "Key data"
msgstr "Dado chave"
@@ -25602,11 +31851,14 @@ msgstr "Dado chave"
#: usr/local/www/system_certmanager.php:205
#: usr/local/www/system_certmanager.php:648
#: usr/local/www/system_usermanager.php:709
+#: usr/local/www/system_certmanager.php:208
+#: usr/local/www/system_certmanager.php:657
msgid "Certificate authority"
msgstr "Fonte Autorizadora"
#: usr/local/www/system_certmanager.php:205
#: usr/local/www/system_certmanager.php:234
+#: usr/local/www/system_certmanager.php:237
msgid "Existing Certificate Choice"
msgstr "Escolha de Certificado Existente"
@@ -25616,6 +31868,9 @@ msgstr "Escolha de Certificado Existente"
#: usr/local/www/system_certmanager.php:387
#: usr/local/www/system_certmanager.php:962
#: usr/local/www/system_certmanager.php:1006
+#: usr/local/www/system_certmanager.php:396
+#: usr/local/www/system_certmanager.php:1004
+#: usr/local/www/system_certmanager.php:1048
msgid "Update"
msgstr "Atualizar"
@@ -25623,11 +31878,14 @@ msgstr "Atualizar"
#: usr/local/www/system_certmanager.php:822
#: usr/local/www/system_certmanager.php:395
#: usr/local/www/system_certmanager.php:988
+#: usr/local/www/system_certmanager.php:404
+#: usr/local/www/system_certmanager.php:1030
msgid "Final Certificate data"
msgstr "Dado de Certificado Final"
#: usr/local/www/system_certmanager.php:328
#: usr/local/www/system_certmanager.php:415
+#: usr/local/www/system_certmanager.php:424
#, php-format
msgid "The certificate modulus does not match the signing request modulus."
msgstr ""
@@ -25636,26 +31894,31 @@ msgstr ""
#: usr/local/www/system_certmanager.php:507
#: usr/local/www/system_certmanager.php:606
+#: usr/local/www/system_certmanager.php:615
msgid "Import Certificate"
msgstr "Importar Certificado"
#: usr/local/www/system_certmanager.php:519
#: usr/local/www/system_certmanager.php:618
+#: usr/local/www/system_certmanager.php:627
msgid "Private key data"
msgstr "Dado de chave privada"
#: usr/local/www/system_certmanager.php:523
#: usr/local/www/system_certmanager.php:622
+#: usr/local/www/system_certmanager.php:631
msgid "Paste a private key in X.509 PEM format here."
msgstr "Cole uma chave privada no formato X.509 PEM aqui."
#: usr/local/www/system_certmanager.php:533
#: usr/local/www/system_certmanager.php:632
+#: usr/local/www/system_certmanager.php:641
msgid "Internal Certificate"
msgstr "Certificação Interna"
#: usr/local/www/system_certmanager.php:540
#: usr/local/www/system_certmanager.php:639
+#: usr/local/www/system_certmanager.php:648
msgid "No internal Certificate Authorities have been defined. You must"
msgstr ""
"Nenhuma Fonte Autorizadora de Certificado (CA) interna foi definida. Você "
@@ -25663,6 +31926,7 @@ msgstr ""
#: usr/local/www/system_certmanager.php:542
#: usr/local/www/system_certmanager.php:641
+#: usr/local/www/system_certmanager.php:650
msgid "an internal CA before creating an internal certificate."
msgstr "um CA interno antes de criar um certificado interno."
@@ -25670,6 +31934,8 @@ msgstr "um CA interno antes de criar um certificado interno."
#: usr/local/www/system_certmanager.php:726
#: usr/local/www/system_certmanager.php:739
#: usr/local/www/system_certmanager.php:892
+#: usr/local/www/system_certmanager.php:764
+#: usr/local/www/system_certmanager.php:934
msgid "webadmin@mycompany.com"
msgstr "webadmin@empresa.com"
@@ -25677,36 +31943,44 @@ msgstr "webadmin@empresa.com"
#: usr/local/www/system_certmanager.php:736
#: usr/local/www/system_certmanager.php:753
#: usr/local/www/system_certmanager.php:902
+#: usr/local/www/system_certmanager.php:778
+#: usr/local/www/system_certmanager.php:944
msgid "www.example.com"
msgstr "www.examplo.com"
#: usr/local/www/system_certmanager.php:653
#: usr/local/www/system_certmanager.php:817
+#: usr/local/www/system_certmanager.php:842
msgid "External Signing Request"
msgstr "Requisição de Assinatura Externa"
#: usr/local/www/system_certmanager.php:749
#: usr/local/www/system_certmanager.php:915
+#: usr/local/www/system_certmanager.php:957
msgid "Choose an Existing Certificate"
msgstr "Escolher um Certificado Existente"
#: usr/local/www/system_certmanager.php:752
#: usr/local/www/system_certmanager.php:918
+#: usr/local/www/system_certmanager.php:960
msgid "Existing Certificates"
msgstr "Certificados Existentes"
#: usr/local/www/system_certmanager.php:810
#: usr/local/www/system_certmanager.php:976
+#: usr/local/www/system_certmanager.php:1018
msgid "Complete Signing Request"
msgstr "Requisição de assinatura completa"
#: usr/local/www/system_certmanager.php:814
#: usr/local/www/system_certmanager.php:980
+#: usr/local/www/system_certmanager.php:1022
msgid "Signing Request data"
msgstr "Assinando dado Requisitado"
#: usr/local/www/system_certmanager.php:818
#: usr/local/www/system_certmanager.php:984
+#: usr/local/www/system_certmanager.php:1026
msgid ""
"Copy the certificate signing data from here and forward it to your "
"certificate authority for signing."
@@ -25716,17 +31990,21 @@ msgstr ""
#: usr/local/www/system_certmanager.php:826
#: usr/local/www/system_certmanager.php:992
+#: usr/local/www/system_certmanager.php:1034
msgid "Paste the certificate received from your certificate authority here."
msgstr "Cole o certificado recebido de sua autoridade certificadora aqui."
#: usr/local/www/system_certmanager.php:857
#: usr/local/www/system_crlmanager.php:490
#: usr/local/www/system_certmanager.php:1023
+#: usr/local/www/system_crlmanager.php:523
+#: usr/local/www/system_certmanager.php:1065
msgid "In Use"
msgstr "Em Uso"
#: usr/local/www/system_certmanager.php:877
#: usr/local/www/system_certmanager.php:1044
+#: usr/local/www/system_certmanager.php:1087
msgid "external - signature pending"
msgstr "externa - assinatura pendente"
@@ -25734,6 +32012,8 @@ msgstr "externa - assinatura pendente"
#: usr/local/www/system_usermanager.php:658
#: usr/local/www/system_certmanager.php:1103
#: usr/local/www/system_usermanager.php:656
+#: usr/local/www/system_certmanager.php:1106
+#: usr/local/www/system_certmanager.php:1162
msgid "export cert"
msgstr "exportar cert"
@@ -25741,16 +32021,23 @@ msgstr "exportar cert"
#: usr/local/www/system_certmanager.php:929
#: usr/local/www/system_certmanager.php:1103
#: usr/local/www/system_certmanager.php:1106
+#: usr/local/www/system_certmanager.php:1109
+#: usr/local/www/system_certmanager.php:1162
+#: usr/local/www/system_certmanager.php:1165
msgid "export ca"
msgstr "exportar CA"
#: usr/local/www/system_certmanager.php:929
#: usr/local/www/system_certmanager.php:1106
+#: usr/local/www/system_certmanager.php:1109
+#: usr/local/www/system_certmanager.php:1165
msgid "export key"
msgstr "exportar chave"
#: usr/local/www/system_certmanager.php:932
#: usr/local/www/system_certmanager.php:1112
+#: usr/local/www/system_certmanager.php:1115
+#: usr/local/www/system_certmanager.php:1171
msgid "Do you really want to delete this Certificate?"
msgstr "Você realmente deseja apagar esse Certificado?"
@@ -25758,16 +32045,22 @@ msgstr "Você realmente deseja apagar esse Certificado?"
#: usr/local/www/system_usermanager.php:661
#: usr/local/www/system_certmanager.php:1113
#: usr/local/www/system_usermanager.php:659
+#: usr/local/www/system_certmanager.php:1116
+#: usr/local/www/system_certmanager.php:1172
msgid "delete cert"
msgstr "apagar cert"
#: usr/local/www/system_certmanager.php:939
#: usr/local/www/system_certmanager.php:1119
+#: usr/local/www/system_certmanager.php:1122
+#: usr/local/www/system_certmanager.php:1178
msgid "update csr"
msgstr "atualizar csr"
#: usr/local/www/system_certmanager.php:958
#: usr/local/www/system_certmanager.php:1138
+#: usr/local/www/system_certmanager.php:1141
+#: usr/local/www/system_certmanager.php:1197
msgid "Note: You can only delete a certificate if it is not currently in use."
msgstr ""
"NOTA: Você só pode excluir um certificado se o mesmo não estiver em uso."
@@ -25829,6 +32122,7 @@ msgstr ""
"Falhou ao apagar o Cerficiado %s da Lista de Revogação de Certificado %s"
#: usr/local/www/system_crlmanager.php:194
+#: usr/local/www/system_crlmanager.php:193
msgid "Certificate Revocation List data"
msgstr "Dados de Lista de Revogação de Certificado"
@@ -25839,116 +32133,152 @@ msgstr "Dados de Lista de Revogação de Certificado"
#: usr/local/www/vpn_openvpn_server.php:282
#: usr/local/www/vpn_openvpn_server.php:287
#: usr/local/www/vpn_openvpn_client.php:214
+#: usr/local/www/system_crlmanager.php:200
+#: usr/local/www/system_crlmanager.php:325
+#: usr/local/www/vpn_openvpn_server.php:288
+#: usr/local/www/vpn_openvpn_client.php:220
+#: usr/local/www/vpn_openvpn_client.php:238
+#: usr/local/www/vpn_openvpn_server.php:309
msgid "Certificate Authority"
msgstr "Fonte Certificadora"
#: usr/local/www/system_crlmanager.php:345
+#: usr/local/www/system_crlmanager.php:346
msgid "Existing Certificate Revocation List"
msgstr "Lista de Revogação de Certificado existente"
#: usr/local/www/system_crlmanager.php:349
+#: usr/local/www/system_crlmanager.php:350
+#: usr/local/www/system_crlmanager.php:410
msgid "CRL data"
msgstr "Dado de Lista de Revogação de Certificado"
#: usr/local/www/system_crlmanager.php:353
+#: usr/local/www/system_crlmanager.php:354
+#: usr/local/www/system_crlmanager.php:414
msgid "Paste a Certificate Revocation List in X.509 CRL format here."
msgstr "Copie uma Lista de Revogação de Certificado no formato X.509 CRL aqui."
#: usr/local/www/system_crlmanager.php:363
+#: usr/local/www/system_crlmanager.php:364
msgid "Internal Certificate Revocation List"
msgstr "Lista de Revogação de Certificado Interna"
#: usr/local/www/system_crlmanager.php:370
+#: usr/local/www/system_crlmanager.php:371
msgid "Default: 9999"
msgstr "Padrão: 9999"
#: usr/local/www/system_crlmanager.php:378
+#: usr/local/www/system_crlmanager.php:379
msgid "Default: 0"
msgstr "Padrão: 0"
#: usr/local/www/system_crlmanager.php:401
+#: usr/local/www/system_crlmanager.php:434
msgid "Currently Revoked Certificates for CRL"
msgstr ""
"Certificados Revogados atualmente para Lista de Revogação de Certificado"
#: usr/local/www/system_crlmanager.php:405
+#: usr/local/www/system_crlmanager.php:438
msgid "Certificate Name"
msgstr "Nome do Certificado"
#: usr/local/www/system_crlmanager.php:406
+#: usr/local/www/system_crlmanager.php:439
msgid "Revocation Reason"
msgstr "Razão de Revogação"
#: usr/local/www/system_crlmanager.php:407
+#: usr/local/www/system_crlmanager.php:440
msgid "Revoked At"
msgstr "Revogado Em"
#: usr/local/www/system_crlmanager.php:416
+#: usr/local/www/system_crlmanager.php:449
msgid "No Certificates Found for this CRL."
msgstr ""
"Nenhum Certificado Encontrado para essa Lista de Revogação de Certificado."
#: usr/local/www/system_crlmanager.php:435
+#: usr/local/www/system_crlmanager.php:468
msgid "Do you really want to delete this Certificate from the CRL?"
msgstr "Você realmente deseja apagar esse Certificado da CRL?"
#: usr/local/www/system_crlmanager.php:436
+#: usr/local/www/system_crlmanager.php:469
msgid "Delete this certificate from the CRL "
msgstr "Remover esse certificado para a Lista de Revogação de Certificado "
#: usr/local/www/system_crlmanager.php:453
+#: usr/local/www/system_crlmanager.php:486
msgid "No Certificates Found for this CA."
msgstr "Nenhum Certificado Encontrado para essa Fonte Certificadora."
#: usr/local/www/system_crlmanager.php:460
+#: usr/local/www/system_crlmanager.php:493
msgid "Choose a Certificate to Revoke"
msgstr "Escolha um Certificado para Revogar"
#: usr/local/www/system_crlmanager.php:465
+#: usr/local/www/system_crlmanager.php:498
msgid "Reason"
msgstr "Razão"
#: usr/local/www/system_crlmanager.php:527
+#: usr/local/www/system_crlmanager.php:560
#, php-format
msgid "Add or Import CRL for %s"
msgstr "Adicionar ou importar Lista de Revogação de Certificado para %s"
#: usr/local/www/system_crlmanager.php:527
#: usr/local/www/system_crlmanager.php:531
+#: usr/local/www/system_crlmanager.php:560
+#: usr/local/www/system_crlmanager.php:564
msgid "add crl"
msgstr "adicionar lista de revogação de certificado"
#: usr/local/www/system_crlmanager.php:531
+#: usr/local/www/system_crlmanager.php:564
#, php-format
msgid "Import CRL for %s"
msgstr "Importar CRL para %s"
#: usr/local/www/system_crlmanager.php:552
+#: usr/local/www/system_crlmanager.php:585
msgid "Export CRL"
msgstr "Exportar Lista de Revogação de Certificado"
#: usr/local/www/system_crlmanager.php:557
+#: usr/local/www/system_crlmanager.php:590
+#: usr/local/www/system_crlmanager.php:594
msgid "Edit CRL"
msgstr "Editar Lista de Revogação de Certificado"
#: usr/local/www/system_crlmanager.php:561
+#: usr/local/www/system_crlmanager.php:598
msgid "Do you really want to delete this Certificate Revocation List?"
msgstr "Você realmente deseja apagar esta Lista de Revogação de Certificado?"
#: usr/local/www/system_crlmanager.php:562
+#: usr/local/www/system_crlmanager.php:599
msgid "Delete CRL"
msgstr "Remover Lista de Revogação de Certificado"
#: usr/local/www/system_crlmanager.php:582
+#: usr/local/www/system_crlmanager.php:619
msgid "Additional Certificate Revocation Lists can be added here."
msgstr ""
"Listas de Certificado de Revogação adicionais podem ser adicionadas aqui."
#: usr/local/www/system_gateway_groups.php:75
+#: usr/local/www/system_gateway_groups.php:76
msgid "removed gateway group"
msgstr "grupo de gateway removido"
#: usr/local/www/system_gateway_groups.php:101
+#: usr/local/www/system_gateway_groups.php:102
#, php-format
msgid ""
"The gateway configuration has been changed.%sYou must apply the changes in "
@@ -25958,10 +32288,12 @@ msgstr ""
"para que elas tenham efeito."
#: usr/local/www/system_gateway_groups.php:165
+#: usr/local/www/system_gateway_groups.php:166
msgid "Do you really want to delete this gateway group?"
msgstr "Você realmente deseja apagar esse grupo de gateway?"
#: usr/local/www/system_gateway_groups.php:195
+#: usr/local/www/system_gateway_groups.php:196
msgid ""
"Remember to use these Gateway Groups in firewall rules in order to enable "
"load balancing, failover, or policy-based routing. Without rules directing "
@@ -26001,6 +32333,7 @@ msgstr "Um grupo de gateway válido deve ser especificado."
#: usr/local/www/system_gateways_edit.php:106
#: usr/local/www/system_gateway_groups_edit.php:91
#: usr/local/www/system_gateways_edit.php:107
+#: usr/local/www/system_gateways_edit.php:108
msgid "The gateway name must not contain invalid characters."
msgstr "O nome do gateway não deve conter caracteres inválidos."
@@ -26031,56 +32364,69 @@ msgstr "Nenhum gateway foi selecionado para ser usado nesse grupo"
#: usr/local/www/system_gateway_groups_edit.php:153
#: usr/local/www/system_gateways_edit.php:319
#: usr/local/www/system_gateways_edit.php:350
+#: usr/local/www/system_gateway_groups_edit.php:146
+#: usr/local/www/system_gateways_edit.php:425
+#: usr/local/www/system_gateways_edit.php:456
msgid "Edit gateway"
msgstr "Editar gateway"
#: usr/local/www/system_gateway_groups_edit.php:155
#: usr/local/www/system_gateway_groups_edit.php:166
+#: usr/local/www/system_gateway_groups_edit.php:225
msgid "Edit gateway entry"
msgstr "Editar entrada do gateway"
#: usr/local/www/system_gateway_groups_edit.php:164
#: usr/local/www/system_gateway_groups_edit.php:175
+#: usr/local/www/system_gateway_groups_edit.php:234
msgid "Gateway Priority"
msgstr "Prioridade do Gateway"
#: usr/local/www/system_gateway_groups_edit.php:185
#: usr/local/www/system_gateway_groups_edit.php:208
+#: usr/local/www/system_gateway_groups_edit.php:268
msgid "Never"
msgstr "Nunca"
#: usr/local/www/system_gateway_groups_edit.php:186
#: usr/local/www/system_gateway_groups_edit.php:209
+#: usr/local/www/system_gateway_groups_edit.php:269
msgid "Tier 1"
msgstr "Camada 1"
#: usr/local/www/system_gateway_groups_edit.php:187
#: usr/local/www/system_gateway_groups_edit.php:210
+#: usr/local/www/system_gateway_groups_edit.php:270
msgid "Tier 2"
msgstr "Camada 2"
#: usr/local/www/system_gateway_groups_edit.php:188
#: usr/local/www/system_gateway_groups_edit.php:211
+#: usr/local/www/system_gateway_groups_edit.php:271
msgid "Tier 3"
msgstr "Camada 3"
#: usr/local/www/system_gateway_groups_edit.php:189
#: usr/local/www/system_gateway_groups_edit.php:212
+#: usr/local/www/system_gateway_groups_edit.php:272
msgid "Tier 4"
msgstr "Camada 4"
#: usr/local/www/system_gateway_groups_edit.php:190
#: usr/local/www/system_gateway_groups_edit.php:213
+#: usr/local/www/system_gateway_groups_edit.php:273
msgid "Tier 5"
msgstr "Camada 5"
#: usr/local/www/system_gateway_groups_edit.php:195
#: usr/local/www/system_gateway_groups_edit.php:247
+#: usr/local/www/system_gateway_groups_edit.php:307
msgid "Link Priority"
msgstr "Prioridade do Link"
#: usr/local/www/system_gateway_groups_edit.php:196
#: usr/local/www/system_gateway_groups_edit.php:248
+#: usr/local/www/system_gateway_groups_edit.php:308
msgid ""
"The priority selected here defines in what order failover and balancing of "
"links will be done. Multiple links of the same priority will balance "
@@ -26096,11 +32442,13 @@ msgstr ""
#: usr/local/www/system_gateway_groups_edit.php:205
#: usr/local/www/system_gateway_groups_edit.php:260
+#: usr/local/www/system_gateway_groups_edit.php:320
msgid "Trigger Level"
msgstr "Nível de Gatilho"
#: usr/local/www/system_gateway_groups_edit.php:216
#: usr/local/www/system_gateway_groups_edit.php:271
+#: usr/local/www/system_gateway_groups_edit.php:331
msgid "When to trigger exclusion of a member"
msgstr "Quando engatilhar exclusão de um membro"
@@ -26111,6 +32459,8 @@ msgstr "A configuração do gateway foi modificada."
#: usr/local/www/system_gateways.php:155
#: usr/local/www/system_gateways_edit.php:398
#: usr/local/www/system_gateways_edit.php:419
+#: usr/local/www/system_gateways_edit.php:525
+#: usr/local/www/system_gateways_edit.php:529
msgid "Monitor IP"
msgstr "IP Monitor"
@@ -26120,11 +32470,14 @@ msgstr "Você realmente deseja apagar esse gateway?"
#: usr/local/www/system_gateways_edit.php:110
#: usr/local/www/system_gateways_edit.php:111
+#: usr/local/www/system_gateways_edit.php:112
msgid "A valid gateway IP address must be specified."
msgstr "Um endereço IP de gateway válido deve ser especificado."
#: usr/local/www/system_gateways_edit.php:118
#: usr/local/www/system_gateways_edit.php:119
+#: usr/local/www/system_gateways_edit.php:120
+#: usr/local/www/system_gateways_edit.php:133
msgid "You can not use a IPv6 Gateway Address on a IPv4 only interface."
msgstr ""
"Você não pode usar um endereço IPv6 de gateway somente IPv4 em uma interface."
@@ -26133,6 +32486,8 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:133
#: usr/local/www/system_gateways_edit.php:123
#: usr/local/www/system_gateways_edit.php:136
+#: usr/local/www/system_gateways_edit.php:124
+#: usr/local/www/system_gateways_edit.php:137
#, php-format
msgid ""
"The gateway address %1$s does not lie within the chosen interface's subnet "
@@ -26143,12 +32498,15 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:129
#: usr/local/www/system_gateways_edit.php:132
+#: usr/local/www/system_gateways_edit.php:133
+#: usr/local/www/system_gateways_edit.php:120
msgid "You can not use a IPv4 Gateway Address on a IPv6 only interface."
msgstr ""
"Você não pode usar um endereço IPv4 de gateway somente IPv6 em uma interface."
#: usr/local/www/system_gateways_edit.php:139
#: usr/local/www/system_gateways_edit.php:143
+#: usr/local/www/system_gateways_edit.php:144
msgid ""
"Dynamic gateway values cannot be specified for interfaces with a static IPv4 "
"configuration."
@@ -26158,6 +32516,7 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:143
#: usr/local/www/system_gateways_edit.php:147
+#: usr/local/www/system_gateways_edit.php:148
msgid ""
"Dynamic gateway values cannot be specified for interfaces with a static IPv6 "
"configuration."
@@ -26167,28 +32526,33 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:147
#: usr/local/www/system_gateways_edit.php:151
+#: usr/local/www/system_gateways_edit.php:152
msgid "A valid monitor IP address must be specified."
msgstr "Um endereço IP monitor válido deve ser especificado."
#: usr/local/www/system_gateways_edit.php:160
#: usr/local/www/system_gateways_edit.php:168
+#: usr/local/www/system_gateways_edit.php:178
msgid "Changing name on a gateway is not allowed."
msgstr "Mudança de nome de gateway não é permitido."
#: usr/local/www/system_gateways_edit.php:165
#: usr/local/www/system_gateways_edit.php:173
+#: usr/local/www/system_gateways_edit.php:183
#, php-format
msgid "The gateway name \"%s\" already exists."
msgstr "O nome do gateway \"%s\" já existe."
#: usr/local/www/system_gateways_edit.php:171
#: usr/local/www/system_gateways_edit.php:179
+#: usr/local/www/system_gateways_edit.php:189
#, php-format
msgid "The gateway IP address \"%s\" already exists."
msgstr "O endereço IP do gateway \"%s\" já existe."
#: usr/local/www/system_gateways_edit.php:177
#: usr/local/www/system_gateways_edit.php:185
+#: usr/local/www/system_gateways_edit.php:195
#, php-format
msgid ""
"The monitor IP address \"%s\" is already in use. You must choose a different "
@@ -26238,21 +32602,29 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:363
#: usr/local/www/system_gateways_edit.php:369
+#: usr/local/www/system_gateways_edit.php:475
+#: usr/local/www/system_gateways_edit.php:474
msgid "Use BGPD"
msgstr "Use BGPD"
#: usr/local/www/system_gateways_edit.php:367
#: usr/local/www/system_gateways_edit.php:373
+#: usr/local/www/system_gateways_edit.php:479
+#: usr/local/www/system_gateways_edit.php:478
msgid "Choose which interface this gateway applies to."
msgstr "Escolha em qual interface esse gateway se aplica."
#: usr/local/www/system_gateways_edit.php:373
#: usr/local/www/system_gateways_edit.php:394
+#: usr/local/www/system_gateways_edit.php:500
+#: usr/local/www/system_gateways_edit.php:502
msgid "Gateway name"
msgstr "Nome do Gateway"
#: usr/local/www/system_gateways_edit.php:379
#: usr/local/www/system_gateways_edit.php:400
+#: usr/local/www/system_gateways_edit.php:506
+#: usr/local/www/system_gateways_edit.php:509
msgid "Gateway IP address"
msgstr "Endereço IP do Gateway"
@@ -26260,11 +32632,17 @@ msgstr "Endereço IP do Gateway"
#: usr/local/www/system_gateways_edit.php:385
#: usr/local/www/system_gateways_edit.php:403
#: usr/local/www/system_gateways_edit.php:406
+#: usr/local/www/system_gateways_edit.php:509
+#: usr/local/www/system_gateways_edit.php:512
+#: usr/local/www/system_gateways_edit.php:513
+#: usr/local/www/system_gateways_edit.php:516
msgid "Default Gateway"
msgstr "Gateway Padrão"
#: usr/local/www/system_gateways_edit.php:386
#: usr/local/www/system_gateways_edit.php:407
+#: usr/local/www/system_gateways_edit.php:513
+#: usr/local/www/system_gateways_edit.php:517
msgid "This will select the above gateway as the default gateway"
msgstr "Isso irá selecionar o gateway acima como o gateway padrão"
@@ -26272,21 +32650,31 @@ msgstr "Isso irá selecionar o gateway acima como o gateway padrão"
#: usr/local/www/system_gateways_edit.php:393
#: usr/local/www/system_gateways_edit.php:411
#: usr/local/www/system_gateways_edit.php:414
+#: usr/local/www/system_gateways_edit.php:517
+#: usr/local/www/system_gateways_edit.php:520
+#: usr/local/www/system_gateways_edit.php:521
+#: usr/local/www/system_gateways_edit.php:524
msgid "Disable Gateway Monitoring"
msgstr "Desativar Monitoramento do Gateway"
#: usr/local/www/system_gateways_edit.php:394
#: usr/local/www/system_gateways_edit.php:415
+#: usr/local/www/system_gateways_edit.php:521
+#: usr/local/www/system_gateways_edit.php:525
msgid "This will consider this gateway as always being up"
msgstr "Isto irá considerar este gateway como sendo sempre up"
#: usr/local/www/system_gateways_edit.php:407
#: usr/local/www/system_gateways_edit.php:428
+#: usr/local/www/system_gateways_edit.php:534
+#: usr/local/www/system_gateways_edit.php:538
msgid "Alternative monitor IP"
msgstr "IP monitor alternativo"
#: usr/local/www/system_gateways_edit.php:408
#: usr/local/www/system_gateways_edit.php:429
+#: usr/local/www/system_gateways_edit.php:535
+#: usr/local/www/system_gateways_edit.php:539
msgid ""
"Enter an alternative address here to be used to monitor the link. This is "
"used for the quality RRD graphs as well as the load balancer entries. Use "
@@ -26299,11 +32687,15 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:436
#: usr/local/www/system_gateways_edit.php:457
+#: usr/local/www/system_gateways_edit.php:563
+#: usr/local/www/system_gateways_edit.php:567
msgid "Weight for this gateway when used in a Gateway Group."
msgstr "Peso para esse gateway quando usado em um Grupo de Gateway."
#: usr/local/www/system_gateways_edit.php:440
#: usr/local/www/system_gateways_edit.php:461
+#: usr/local/www/system_gateways_edit.php:567
+#: usr/local/www/system_gateways_edit.php:571
msgid "Latency thresholds"
msgstr "Thresholds de latência"
@@ -26318,6 +32710,8 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:452
#: usr/local/www/system_gateways_edit.php:473
+#: usr/local/www/system_gateways_edit.php:579
+#: usr/local/www/system_gateways_edit.php:583
msgid "Packet Loss thresholds"
msgstr "Thresholds de perda de pacote"
@@ -26332,6 +32726,8 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:464
#: usr/local/www/system_gateways_edit.php:496
+#: usr/local/www/system_gateways_edit.php:602
+#: usr/local/www/system_gateways_edit.php:606
msgid "Down"
msgstr "Contagem regressiva"
@@ -26344,6 +32740,8 @@ msgstr ""
#: usr/local/www/system_gateways_edit.php:472
#: usr/local/www/system_gateways_edit.php:485
+#: usr/local/www/system_gateways_edit.php:591
+#: usr/local/www/system_gateways_edit.php:595
msgid "Frequency Probe"
msgstr "Frequência da sonda"
@@ -26388,6 +32786,7 @@ msgstr "Definido por"
#: usr/local/www/system_groupmanager.php:269
#: usr/local/www/system_groupmanager.php:404
+#: usr/local/www/system_groupmanager.php:405
msgid "Group name"
msgstr "Nome do grupo"
@@ -26434,18 +32833,22 @@ msgid "Do you really want to delete this privilege?"
msgstr "Você realmente deseja apagar esse privilégio?"
#: usr/local/www/system_groupmanager.php:406
+#: usr/local/www/system_groupmanager.php:407
msgid "Member Count"
msgstr "Contagem de membros"
#: usr/local/www/system_groupmanager.php:447
+#: usr/local/www/system_groupmanager.php:450
msgid "Do you really want to delete this group?"
msgstr "Você realmente deseja apagar esse grupo?"
#: usr/local/www/system_groupmanager.php:448
+#: usr/local/www/system_groupmanager.php:451
msgid "delete group"
msgstr "remover grupo"
#: usr/local/www/system_groupmanager.php:460
+#: usr/local/www/system_groupmanager.php:465
msgid "add group"
msgstr "adicionar grupo"
@@ -26498,6 +32901,10 @@ msgstr "Selecione um privilégio da lista acima para uma descrição"
#: usr/local/www/system_usermanager.php:699
#: usr/local/www/vpn_openvpn_server.php:287
#: usr/local/www/vpn_openvpn_client.php:214
+#: usr/local/www/vpn_openvpn_server.php:288
+#: usr/local/www/vpn_openvpn_client.php:220
+#: usr/local/www/vpn_openvpn_client.php:238
+#: usr/local/www/vpn_openvpn_server.php:309
msgid "Certificate"
msgstr "Certificado"
@@ -26526,6 +32933,8 @@ msgstr "Fonte Certificadora interna inválida"
#: usr/local/www/system_usermanager.php:489
#: usr/local/www/system_usermanager_passwordmg.php:109
#: usr/local/www/system_usermanager.php:487
+#: usr/local/www/system_usermanager_passwordmg.php:110
+#: usr/local/www/system_usermanager_passwordmg.php:115
msgid "(confirmation)"
msgstr "(confirmação)"
@@ -26533,6 +32942,7 @@ msgstr "(confirmação)"
#: usr/local/www/system_usermanager.php:788
#: usr/local/www/system_usermanager.php:491
#: usr/local/www/system_usermanager.php:786
+#: usr/local/www/system_usermanager.php:787
msgid "Full name"
msgstr "Nome completo"
@@ -26644,11 +33054,13 @@ msgstr "Chave Pre-Compartilhada IPsec"
#: usr/local/www/system_usermanager.php:828
#: usr/local/www/system_usermanager.php:826
+#: usr/local/www/system_usermanager.php:829
msgid "Do you really want to delete this User?"
msgstr "Você realmente deseja apagar esse Usuário?"
#: usr/local/www/system_usermanager.php:849
#: usr/local/www/system_usermanager.php:847
+#: usr/local/www/system_usermanager.php:852
msgid ""
"Additional users can be added here. User permissions for accessing the "
"webConfigurator can be assigned directly or inherited from group "
@@ -26664,6 +33076,7 @@ msgstr ""
#: usr/local/www/system_usermanager.php:854
#: usr/local/www/system_usermanager.php:852
+#: usr/local/www/system_usermanager.php:857
msgid ""
"Accounts created here are also used for other parts of the system such as "
"OpenVPN, IPsec, and Captive Portal."
@@ -26680,11 +33093,15 @@ msgid "Password successfully changed"
msgstr "Senha modificada com sucesso"
#: usr/local/www/system_usermanager_passwordmg.php:86
+#: usr/local/www/system_usermanager_passwordmg.php:87
+#: usr/local/www/system_usermanager_passwordmg.php:92
msgid "Sorry, you cannot change the password for a non-local user."
msgstr ""
"Lamento, você não pode mudar a senha para um usuário que não seja local."
#: usr/local/www/system_usermanager_passwordmg.php:112
+#: usr/local/www/system_usermanager_passwordmg.php:113
+#: usr/local/www/system_usermanager_passwordmg.php:118
msgid "Select a new password"
msgstr "Selecione uma nova senha"
@@ -26807,12 +33224,19 @@ msgstr "Estimado"
#: usr/local/www/vpn_ipsec_phase1.php:160
#: usr/local/www/vpn_ipsec_phase1.php:662
#: usr/local/www/vpn_ipsec_phase1.php:675
+#: usr/local/www/vpn_ipsec_mobile.php:347 usr/local/www/vpn_ipsec_keys.php:104
+#: usr/local/www/vpn_ipsec_keys_edit.php:69
+#: usr/local/www/vpn_ipsec_keys_edit.php:135 usr/local/www/interfaces.php:2486
+#: usr/local/www/vpn_ipsec_phase1.php:674
+#: usr/local/www/vpn_ipsec_phase1.php:695 usr/local/www/interfaces.php:2516
msgid "Pre-Shared Key"
msgstr "Chave Pré-Compartilhada"
#: usr/local/www/vpn_ipsec_phase1.php:171
#: usr/local/www/vpn_ipsec_phase1.php:564
#: usr/local/www/vpn_ipsec_phase1.php:577
+#: usr/local/www/vpn_ipsec_phase1.php:576
+#: usr/local/www/vpn_ipsec_phase1.php:597
msgid "Remote gateway"
msgstr "Gateway remota"
@@ -26821,53 +33245,64 @@ msgid "The P1 lifetime must be an integer."
msgstr "O tempo de vida da F1 deve ser um inteiro."
#: usr/local/www/vpn_ipsec_phase1.php:180
+#: usr/local/www/vpn_ipsec_phase1.php:181
msgid "A valid remote gateway address or host name must be specified."
msgstr ""
"Um endereço de gateway remoto válido ou nome de host deve ser especificado."
#: usr/local/www/vpn_ipsec_phase1.php:188
+#: usr/local/www/vpn_ipsec_phase1.php:194
#, php-format
msgid "The remote gateway \"%1$s\" is already used by phase1 \"%2$s\"."
msgstr "O gateway remoto \"%1$s\" já está sendo usado pela fase 1 \"%2$s\"."
#: usr/local/www/vpn_ipsec_phase1.php:201
+#: usr/local/www/vpn_ipsec_phase1.php:222
msgid "Please enter an address for 'My Identifier'"
msgstr "Por favor informe um endereço para 'Meu identificador'"
#: usr/local/www/vpn_ipsec_phase1.php:204
+#: usr/local/www/vpn_ipsec_phase1.php:225
msgid "Please enter a keyid tag for 'My Identifier'"
msgstr "Por favor, informe uma tag keyid para 'Meu Identificador'"
#: usr/local/www/vpn_ipsec_phase1.php:207
+#: usr/local/www/vpn_ipsec_phase1.php:228
msgid "Please enter a fully qualified domain name for 'My Identifier'"
msgstr ""
"Por favor, informe um nome de domínio completamente qualificado para 'Meu "
"Identificador'"
#: usr/local/www/vpn_ipsec_phase1.php:210
+#: usr/local/www/vpn_ipsec_phase1.php:231
msgid "Please enter a user and fully qualified domain name for 'My Identifier'"
msgstr ""
"Por favor, informe um usuário e um nome de domínio completamente qualificado "
"para 'Meu Identificador'"
#: usr/local/www/vpn_ipsec_phase1.php:213
+#: usr/local/www/vpn_ipsec_phase1.php:234
msgid "Please enter a dynamic domain name for 'My Identifier'"
msgstr "Por favor, informe um nome de domínio dinâmico para 'Meu Identificado'"
#: usr/local/www/vpn_ipsec_phase1.php:216
+#: usr/local/www/vpn_ipsec_phase1.php:237
msgid "A valid IP address for 'My identifier' must be specified."
msgstr "Um endereço IP válido para 'Meu Identificador' deve ser especificado."
#: usr/local/www/vpn_ipsec_phase1.php:219
+#: usr/local/www/vpn_ipsec_phase1.php:240
msgid "A valid domain name for 'My identifier' must be specified."
msgstr ""
"Um nome de domínio válidos para 'Meu Identificador' deve ser especificado."
#: usr/local/www/vpn_ipsec_phase1.php:223
+#: usr/local/www/vpn_ipsec_phase1.php:244
msgid "A valid FQDN for 'My identifier' must be specified."
msgstr "Um FQDN válido para 'Meu identificador' deve ser especificado."
#: usr/local/www/vpn_ipsec_phase1.php:228
+#: usr/local/www/vpn_ipsec_phase1.php:249
msgid ""
"A valid User FQDN in the form of user@my.domain.com for 'My identifier' must "
"be specified."
@@ -26876,26 +33311,31 @@ msgstr ""
"Identificador' deve ser especificado."
#: usr/local/www/vpn_ipsec_phase1.php:233
+#: usr/local/www/vpn_ipsec_phase1.php:254
msgid "A valid Dynamic DNS address for 'My identifier' must be specified."
msgstr ""
"Um endereço de DNS Dinâmico válido para 'Meu Identificador' deve ser "
"especificado."
#: usr/local/www/vpn_ipsec_phase1.php:243
+#: usr/local/www/vpn_ipsec_phase1.php:264
msgid "Please enter an address for 'Peer Identifier'"
msgstr "Por favor, informe um endereço para 'Identificador do Peer'"
#: usr/local/www/vpn_ipsec_phase1.php:246
+#: usr/local/www/vpn_ipsec_phase1.php:267
msgid "Please enter a keyid tag for 'Peer Identifier'"
msgstr "Por favor, informe uma tag keyid para 'Identificador do Peer'"
#: usr/local/www/vpn_ipsec_phase1.php:249
+#: usr/local/www/vpn_ipsec_phase1.php:270
msgid "Please enter a fully qualified domain name for 'Peer Identifier'"
msgstr ""
"Por favor, informe um nome de domínio completamente qualificado para "
"'Identificador do Peer'"
#: usr/local/www/vpn_ipsec_phase1.php:252
+#: usr/local/www/vpn_ipsec_phase1.php:273
msgid ""
"Please enter a user and fully qualified domain name for 'Peer Identifier'"
msgstr ""
@@ -26903,21 +33343,25 @@ msgstr ""
"para 'Identificador do Peer'"
#: usr/local/www/vpn_ipsec_phase1.php:255
+#: usr/local/www/vpn_ipsec_phase1.php:276
msgid "A valid IP address for 'Peer identifier' must be specified."
msgstr ""
"Um endereço de IP válido para 'Identificador do Peer' deve ser especificado."
#: usr/local/www/vpn_ipsec_phase1.php:258
+#: usr/local/www/vpn_ipsec_phase1.php:279
msgid "A valid domain name for 'Peer identifier' must be specified."
msgstr ""
"Um nomde de domínio válido para 'Identificador do Peer' deve ser "
"especificado."
#: usr/local/www/vpn_ipsec_phase1.php:262
+#: usr/local/www/vpn_ipsec_phase1.php:283
msgid "A valid FQDN for 'Peer identifier' must be specified."
msgstr "Um FQDN válido para 'Identificador de peer' deve ser especificado."
#: usr/local/www/vpn_ipsec_phase1.php:267
+#: usr/local/www/vpn_ipsec_phase1.php:288
msgid ""
"A valid User FQDN in the form of user@my.domain.com for 'Peer identifier' "
"must be specified."
@@ -26926,15 +33370,19 @@ msgstr ""
"'Identificador de peer' deve ser especificado."
#: usr/local/www/vpn_ipsec_phase1.php:273
+#: usr/local/www/vpn_ipsec_phase1.php:294
msgid "A numeric value must be specified for DPD delay."
msgstr "Um valor numérico deve ser especificado para atraso de DPD."
#: usr/local/www/vpn_ipsec_phase1.php:276
+#: usr/local/www/vpn_ipsec_phase1.php:297
msgid "A numeric value must be specified for DPD retries."
msgstr "Um valor numérico deve ser especificado para tentativas de DPD."
#: usr/local/www/vpn_ipsec_phase1.php:358
#: usr/local/www/vpn_ipsec_phase1.php:360
+#: usr/local/www/vpn_ipsec_phase1.php:379
+#: usr/local/www/vpn_ipsec_phase1.php:381
msgid "Edit Phase 1"
msgstr "Editar Fase 1"
@@ -26944,39 +33392,60 @@ msgstr "Editar Fase 1"
#: usr/local/www/vpn_openvpn_server.php:601
#: usr/local/www/vpn_openvpn_server.php:674
#: usr/local/www/vpn_openvpn_client.php:388
+#: usr/local/www/vpn_openvpn_csc.php:310
+#: usr/local/www/vpn_openvpn_server.php:692
+#: usr/local/www/vpn_openvpn_client.php:396
+#: usr/local/www/vpn_ipsec_phase1.php:508
+#: usr/local/www/vpn_openvpn_client.php:414
+#: usr/local/www/vpn_ipsec_phase1.php:529
+#: usr/local/www/vpn_openvpn_server.php:718
msgid "General information"
msgstr "Informação geral"
#: usr/local/www/vpn_ipsec_phase1.php:515
+#: usr/local/www/vpn_ipsec_phase1.php:514
+#: usr/local/www/vpn_ipsec_phase1.php:535
msgid "Disable this phase1 entry"
msgstr "Desabilitar essa entrada de fase 1"
#: usr/local/www/vpn_ipsec_phase1.php:517
+#: usr/local/www/vpn_ipsec_phase1.php:516
+#: usr/local/www/vpn_ipsec_phase1.php:537
msgid ""
"Set this option to disable this phase1 without removing it from the list"
msgstr ""
"Configure essa opção para desabilitar essa fase1 sem removê-la da lista"
#: usr/local/www/vpn_ipsec_phase1.php:523
+#: usr/local/www/vpn_ipsec_phase1.php:522
+#: usr/local/www/vpn_ipsec_phase1.php:543
msgid "Internet Protocol"
msgstr "Protocolo de internet"
#: usr/local/www/vpn_ipsec_phase1.php:534
+#: usr/local/www/vpn_ipsec_phase1.php:533
+#: usr/local/www/vpn_ipsec_phase1.php:554
msgid "Select the Internet Protocol family from this dropdown"
msgstr "Selecione a família Protocolo de Internet a partir desta lista"
#: usr/local/www/vpn_ipsec_phase1.php:557
#: usr/local/www/vpn_ipsec_phase1.php:570
+#: usr/local/www/vpn_ipsec_phase1.php:569
+#: usr/local/www/vpn_ipsec_phase1.php:590
msgid "Select the interface for the local endpoint of this phase1 entry"
msgstr "Selecione a interface para o endpoint local dessa entrada da fase 1"
#: usr/local/www/vpn_ipsec_phase1.php:568
#: usr/local/www/vpn_ipsec_phase1.php:581
+#: usr/local/www/vpn_ipsec_phase1.php:580
+#: usr/local/www/vpn_ipsec_phase1.php:601
msgid "Enter the public IP address or host name of the remote gateway"
msgstr "Informe o endereço IP público ou nome de host do gateway remoto"
#: usr/local/www/vpn_ipsec_phase1.php:590
#: usr/local/www/vpn_ipsec_phase1.php:603
+#: usr/local/www/vpn_ipsec_phase1.php:602
+#: usr/local/www/vpn_ipsec_phase1.php:623
msgid "Phase 1 proposal (Authentication)"
msgstr "Proposta da Fase 1 (Autenticação)"
@@ -26984,6 +33453,10 @@ msgstr "Proposta da Fase 1 (Autenticação)"
#: usr/local/www/vpn_openvpn_client.php:514
#: usr/local/www/vpn_openvpn_client.php:519
#: usr/local/www/vpn_ipsec_phase1.php:607
+#: usr/local/www/vpn_openvpn_client.php:537
+#: usr/local/www/vpn_ipsec_phase1.php:606
+#: usr/local/www/vpn_openvpn_client.php:556
+#: usr/local/www/vpn_ipsec_phase1.php:627
msgid "Authentication method"
msgstr "Método de Autenticação"
@@ -26993,31 +33466,47 @@ msgstr "Método de Autenticação"
#: usr/local/www/vpn_ipsec_phase1.php:622
#: usr/local/www/vpn_ipsec_phase1.php:748
#: usr/local/www/vpn_ipsec_phase1.php:766
+#: usr/local/www/vpn_ipsec_phase1.php:621
+#: usr/local/www/vpn_ipsec_phase1.php:747
+#: usr/local/www/vpn_ipsec_phase1.php:763
+#: usr/local/www/vpn_ipsec_phase1.php:642
+#: usr/local/www/vpn_ipsec_phase1.php:768
+#: usr/local/www/vpn_ipsec_phase1.php:784
msgid "Must match the setting chosen on the remote side"
msgstr "Deve corresponder à configuração escolhida no lado remoto"
#: usr/local/www/vpn_ipsec_phase1.php:614
#: usr/local/www/vpn_ipsec_phase1.php:627
+#: usr/local/www/vpn_ipsec_phase1.php:626
+#: usr/local/www/vpn_ipsec_phase1.php:647
msgid "Negotiation mode"
msgstr "Modo de Negociação"
#: usr/local/www/vpn_ipsec_phase1.php:625
#: usr/local/www/vpn_ipsec_phase1.php:638
+#: usr/local/www/vpn_ipsec_phase1.php:637
+#: usr/local/www/vpn_ipsec_phase1.php:658
msgid "Aggressive is more flexible, but less secure"
msgstr "Agressivo é mais flexível, mas não menos seguro"
#: usr/local/www/vpn_ipsec_phase1.php:629
#: usr/local/www/vpn_ipsec_phase1.php:642
+#: usr/local/www/vpn_ipsec_phase1.php:641
+#: usr/local/www/vpn_ipsec_phase1.php:662
msgid "My identifier"
msgstr "Meu Identificador"
#: usr/local/www/vpn_ipsec_phase1.php:642
#: usr/local/www/vpn_ipsec_phase1.php:655
+#: usr/local/www/vpn_ipsec_phase1.php:654
+#: usr/local/www/vpn_ipsec_phase1.php:675
msgid "Peer identifier"
msgstr "Identificador do peer"
#: usr/local/www/vpn_ipsec_phase1.php:657
#: usr/local/www/vpn_ipsec_phase1.php:670
+#: usr/local/www/vpn_ipsec_phase1.php:669
+#: usr/local/www/vpn_ipsec_phase1.php:690
msgid ""
"NOTE: This is known as the \"group\" setting on some VPN client "
"implementations"
@@ -27032,11 +33521,15 @@ msgstr "Insira sua string de chave pré-configurada"
#: usr/local/www/vpn_ipsec_phase1.php:673
#: usr/local/www/vpn_ipsec_phase1.php:686
+#: usr/local/www/vpn_ipsec_phase1.php:685
+#: usr/local/www/vpn_ipsec_phase1.php:706
msgid "Policy Generation"
msgstr "Geração de política"
#: usr/local/www/vpn_ipsec_phase1.php:684
#: usr/local/www/vpn_ipsec_phase1.php:697
+#: usr/local/www/vpn_ipsec_phase1.php:696
+#: usr/local/www/vpn_ipsec_phase1.php:717
msgid ""
"When working as a responder (as with mobile clients), this controls how "
"policies are generated based on SA proposals."
@@ -27046,11 +33539,15 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:689
#: usr/local/www/vpn_ipsec_phase1.php:702
+#: usr/local/www/vpn_ipsec_phase1.php:701
+#: usr/local/www/vpn_ipsec_phase1.php:722
msgid "Proposal Checking"
msgstr "Verificação de Proposta"
#: usr/local/www/vpn_ipsec_phase1.php:700
#: usr/local/www/vpn_ipsec_phase1.php:713
+#: usr/local/www/vpn_ipsec_phase1.php:712
+#: usr/local/www/vpn_ipsec_phase1.php:733
msgid ""
"Specifies the action of lifetime length, key length, and PFS of the phase 2 "
"selection on the responder side, and the action of lifetime check in phase 1."
@@ -27065,16 +33562,26 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:971
#: usr/local/www/vpn_openvpn_client.php:711
#: usr/local/www/vpn_ipsec_phase1.php:718
+#: usr/local/www/vpn_openvpn_server.php:999
+#: usr/local/www/vpn_openvpn_client.php:729
+#: usr/local/www/vpn_ipsec_phase1.php:717
+#: usr/local/www/vpn_openvpn_client.php:748
+#: usr/local/www/vpn_ipsec_phase1.php:738
+#: usr/local/www/vpn_openvpn_server.php:1026
msgid "Encryption algorithm"
msgstr "Algoritmo de Criptografia"
#: usr/local/www/vpn_ipsec_phase1.php:724
#: usr/local/www/vpn_ipsec_phase1.php:737
+#: usr/local/www/vpn_ipsec_phase1.php:736
+#: usr/local/www/vpn_ipsec_phase1.php:757
msgid "Hash algorithm"
msgstr "Algorítmo de Hash"
#: usr/local/www/vpn_ipsec_phase1.php:740
#: usr/local/www/vpn_ipsec_phase1.php:753
+#: usr/local/www/vpn_ipsec_phase1.php:752
+#: usr/local/www/vpn_ipsec_phase1.php:773
msgid "DH key group"
msgstr "Grupo de chave DH"
@@ -27087,11 +33594,15 @@ msgstr "1 = 768 bit, 2 = 1024 bit, 5 = 1536 bit"
#: usr/local/www/vpn_ipsec_phase1.php:765
#: usr/local/www/vpn_ipsec_phase1.php:778
+#: usr/local/www/vpn_ipsec_phase1.php:775
+#: usr/local/www/vpn_ipsec_phase1.php:796
msgid "My Certificate"
msgstr "Meu Certificado"
#: usr/local/www/vpn_ipsec_phase1.php:779
#: usr/local/www/vpn_ipsec_phase1.php:792
+#: usr/local/www/vpn_ipsec_phase1.php:789
+#: usr/local/www/vpn_ipsec_phase1.php:810
msgid "Select a certificate previously configured in the Certificate Manager"
msgstr ""
"Selecione um certificado previamente configurado no Gerenciador de "
@@ -27099,11 +33610,15 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:784
#: usr/local/www/vpn_ipsec_phase1.php:797
+#: usr/local/www/vpn_ipsec_phase1.php:794
+#: usr/local/www/vpn_ipsec_phase1.php:815
msgid "My Certificate Authority"
msgstr "Minha Fonte Certificadora"
#: usr/local/www/vpn_ipsec_phase1.php:798
#: usr/local/www/vpn_ipsec_phase1.php:811
+#: usr/local/www/vpn_ipsec_phase1.php:808
+#: usr/local/www/vpn_ipsec_phase1.php:829
msgid ""
"Select a certificate authority previously configured in the Certificate "
"Manager"
@@ -27113,16 +33628,22 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:809
#: usr/local/www/vpn_ipsec_phase1.php:822
+#: usr/local/www/vpn_ipsec_phase1.php:819
+#: usr/local/www/vpn_ipsec_phase1.php:840
msgid "NAT Traversal"
msgstr "NAT Traversal"
#: usr/local/www/vpn_ipsec_phase1.php:814
#: usr/local/www/vpn_ipsec_phase1.php:827
+#: usr/local/www/vpn_ipsec_phase1.php:824
+#: usr/local/www/vpn_ipsec_phase1.php:845
msgid "Force"
msgstr "Forçar"
#: usr/local/www/vpn_ipsec_phase1.php:818
#: usr/local/www/vpn_ipsec_phase1.php:831
+#: usr/local/www/vpn_ipsec_phase1.php:828
+#: usr/local/www/vpn_ipsec_phase1.php:849
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 "
@@ -27134,60 +33655,80 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase1.php:824
#: usr/local/www/vpn_ipsec_phase1.php:837
+#: usr/local/www/vpn_ipsec_phase1.php:834
+#: usr/local/www/vpn_ipsec_phase1.php:855
msgid "Dead Peer Detection"
msgstr "Detecção de Dead Peer"
#: usr/local/www/vpn_ipsec_phase1.php:827
#: usr/local/www/vpn_ipsec_phase1.php:840
+#: usr/local/www/vpn_ipsec_phase1.php:837
+#: usr/local/www/vpn_ipsec_phase1.php:858
msgid "Enable DPD"
msgstr "Habilitar DPD"
#: usr/local/www/vpn_ipsec_phase1.php:833
#: usr/local/www/vpn_ipsec_phase1.php:846
+#: usr/local/www/vpn_ipsec_phase1.php:843
+#: usr/local/www/vpn_ipsec_phase1.php:864
msgid "Delay between requesting peer acknowledgement"
msgstr "Atraso entre requisições de reconhecimento de peer"
#: usr/local/www/vpn_ipsec_phase1.php:837
#: usr/local/www/vpn_ipsec_phase1.php:850
+#: usr/local/www/vpn_ipsec_phase1.php:847
+#: usr/local/www/vpn_ipsec_phase1.php:868
msgid "retries"
msgstr "tentativas"
#: usr/local/www/vpn_ipsec_phase1.php:839
#: usr/local/www/vpn_ipsec_phase1.php:852
+#: usr/local/www/vpn_ipsec_phase1.php:849
+#: usr/local/www/vpn_ipsec_phase1.php:870
msgid "Number of consecutive failures allowed before disconnect"
msgstr "Número de falhas consecutivas permitidas antes de desconectar"
#: usr/local/www/vpn_ipsec_phase2.php:109
+#: usr/local/www/vpn_ipsec_phase2.php:111
msgid "A valid ikeid must be specified."
msgstr "Um ikeid válido deve ser especificado."
#: usr/local/www/vpn_ipsec_phase2.php:113
+#: usr/local/www/vpn_ipsec_phase2.php:115
msgid "Local network type"
msgstr "Tipo de rede local"
#: usr/local/www/vpn_ipsec_phase2.php:113
+#: usr/local/www/vpn_ipsec_phase2.php:115
msgid "P2 Hash Algorithms"
msgstr "Algorpítimos de Hash da F2"
#: usr/local/www/vpn_ipsec_phase2.php:116
+#: usr/local/www/vpn_ipsec_phase2.php:118
msgid "Remote network type"
msgstr "Tipo de rede remota"
#: usr/local/www/vpn_ipsec_phase2.php:126
+#: usr/local/www/vpn_ipsec_phase2.php:128
msgid "A valid local network bit count must be specified."
msgstr "Um contador de bits de rede local válido deve ser especificado."
#: usr/local/www/vpn_ipsec_phase2.php:129
+#: usr/local/www/vpn_ipsec_phase2.php:131
msgid "A valid local network IP address must be specified."
msgstr "Um endereço IP válido da rede local deve ser especificado."
#: usr/local/www/vpn_ipsec_phase2.php:136
#: usr/local/www/vpn_ipsec_phase2.php:146
+#: usr/local/www/vpn_ipsec_phase2.php:170
+#: usr/local/www/vpn_ipsec_phase2.php:178
msgid "A valid remote network bit count must be specified."
msgstr "Um contador de bits de rede remota válido deve ser especificado."
#: usr/local/www/vpn_ipsec_phase2.php:139
#: usr/local/www/vpn_ipsec_phase2.php:149
+#: usr/local/www/vpn_ipsec_phase2.php:173
+#: usr/local/www/vpn_ipsec_phase2.php:181
msgid "A valid remote network IP address must be specified."
msgstr "Um endereço IP válido da rede remota deve ser especificado."
@@ -27195,6 +33736,10 @@ msgstr "Um endereço IP válido da rede remota deve ser especificado."
#: usr/local/www/vpn_ipsec_phase2.php:162
#: usr/local/www/vpn_ipsec_phase2.php:168
#: usr/local/www/vpn_ipsec_phase2.php:172
+#: usr/local/www/vpn_ipsec_phase2.php:192
+#: usr/local/www/vpn_ipsec_phase2.php:196
+#: usr/local/www/vpn_ipsec_phase2.php:206
+#: usr/local/www/vpn_ipsec_phase2.php:210
msgid "Phase2 with this Local Network is already defined for mobile clients."
msgstr "Phase2 com esta rede local já está definido para clientes móveis."
@@ -27202,6 +33747,10 @@ msgstr "Phase2 com esta rede local já está definido para clientes móveis."
#: usr/local/www/vpn_ipsec_phase2.php:193
#: usr/local/www/vpn_ipsec_phase2.php:199
#: usr/local/www/vpn_ipsec_phase2.php:203
+#: usr/local/www/vpn_ipsec_phase2.php:223
+#: usr/local/www/vpn_ipsec_phase2.php:227
+#: usr/local/www/vpn_ipsec_phase2.php:237
+#: usr/local/www/vpn_ipsec_phase2.php:241
msgid ""
"Phase2 with this Local/Remote networks combination is already defined for "
"this Phase1."
@@ -27211,11 +33760,15 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:204
#: usr/local/www/vpn_ipsec_phase2.php:216
+#: usr/local/www/vpn_ipsec_phase2.php:240
+#: usr/local/www/vpn_ipsec_phase2.php:254
msgid "At least one encryption algorithm must be selected."
msgstr "Pelo menos um algorítimo de criptografica deve ser selecionado."
#: usr/local/www/vpn_ipsec_phase2.php:207
#: usr/local/www/vpn_ipsec_phase2.php:220
+#: usr/local/www/vpn_ipsec_phase2.php:244
+#: usr/local/www/vpn_ipsec_phase2.php:258
msgid "The P2 lifetime must be an integer."
msgstr "O tempo de vida da F2 deve ser um inteiro."
@@ -27223,16 +33776,24 @@ msgstr "O tempo de vida da F2 deve ser um inteiro."
#: usr/local/www/vpn_ipsec_phase2.php:257
#: usr/local/www/vpn_ipsec_phase2.php:268
#: usr/local/www/vpn_ipsec_phase2.php:270
+#: usr/local/www/vpn_ipsec_phase2.php:294
+#: usr/local/www/vpn_ipsec_phase2.php:296
+#: usr/local/www/vpn_ipsec_phase2.php:316
+#: usr/local/www/vpn_ipsec_phase2.php:318
msgid "Edit Phase 2"
msgstr "Editar Fase 2"
#: usr/local/www/vpn_ipsec_phase2.php:396
#: usr/local/www/vpn_ipsec_phase2.php:422
+#: usr/local/www/vpn_ipsec_phase2.php:488
+#: usr/local/www/vpn_ipsec_phase2.php:510
msgid "Disable this phase2 entry"
msgstr "Desabilitar essa entrada da fase 2"
#: usr/local/www/vpn_ipsec_phase2.php:398
#: usr/local/www/vpn_ipsec_phase2.php:424
+#: usr/local/www/vpn_ipsec_phase2.php:490
+#: usr/local/www/vpn_ipsec_phase2.php:512
msgid ""
"Set this option to disable this phase2 entry without removing it from the "
"list"
@@ -27242,27 +33803,39 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:433
#: usr/local/www/vpn_ipsec_phase2.php:459
+#: usr/local/www/vpn_ipsec_phase2.php:525
+#: usr/local/www/vpn_ipsec_phase2.php:561
+#: usr/local/www/vpn_ipsec_phase2.php:547
+#: usr/local/www/vpn_ipsec_phase2.php:582
#, php-format
msgid "%s subnet"
msgstr " subrede %s"
#: usr/local/www/vpn_ipsec_phase2.php:512
#: usr/local/www/vpn_ipsec_phase2.php:538
+#: usr/local/www/vpn_ipsec_phase2.php:640
+#: usr/local/www/vpn_ipsec_phase2.php:661
msgid "Phase 2 proposal (SA/Key Exchange)"
msgstr "Proposta da Fase 2 (Troca de Chave/SA)"
#: usr/local/www/vpn_ipsec_phase2.php:527
#: usr/local/www/vpn_ipsec_phase2.php:553
+#: usr/local/www/vpn_ipsec_phase2.php:655
+#: usr/local/www/vpn_ipsec_phase2.php:676
msgid "ESP is encryption, AH is authentication only"
msgstr "ESP é criptografia, AH é somente autenticação"
#: usr/local/www/vpn_ipsec_phase2.php:532
#: usr/local/www/vpn_ipsec_phase2.php:558
+#: usr/local/www/vpn_ipsec_phase2.php:660
+#: usr/local/www/vpn_ipsec_phase2.php:681
msgid "Encryption algorithms"
msgstr "Algorítmos de criptografia"
#: usr/local/www/vpn_ipsec_phase2.php:574
#: usr/local/www/vpn_ipsec_phase2.php:600
+#: usr/local/www/vpn_ipsec_phase2.php:702
+#: usr/local/www/vpn_ipsec_phase2.php:723
msgid ""
"Hint: use 3DES for best compatibility or if you have a hardware crypto "
"accelerator card. Blowfish is usually the fastest in software encryption"
@@ -27273,21 +33846,29 @@ msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:580
#: usr/local/www/vpn_ipsec_phase2.php:606
+#: usr/local/www/vpn_ipsec_phase2.php:708
+#: usr/local/www/vpn_ipsec_phase2.php:729
msgid "Hash algorithms"
msgstr "Algorítmos de hash"
#: usr/local/www/vpn_ipsec_phase2.php:590
#: usr/local/www/vpn_ipsec_phase2.php:616
+#: usr/local/www/vpn_ipsec_phase2.php:718
+#: usr/local/www/vpn_ipsec_phase2.php:739
msgid "PFS key group"
msgstr "Grupo de chave PFS"
#: usr/local/www/vpn_ipsec_phase2.php:614
#: usr/local/www/vpn_ipsec_phase2.php:640
+#: usr/local/www/vpn_ipsec_phase2.php:736
+#: usr/local/www/vpn_ipsec_phase2.php:757
msgid "Set globally in mobile client options"
msgstr "Configure globalmente em opções de clientes móveis"
#: usr/local/www/vpn_ipsec_phase2.php:632
#: usr/local/www/vpn_ipsec_phase2.php:658
+#: usr/local/www/vpn_ipsec_phase2.php:754
+#: usr/local/www/vpn_ipsec_phase2.php:775
msgid "Automatically ping host"
msgstr "Fazer ping em host automaticamente"
@@ -27295,7 +33876,8 @@ msgstr "Fazer ping em host automaticamente"
msgid "Enable l2tp server"
msgstr "Habilitar servidor l2tp"
-#: usr/local/www/vpn_l2tp.php:325
+#: usr/local/www/vpn_l2tp.php:325 usr/local/www/vpn_l2tp.php:326
+#: usr/local/www/vpn_l2tp.php:329
msgid ""
"Enter the IP address the L2TP server should give to clients for use as their "
"\"gateway\""
@@ -27303,32 +33885,40 @@ msgstr ""
"Digite o endereço IP que o servidor L2TP deve dar aos clientes para utilizar "
"como seus \"gateway\""
-#: usr/local/www/vpn_l2tp.php:337
+#: usr/local/www/vpn_l2tp.php:337 usr/local/www/vpn_l2tp.php:338
+#: usr/local/www/vpn_l2tp.php:341
msgid "Specify the starting address for the client IP address subnet."
msgstr ""
"Especifique o endereço de início para a subrede de endereços IP do cliente."
#: usr/local/www/vpn_l2tp.php:341 usr/local/www/vpn_pppoe_edit.php:390
+#: usr/local/www/vpn_pppoe_edit.php:391 usr/local/www/vpn_pppoe_edit.php:394
msgid "Subnet netmask"
msgstr "Máscara de subrede"
#: usr/local/www/vpn_l2tp.php:354 usr/local/www/vpn_pppoe_edit.php:403
+#: usr/local/www/vpn_pppoe_edit.php:404 usr/local/www/vpn_l2tp.php:355
+#: usr/local/www/vpn_l2tp.php:358 usr/local/www/vpn_pppoe_edit.php:407
msgid "is"
msgstr "é"
-#: usr/local/www/vpn_l2tp.php:358
+#: usr/local/www/vpn_l2tp.php:358 usr/local/www/vpn_l2tp.php:359
+#: usr/local/www/vpn_l2tp.php:362
msgid "Number of L2TP users"
msgstr "Número de usuários L2TP"
-#: usr/local/www/vpn_l2tp.php:371
+#: usr/local/www/vpn_l2tp.php:371 usr/local/www/vpn_l2tp.php:372
+#: usr/local/www/vpn_l2tp.php:375
msgid "is ten L2TP clients"
msgstr "tem dez clientes L2TP"
-#: usr/local/www/vpn_l2tp.php:375
+#: usr/local/www/vpn_l2tp.php:375 usr/local/www/vpn_l2tp.php:376
+#: usr/local/www/vpn_l2tp.php:379
msgid "Secret"
msgstr "Segredo"
-#: usr/local/www/vpn_l2tp.php:379
+#: usr/local/www/vpn_l2tp.php:379 usr/local/www/vpn_l2tp.php:380
+#: usr/local/www/vpn_l2tp.php:383
msgid ""
"Specify optional secret shared between peers. Required on some devices/"
"setups."
@@ -27340,27 +33930,34 @@ msgstr ""
msgid "Encryption type"
msgstr "Tipo de criptografia"
-#: usr/local/www/vpn_l2tp.php:386
+#: usr/local/www/vpn_l2tp.php:386 usr/local/www/vpn_l2tp.php:387
+#: usr/local/www/vpn_l2tp.php:390
msgid "CHAP"
msgstr "CHAP"
#: usr/local/www/vpn_l2tp.php:387 usr/local/www/services_captiveportal.php:607
+#: usr/local/www/services_captiveportal.php:605 usr/local/www/vpn_l2tp.php:388
+#: usr/local/www/vpn_l2tp.php:391 usr/local/www/services_captiveportal.php:606
msgid "PAP"
msgstr "PAP"
-#: usr/local/www/vpn_l2tp.php:390
+#: usr/local/www/vpn_l2tp.php:390 usr/local/www/vpn_l2tp.php:391
+#: usr/local/www/vpn_l2tp.php:394
msgid "Specifies which protocol to use for authentication."
msgstr "Especifica qual protocolo usar para autenticação."
-#: usr/local/www/vpn_l2tp.php:394
+#: usr/local/www/vpn_l2tp.php:394 usr/local/www/vpn_l2tp.php:395
+#: usr/local/www/vpn_l2tp.php:398
msgid "L2TP DNS Servers"
msgstr "Servidores DNS L2TP"
-#: usr/local/www/vpn_l2tp.php:400
+#: usr/local/www/vpn_l2tp.php:400 usr/local/www/vpn_l2tp.php:401
+#: usr/local/www/vpn_l2tp.php:404
msgid "primary and secondary DNS servers assigned to L2TP clients"
msgstr "servidores DNS primário e secundário atribuídos a clientes L2TP"
-#: usr/local/www/vpn_l2tp.php:414
+#: usr/local/www/vpn_l2tp.php:414 usr/local/www/vpn_l2tp.php:415
+#: usr/local/www/vpn_l2tp.php:418
msgid ""
"When set, all users will be authenticated using the RADIUS server specified "
"below. The local user database will not be used."
@@ -27368,7 +33965,8 @@ msgstr ""
"Quando configurado, todos os usuários serão autenticados usando o servidor "
"RADIUS especificado abaixo. A base de dados de usuários local não será usada."
-#: usr/local/www/vpn_l2tp.php:418
+#: usr/local/www/vpn_l2tp.php:418 usr/local/www/vpn_l2tp.php:419
+#: usr/local/www/vpn_l2tp.php:422
msgid "Sends accounting packets to the RADIUS server."
msgstr "Envia pacotes de accounting para o servidor RADIUS."
@@ -27376,11 +33974,13 @@ msgstr "Envia pacotes de accounting para o servidor RADIUS."
msgid "RADIUS server"
msgstr "Servidor RADIUS"
-#: usr/local/www/vpn_l2tp.php:425
+#: usr/local/www/vpn_l2tp.php:425 usr/local/www/vpn_l2tp.php:426
+#: usr/local/www/vpn_l2tp.php:429
msgid "Enter the IP address of the RADIUS server."
msgstr "Informe o endereço IP do servidor RADIUS."
-#: usr/local/www/vpn_l2tp.php:432
+#: usr/local/www/vpn_l2tp.php:432 usr/local/www/vpn_l2tp.php:433
+#: usr/local/www/vpn_l2tp.php:436
msgid ""
"Enter the shared secret that will be used to authenticate to the RADIUS "
"server."
@@ -27392,26 +33992,29 @@ msgstr ""
msgid "RADIUS issued IP's"
msgstr "IP emitidos pelo RADIUS"
-#: usr/local/www/vpn_l2tp.php:439
+#: usr/local/www/vpn_l2tp.php:439 usr/local/www/vpn_l2tp.php:440
+#: usr/local/www/vpn_l2tp.php:443
msgid "Issue IP Addresses via RADIUS server."
msgstr "Endereços IP emitidos via servidor RADIUS."
-#: usr/local/www/vpn_l2tp.php:452
+#: usr/local/www/vpn_l2tp.php:452 usr/local/www/vpn_l2tp.php:453
+#: usr/local/www/vpn_l2tp.php:456
msgid ""
"Don't forget to add a firewall rule to permit traffic from L2TP clients!"
msgstr ""
"Não se esqueça de adicionar uma regra de firewall para permitir tráfego de "
"clientes L2TP!"
-#: usr/local/www/vpn_l2tp_users.php:86
+#: usr/local/www/vpn_l2tp_users.php:86 usr/local/www/vpn_l2tp_users.php:87
msgid "The l2tp user list has been modified"
msgstr "A lista de usuários l2tp foi modificada"
-#: usr/local/www/vpn_l2tp_users.php:86
+#: usr/local/www/vpn_l2tp_users.php:86 usr/local/www/vpn_l2tp_users.php:87
msgid "Warning: this will terminate all current l2tp sessions!"
msgstr "Advertência: isso finalizará todas as sessões l2tp atuais!"
#: usr/local/www/vpn_l2tp_users_edit.php:164
+#: usr/local/www/vpn_l2tp_users_edit.php:165
msgid "If you want to change the users password, enter it here twice."
msgstr "Se você desejar mudar a senha do usuário, informe-a aqui duas vezes."
@@ -27421,10 +34024,16 @@ msgstr "Se você desejar mudar a senha do usuário, informe-a aqui duas vezes."
#: usr/local/www/vpn_openvpn_server.php:584
#: usr/local/www/vpn_openvpn_server.php:657
#: usr/local/www/vpn_openvpn_client.php:371
+#: usr/local/www/vpn_openvpn_csc.php:293
+#: usr/local/www/vpn_openvpn_server.php:675
+#: usr/local/www/vpn_openvpn_client.php:379
+#: usr/local/www/vpn_openvpn_client.php:397
+#: usr/local/www/vpn_openvpn_server.php:701
msgid "Client"
msgstr "Cliente"
#: usr/local/www/vpn_openvpn_client.php:82
+#: usr/local/www/vpn_openvpn_client.php:86
msgid "Client successfully deleted"
msgstr "Cliente apagado com sucesso"
@@ -27432,12 +34041,18 @@ msgstr "Cliente apagado com sucesso"
#: usr/local/www/vpn_openvpn_server.php:227
#: usr/local/www/vpn_openvpn_server.php:232
#: usr/local/www/vpn_openvpn_client.php:165
+#: usr/local/www/vpn_openvpn_server.php:233
+#: usr/local/www/vpn_openvpn_client.php:171
+#: usr/local/www/vpn_openvpn_client.php:182
+#: usr/local/www/vpn_openvpn_server.php:254
msgid "The specified 'Local port' is in use. Please select another value"
msgstr ""
"A 'porta local' especificada está em uso. Por favor, selecione outro valor"
#: usr/local/www/vpn_openvpn_client.php:183
#: usr/local/www/vpn_openvpn_client.php:184
+#: usr/local/www/vpn_openvpn_client.php:190
+#: usr/local/www/vpn_openvpn_client.php:201
msgid "User name and password are required for proxy with authentication."
msgstr "Nome de usuário e senha são requeridos para o proxy com autenticação."
@@ -27445,6 +34060,10 @@ msgstr "Nome de usuário e senha são requeridos para o proxy com autenticação."
#: usr/local/www/vpn_openvpn_server.php:235
#: usr/local/www/vpn_openvpn_server.php:240
#: usr/local/www/vpn_openvpn_client.php:204
+#: usr/local/www/vpn_openvpn_server.php:241
+#: usr/local/www/vpn_openvpn_client.php:210
+#: usr/local/www/vpn_openvpn_client.php:228
+#: usr/local/www/vpn_openvpn_server.php:262
msgid "The field 'Shared Key' does not appear to be valid"
msgstr "O campo 'Chave compartilhada' não parece ser válido"
@@ -27452,6 +34071,10 @@ msgstr "O campo 'Chave compartilhada' não parece ser válido"
#: usr/local/www/vpn_openvpn_server.php:240
#: usr/local/www/vpn_openvpn_server.php:245
#: usr/local/www/vpn_openvpn_client.php:209
+#: usr/local/www/vpn_openvpn_server.php:246
+#: usr/local/www/vpn_openvpn_client.php:215
+#: usr/local/www/vpn_openvpn_client.php:233
+#: usr/local/www/vpn_openvpn_server.php:267
msgid "The field 'TLS Authentication Key' does not appear to be valid"
msgstr "O campo 'Chave de Autenticação TLS' não parece ser válido"
@@ -27459,6 +34082,10 @@ msgstr "O campo 'Chave de Autenticação TLS' não parece ser válido"
#: usr/local/www/vpn_openvpn_server.php:286
#: usr/local/www/vpn_openvpn_server.php:291
#: usr/local/www/vpn_openvpn_client.php:218
+#: usr/local/www/vpn_openvpn_server.php:292
+#: usr/local/www/vpn_openvpn_client.php:224
+#: usr/local/www/vpn_openvpn_client.php:242
+#: usr/local/www/vpn_openvpn_server.php:313
msgid "Shared key"
msgstr "Chave compartilhada"
@@ -27467,16 +34094,25 @@ msgstr "Chave compartilhada"
#: usr/local/www/vpn_openvpn_server.php:585
#: usr/local/www/vpn_openvpn_server.php:658
#: usr/local/www/vpn_openvpn_client.php:372
+#: usr/local/www/vpn_openvpn_csc.php:294
+#: usr/local/www/vpn_openvpn_server.php:676
+#: usr/local/www/vpn_openvpn_client.php:380
+#: usr/local/www/vpn_openvpn_client.php:398
+#: usr/local/www/vpn_openvpn_server.php:702
msgid "Client Specific Overrides"
msgstr "Substituição Específica de Cliente"
#: usr/local/www/vpn_openvpn_client.php:397
#: usr/local/www/vpn_openvpn_client.php:402
+#: usr/local/www/vpn_openvpn_client.php:410
+#: usr/local/www/vpn_openvpn_client.php:428
msgid "Disable this client"
msgstr "Desabilitar esse cliente"
#: usr/local/www/vpn_openvpn_client.php:402
#: usr/local/www/vpn_openvpn_client.php:407
+#: usr/local/www/vpn_openvpn_client.php:415
+#: usr/local/www/vpn_openvpn_client.php:433
msgid ""
"Set this option to disable this client without removing it from the list"
msgstr ""
@@ -27486,11 +34122,17 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:624
#: usr/local/www/vpn_openvpn_server.php:697
#: usr/local/www/vpn_openvpn_client.php:411
+#: usr/local/www/vpn_openvpn_server.php:715
+#: usr/local/www/vpn_openvpn_client.php:419
+#: usr/local/www/vpn_openvpn_client.php:437
+#: usr/local/www/vpn_openvpn_server.php:741
msgid "Server Mode"
msgstr "Modo do Servidor"
#: usr/local/www/vpn_openvpn_client.php:436
#: usr/local/www/vpn_openvpn_client.php:441
+#: usr/local/www/vpn_openvpn_client.php:449
+#: usr/local/www/vpn_openvpn_client.php:467
msgid "Device mode"
msgstr "Modo do Dispositivo"
@@ -27498,11 +34140,17 @@ msgstr "Modo do Dispositivo"
#: usr/local/www/vpn_openvpn_server.php:716
#: usr/local/www/vpn_openvpn_server.php:789
#: usr/local/www/vpn_openvpn_client.php:481
+#: usr/local/www/vpn_openvpn_server.php:817
+#: usr/local/www/vpn_openvpn_client.php:499
+#: usr/local/www/vpn_openvpn_client.php:518
+#: usr/local/www/vpn_openvpn_server.php:844
msgid "Local port"
msgstr "Porta local"
#: usr/local/www/vpn_openvpn_client.php:480
#: usr/local/www/vpn_openvpn_client.php:485
+#: usr/local/www/vpn_openvpn_client.php:503
+#: usr/local/www/vpn_openvpn_client.php:522
msgid ""
"Set this option if you would like to bind to a specific port. Leave this "
"blank or enter 0 for a random dynamic port."
@@ -27512,51 +34160,71 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:484
#: usr/local/www/vpn_openvpn_client.php:489
+#: usr/local/www/vpn_openvpn_client.php:507
+#: usr/local/www/vpn_openvpn_client.php:526
msgid "Server host or address"
msgstr "Host de servidor ou endereço"
#: usr/local/www/vpn_openvpn_client.php:490
#: usr/local/www/vpn_openvpn_client.php:495
+#: usr/local/www/vpn_openvpn_client.php:513
+#: usr/local/www/vpn_openvpn_client.php:532
msgid "Server port"
msgstr "Porta de servidor"
#: usr/local/www/vpn_openvpn_client.php:496
#: usr/local/www/vpn_openvpn_client.php:501
+#: usr/local/www/vpn_openvpn_client.php:519
+#: usr/local/www/vpn_openvpn_client.php:538
msgid "Proxy host or address"
msgstr "Host de Proxy ou endereço"
#: usr/local/www/vpn_openvpn_client.php:502
#: usr/local/www/vpn_openvpn_client.php:507
+#: usr/local/www/vpn_openvpn_client.php:525
+#: usr/local/www/vpn_openvpn_client.php:544
msgid "Proxy port"
msgstr "Porta do Proxy"
#: usr/local/www/vpn_openvpn_client.php:508
#: usr/local/www/vpn_openvpn_client.php:513
+#: usr/local/www/vpn_openvpn_client.php:531
+#: usr/local/www/vpn_openvpn_client.php:550
msgid "Proxy authentication extra options"
msgstr "Opções extras de autenticação de proxy"
#: usr/local/www/vpn_openvpn_client.php:520
#: usr/local/www/vpn_openvpn_client.php:525
+#: usr/local/www/vpn_openvpn_client.php:543
+#: usr/local/www/vpn_openvpn_client.php:562
msgid "basic"
msgstr "básico"
#: usr/local/www/vpn_openvpn_client.php:521
#: usr/local/www/vpn_openvpn_client.php:526
+#: usr/local/www/vpn_openvpn_client.php:544
+#: usr/local/www/vpn_openvpn_client.php:563
msgid "ntlm"
msgstr "ntlm"
#: usr/local/www/vpn_openvpn_client.php:552
#: usr/local/www/vpn_openvpn_client.php:557
+#: usr/local/www/vpn_openvpn_client.php:575
+#: usr/local/www/vpn_openvpn_client.php:594
msgid "Server host name resolution"
msgstr "Resolução de nome de host de servidor"
#: usr/local/www/vpn_openvpn_client.php:562
#: usr/local/www/vpn_openvpn_client.php:567
+#: usr/local/www/vpn_openvpn_client.php:585
+#: usr/local/www/vpn_openvpn_client.php:604
msgid "Infinitely resolve server"
msgstr "Resolver servidor infinitamente"
#: usr/local/www/vpn_openvpn_client.php:567
#: usr/local/www/vpn_openvpn_client.php:572
+#: usr/local/www/vpn_openvpn_client.php:590
+#: usr/local/www/vpn_openvpn_client.php:609
msgid ""
"Continuously attempt to resolve the server host name. Useful when "
"communicating with a server that is not permanently connected to the Internet"
@@ -27569,6 +34237,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:733
#: usr/local/www/vpn_openvpn_server.php:806
#: usr/local/www/vpn_openvpn_client.php:589
+#: usr/local/www/vpn_openvpn_server.php:834
+#: usr/local/www/vpn_openvpn_client.php:607
+#: usr/local/www/vpn_openvpn_client.php:626
+#: usr/local/www/vpn_openvpn_server.php:861
msgid "Cryptographic Settings"
msgstr "Configurações de Criptografia"
@@ -27576,6 +34248,10 @@ msgstr "Configurações de Criptografia"
#: usr/local/www/vpn_openvpn_server.php:736
#: usr/local/www/vpn_openvpn_server.php:809
#: usr/local/www/vpn_openvpn_client.php:592
+#: usr/local/www/vpn_openvpn_server.php:837
+#: usr/local/www/vpn_openvpn_client.php:610
+#: usr/local/www/vpn_openvpn_client.php:629
+#: usr/local/www/vpn_openvpn_server.php:864
msgid "TLS Authentication"
msgstr "Autenticação de TLS"
@@ -27583,6 +34259,10 @@ msgstr "Autenticação de TLS"
#: usr/local/www/vpn_openvpn_server.php:746
#: usr/local/www/vpn_openvpn_server.php:819
#: usr/local/www/vpn_openvpn_client.php:602
+#: usr/local/www/vpn_openvpn_server.php:847
+#: usr/local/www/vpn_openvpn_client.php:620
+#: usr/local/www/vpn_openvpn_client.php:639
+#: usr/local/www/vpn_openvpn_server.php:874
msgid "Enable authentication of TLS packets"
msgstr "Habilitar autenticação de pacotes TLS"
@@ -27590,6 +34270,10 @@ msgstr "Habilitar autenticação de pacotes TLS"
#: usr/local/www/vpn_openvpn_server.php:760
#: usr/local/www/vpn_openvpn_server.php:833
#: usr/local/www/vpn_openvpn_client.php:616
+#: usr/local/www/vpn_openvpn_server.php:861
+#: usr/local/www/vpn_openvpn_client.php:634
+#: usr/local/www/vpn_openvpn_client.php:653
+#: usr/local/www/vpn_openvpn_server.php:888
msgid "Automatically generate a shared TLS authentication key"
msgstr "Gerar automaticamente uma chave de autenticação TLS compartilhada"
@@ -27601,11 +34285,21 @@ msgstr "Gerar automaticamente uma chave de autenticação TLS compartilhada"
#: usr/local/www/vpn_openvpn_server.php:964
#: usr/local/www/vpn_openvpn_client.php:627
#: usr/local/www/vpn_openvpn_client.php:704
+#: usr/local/www/vpn_openvpn_server.php:872
+#: usr/local/www/vpn_openvpn_server.php:992
+#: usr/local/www/vpn_openvpn_client.php:645
+#: usr/local/www/vpn_openvpn_client.php:722
+#: usr/local/www/vpn_openvpn_client.php:664
+#: usr/local/www/vpn_openvpn_client.php:741
+#: usr/local/www/vpn_openvpn_server.php:899
+#: usr/local/www/vpn_openvpn_server.php:1019
msgid "Paste your shared key here"
msgstr "Cole sua chave compartilhada aqui"
#: usr/local/www/vpn_openvpn_client.php:648
#: usr/local/www/vpn_openvpn_client.php:653
+#: usr/local/www/vpn_openvpn_client.php:671
+#: usr/local/www/vpn_openvpn_client.php:690
msgid "Client Certificate"
msgstr "Certificado de Cliente"
@@ -27613,6 +34307,10 @@ msgstr "Certificado de Cliente"
#: usr/local/www/vpn_openvpn_server.php:869
#: usr/local/www/vpn_openvpn_server.php:942
#: usr/local/www/vpn_openvpn_client.php:682
+#: usr/local/www/vpn_openvpn_server.php:970
+#: usr/local/www/vpn_openvpn_client.php:700
+#: usr/local/www/vpn_openvpn_client.php:719
+#: usr/local/www/vpn_openvpn_server.php:997
msgid "Shared Key"
msgstr "Chave Compartilhada"
@@ -27620,6 +34318,10 @@ msgstr "Chave Compartilhada"
#: usr/local/www/vpn_openvpn_server.php:880
#: usr/local/www/vpn_openvpn_server.php:953
#: usr/local/www/vpn_openvpn_client.php:693
+#: usr/local/www/vpn_openvpn_server.php:981
+#: usr/local/www/vpn_openvpn_client.php:711
+#: usr/local/www/vpn_openvpn_client.php:730
+#: usr/local/www/vpn_openvpn_server.php:1008
msgid "Automatically generate a shared key"
msgstr "Gerar automaticamente uma chave compartilhada"
@@ -27627,6 +34329,10 @@ msgstr "Gerar automaticamente uma chave compartilhada"
#: usr/local/www/vpn_openvpn_server.php:916
#: usr/local/www/vpn_openvpn_server.php:989
#: usr/local/www/vpn_openvpn_client.php:729
+#: usr/local/www/vpn_openvpn_server.php:1017
+#: usr/local/www/vpn_openvpn_client.php:747
+#: usr/local/www/vpn_openvpn_client.php:766
+#: usr/local/www/vpn_openvpn_server.php:1044
msgid "Hardware Crypto"
msgstr "Hardware Crypto"
@@ -27635,6 +34341,11 @@ msgstr "Hardware Crypto"
#: usr/local/www/vpn_openvpn_server.php:980
#: usr/local/www/vpn_openvpn_server.php:1053
#: usr/local/www/vpn_openvpn_client.php:750
+#: usr/local/www/vpn_openvpn_csc.php:373
+#: usr/local/www/vpn_openvpn_server.php:1081
+#: usr/local/www/vpn_openvpn_client.php:768
+#: usr/local/www/vpn_openvpn_client.php:787
+#: usr/local/www/vpn_openvpn_server.php:1108
msgid "Tunnel Settings"
msgstr "Configurações de túnel"
@@ -27643,12 +34354,18 @@ msgstr "Configurações de túnel"
#: usr/local/www/vpn_openvpn_server.php:1450
#: usr/local/www/vpn_openvpn_server.php:1592
#: usr/local/www/vpn_openvpn_client.php:753
+#: usr/local/www/vpn_openvpn_csc.php:376
+#: usr/local/www/vpn_openvpn_server.php:1633
+#: usr/local/www/vpn_openvpn_server.php:1685
msgid "Tunnel Network"
msgstr "Rede de túneis"
#: usr/local/www/vpn_openvpn_client.php:752
#: usr/local/www/vpn_openvpn_csc.php:381
#: usr/local/www/vpn_openvpn_client.php:757
+#: usr/local/www/vpn_openvpn_csc.php:380
+#: usr/local/www/vpn_openvpn_client.php:775
+#: usr/local/www/vpn_openvpn_client.php:794
msgid ""
"This is the virtual network used for private communications between this "
"client and the server expressed using CIDR (eg. 10.0.8.0/24). The first "
@@ -27677,11 +34394,15 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:776
#: usr/local/www/vpn_openvpn_client.php:781
+#: usr/local/www/vpn_openvpn_client.php:827
+#: usr/local/www/vpn_openvpn_client.php:846
msgid "Limit outgoing bandwidth"
msgstr "Limitar tamanho de banda de saída"
#: usr/local/www/vpn_openvpn_client.php:780
#: usr/local/www/vpn_openvpn_client.php:785
+#: usr/local/www/vpn_openvpn_client.php:831
+#: usr/local/www/vpn_openvpn_client.php:850
msgid ""
"Maximum outgoing bandwidth for this tunnel. Leave empty for no limit. The "
"input value has to be something between 100 bytes/sec and 100 Mbytes/sec "
@@ -27695,6 +34416,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1087
#: usr/local/www/vpn_openvpn_server.php:1229
#: usr/local/www/vpn_openvpn_client.php:802
+#: usr/local/www/vpn_openvpn_server.php:1271
+#: usr/local/www/vpn_openvpn_client.php:848
+#: usr/local/www/vpn_openvpn_client.php:867
+#: usr/local/www/vpn_openvpn_server.php:1298
msgid "Compress tunnel packets using the LZO algorithm"
msgstr "Comprimir pacotes do túnel usando o algorítmo LZO"
@@ -27702,6 +34427,10 @@ msgstr "Comprimir pacotes do túnel usando o algorítmo LZO"
#: usr/local/www/vpn_openvpn_server.php:1095
#: usr/local/www/vpn_openvpn_server.php:1237
#: usr/local/www/vpn_openvpn_client.php:810
+#: usr/local/www/vpn_openvpn_server.php:1279
+#: usr/local/www/vpn_openvpn_client.php:856
+#: usr/local/www/vpn_openvpn_client.php:875
+#: usr/local/www/vpn_openvpn_server.php:1306
msgid "Type-of-Service"
msgstr "Tipo de Serviço"
@@ -27709,6 +34438,10 @@ msgstr "Tipo de Serviço"
#: usr/local/www/vpn_openvpn_server.php:1105
#: usr/local/www/vpn_openvpn_server.php:1247
#: usr/local/www/vpn_openvpn_client.php:820
+#: usr/local/www/vpn_openvpn_server.php:1289
+#: usr/local/www/vpn_openvpn_client.php:866
+#: usr/local/www/vpn_openvpn_client.php:885
+#: usr/local/www/vpn_openvpn_server.php:1316
msgid ""
"Set the TOS IP header value of tunnel packets to match the encapsulated "
"packet value"
@@ -27720,11 +34453,17 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1409
#: usr/local/www/vpn_openvpn_server.php:1551
#: usr/local/www/vpn_openvpn_client.php:831
+#: usr/local/www/vpn_openvpn_server.php:1593
+#: usr/local/www/vpn_openvpn_client.php:880
+#: usr/local/www/vpn_openvpn_client.php:899
+#: usr/local/www/vpn_openvpn_server.php:1645
msgid "Advanced configuration"
msgstr "Configuração Avançada"
#: usr/local/www/vpn_openvpn_client.php:835
#: usr/local/www/vpn_openvpn_client.php:840
+#: usr/local/www/vpn_openvpn_client.php:889
+#: usr/local/www/vpn_openvpn_client.php:908
msgid ""
"Enter any additional options you would like to add to the OpenVPN client "
"configuration here, separated by a semicolon"
@@ -27734,26 +34473,35 @@ msgstr ""
#: usr/local/www/vpn_openvpn_client.php:836
#: usr/local/www/vpn_openvpn_client.php:841
+#: usr/local/www/vpn_openvpn_client.php:890
msgid "EXAMPLE: route 10.0.0.0 255.255.255.0;"
msgstr "EXEMPLO: route 10.0.0.0 255.255.255.0;"
#: usr/local/www/vpn_openvpn_client.php:891
#: usr/local/www/vpn_openvpn_client.php:896
+#: usr/local/www/vpn_openvpn_client.php:949
+#: usr/local/www/vpn_openvpn_client.php:968
msgid "edit client"
msgstr "editar cliente"
#: usr/local/www/vpn_openvpn_client.php:895
#: usr/local/www/vpn_openvpn_client.php:900
+#: usr/local/www/vpn_openvpn_client.php:953
+#: usr/local/www/vpn_openvpn_client.php:972
msgid "delete client"
msgstr "apagar cliente"
#: usr/local/www/vpn_openvpn_client.php:908
#: usr/local/www/vpn_openvpn_client.php:913
+#: usr/local/www/vpn_openvpn_client.php:966
+#: usr/local/www/vpn_openvpn_client.php:985
msgid "add client"
msgstr "adicionar cliente"
#: usr/local/www/vpn_openvpn_client.php:915
#: usr/local/www/vpn_openvpn_client.php:920
+#: usr/local/www/vpn_openvpn_client.php:973
+#: usr/local/www/vpn_openvpn_client.php:992
msgid "Additional OpenVPN clients can be added here."
msgstr "Clientes OpenVPN adicionais podem ser adicionados aqui."
@@ -27761,73 +34509,106 @@ msgstr "Clientes OpenVPN adicionais podem ser adicionados aqui."
msgid "Client Specific Override"
msgstr "Substituição Específica de Cliente"
-#: usr/local/www/vpn_openvpn_csc.php:67
+#: usr/local/www/vpn_openvpn_csc.php:67 usr/local/www/vpn_openvpn_csc.php:66
msgid "Client Specific Override successfully deleted"
msgstr "Substituição Específica de Cliente apagada com sucesso"
#: usr/local/www/vpn_openvpn_csc.php:131
#: usr/local/www/vpn_openvpn_server.php:244
#: usr/local/www/vpn_openvpn_server.php:249
+#: usr/local/www/vpn_openvpn_csc.php:130
+#: usr/local/www/vpn_openvpn_server.php:250
+#: usr/local/www/vpn_openvpn_server.php:271
msgid "The field 'DNS Server #1' must contain a valid IP address"
msgstr "O campo 'Servidor DNS #1' deve conter um endereço IP válido"
#: usr/local/www/vpn_openvpn_csc.php:133
#: usr/local/www/vpn_openvpn_server.php:246
#: usr/local/www/vpn_openvpn_server.php:251
+#: usr/local/www/vpn_openvpn_csc.php:132
+#: usr/local/www/vpn_openvpn_server.php:252
+#: usr/local/www/vpn_openvpn_server.php:273
msgid "The field 'DNS Server #2' must contain a valid IP address"
msgstr "O campo 'Servidor DNS #2' deve conter um endereço IP válido"
#: usr/local/www/vpn_openvpn_csc.php:135
#: usr/local/www/vpn_openvpn_server.php:248
#: usr/local/www/vpn_openvpn_server.php:253
+#: usr/local/www/vpn_openvpn_csc.php:134
+#: usr/local/www/vpn_openvpn_server.php:254
+#: usr/local/www/vpn_openvpn_server.php:275
msgid "The field 'DNS Server #3' must contain a valid IP address"
msgstr "O campo 'Servidor DNS #3' deve conter um endereço IP válido"
#: usr/local/www/vpn_openvpn_csc.php:137
#: usr/local/www/vpn_openvpn_server.php:250
#: usr/local/www/vpn_openvpn_server.php:255
+#: usr/local/www/vpn_openvpn_csc.php:136
+#: usr/local/www/vpn_openvpn_server.php:256
+#: usr/local/www/vpn_openvpn_server.php:277
msgid "The field 'DNS Server #4' must contain a valid IP address"
msgstr "O campo 'Servidor DNS #4' deve conter um endereço IP válido"
#: usr/local/www/vpn_openvpn_csc.php:142
#: usr/local/www/vpn_openvpn_server.php:255
#: usr/local/www/vpn_openvpn_server.php:260
+#: usr/local/www/vpn_openvpn_csc.php:141
+#: usr/local/www/vpn_openvpn_server.php:261
+#: usr/local/www/vpn_openvpn_server.php:282
msgid "The field 'NTP Server #1' must contain a valid IP address"
msgstr "O campo 'Servidor NTP #1' deve conter um endereço IP válido"
#: usr/local/www/vpn_openvpn_csc.php:144
#: usr/local/www/vpn_openvpn_server.php:257
#: usr/local/www/vpn_openvpn_server.php:262
+#: usr/local/www/vpn_openvpn_csc.php:143
+#: usr/local/www/vpn_openvpn_server.php:263
+#: usr/local/www/vpn_openvpn_server.php:284
msgid "The field 'NTP Server #2' must contain a valid IP address"
msgstr "O campo 'Servidor NTP #2' deve conter um endereço IP válido"
#: usr/local/www/vpn_openvpn_csc.php:146
#: usr/local/www/vpn_openvpn_server.php:259
#: usr/local/www/vpn_openvpn_server.php:264
+#: usr/local/www/vpn_openvpn_csc.php:145
+#: usr/local/www/vpn_openvpn_server.php:265
+#: usr/local/www/vpn_openvpn_server.php:286
msgid "The field 'NTP Server #3' must contain a valid IP address"
msgstr "O campo 'Servidor NTP #3' deve conter um endereço IP válido"
#: usr/local/www/vpn_openvpn_csc.php:148
#: usr/local/www/vpn_openvpn_server.php:261
#: usr/local/www/vpn_openvpn_server.php:266
+#: usr/local/www/vpn_openvpn_csc.php:147
+#: usr/local/www/vpn_openvpn_server.php:267
+#: usr/local/www/vpn_openvpn_server.php:288
msgid "The field 'NTP Server #4' must contain a valid IP address"
msgstr "O campo 'Servidor NTP #4' deve conter um endereço IP válido"
#: usr/local/www/vpn_openvpn_csc.php:154
#: usr/local/www/vpn_openvpn_server.php:267
#: usr/local/www/vpn_openvpn_server.php:272
+#: usr/local/www/vpn_openvpn_csc.php:153
+#: usr/local/www/vpn_openvpn_server.php:273
+#: usr/local/www/vpn_openvpn_server.php:294
msgid "The field 'WINS Server #1' must contain a valid IP address"
msgstr "O campo 'Servidor WINS #1' deve conter um endereço IP válido"
#: usr/local/www/vpn_openvpn_csc.php:156
#: usr/local/www/vpn_openvpn_server.php:269
#: usr/local/www/vpn_openvpn_server.php:274
+#: usr/local/www/vpn_openvpn_csc.php:155
+#: usr/local/www/vpn_openvpn_server.php:275
+#: usr/local/www/vpn_openvpn_server.php:296
msgid "The field 'WINS Server #2' must contain a valid IP address"
msgstr "O campo 'Servidor WINS #2' deve conter um endereço IP válido"
#: usr/local/www/vpn_openvpn_csc.php:160
#: usr/local/www/vpn_openvpn_server.php:273
#: usr/local/www/vpn_openvpn_server.php:278
+#: usr/local/www/vpn_openvpn_csc.php:159
+#: usr/local/www/vpn_openvpn_server.php:279
+#: usr/local/www/vpn_openvpn_server.php:300
msgid ""
"The field 'NetBIOS Data Distribution Server #1' must contain a valid IP "
"address"
@@ -27835,11 +34616,11 @@ msgstr ""
"O campo 'Servidor de Distribuição de Dados do NetBIOS WINS #1' deve conter "
"um endereço IP válido"
-#: usr/local/www/vpn_openvpn_csc.php:325
+#: usr/local/www/vpn_openvpn_csc.php:325 usr/local/www/vpn_openvpn_csc.php:324
msgid "Disable this override"
msgstr "Desabilitar essa substituição"
-#: usr/local/www/vpn_openvpn_csc.php:330
+#: usr/local/www/vpn_openvpn_csc.php:330 usr/local/www/vpn_openvpn_csc.php:329
msgid ""
"Set this option to disable this client-specific override without removing it "
"from the list"
@@ -27847,23 +34628,23 @@ msgstr ""
"Configure essa opção para desabilitar uma substituição específica de cliente "
"sem removê-la da lista"
-#: usr/local/www/vpn_openvpn_csc.php:334
+#: usr/local/www/vpn_openvpn_csc.php:334 usr/local/www/vpn_openvpn_csc.php:333
msgid "Common name"
msgstr "Nome Comum"
-#: usr/local/www/vpn_openvpn_csc.php:338
+#: usr/local/www/vpn_openvpn_csc.php:338 usr/local/www/vpn_openvpn_csc.php:337
msgid "Enter the client's X.509 common name here"
msgstr "Informe o nome comum dos X.509 do cliente aqui"
-#: usr/local/www/vpn_openvpn_csc.php:350
+#: usr/local/www/vpn_openvpn_csc.php:350 usr/local/www/vpn_openvpn_csc.php:349
msgid "Connection blocking"
msgstr "Bloquei de conexão"
-#: usr/local/www/vpn_openvpn_csc.php:360
+#: usr/local/www/vpn_openvpn_csc.php:360 usr/local/www/vpn_openvpn_csc.php:359
msgid "Block this client connection based on its common name"
msgstr "Bloqueie a conexão desse cliente baseado nesse nome comum"
-#: usr/local/www/vpn_openvpn_csc.php:365
+#: usr/local/www/vpn_openvpn_csc.php:365 usr/local/www/vpn_openvpn_csc.php:364
msgid ""
"Don't use this option to permanently disable a client due to a compromised "
"key or password. Use a CRL (certificate revocation list) instead"
@@ -27875,26 +34656,35 @@ msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:391
#: usr/local/www/vpn_openvpn_server.php:1011
#: usr/local/www/vpn_openvpn_server.php:1153
+#: usr/local/www/vpn_openvpn_csc.php:390
+#: usr/local/www/vpn_openvpn_server.php:1181
+#: usr/local/www/vpn_openvpn_server.php:1208
msgid "Redirect Gateway"
msgstr "Gateway de redirecionamento"
#: usr/local/www/vpn_openvpn_csc.php:401
#: usr/local/www/vpn_openvpn_server.php:1021
#: usr/local/www/vpn_openvpn_server.php:1163
+#: usr/local/www/vpn_openvpn_csc.php:400
+#: usr/local/www/vpn_openvpn_server.php:1191
+#: usr/local/www/vpn_openvpn_server.php:1218
msgid "Force all client generated traffic through the tunnel"
msgstr "Force todo o tráfego gerado por clientes através desse túnel"
#: usr/local/www/vpn_openvpn_csc.php:412
#: usr/local/www/vpn_openvpn_server.php:1155
#: usr/local/www/vpn_openvpn_server.php:1297
+#: usr/local/www/vpn_openvpn_csc.php:411
+#: usr/local/www/vpn_openvpn_server.php:1339
+#: usr/local/www/vpn_openvpn_server.php:1366
msgid "Client Settings"
msgstr "Configurações de Cliente"
-#: usr/local/www/vpn_openvpn_csc.php:415
+#: usr/local/www/vpn_openvpn_csc.php:415 usr/local/www/vpn_openvpn_csc.php:414
msgid "Server Definitions"
msgstr "Definições de Servidor"
-#: usr/local/www/vpn_openvpn_csc.php:425
+#: usr/local/www/vpn_openvpn_csc.php:425 usr/local/www/vpn_openvpn_csc.php:424
msgid "Prevent this client from receiving any server-defined client settings"
msgstr ""
"Previna que esse cliente receba quaisquer configurações de cliente definidas "
@@ -27903,24 +34693,36 @@ msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:510
#: usr/local/www/vpn_openvpn_server.php:1271
#: usr/local/www/vpn_openvpn_server.php:1413
+#: usr/local/www/vpn_openvpn_csc.php:509
+#: usr/local/www/vpn_openvpn_server.php:1455
+#: usr/local/www/vpn_openvpn_server.php:1507
msgid "NTP Servers"
msgstr "Servidores NTP"
#: usr/local/www/vpn_openvpn_csc.php:520
#: usr/local/www/vpn_openvpn_server.php:1281
#: usr/local/www/vpn_openvpn_server.php:1423
+#: usr/local/www/vpn_openvpn_csc.php:519
+#: usr/local/www/vpn_openvpn_server.php:1465
+#: usr/local/www/vpn_openvpn_server.php:1517
msgid "Provide a NTP server list to clients"
msgstr "Fornece uma lista de servidores NTP para clientes"
#: usr/local/www/vpn_openvpn_csc.php:546
#: usr/local/www/vpn_openvpn_server.php:1307
#: usr/local/www/vpn_openvpn_server.php:1449
+#: usr/local/www/vpn_openvpn_csc.php:545
+#: usr/local/www/vpn_openvpn_server.php:1491
+#: usr/local/www/vpn_openvpn_server.php:1543
msgid "NetBIOS Options"
msgstr "Opções de NetBIOS"
#: usr/local/www/vpn_openvpn_csc.php:556
#: usr/local/www/vpn_openvpn_server.php:1317
#: usr/local/www/vpn_openvpn_server.php:1459
+#: usr/local/www/vpn_openvpn_csc.php:555
+#: usr/local/www/vpn_openvpn_server.php:1501
+#: usr/local/www/vpn_openvpn_server.php:1553
msgid "Enable NetBIOS over TCP/IP"
msgstr "Habilitar NetBIOS sobre TCP/IP"
@@ -27935,12 +34737,18 @@ msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:568
#: usr/local/www/vpn_openvpn_server.php:1329
#: usr/local/www/vpn_openvpn_server.php:1471
+#: usr/local/www/vpn_openvpn_csc.php:567
+#: usr/local/www/vpn_openvpn_server.php:1513
+#: usr/local/www/vpn_openvpn_server.php:1565
msgid "Node Type"
msgstr "Tipo de Nó"
#: usr/local/www/vpn_openvpn_csc.php:581
#: usr/local/www/vpn_openvpn_server.php:1342
#: usr/local/www/vpn_openvpn_server.php:1484
+#: usr/local/www/vpn_openvpn_csc.php:580
+#: usr/local/www/vpn_openvpn_server.php:1526
+#: usr/local/www/vpn_openvpn_server.php:1578
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 "
@@ -27953,6 +34761,9 @@ msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:595
#: usr/local/www/vpn_openvpn_server.php:1356
#: usr/local/www/vpn_openvpn_server.php:1498
+#: usr/local/www/vpn_openvpn_csc.php:594
+#: usr/local/www/vpn_openvpn_server.php:1540
+#: usr/local/www/vpn_openvpn_server.php:1592
msgid ""
"A NetBIOS Scope\tID provides an extended naming service for\tNetBIOS over "
"TCP/IP. The NetBIOS scope ID isolates NetBIOS traffic on a single network to "
@@ -27963,7 +34774,7 @@ msgstr ""
"em uma única rede para somente aqueles nós com o mesmo ID do escopo do "
"NetBIOS"
-#: usr/local/www/vpn_openvpn_csc.php:648
+#: usr/local/www/vpn_openvpn_csc.php:648 usr/local/www/vpn_openvpn_csc.php:647
msgid ""
"Enter any additional options you would like to add for this client specific "
"override, separated by a semicolon"
@@ -27974,37 +34785,43 @@ msgstr ""
#: usr/local/www/vpn_openvpn_csc.php:649
#: usr/local/www/vpn_openvpn_server.php:1419
#: usr/local/www/vpn_openvpn_server.php:1561
+#: usr/local/www/vpn_openvpn_csc.php:648
+#: usr/local/www/vpn_openvpn_server.php:1603
+#: usr/local/www/vpn_openvpn_server.php:1655
msgid "EXAMPLE: push \"route 10.0.0.0 255.255.255.0\""
msgstr "EXEMPLO: push \"route 10.0.0.0 255.255.255.0\""
-#: usr/local/www/vpn_openvpn_csc.php:696
+#: usr/local/www/vpn_openvpn_csc.php:696 usr/local/www/vpn_openvpn_csc.php:695
msgid "edit csc"
msgstr "editar csc"
-#: usr/local/www/vpn_openvpn_csc.php:699
+#: usr/local/www/vpn_openvpn_csc.php:699 usr/local/www/vpn_openvpn_csc.php:698
msgid "Do you really want to delete this csc?"
msgstr "Você realmente deseja apagar essa csc?"
-#: usr/local/www/vpn_openvpn_csc.php:700
+#: usr/local/www/vpn_openvpn_csc.php:700 usr/local/www/vpn_openvpn_csc.php:699
msgid "delete csc"
msgstr "apagar csc"
-#: usr/local/www/vpn_openvpn_csc.php:711
+#: usr/local/www/vpn_openvpn_csc.php:711 usr/local/www/vpn_openvpn_csc.php:710
msgid "add csc"
msgstr "adicionar csc"
-#: usr/local/www/vpn_openvpn_csc.php:718
+#: usr/local/www/vpn_openvpn_csc.php:718 usr/local/www/vpn_openvpn_csc.php:717
msgid "Additional OpenVPN client specific overrides can be added here."
msgstr ""
"Substituições específicas de cliente OpenVPN adicionais podem ser "
"adicionadas aqui."
#: usr/local/www/vpn_openvpn_server.php:86
+#: usr/local/www/vpn_openvpn_server.php:87
msgid "Server successfully deleted"
msgstr "Servidor apagado com sucesso"
#: usr/local/www/vpn_openvpn_server.php:210
#: usr/local/www/vpn_openvpn_server.php:215
+#: usr/local/www/vpn_openvpn_server.php:216
+#: usr/local/www/vpn_openvpn_server.php:228
msgid ""
"You must select a Backend for Authentication if the server mode requires "
"User Auth."
@@ -28014,21 +34831,29 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:277
#: usr/local/www/vpn_openvpn_server.php:282
+#: usr/local/www/vpn_openvpn_server.php:283
+#: usr/local/www/vpn_openvpn_server.php:304
msgid "The field 'Concurrent connections' must be numeric."
msgstr "O campo 'Conexões concorrentes' deve ser numérico."
#: usr/local/www/vpn_openvpn_server.php:290
#: usr/local/www/vpn_openvpn_server.php:296
+#: usr/local/www/vpn_openvpn_server.php:297
+#: usr/local/www/vpn_openvpn_server.php:318
msgid "Tunnel network"
msgstr "Rede de túneis"
#: usr/local/www/vpn_openvpn_server.php:615
#: usr/local/www/vpn_openvpn_server.php:688
+#: usr/local/www/vpn_openvpn_server.php:706
+#: usr/local/www/vpn_openvpn_server.php:732
msgid "Disable this server"
msgstr "Desabilitar esse servidor"
#: usr/local/www/vpn_openvpn_server.php:620
#: usr/local/www/vpn_openvpn_server.php:693
+#: usr/local/www/vpn_openvpn_server.php:711
+#: usr/local/www/vpn_openvpn_server.php:737
msgid ""
"Set this option to disable this server without removing it from the list"
msgstr ""
@@ -28036,36 +34861,50 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:639
#: usr/local/www/vpn_openvpn_server.php:712
+#: usr/local/www/vpn_openvpn_server.php:730
+#: usr/local/www/vpn_openvpn_server.php:756
msgid "Backend for authentication"
msgstr "Backend para autenticação"
#: usr/local/www/vpn_openvpn_server.php:671
#: usr/local/www/vpn_openvpn_server.php:744
+#: usr/local/www/vpn_openvpn_server.php:762
+#: usr/local/www/vpn_openvpn_server.php:788
msgid "Device Mode"
msgstr "Modo do Dispositivo"
#: usr/local/www/vpn_openvpn_server.php:797
#: usr/local/www/vpn_openvpn_server.php:870
+#: usr/local/www/vpn_openvpn_server.php:898
+#: usr/local/www/vpn_openvpn_server.php:925
msgid "Peer Certificate Revocation List"
msgstr "Lista de Certificados de Revogação de Peer"
#: usr/local/www/vpn_openvpn_server.php:822
#: usr/local/www/vpn_openvpn_server.php:895
+#: usr/local/www/vpn_openvpn_server.php:923
+#: usr/local/www/vpn_openvpn_server.php:950
msgid "Server Certificate"
msgstr "Certificado de Servidor"
#: usr/local/www/vpn_openvpn_server.php:851
#: usr/local/www/vpn_openvpn_server.php:924
+#: usr/local/www/vpn_openvpn_server.php:952
+#: usr/local/www/vpn_openvpn_server.php:979
msgid "DH Parameters Length"
msgstr "Tamanho de Parâmetros de DH"
#: usr/local/www/vpn_openvpn_server.php:934
#: usr/local/www/vpn_openvpn_server.php:1007
+#: usr/local/www/vpn_openvpn_server.php:1035
+#: usr/local/www/vpn_openvpn_server.php:1062
msgid "Certificate Depth"
msgstr "Profundidade do Certificado"
#: usr/local/www/vpn_openvpn_server.php:952
#: usr/local/www/vpn_openvpn_server.php:1025
+#: usr/local/www/vpn_openvpn_server.php:1053
+#: usr/local/www/vpn_openvpn_server.php:1080
msgid ""
"When a certificate-based client logs in, do not accept certificates below "
"this depth. Useful for denying certificates made with intermediate CAs "
@@ -28077,11 +34916,15 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:959
#: usr/local/www/vpn_openvpn_server.php:1032
+#: usr/local/www/vpn_openvpn_server.php:1060
+#: usr/local/www/vpn_openvpn_server.php:1087
msgid "Strict User/CN Matching"
msgstr "Correspondência de Usuário estrito/CN"
#: usr/local/www/vpn_openvpn_server.php:969
#: usr/local/www/vpn_openvpn_server.php:1042
+#: usr/local/www/vpn_openvpn_server.php:1070
+#: usr/local/www/vpn_openvpn_server.php:1097
msgid ""
"When authenticating users, enforce a match between the common name of the "
"client certificate and the username given at login."
@@ -28091,11 +34934,17 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:983
#: usr/local/www/vpn_openvpn_server.php:1056
+#: usr/local/www/vpn_openvpn_server.php:1084
+#: usr/local/www/vpn_openvpn_client.php:771
+#: usr/local/www/vpn_openvpn_client.php:790
+#: usr/local/www/vpn_openvpn_server.php:1111
msgid "IPv4 Tunnel Network"
msgstr "Tunel da Rede IPv4"
#: usr/local/www/vpn_openvpn_server.php:987
#: usr/local/www/vpn_openvpn_server.php:1060
+#: usr/local/www/vpn_openvpn_server.php:1088
+#: usr/local/www/vpn_openvpn_server.php:1115
msgid ""
"This is the IPv4 virtual network used for private communications between "
"this server and client hosts expressed using CIDR (eg. 10.0.8.0/24). The "
@@ -28111,6 +34960,10 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:997
#: usr/local/www/vpn_openvpn_server.php:1070
+#: usr/local/www/vpn_openvpn_server.php:1098
+#: usr/local/www/vpn_openvpn_client.php:785
+#: usr/local/www/vpn_openvpn_client.php:804
+#: usr/local/www/vpn_openvpn_server.php:1125
msgid "IPv6 Tunnel Network"
msgstr "Tunel da Rede IPv6"
@@ -28131,11 +34984,13 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1029
#: usr/local/www/vpn_openvpn_server.php:1171
+#: usr/local/www/vpn_openvpn_server.php:1199
msgid "IPv4 Local Network"
msgstr "Rede Local IPv4"
#: usr/local/www/vpn_openvpn_server.php:1033
#: usr/local/www/vpn_openvpn_server.php:1175
+#: usr/local/www/vpn_openvpn_server.php:1203
msgid ""
"This is the network that will be accessible from the remote endpoint. "
"Expressed as a CIDR range. You may leave this blank if you don't want to add "
@@ -28149,11 +35004,13 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1042
#: usr/local/www/vpn_openvpn_server.php:1184
+#: usr/local/www/vpn_openvpn_server.php:1212
msgid "IPv6 Local Network"
msgstr "Rede local IPv6"
#: usr/local/www/vpn_openvpn_server.php:1046
#: usr/local/www/vpn_openvpn_server.php:1188
+#: usr/local/www/vpn_openvpn_server.php:1216
msgid ""
"This is the IPv6 network that will be accessible from the remote endpoint. "
"Expressed as a CIDR range. You may leave this blank if you don't want to add "
@@ -28182,11 +35039,15 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1069
#: usr/local/www/vpn_openvpn_server.php:1211
+#: usr/local/www/vpn_openvpn_server.php:1253
+#: usr/local/www/vpn_openvpn_server.php:1280
msgid "Concurrent connections"
msgstr "Conexões concorrentes"
#: usr/local/www/vpn_openvpn_server.php:1073
#: usr/local/www/vpn_openvpn_server.php:1215
+#: usr/local/www/vpn_openvpn_server.php:1257
+#: usr/local/www/vpn_openvpn_server.php:1284
msgid ""
"Specify the maximum number of clients allowed to concurrently connect to "
"this server"
@@ -28196,21 +35057,29 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1113
#: usr/local/www/vpn_openvpn_server.php:1255
+#: usr/local/www/vpn_openvpn_server.php:1297
+#: usr/local/www/vpn_openvpn_server.php:1324
msgid "Inter-client communication"
msgstr "Comunicação inter-clientes"
#: usr/local/www/vpn_openvpn_server.php:1123
#: usr/local/www/vpn_openvpn_server.php:1265
+#: usr/local/www/vpn_openvpn_server.php:1307
+#: usr/local/www/vpn_openvpn_server.php:1334
msgid "Allow communication between clients connected to this server"
msgstr "Permite comunicação entre clientes conectaados a esse servidor"
#: usr/local/www/vpn_openvpn_server.php:1131
#: usr/local/www/vpn_openvpn_server.php:1273
+#: usr/local/www/vpn_openvpn_server.php:1315
+#: usr/local/www/vpn_openvpn_server.php:1342
msgid "Duplicate Connections"
msgstr "Conexões duplicadas"
#: usr/local/www/vpn_openvpn_server.php:1141
#: usr/local/www/vpn_openvpn_server.php:1283
+#: usr/local/www/vpn_openvpn_server.php:1325
+#: usr/local/www/vpn_openvpn_server.php:1352
msgid ""
"Allow multiple concurrent connections from clients using the same Common "
"Name.<br/>NOTE: This is not generally recommended, but may be needed for "
@@ -28222,11 +35091,15 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1158
#: usr/local/www/vpn_openvpn_server.php:1300
+#: usr/local/www/vpn_openvpn_server.php:1342
+#: usr/local/www/vpn_openvpn_server.php:1369
msgid "Dynamic IP"
msgstr "IP Dinâmico"
#: usr/local/www/vpn_openvpn_server.php:1168
#: usr/local/www/vpn_openvpn_server.php:1310
+#: usr/local/www/vpn_openvpn_server.php:1352
+#: usr/local/www/vpn_openvpn_server.php:1379
msgid ""
"Allow connected clients to retain their connections if their IP address "
"changes"
@@ -28236,17 +35109,24 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1176
#: usr/local/www/vpn_openvpn_server.php:1318
+#: usr/local/www/vpn_openvpn_server.php:1360
+#: usr/local/www/vpn_openvpn_server.php:1387
msgid "Address Pool"
msgstr "Pool de endereços"
#: usr/local/www/vpn_openvpn_server.php:1186
#: usr/local/www/vpn_openvpn_server.php:1328
+#: usr/local/www/vpn_openvpn_server.php:1370
+#: usr/local/www/vpn_openvpn_server.php:1397
msgid "Provide a virtual adapter IP address to clients (see Tunnel Network)"
msgstr ""
"Fornece um endereço IP adaptador virtual para clientes (veja Rede de Túneis)"
#: usr/local/www/vpn_openvpn_server.php:1322
#: usr/local/www/vpn_openvpn_server.php:1464
+#: usr/local/www/vpn_openvpn_csc.php:560
+#: usr/local/www/vpn_openvpn_server.php:1506
+#: usr/local/www/vpn_openvpn_server.php:1558
msgid ""
"If this option is not set, all NetBIOS-over-TCP/IP options (including WINS) "
"will be disabled"
@@ -28256,11 +35136,15 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1352
#: usr/local/www/vpn_openvpn_server.php:1494
+#: usr/local/www/vpn_openvpn_server.php:1536
+#: usr/local/www/vpn_openvpn_server.php:1588
msgid "Scope ID"
msgstr "ID de Escopo"
#: usr/local/www/vpn_openvpn_server.php:1418
#: usr/local/www/vpn_openvpn_server.php:1560
+#: usr/local/www/vpn_openvpn_server.php:1602
+#: usr/local/www/vpn_openvpn_server.php:1654
msgid ""
"Enter any additional options you would like to add to the OpenVPN server "
"configuration here, separated by a semicolon"
@@ -28270,16 +35154,22 @@ msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1449
#: usr/local/www/vpn_openvpn_server.php:1591
+#: usr/local/www/vpn_openvpn_server.php:1632
+#: usr/local/www/vpn_openvpn_server.php:1684
msgid "Protocol / Port"
msgstr "Protocolo / Porta"
#: usr/local/www/vpn_openvpn_server.php:1482
#: usr/local/www/vpn_openvpn_server.php:1624
+#: usr/local/www/vpn_openvpn_server.php:1665
+#: usr/local/www/vpn_openvpn_server.php:1717
msgid "Do you really want to delete this server?"
msgstr "Você realmente deseja apagar esse servidor?"
#: usr/local/www/vpn_openvpn_server.php:1503
#: usr/local/www/vpn_openvpn_server.php:1645
+#: usr/local/www/vpn_openvpn_server.php:1686
+#: usr/local/www/vpn_openvpn_server.php:1738
msgid "Additional OpenVPN servers can be added here."
msgstr "Servidores OpenVPN adicionais podem ser adicionados aqui."
@@ -28298,27 +35188,33 @@ msgstr "Nenhuma senha especificada para o usuário %s"
msgid "Incorrect ip address specified for username %s"
msgstr "Endereço IP especificado incorreto para o usuário %s"
-#: usr/local/www/vpn_pppoe_edit.php:355
+#: usr/local/www/vpn_pppoe_edit.php:355 usr/local/www/vpn_pppoe_edit.php:356
+#: usr/local/www/vpn_pppoe_edit.php:359
msgid "PPPoE server configuration"
msgstr "Configuração do servidor PPPoE"
-#: usr/local/www/vpn_pppoe_edit.php:368
+#: usr/local/www/vpn_pppoe_edit.php:368 usr/local/www/vpn_pppoe_edit.php:369
+#: usr/local/www/vpn_pppoe_edit.php:372
msgid "Enable PPPoE server"
msgstr "Habilitar servidor PPPoE"
-#: usr/local/www/vpn_pppoe_edit.php:403
+#: usr/local/www/vpn_pppoe_edit.php:403 usr/local/www/vpn_pppoe_edit.php:404
+#: usr/local/www/vpn_pppoe_edit.php:407
msgid "Hint"
msgstr "Dica"
-#: usr/local/www/vpn_pppoe_edit.php:407
+#: usr/local/www/vpn_pppoe_edit.php:407 usr/local/www/vpn_pppoe_edit.php:408
+#: usr/local/www/vpn_pppoe_edit.php:411
msgid "No. PPPoE users"
msgstr "No. usuários PPPoE"
-#: usr/local/www/vpn_pppoe_edit.php:420
+#: usr/local/www/vpn_pppoe_edit.php:420 usr/local/www/vpn_pppoe_edit.php:421
+#: usr/local/www/vpn_pppoe_edit.php:424
msgid "Hint: 10 is ten PPPoE clients"
msgstr "Dica: 10 são dez clientes PPPoE"
-#: usr/local/www/vpn_pppoe_edit.php:428
+#: usr/local/www/vpn_pppoe_edit.php:428 usr/local/www/vpn_pppoe_edit.php:429
+#: usr/local/www/vpn_pppoe_edit.php:432
msgid ""
"Enter the IP address the PPPoE server should give to clients for use as "
"their \"gateway\""
@@ -28326,12 +35222,14 @@ msgstr ""
"Digite o endereço IP do servidor PPPoE deve dar aos clientes para usarem "
"como \"gateway\""
-#: usr/local/www/vpn_pppoe_edit.php:440
+#: usr/local/www/vpn_pppoe_edit.php:440 usr/local/www/vpn_pppoe_edit.php:441
+#: usr/local/www/vpn_pppoe_edit.php:444
msgid "Specify the starting address for the client IP address subnet"
msgstr ""
"Especifique os endereços de início para a subrede do endereço IP do cliente"
-#: usr/local/www/vpn_pppoe_edit.php:457
+#: usr/local/www/vpn_pppoe_edit.php:457 usr/local/www/vpn_pppoe_edit.php:458
+#: usr/local/www/vpn_pppoe_edit.php:461
msgid ""
"If entered they will be given to all PPPoE clients, else LAN DNS and one WAN "
"DNS will go to all clients"
@@ -28339,38 +35237,46 @@ msgstr ""
"Se informados, eles serão dados a todos os clientes PPPoE, senão, DNS de LAN "
"e um DNS de WAN irão para todos os clientes"
-#: usr/local/www/vpn_pppoe_edit.php:474
+#: usr/local/www/vpn_pppoe_edit.php:474 usr/local/www/vpn_pppoe_edit.php:475
+#: usr/local/www/vpn_pppoe_edit.php:478
msgid "Use Backup RADIUS Server"
msgstr "Usar servidor RADIUS de Backup"
-#: usr/local/www/vpn_pppoe_edit.php:475
+#: usr/local/www/vpn_pppoe_edit.php:475 usr/local/www/vpn_pppoe_edit.php:476
+#: usr/local/www/vpn_pppoe_edit.php:479
msgid ""
"When set, if primary server fails all requests will be sent via backup server"
msgstr ""
"Quando configurado, se o servidor primário falhar, todas as requisições "
"serão enviadas através do servidor de backup"
-#: usr/local/www/vpn_pppoe_edit.php:478
+#: usr/local/www/vpn_pppoe_edit.php:478 usr/local/www/vpn_pppoe_edit.php:479
+#: usr/local/www/vpn_pppoe_edit.php:482
msgid "NAS IP Address"
msgstr "Endereço IP do NAS"
-#: usr/local/www/vpn_pppoe_edit.php:481
+#: usr/local/www/vpn_pppoe_edit.php:481 usr/local/www/vpn_pppoe_edit.php:482
+#: usr/local/www/vpn_pppoe_edit.php:485
msgid "RADIUS server NAS IP Address"
msgstr "Endereço IP NAS do servidor RADIUS"
-#: usr/local/www/vpn_pppoe_edit.php:488
+#: usr/local/www/vpn_pppoe_edit.php:488 usr/local/www/vpn_pppoe_edit.php:489
+#: usr/local/www/vpn_pppoe_edit.php:492
msgid "RADIUS accounting update period in seconds"
msgstr "Período de atualização de accounting do RADIUS em segundos"
-#: usr/local/www/vpn_pppoe_edit.php:495
+#: usr/local/www/vpn_pppoe_edit.php:495 usr/local/www/vpn_pppoe_edit.php:496
+#: usr/local/www/vpn_pppoe_edit.php:499
msgid "Issue IP Addresses via RADIUS server"
msgstr "Emitir Endereços IP através do servidor RADIUS"
-#: usr/local/www/vpn_pppoe_edit.php:498
+#: usr/local/www/vpn_pppoe_edit.php:498 usr/local/www/vpn_pppoe_edit.php:499
+#: usr/local/www/vpn_pppoe_edit.php:502
msgid "RADIUS server Primary"
msgstr "Servidor RADIUS Primário"
-#: usr/local/www/vpn_pppoe_edit.php:503
+#: usr/local/www/vpn_pppoe_edit.php:503 usr/local/www/vpn_pppoe_edit.php:504
+#: usr/local/www/vpn_pppoe_edit.php:507
msgid ""
"Enter the IP address, authentication port and accounting port (optional) of "
"the RADIUS server."
@@ -28379,18 +35285,23 @@ msgstr ""
"(opcional) do servidor RADIUS."
#: usr/local/www/vpn_pppoe_edit.php:504 usr/local/www/vpn_pppoe_edit.php:520
+#: usr/local/www/vpn_pppoe_edit.php:505 usr/local/www/vpn_pppoe_edit.php:521
+#: usr/local/www/vpn_pppoe_edit.php:508 usr/local/www/vpn_pppoe_edit.php:524
msgid "standard port 1812 and 1813 accounting"
msgstr "portas padrão 1812 e 1813 de accounting"
-#: usr/local/www/vpn_pppoe_edit.php:507
+#: usr/local/www/vpn_pppoe_edit.php:507 usr/local/www/vpn_pppoe_edit.php:508
+#: usr/local/www/vpn_pppoe_edit.php:511
msgid "RADIUS primary shared secret"
msgstr "Shared secred primário do RADIUS"
-#: usr/local/www/vpn_pppoe_edit.php:514
+#: usr/local/www/vpn_pppoe_edit.php:514 usr/local/www/vpn_pppoe_edit.php:515
+#: usr/local/www/vpn_pppoe_edit.php:518
msgid "RADIUS server Secondary"
msgstr "Servidor RADIUS Secundário"
-#: usr/local/www/vpn_pppoe_edit.php:519
+#: usr/local/www/vpn_pppoe_edit.php:519 usr/local/www/vpn_pppoe_edit.php:520
+#: usr/local/www/vpn_pppoe_edit.php:523
msgid ""
"Enter the IP address, authentication port and accounting port (optional) of "
"the backup RADIUS server."
@@ -28398,15 +35309,18 @@ msgstr ""
"Informe o endereço IP, porta de autenticação e porta de accounting "
"(opcional) do servidor RADIUS de backup."
-#: usr/local/www/vpn_pppoe_edit.php:523
+#: usr/local/www/vpn_pppoe_edit.php:523 usr/local/www/vpn_pppoe_edit.php:524
+#: usr/local/www/vpn_pppoe_edit.php:527
msgid "RADIUS secondary shared secret"
msgstr "Segreado compartilhado secundário do RADIUS"
-#: usr/local/www/vpn_pppoe_edit.php:531
+#: usr/local/www/vpn_pppoe_edit.php:531 usr/local/www/vpn_pppoe_edit.php:532
+#: usr/local/www/vpn_pppoe_edit.php:535
msgid "User (s)"
msgstr "Usuário (s)"
-#: usr/local/www/vpn_pppoe_edit.php:596
+#: usr/local/www/vpn_pppoe_edit.php:596 usr/local/www/vpn_pppoe_edit.php:597
+#: usr/local/www/vpn_pppoe_edit.php:600
msgid ""
"don't forget to add a firewall rule to permit traffic from PPPoE clients"
msgstr ""
@@ -28580,6 +35494,8 @@ msgstr ""
#: usr/local/www/widgets/widgets/system_information.widget.php:162
#: usr/local/www/widgets/widgets/system_information.widget.php:153
+#: usr/local/www/widgets/widgets/system_information.widget.php:159
+#: usr/local/www/widgets/widgets/system_information.widget.php:160
msgid "Current date/time"
msgstr "Data/hora atuais"
@@ -28613,16 +35529,19 @@ msgstr "Prefixo de destino"
#: usr/local/www/firewall_nat_npt_edit.php:156
#: usr/local/www/firewall_nat_npt_edit.php:161
+#: usr/local/www/firewall_nat_npt_edit.php:160
msgid "Edit NAT NPt entry"
msgstr "Editar entrada NAT NPt"
#: usr/local/www/firewall_nat_npt_edit.php:206
#: usr/local/www/firewall_nat_npt_edit.php:211
+#: usr/local/www/firewall_nat_npt_edit.php:210
msgid "Internal IPv6 Prefix"
msgstr "Prefixo IPv6 interno"
#: usr/local/www/firewall_nat_npt_edit.php:228
#: usr/local/www/firewall_nat_npt_edit.php:233
+#: usr/local/www/firewall_nat_npt_edit.php:232
msgid ""
"Enter the internal (LAN) ULA IPv6 Prefix for the Network Prefix translation. "
"The prefix size specified for the internal IPv6 prefix will be applied to "
@@ -28635,15 +35554,18 @@ msgstr ""
#: usr/local/www/firewall_nat_npt_edit.php:234
#: usr/local/www/firewall_nat_npt_edit.php:239
+#: usr/local/www/firewall_nat_npt_edit.php:238
msgid "Destination IPv6 Prefix"
msgstr "Prefixo IPv6 de destino"
#: usr/local/www/firewall_nat_npt_edit.php:258
#: usr/local/www/firewall_nat_npt_edit.php:263
+#: usr/local/www/firewall_nat_npt_edit.php:262
msgid "Enter the Global Unicast routable IPv6 prefix here"
msgstr "Digite o prefixo roteável IPv6 Global Unicast aqui"
#: usr/local/www/services_dhcpv6.php:74
+#: usr/local/www/services_router_advertisements.php:74
msgid ""
"The DHCPv6 Server can only be enabled on interfaces configured with static "
"IP addresses"
@@ -28652,14 +35574,18 @@ msgstr ""
"endereços IP estáticos"
#: usr/local/www/services_dhcpv6.php:184 usr/local/www/services_dhcpv6.php:196
+#: usr/local/www/services_dhcpv6.php:181 usr/local/www/services_dhcpv6.php:175
msgid "A valid prefix range must be specified."
msgstr "Um intervalo válido deve ser especificado."
#: usr/local/www/services_dhcpv6.php:190 usr/local/www/services_dhcpv6.php:202
+#: usr/local/www/services_dhcpv6.php:187 usr/local/www/services_dhcpv6.php:181
msgid "A valid IPv6 address must be specified for the gateway."
msgstr "Um endereço IPv6 válido deve ser especificado para o gateway."
#: usr/local/www/services_dhcpv6.php:192 usr/local/www/services_dhcpv6.php:204
+#: usr/local/www/services_router_advertisements.php:154
+#: usr/local/www/services_dhcpv6.php:189 usr/local/www/services_dhcpv6.php:183
msgid ""
"A valid IPv6 address must be specified for the primary/secondary DNS servers."
msgstr ""
@@ -28667,6 +35593,7 @@ msgstr ""
"primário/secundário."
#: usr/local/www/services_dhcpv6.php:201 usr/local/www/services_dhcpv6.php:223
+#: usr/local/www/services_dhcpv6.php:208 usr/local/www/services_dhcpv6.php:202
msgid ""
"A valid IPv6 address must be specified for the primary/secondary NTP servers."
msgstr ""
@@ -28674,27 +35601,34 @@ msgstr ""
"secundário."
#: usr/local/www/services_dhcpv6.php:205 usr/local/www/services_dhcpv6.php:227
+#: usr/local/www/services_dhcpv6.php:212 usr/local/www/services_dhcpv6.php:206
msgid "A valid IPv6 address or hostname must be specified for the TFTP server."
msgstr ""
"Um endereço IPv6 válido ou nome de host deve ser especificado para o "
"servidor TFTP."
#: usr/local/www/services_dhcpv6.php:207 usr/local/www/services_dhcpv6.php:229
+#: usr/local/www/services_dhcpv6.php:214 usr/local/www/services_dhcpv6.php:208
msgid "A valid IPv6 address must be specified for the network boot server."
msgstr ""
"Um endereço IPv6 válido deve ser especificado para o servidor de boot da "
"rede."
#: usr/local/www/services_dhcpv6.php:214 usr/local/www/services_dhcpv6.php:236
+#: usr/local/www/services_dhcpv6.php:221 usr/local/www/services_dhcpv6.php:215
#, php-format
msgid "The subnet range cannot overlap with virtual IPv6 address %s."
msgstr "O intervalo de subrede não pode sobrepor o endereço IPv6 virtual %s."
#: usr/local/www/services_dhcpv6.php:359 usr/local/www/services_dhcpv6.php:386
+#: usr/local/www/services_dhcpv6.php:367 usr/local/www/services_dhcpv6.php:362
msgid "DHCPv6 server"
msgstr "Servidor DHCPv6"
#: usr/local/www/services_dhcpv6.php:497 usr/local/www/services_dhcpv6.php:524
+#: usr/local/www/services_router_advertisements.php:261
+#: usr/local/www/services_router_advertisements.php:270
+#: usr/local/www/services_dhcpv6.php:503 usr/local/www/services_dhcpv6.php:514
msgid "Router Advertisements"
msgstr "Router advertisements"
@@ -28713,11 +35647,13 @@ msgstr ""
"Autoconfig"
#: usr/local/www/services_dhcpv6.php:510 usr/local/www/services_dhcpv6.php:584
+#: usr/local/www/services_dhcpv6.php:515 usr/local/www/services_dhcpv6.php:526
#, php-format
msgid "Enable DHCPv6 server on %s interface"
msgstr "Habilitar servidor DHCPv6 na interface %s"
#: usr/local/www/services_dhcpv6.php:576 usr/local/www/services_dhcpv6.php:649
+#: usr/local/www/services_dhcpv6.php:580 usr/local/www/services_dhcpv6.php:597
msgid "Prefix Delegation Range"
msgstr "Faixa de Delegação de Prefixo"
@@ -28740,6 +35676,12 @@ msgstr ""
#: usr/local/www/status_dhcpv6_leases.php:405
#: usr/local/www/status_dhcpv6_leases.php:483
#: usr/local/www/services_dhcpv6.php:898
+#: usr/local/www/status_dhcpv6_leases.php:406
+#: usr/local/www/status_dhcpv6_leases.php:484
+#: usr/local/www/services_dhcpv6.php:829
+#: usr/local/www/status_dhcpv6_leases.php:409
+#: usr/local/www/status_dhcpv6_leases.php:487
+#: usr/local/www/services_dhcpv6.php:850
msgid "DUID"
msgstr "DUID"
@@ -28747,31 +35689,41 @@ msgstr "DUID"
#: usr/local/www/services_dhcpv6_edit.php:189
#: usr/local/www/services_dhcpv6_edit.php:108
#: usr/local/www/services_dhcpv6_edit.php:192
+#: usr/local/www/services_dhcpv6_edit.php:191
+#: usr/local/www/services_dhcpv6_edit.php:111
+#: usr/local/www/services_dhcpv6_edit.php:194
msgid "DUID Identifier"
msgstr "Identificador DUID"
#: usr/local/www/services_dhcpv6_edit.php:126
#: usr/local/www/services_dhcpv6_edit.php:128
+#: usr/local/www/services_dhcpv6_edit.php:131
msgid "A valid DUID Identifier must be specified."
msgstr "Um identificador DUID válido deve ser especificado."
#: usr/local/www/services_dhcpv6_edit.php:135
#: usr/local/www/services_dhcpv6_edit.php:137
+#: usr/local/www/services_dhcpv6_edit.php:140
msgid "This Hostname, IP or DUID Identifier already exists."
msgstr "Esse Hostname, endereço de IP ou DUID já existe."
#: usr/local/www/services_dhcpv6_edit.php:172
#: usr/local/www/services_dhcpv6_edit.php:175
+#: usr/local/www/services_dhcpv6_edit.php:178
msgid "DHCPv6"
msgstr "DHCPv6"
#: usr/local/www/services_dhcpv6_edit.php:186
#: usr/local/www/services_dhcpv6_edit.php:189
+#: usr/local/www/services_dhcpv6_edit.php:188
+#: usr/local/www/services_dhcpv6_edit.php:191
msgid "Static DHCPv6 Mapping"
msgstr "Mapeamento DHCPv6 estático"
#: usr/local/www/services_dhcpv6_edit.php:193
#: usr/local/www/services_dhcpv6_edit.php:196
+#: usr/local/www/services_dhcpv6_edit.php:195
+#: usr/local/www/services_dhcpv6_edit.php:198
msgid "Enter a DUID Identifier in the following format: "
msgstr "Digite um Identificador DUID no seguinte formato:"
@@ -28789,19 +35741,23 @@ msgstr ""
"Um endereço de IPv6 válido do Servidor de Destino deve ser especificado."
#: usr/local/www/services_dhcpv6_relay.php:145
+#: usr/local/www/services_dhcpv6_relay.php:146
msgid "DHCPv6 Relay configuration"
msgstr "Configuração do DHCPv6 Relay"
#: usr/local/www/services_dhcpv6_relay.php:151
+#: usr/local/www/services_dhcpv6_relay.php:152
#, php-format
msgid "Enable DHCPv6 relay on interface"
msgstr "Habilitar DHCPv6 relay na interface"
#: usr/local/www/services_dhcpv6_relay.php:169
+#: usr/local/www/services_dhcpv6_relay.php:170
msgid "Interfaces without an IPv6 address will not be shown."
msgstr "Interfaces sem um endereço de IPv6 não serão exibidas."
#: usr/local/www/services_dhcpv6_relay.php:177
+#: usr/local/www/services_dhcpv6_relay.php:178
#, php-format
msgid ""
"If this is checked, the DHCPv6 relay will append the circuit ID (%s "
@@ -28811,6 +35767,7 @@ msgstr ""
"de interface %s) e o agent ID à requisição DHCPv6."
#: usr/local/www/services_dhcpv6_relay.php:184
+#: usr/local/www/services_dhcpv6_relay.php:185
msgid ""
"This is the IPv6 address of the server to which DHCPv6 requests are relayed. "
"You can enter multiple server IPv6 addresses, separated by commas. Select "
@@ -28831,16 +35788,23 @@ msgstr "Concessões DHCPv6"
#: usr/local/www/status_dhcpv6_leases.php:360
#: usr/local/www/status_dhcpv6_leases.php:404
#: usr/local/www/status_dhcpv6_leases.php:482
+#: usr/local/www/status_dhcpv6_leases.php:405
+#: usr/local/www/status_dhcpv6_leases.php:483
+#: usr/local/www/status_dhcpv6_leases.php:408
+#: usr/local/www/status_dhcpv6_leases.php:486
msgid "IAID"
msgstr "IAID"
#: usr/local/www/status_dhcpv6_leases.php:362
#: usr/local/www/status_dhcpv6_leases.php:406
+#: usr/local/www/status_dhcpv6_leases.php:407
+#: usr/local/www/status_dhcpv6_leases.php:410
msgid "Hostname/MAC"
msgstr "Hostname/MAC"
#: usr/local/www/diag_logs_wireless.php:88
#: usr/local/www/diag_logs_wireless.php:99
+#: usr/local/www/diag_logs_wireless.php:100
#, php-format
msgid "Wireless (hostapd) log entries"
msgstr "Wireless (hostapd) registro de logs"
@@ -28854,31 +35818,40 @@ msgid "Zones"
msgstr "Zonas"
#: usr/local/www/services_captiveportal_zones.php:47
+#: usr/local/www/services_captiveportal_zones.php:48
msgid "The CaptivePortal entry list has been changed"
msgstr "A lista de entrada do CaptivePortal foi modificada"
#: usr/local/www/services_captiveportal_zones.php:60
#: usr/local/www/services_captiveportal_zones.php:101
+#: usr/local/www/services_captiveportal_zones.php:61
+#: usr/local/www/services_captiveportal_zones.php:102
msgid "add a new captiveportal instance"
msgstr "adicionar uma nova instância do Captiveportal"
#: usr/local/www/services_captiveportal_zones.php:88
+#: usr/local/www/services_captiveportal_zones.php:89
msgid "edit captiveportal instance"
msgstr "editar instância do captiveportal"
#: usr/local/www/services_captiveportal_zones.php:89
+#: usr/local/www/services_captiveportal_zones.php:90
msgid "delete captiveportal instance"
msgstr "apagar a instância do captiveportal"
#: usr/local/www/services_captiveportal_zones_edit.php:48
+#: usr/local/www/services_captiveportal_zones_edit.php:45
msgid "Edit Zones"
msgstr "Editar Zonas"
#: usr/local/www/services_captiveportal_zones_edit.php:67
+#: usr/local/www/services_captiveportal_zones_edit.php:69
msgid "already exists"
msgstr "Já existe"
#: usr/local/www/services_captiveportal_zones_edit.php:96
+#: usr/local/www/services_captiveportal_zones_edit.php:98
+#: usr/local/www/services_captiveportal_zones_edit.php:94
msgid "Edit Captiveportal Zones"
msgstr "Editar Zonas do Captiveportal"
@@ -28912,92 +35885,102 @@ msgid "Show Source Tracking"
msgstr "Mostrar Rastreamento de Origem"
#: usr/local/www/diag_dump_states_sources.php:145
+#: usr/local/www/diag_dump_states_sources.php:144
msgid "Source -> Destination"
msgstr "Origem -> Destino"
#: usr/local/www/diag_dump_states_sources.php:146
+#: usr/local/www/diag_dump_states_sources.php:145
msgid "# States"
msgstr "# Estados"
#: usr/local/www/diag_dump_states_sources.php:147
+#: usr/local/www/diag_dump_states_sources.php:146
msgid "# Connections"
msgstr "# Conexões"
#: usr/local/www/diag_dump_states_sources.php:180
+#: usr/local/www/diag_dump_states_sources.php:179
msgid "Remove all source tracking entries from"
msgstr "Remover todos as entradas de rastreamentos de origem de"
#: usr/local/www/diag_dump_states_sources.php:190
+#: usr/local/www/diag_dump_states_sources.php:189
msgid "No source tracking entries were found."
msgstr "Nenhuma entrada de rastreamento por origem encontrada."
-#: etc/inc/system.inc:418
+#: etc/inc/system.inc:418 etc/inc/system.inc:425
#, php-format
msgid "Not adding default route because OLSR dynamic gateway is enabled."
msgstr ""
"Rota padrão não adicionada porque o gateway dinâmico OLSR está habilitado."
# 87%
-#: etc/inc/priv.defs.inc:118
+#: etc/inc/priv.defs.inc:118 etc/inc/priv.defs.inc:124
msgid "WebCfg - Diagnostics: Logs: Gateways page"
msgstr "WebCfg - Página Diagnóstico: Logs: Gateways"
# 84%
-#: etc/inc/priv.defs.inc:119
+#: etc/inc/priv.defs.inc:119 etc/inc/priv.defs.inc:125
msgid "Allow access to the 'Diagnostics: Logs: System: Gateways' page."
msgstr "Permitir acesso à  página 'Diagnóstico: Logs: Gateway'."
# 85%
-#: etc/inc/priv.defs.inc:124
+#: etc/inc/priv.defs.inc:124 etc/inc/priv.defs.inc:130
msgid "WebCfg - Diagnostics: Logs: Resolver page"
msgstr "WebCfg - Página Diagnóstico: Logs: Resolver"
# 84%
-#: etc/inc/priv.defs.inc:125
+#: etc/inc/priv.defs.inc:125 etc/inc/priv.defs.inc:131
msgid "Allow access to the 'Diagnostics: Logs: System: Resolver' page."
msgstr "Permitir acesso à  página 'Diagnóstico: Logs: Sistema: Resolver'."
# 87%
-#: etc/inc/priv.defs.inc:130
+#: etc/inc/priv.defs.inc:130 etc/inc/priv.defs.inc:136
msgid "WebCfg - Diagnostics: Logs: Wireless page"
msgstr "WebCfg - Página Diagnóstico: Logs: Wireless"
# 84%
-#: etc/inc/priv.defs.inc:131
+#: etc/inc/priv.defs.inc:131 etc/inc/priv.defs.inc:137
msgid "Allow access to the 'Diagnostics: Logs: System: Wireless' page."
msgstr "Permitir acesso à  página 'Diagnóstico: Logs: Sistema: Wireless'."
# 88%
-#: etc/inc/priv.defs.inc:148
+#: etc/inc/priv.defs.inc:148 etc/inc/priv.defs.inc:154
msgid "WebCfg - Status: System logs: NTP page"
msgstr "WebCfg - Página Status: Logs do Sistema: NTP"
# 91%
-#: etc/inc/priv.defs.inc:149
+#: etc/inc/priv.defs.inc:149 etc/inc/priv.defs.inc:155
msgid "Allow access to the 'Status: System logs: NTP' page."
msgstr "Permitir acesso à  página 'Status: Logs do Sistema: NTP'."
-#: etc/inc/pfsense-utils.inc:2377
+#: etc/inc/pfsense-utils.inc:2377 etc/inc/pfsense-utils.inc:2468
+#: etc/inc/pfsense-utils.inc:2521
msgid "English"
msgstr "Inglês"
-#: etc/inc/pfsense-utils.inc:2378
+#: etc/inc/pfsense-utils.inc:2378 etc/inc/pfsense-utils.inc:2469
+#: etc/inc/pfsense-utils.inc:2522
msgid "Portuguese (Brazil)"
msgstr "Português (Brasil)"
# 98%
-#: etc/inc/interfaces.inc:251
+#: etc/inc/interfaces.inc:251 etc/inc/interfaces.inc:250
+#: etc/inc/interfaces.inc:248
msgid "interface_vlan_configure called with if undefined."
msgstr "interface_vlan_configure called with if undefined."
# 98%
-#: etc/inc/interfaces.inc:292
+#: etc/inc/interfaces.inc:292 etc/inc/interfaces.inc:291
+#: etc/inc/interfaces.inc:289
#, php-format
msgid "interface_qinq_configure called with if undefined.%s"
msgstr "interface_qinq_configure called with if undefined.%s"
# 96%
-#: etc/inc/interfaces.inc:377
+#: etc/inc/interfaces.inc:377 etc/inc/interfaces.inc:376
+#: etc/inc/interfaces.inc:380
#, php-format
msgid "interface_qinq2_configure called with if undefined.%s"
msgstr "interface_qinq2_configure called with if undefined.%s"
@@ -29018,7 +36001,8 @@ msgid "Could not bring wanif up in interface_carpdev_dhcp_configure()"
msgstr "Could not bring wanif up in interface_carpdev_dhcp_configure()"
# 75%
-#: etc/inc/interfaces.inc:3500
+#: etc/inc/interfaces.inc:3500 etc/inc/interfaces.inc:3360
+#: etc/inc/interfaces.inc:3453
#, php-format
msgid ""
"Error: cannot open dhclient_%s.conf in interface_dhcp_configure() for "
@@ -29027,7 +36011,8 @@ msgstr ""
"Error: cannot open dhclient_%s.conf in interface_dhcp_configure() for "
"writing.%s"
-#: etc/inc/services.inc:1085
+#: etc/inc/services.inc:1085 etc/inc/services.inc:1217
+#: etc/inc/services.inc:1211
msgid "Started IGMP proxy service."
msgstr "Serviço IGMP proxy iniciado."
@@ -29045,6 +36030,21 @@ msgstr "Serviço IGMP proxy iniciado."
#: usr/local/www/diag_logs_openvpn.php:78
#: usr/local/www/diag_logs_filter_dynamic.php:107
#: usr/local/www/diag_logs_filter.php:110
+#: usr/local/www/diag_logs_routing.php:75
+#: usr/local/www/diag_logs_settings.php:231 usr/local/www/fbegin.inc:157
+#: usr/local/www/fbegin.inc:191 usr/local/www/diag_logs_relayd.php:76
+#: usr/local/www/diag_logs_auth.php:75 usr/local/www/diag_logs_ipsec.php:112
+#: usr/local/www/diag_logs_resolver.php:88 usr/local/www/diag_logs_ntpd.php:75
+#: usr/local/www/status_ntpd.php:109 usr/local/www/diag_logs_dhcp.php:80
+#: usr/local/www/diag_logs_wireless.php:77
+#: usr/local/www/diag_logs_filter_summary.php:194
+#: usr/local/www/services_ntpd.php:76 usr/local/www/diag_logs_gateways.php:88
+#: usr/local/www/diag_logs_openvpn.php:79
+#: usr/local/www/diag_logs_filter_dynamic.php:108
+#: usr/local/www/diag_logs_filter.php:100
+#: usr/local/www/diag_logs_filter_dynamic.php:106
+#: usr/local/www/diag_logs_ppp.php:77 usr/local/www/fbegin.inc:149
+#: usr/local/www/fbegin.inc:182
msgid "NTP"
msgstr "NTP"
@@ -29053,6 +36053,10 @@ msgstr "NTP"
#: usr/local/www/diag_logs_resolver.php:96 usr/local/www/diag_logs.php:65
#: usr/local/www/diag_logs.php:95 usr/local/www/diag_logs_wireless.php:84
#: usr/local/www/diag_logs_gateways.php:96
+#: usr/local/www/diag_logs_routing.php:83
+#: usr/local/www/diag_logs_resolver.php:97
+#: usr/local/www/diag_logs_wireless.php:85
+#: usr/local/www/diag_logs_gateways.php:97
msgid "General"
msgstr "Geral"
@@ -29061,10 +36065,15 @@ msgstr "Geral"
#: usr/local/www/diag_logs_resolver.php:99 usr/local/www/diag_logs.php:98
#: usr/local/www/diag_logs_wireless.php:87
#: usr/local/www/diag_logs_gateways.php:99
+#: usr/local/www/diag_logs_routing.php:86
+#: usr/local/www/diag_logs_resolver.php:100
+#: usr/local/www/diag_logs_wireless.php:88
+#: usr/local/www/diag_logs_gateways.php:100
msgid "Resolver"
msgstr "Resolver"
#: usr/local/www/diag_logs_routing.php:97
+#: usr/local/www/diag_logs_routing.php:98
#, php-format
msgid "Routing daemon log entries"
msgstr "Logs do daemon de roteamento"
@@ -29075,10 +36084,12 @@ msgid "A route to these destination networks already exists"
msgstr "Já existe uma rota para estas redes de destino"
#: usr/local/www/system_routes_edit.php:302
+#: usr/local/www/system_routes_edit.php:303
msgid "Disable this static route"
msgstr "Desabilitar esta rota estática"
#: usr/local/www/system_routes_edit.php:303
+#: usr/local/www/system_routes_edit.php:304
msgid ""
"Set this option to disable this static route without removing it from the "
"list."
@@ -29106,12 +36117,12 @@ msgstr "Clique"
msgid "Click package info for more details about "
msgstr "Clique nas informações do pacote para mais detalhes sobre"
-#: usr/local/www/pkg_mgr.php:237
+#: usr/local/www/pkg_mgr.php:237 usr/local/www/pkg_mgr.php:240
msgid "Do you really want to install "
msgstr "Você realmente deseja instalar"
# 77%
-#: usr/local/www/pkg_mgr.php:237
+#: usr/local/www/pkg_mgr.php:237 usr/local/www/pkg_mgr.php:240
msgid "Install "
msgstr "Instalado"
@@ -29233,6 +36244,7 @@ msgstr ""
"aqui."
#: usr/local/www/diag_logs_settings.php:86
+#: usr/local/www/diag_logs_settings.php:87
msgid ""
"A valid IP address/hosname or IP/hostname:port must be specified for remote "
"syslog server #1."
@@ -29241,6 +36253,7 @@ msgstr ""
"syslog remoto #1."
#: usr/local/www/diag_logs_settings.php:89
+#: usr/local/www/diag_logs_settings.php:90
msgid ""
"A valid IP address/hosname or IP/hostname:port must be specified for remote "
"syslog server #2."
@@ -29249,6 +36262,7 @@ msgstr ""
"syslog remoto #2."
#: usr/local/www/diag_logs_settings.php:92
+#: usr/local/www/diag_logs_settings.php:93
msgid ""
"A valid IP address/hosname or IP/hostname:port must be specified for remote "
"syslog server #3."
@@ -29257,10 +36271,12 @@ msgstr ""
"syslog remoto #3."
#: usr/local/www/diag_logs_settings.php:234
+#: usr/local/www/diag_logs_settings.php:241
msgid "General Logging Options"
msgstr "Opções Gerais de Log"
#: usr/local/www/diag_logs_settings.php:245
+#: usr/local/www/diag_logs_settings.php:252
msgid ""
"Hint: 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."
@@ -29269,6 +36285,7 @@ msgstr ""
"não afeta a quantidade de entradas existente nos arquivos de log reais."
#: usr/local/www/diag_logs_settings.php:251
+#: usr/local/www/diag_logs_settings.php:258
msgid ""
"Hint: packets that are blocked by the implicit default block rule will not "
"be logged if you uncheck this option. Per-rule logging options are still "
@@ -29279,6 +36296,7 @@ msgstr ""
"respeitadas."
#: usr/local/www/diag_logs_settings.php:259
+#: usr/local/www/diag_logs_settings.php:266
msgid ""
"Hint: If this is checked, filter logs are shown as generated by the packet "
"filter, without any formatting. This will reveal more detailed information, "
@@ -29290,35 +36308,43 @@ msgstr ""
# 91%
#: usr/local/www/diag_logs_settings.php:265
+#: usr/local/www/diag_logs_settings.php:285
msgid "Disable writing log files to the local disk"
msgstr "Desabilitar gravação de arquivos de log no disco local"
#: usr/local/www/diag_logs_settings.php:274
+#: usr/local/www/diag_logs_settings.php:294
msgid "Remote Logging Options"
msgstr "Opções de Log Remoto"
#: usr/local/www/diag_logs_settings.php:277
+#: usr/local/www/diag_logs_settings.php:297
msgid "Enable Remote Logging"
msgstr "Habilitar Log Remoto"
#: usr/local/www/diag_logs_settings.php:279
+#: usr/local/www/diag_logs_settings.php:299
msgid "Send log messages to remote syslog server"
msgstr "Enviar mensagens de log para o servidor syslog remoto"
# 90%
#: usr/local/www/diag_logs_settings.php:282
+#: usr/local/www/diag_logs_settings.php:302
msgid "Remote Syslog Servers"
msgstr "Servidores Syslog Remotos"
#: usr/local/www/diag_logs_settings.php:299
+#: usr/local/www/diag_logs_settings.php:319
msgid "IP addresses of remote syslog servers, or an IP:port."
msgstr "Endereços IP dos servidores syslog remotos, ou IP:porta."
#: usr/local/www/diag_logs_settings.php:304
+#: usr/local/www/diag_logs_settings.php:324
msgid "Remote Syslog Contents"
msgstr "Conteúdo Syslog Remoto"
#: usr/local/www/diag_logs_settings.php:334
+#: usr/local/www/diag_logs_settings.php:354
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 "
@@ -29330,10 +36356,12 @@ msgstr ""
# 94%
#: usr/local/www/system_gateway_groups_edit.php:229
+#: usr/local/www/system_gateway_groups_edit.php:289
msgid "Interface Address"
msgstr "Endereço da Interface"
#: usr/local/www/system_gateway_groups_edit.php:253
+#: usr/local/www/system_gateway_groups_edit.php:313
msgid ""
"The virtual IP field selects what (virtual) IP should be used when this "
"group applies to a local Dyndns, IPsec or openvpn endpoint"
@@ -29343,19 +36371,23 @@ msgstr ""
#: usr/local/www/services_dyndns_edit.php:102
#: usr/local/www/services_dyndns_edit.php:322
+#: usr/local/www/services_dyndns_edit.php:326
msgid "Update URL"
msgstr "Atualizar URL"
#: usr/local/www/services_dyndns_edit.php:254
+#: usr/local/www/services_dyndns_edit.php:258
msgid "Interface to send update from"
msgstr "Interface de onde enviar atualizações"
#: usr/local/www/services_dyndns_edit.php:262
+#: usr/local/www/services_dyndns_edit.php:266
msgid "Note: This is almost always the same as the Interface to Monitor."
msgstr "Nota: Esta é quase sempre a mesma interface de Interface a Monitorar."
# 80%
#: usr/local/www/services_dyndns_edit.php:299
+#: usr/local/www/services_dyndns_edit.php:303
msgid ""
"Username is required for all types except Namecheap, FreeDNS and Custom "
"Entries."
@@ -29364,10 +36396,12 @@ msgstr ""
"e entradas customizadas."
#: usr/local/www/services_dyndns_edit.php:300
+#: usr/local/www/services_dyndns_edit.php:304
msgid "Route 53: Enter your Access Key ID."
msgstr "Route 53: Entre com seu Access Key ID."
#: usr/local/www/services_dyndns_edit.php:301
+#: usr/local/www/services_dyndns_edit.php:305
msgid ""
"For Custom Entries, Username and Password represent HTTP Authentication "
"username and passwords."
@@ -29376,20 +36410,24 @@ msgstr ""
"senha autenticação HTTP."
#: usr/local/www/services_dyndns_edit.php:310
+#: usr/local/www/services_dyndns_edit.php:314
msgid "Route 53: Enter your Secret Access Key."
msgstr "Route 53: Entre com seu Secret Access Key."
#: usr/local/www/services_dyndns_edit.php:315
+#: usr/local/www/services_dyndns_edit.php:319
msgid "Zone ID"
msgstr "Zone ID"
#: usr/local/www/services_dyndns_edit.php:318
+#: usr/local/www/services_dyndns_edit.php:322
msgid ""
"Enter Zone ID that you received when you created your domain in Route 53."
msgstr ""
"Informe o Zone ID que você recebeu quando criou seu domínio no Route 53."
#: usr/local/www/services_dyndns_edit.php:325
+#: usr/local/www/services_dyndns_edit.php:329
msgid ""
"This is the only field required by for Custom Dynamic DNS, and is only used "
"by Custom Entries."
@@ -29399,6 +36437,8 @@ msgstr ""
#: usr/local/www/services_dyndns_edit.php:327
#: usr/local/www/services_dyndns_edit.php:338
+#: usr/local/www/services_dyndns_edit.php:331
+#: usr/local/www/services_dyndns_edit.php:342
msgid ""
"If you need the new IP to be included in the request, put %IP% in its place."
msgstr ""
@@ -29406,14 +36446,17 @@ msgstr ""
"lugar."
#: usr/local/www/services_dyndns_edit.php:331
+#: usr/local/www/services_dyndns_edit.php:335
msgid "Result Match"
msgstr "Result Match"
#: usr/local/www/services_dyndns_edit.php:334
+#: usr/local/www/services_dyndns_edit.php:338
msgid "This field is only used by Custom Dynamic DNS Entries."
msgstr "Este campo é usado apenas pelo Custom Dynamic DNS Entries."
#: usr/local/www/services_dyndns_edit.php:336
+#: usr/local/www/services_dyndns_edit.php:340
msgid ""
"This field should be identical to what your DDNS Provider will return if the "
"update succeeds, leave it blank to disable checking of returned results."
@@ -29423,6 +36466,7 @@ msgstr ""
"de resultados retornados."
#: usr/local/www/services_dyndns_edit.php:340
+#: usr/local/www/services_dyndns_edit.php:344
msgid ""
"If you need to include multiple possible values, sperate them with a |. If "
"your provider includes a |, escape it with \\|"
@@ -29431,6 +36475,7 @@ msgstr ""
"o seu provedor incluir um |, escape-o com \\|"
#: usr/local/www/services_dyndns_edit.php:342
+#: usr/local/www/services_dyndns_edit.php:346
msgid ""
"Tabs (\\t), newlines (\\n) and carriage returns (\\r) at the beginning or "
"end of the returned results are removed before comparison."
@@ -29439,14 +36484,17 @@ msgstr ""
"fim dos resultados retornados são removidos antes da comparação."
#: usr/local/www/services_dyndns_edit.php:351
+#: usr/local/www/services_dyndns_edit.php:355
msgid "Choose TTL for your dns record."
msgstr "Escolha o TTL para seus registros DNS."
#: usr/local/www/services_dyndns_edit.php:370
+#: usr/local/www/services_dyndns_edit.php:374
msgid "Save & Force Update"
msgstr "Salvar e Forçar Atualização"
-#: usr/local/www/fbegin.inc:102
+#: usr/local/www/fbegin.inc:102 usr/local/www/fbegin.inc:111
+#: usr/local/www/fbegin.inc:103
msgid "High Avail. Sync"
msgstr "Sincronização Alta Disp."
@@ -29465,6 +36513,7 @@ msgid "A valid domain must be specified in alias list."
msgstr "Um dominio válido deve ser especificado na lista de alias."
#: usr/local/www/services_dnsmasq_edit.php:232
+#: usr/local/www/services_dnsmasq_edit.php:233
msgid "Enter additional names for this host."
msgstr "Informe nomes adicionais para este host."
@@ -29477,50 +36526,61 @@ msgid "Do you really want to save changes?"
msgstr "Você deseja realmente salvar as alterações?"
#: usr/local/www/status_interfaces.php:196
+#: usr/local/www/status_interfaces.php:199
msgid "Cell Signal (RSSI)"
msgstr "Cell Signal (RSSI)"
#: usr/local/www/status_interfaces.php:203
+#: usr/local/www/status_interfaces.php:206
msgid "Cell Mode"
msgstr "Cell Mode"
#: usr/local/www/status_interfaces.php:210
+#: usr/local/www/status_interfaces.php:213
msgid "Cell SIM State"
msgstr "Cell SIM State"
#: usr/local/www/status_interfaces.php:217
+#: usr/local/www/status_interfaces.php:220
msgid "Cell Service"
msgstr "Cell Service"
#: usr/local/www/status_interfaces.php:224
+#: usr/local/www/status_interfaces.php:227
msgid "Cell Upstream"
msgstr "Cell Upstream"
#: usr/local/www/status_interfaces.php:231
+#: usr/local/www/status_interfaces.php:234
msgid "Cell Downstream"
msgstr "Cell Downstream"
#: usr/local/www/status_interfaces.php:238
+#: usr/local/www/status_interfaces.php:241
msgid "Cell Current Up"
msgstr "Cell Current Up"
#: usr/local/www/status_interfaces.php:245
+#: usr/local/www/status_interfaces.php:248
msgid "Cell Current Down"
msgstr "Cell Current Down"
#: usr/local/www/status_interfaces.php:289
+#: usr/local/www/status_interfaces.php:292
msgid "IPv6 Link Local"
msgstr "IPv6 Link Local"
#: usr/local/www/status_interfaces.php:339
+#: usr/local/www/status_interfaces.php:342
msgid "LAGG Protocol"
msgstr "Protocolo LAGG"
#: usr/local/www/status_interfaces.php:346
+#: usr/local/www/status_interfaces.php:349
msgid "LAGG Ports"
msgstr "Portas LAGG"
-#: usr/local/www/diag_defaults.php:51
+#: usr/local/www/diag_defaults.php:51 usr/local/www/diag_defaults.php:61
msgid ""
"The system has been reset to factory defaults and is now rebooting. This may "
"take a few minutes, depending on your hardware."
@@ -29528,7 +36588,7 @@ msgstr ""
"O systema foi restaurado para o padrão de fábrica e está reiniciando. Isto "
"pode levar alguns minutos, dependendo do seu hardware."
-#: usr/local/www/carp_status.php:196
+#: usr/local/www/carp_status.php:196 usr/local/www/carp_status.php:189
msgid "You can configure high availability sync settings"
msgstr ""
"Você pode definir as configurações de sincronização de alta disponibilidade "
@@ -29550,14 +36610,17 @@ msgid "Prefork value must be between 1 and 32"
msgstr "O valor de prefork deve estar entre 1 e 32"
#: usr/local/www/load_balancer_setting.php:132
+#: usr/local/www/load_balancer_setting.php:131
msgid "Relayd global settings"
msgstr "Configurações gerais do Relayd"
#: usr/local/www/load_balancer_setting.php:135
+#: usr/local/www/load_balancer_setting.php:134
msgid "timeout"
msgstr "timeout"
#: usr/local/www/load_balancer_setting.php:139
+#: usr/local/www/load_balancer_setting.php:138
msgid ""
"Set the global timeout in milliseconds for checks. Leave blank to use the "
"default value of 1000 ms "
@@ -29567,10 +36630,12 @@ msgstr ""
# 75%
#: usr/local/www/load_balancer_setting.php:143
+#: usr/local/www/load_balancer_setting.php:142
msgid "interval"
msgstr "intervalo"
#: usr/local/www/load_balancer_setting.php:147
+#: usr/local/www/load_balancer_setting.php:146
msgid ""
"Set the interval in seconds at which the member of a pool will be checked. "
"Leave blank to use the default interval of 10 seconds"
@@ -29579,10 +36644,12 @@ msgstr ""
"Deixe em branco para usar o valor padão de 10 segundos"
#: usr/local/www/load_balancer_setting.php:151
+#: usr/local/www/load_balancer_setting.php:150
msgid "prefork"
msgstr "prefork"
#: usr/local/www/load_balancer_setting.php:155
+#: usr/local/www/load_balancer_setting.php:154
msgid ""
"Number of processes used by relayd. Leave blank to use the default value of "
"5 processes"
@@ -29595,35 +36662,43 @@ msgstr ""
msgid "A valid Destination Server IP address must be specified."
msgstr "Um endereço IP do Servidor de Destino válido deve ser especificado."
-#: usr/local/www/diag_ipsec.php:65
+#: usr/local/www/diag_ipsec.php:65 usr/local/www/diag_ipsec.php:66
+#: usr/local/www/diag_ipsec.php:68
msgid "Disconnected user"
msgstr "Usuário desconectado"
-#: usr/local/www/diag_ipsec.php:192
+#: usr/local/www/diag_ipsec.php:192 usr/local/www/diag_ipsec.php:193
+#: usr/local/www/diag_ipsec.php:194
msgid "Mobile User"
msgstr "Usuário Móvel"
-#: usr/local/www/diag_ipsec.php:193
+#: usr/local/www/diag_ipsec.php:193 usr/local/www/diag_ipsec.php:194
+#: usr/local/www/diag_ipsec.php:195
msgid "Login Time"
msgstr "Hora do Login"
# 83%
-#: usr/local/www/diag_ipsec.php:195
+#: usr/local/www/diag_ipsec.php:195 usr/local/www/diag_ipsec.php:196
+#: usr/local/www/diag_ipsec.php:197
msgid "Remote"
msgstr "Remoto"
# 82%
-#: usr/local/www/diag_ipsec.php:223
+#: usr/local/www/diag_ipsec.php:223 usr/local/www/diag_ipsec.php:224
+#: usr/local/www/diag_ipsec.php:225
msgid "You can configure IPsec"
msgstr "Você pode configurar seu IPsec"
# 81%
#: usr/local/www/system_certmanager.php:207
#: usr/local/www/system_certmanager.php:681
+#: usr/local/www/system_certmanager.php:210
+#: usr/local/www/system_certmanager.php:706
msgid "Certificate Type"
msgstr "Tipo do Certificado"
#: usr/local/www/system_certmanager.php:694
+#: usr/local/www/system_certmanager.php:719
msgid ""
"Type of certificate to generate. Used for placing restrictions on the usage "
"of the generated certificate."
@@ -29632,10 +36707,13 @@ msgstr ""
"certificado gerado."
#: usr/local/www/system_certmanager.php:757
+#: usr/local/www/system_certmanager.php:782
msgid "Alternative Names"
msgstr "Nomes Alternativos"
#: usr/local/www/system_certmanager.php:1109
+#: usr/local/www/system_certmanager.php:1112
+#: usr/local/www/system_certmanager.php:1168
msgid "export cert+key in .p12"
msgstr "export cert+key in .p12"
@@ -29645,10 +36723,16 @@ msgstr "Dados RRD"
#: usr/local/www/firewall_rules_edit.php:224
#: usr/local/www/firewall_rules_edit.php:237
+#: usr/local/www/firewall_rules_edit.php:222
+#: usr/local/www/firewall_rules_edit.php:236
+#: usr/local/www/firewall_rules_edit.php:219
+#: usr/local/www/firewall_rules_edit.php:233
msgid "You can not assign a gateway to a rule that applies to IPv4 and IPv6"
msgstr "Você pode atribuir um gateway a regra que aplicar para IPv4 e IPv6"
#: usr/local/www/firewall_rules_edit.php:249
+#: usr/local/www/firewall_rules_edit.php:248
+#: usr/local/www/firewall_rules_edit.php:245
msgid ""
"You can not assign a protocol other then ICMP, TCP, UDP or TCP/UDP to a rule "
"that applies to IPv4 and IPv6"
@@ -29657,25 +36741,32 @@ msgstr ""
"para uma regra que se aplica a IPv4 e IPv6"
#: usr/local/www/firewall_rules_edit.php:253
+#: usr/local/www/firewall_rules_edit.php:252
+#: usr/local/www/firewall_rules_edit.php:249
msgid "You can not assign a ICMP type to a rule that applies to IPv4 and IPv6"
msgstr ""
"Você não pode atribuir um tipo ICMP para uma regra que se aplica a IPv4 e "
"IPV6"
#: usr/local/www/firewall_rules_edit.php:416
+#: usr/local/www/firewall_rules_edit.php:415
+#: usr/local/www/firewall_rules_edit.php:418
msgid "You can not use a IPv4 or IPv6 address in combined IPv4 + IPv6 rules."
msgstr ""
"Você não pode usar um endereço IPv4 ou IPv6 in regras combinando IPv4 + IPv6."
#: usr/local/www/firewall_rules_edit.php:1285
+#: usr/local/www/firewall_rules_edit.php:1300
msgid "802.1p"
msgstr "802.1p"
#: usr/local/www/firewall_rules_edit.php:1308
+#: usr/local/www/firewall_rules_edit.php:1323
msgid "Choose 802.1p priority to match on"
msgstr "Escolha a prioridade 802.1p para correspoder "
#: usr/local/www/firewall_rules_edit.php:1312
+#: usr/local/www/firewall_rules_edit.php:1327
msgid "Choose 802.1p priority to apply"
msgstr "Escolha a prioridade 802.1p para aplicar"
@@ -30062,15 +37153,18 @@ msgstr "Select the log verbosity."
# 92%
#: usr/local/www/system_advanced_firewall.php:80
+#: usr/local/www/system_advanced_firewall.php:91
msgid "The Firewall Maximum Tables value must be an integer."
msgstr "O valor de Máximo de Tabelas de Firewall deve ser um inteiro."
# 82%
#: usr/local/www/system_advanced_firewall.php:326
+#: usr/local/www/system_advanced_firewall.php:370
msgid "Firewall Maximum Tables"
msgstr "Máximo de Tabelas de Firewall"
#: usr/local/www/system_advanced_firewall.php:330
+#: usr/local/www/system_advanced_firewall.php:374
msgid ""
"Maximum number of tables for systems such as aliases, sshlockout, snort, "
"etc, combined."
@@ -30079,6 +37173,7 @@ msgstr ""
"combinados."
#: usr/local/www/system_advanced_firewall.php:331
+#: usr/local/www/system_advanced_firewall.php:375
msgid ""
"This is the actual number of tables, not the number of entries inside the "
"tables (see below)"
@@ -30087,10 +37182,12 @@ msgstr ""
"(veja abaixo)"
#: usr/local/www/system_advanced_firewall.php:393
+#: usr/local/www/system_advanced_firewall.php:437
msgid "Disable Negate rule on policy routing rules"
msgstr "Desabilitar regra de negação nas regras de política de roteamento"
#: usr/local/www/system_advanced_firewall.php:395
+#: usr/local/www/system_advanced_firewall.php:439
msgid ""
"With Multi-WAN you generally want to ensure traffic reaches directly "
"connected networks and VPN networks when using policy routing. You can "
@@ -30103,20 +37200,28 @@ msgstr ""
"manualmente para estas redes"
#: usr/local/www/system_advanced_firewall.php:407
+#: usr/local/www/system_advanced_firewall.php:469
msgid "NAT Reflection mode for port forwards"
msgstr "Modo NAT Reflection para redirecionamento de portas"
#: usr/local/www/system_advanced_firewall.php:411
#: usr/local/www/firewall_nat_edit.php:794
+#: usr/local/www/firewall_nat_edit.php:793
+#: usr/local/www/firewall_nat_edit.php:788
+#: usr/local/www/system_advanced_firewall.php:473
msgid "Enable (NAT + Proxy)"
msgstr "Habilitar (NAT + Proxy)"
#: usr/local/www/system_advanced_firewall.php:412
#: usr/local/www/firewall_nat_edit.php:795
+#: usr/local/www/firewall_nat_edit.php:794
+#: usr/local/www/firewall_nat_edit.php:789
+#: usr/local/www/system_advanced_firewall.php:474
msgid "Enable (Pure NAT)"
msgstr "Habilitar (NAT Puro)"
#: usr/local/www/system_advanced_firewall.php:415
+#: usr/local/www/system_advanced_firewall.php:477
msgid ""
"When enabled, this automatically creates additional NAT redirect rules for "
"access to port forwards on your external IP addresses from within your "
@@ -30127,6 +37232,7 @@ msgstr ""
"externo de dentro de sua rede interna."
#: usr/local/www/system_advanced_firewall.php:417
+#: usr/local/www/system_advanced_firewall.php:479
msgid ""
"The NAT + proxy mode uses a helper program to send packets to the target of "
"the port forward. It is useful in setups where the interface and/or gateway "
@@ -30144,6 +37250,7 @@ msgstr ""
"Apenas protocolos TCP e UDP são suportados."
#: usr/local/www/system_advanced_firewall.php:419
+#: usr/local/www/system_advanced_firewall.php:481
msgid ""
"The pure NAT mode uses a set of NAT rules to direct packets to the target of "
"the port forward. It has better scalability, but it must be possible to "
@@ -30161,25 +37268,31 @@ msgstr ""
#: usr/local/www/system_advanced_firewall.php:421
#: usr/local/www/system_advanced_firewall.php:441
+#: usr/local/www/system_advanced_firewall.php:483
+#: usr/local/www/system_advanced_firewall.php:503
msgid ""
"Individual rules may be configured to override this system setting on a per-"
"rule basis."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:428
+#: usr/local/www/system_advanced_firewall.php:490
msgid "Enter value for Reflection timeout in seconds."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:430
+#: usr/local/www/system_advanced_firewall.php:492
msgid "Note: Only applies to Reflection on port forwards in NAT + proxy mode."
msgstr ""
# 91%
#: usr/local/www/system_advanced_firewall.php:434
+#: usr/local/www/system_advanced_firewall.php:496
msgid "Enable NAT Reflection for 1:1 NAT"
msgstr "Habilitar NAT Reflection para 1:1 NAT"
#: usr/local/www/system_advanced_firewall.php:437
+#: usr/local/www/system_advanced_firewall.php:499
msgid ""
"Enables the automatic creation of additional NAT redirect rules for access "
"to 1:1 mappings of your external IP addresses from within your internal "
@@ -30187,6 +37300,7 @@ msgid ""
msgstr ""
#: usr/local/www/system_advanced_firewall.php:439
+#: usr/local/www/system_advanced_firewall.php:501
msgid ""
"Note: Reflection on 1:1 mappings is only for the inbound component of the "
"1:1 mappings. This functions the same as the pure NAT mode for port "
@@ -30194,16 +37308,19 @@ msgid ""
msgstr ""
#: usr/local/www/system_advanced_firewall.php:445
+#: usr/local/www/system_advanced_firewall.php:507
msgid "Enable automatic outbound NAT for Reflection"
msgstr ""
#: usr/local/www/system_advanced_firewall.php:450
+#: usr/local/www/system_advanced_firewall.php:512
msgid ""
"Required for full functionality of the pure NAT mode of NAT Reflection for "
"port forwards or NAT Reflection for 1:1 NAT."
msgstr ""
#: usr/local/www/system_advanced_firewall.php:452
+#: usr/local/www/system_advanced_firewall.php:514
msgid ""
"Note: This only works for assigned interfaces. Other interfaces require "
"manually creating the outbound NAT rules that direct the reply packets back "
@@ -30211,12 +37328,13 @@ msgid ""
msgstr ""
# 91%
-#: usr/local/www/diag_logs_ntpd.php:85
+#: usr/local/www/diag_logs_ntpd.php:85 usr/local/www/diag_logs_ntpd.php:86
#, fuzzy, php-format
msgid "Last %s NTP log entries"
msgstr "Últimas %s entradas de log PPP"
#: usr/local/www/firewall_aliases_edit.php:468
+#: usr/local/www/firewall_aliases_edit.php:470
msgid ""
"Enter as many hosts as you would like. Hosts must be specified by their IP "
"address or fully qualified domain name (FQDN). FQDN hostnames are "
@@ -30226,6 +37344,7 @@ msgstr ""
# 77%
#: usr/local/www/firewall_aliases_edit.php:590
+#: usr/local/www/firewall_aliases_edit.php:593
#, fuzzy
msgid ""
"The name of the alias may only consist of the characters \"a-z, A-Z, 0-9 and "
@@ -30249,6 +37368,7 @@ msgstr ""
# 85%
#: usr/local/www/pkg_mgr_installed.php:205
+#: usr/local/www/pkg_mgr_installed.php:208
#, fuzzy
msgid "Remove "
msgstr "Remover"
@@ -30256,6 +37376,7 @@ msgstr "Remover"
# 90%
#: usr/local/www/pkg_mgr_installed.php:209
#: usr/local/www/pkg_mgr_installed.php:212
+#: usr/local/www/pkg_mgr_installed.php:215
#, fuzzy
msgid "Reinstall "
msgstr "Reinstalar"
@@ -30277,52 +37398,57 @@ msgid "When this is checked, startup and shutdown sounds will no longer play."
msgstr ""
#: usr/local/www/status_rrd_graph.php:146
+#: usr/local/www/status_rrd_graph.php:151
msgid "Invalid start date/time:"
msgstr ""
#: usr/local/www/status_rrd_graph.php:159
+#: usr/local/www/status_rrd_graph.php:164
msgid "Invalid end date/time:"
msgstr ""
#: usr/local/www/status_rrd_graph.php:509
+#: usr/local/www/status_rrd_graph.php:544
msgid "Enter date and/or time. Current timezone:"
msgstr ""
-#: usr/local/www/status_ntpd.php:109
+#: usr/local/www/status_ntpd.php:109 usr/local/www/status_ntpd.php:125
msgid "Ref ID"
msgstr ""
-#: usr/local/www/status_ntpd.php:110
+#: usr/local/www/status_ntpd.php:110 usr/local/www/status_ntpd.php:126
msgid "Stratum"
msgstr ""
-#: usr/local/www/status_ntpd.php:112
+#: usr/local/www/status_ntpd.php:112 usr/local/www/status_ntpd.php:128
msgid "When"
msgstr ""
# 75%
-#: usr/local/www/status_ntpd.php:113
+#: usr/local/www/status_ntpd.php:113 usr/local/www/status_ntpd.php:129
#, fuzzy
msgid "Poll"
msgstr "Pool"
-#: usr/local/www/status_ntpd.php:114
+#: usr/local/www/status_ntpd.php:114 usr/local/www/status_ntpd.php:130
msgid "Reach"
msgstr ""
-#: usr/local/www/status_ntpd.php:116
+#: usr/local/www/status_ntpd.php:116 usr/local/www/status_ntpd.php:132
msgid "Offset"
msgstr ""
-#: usr/local/www/status_ntpd.php:117
+#: usr/local/www/status_ntpd.php:117 usr/local/www/status_ntpd.php:133
msgid "Jitter"
msgstr ""
-#: usr/local/www/firewall_rules.php:790
+#: usr/local/www/firewall_rules.php:790 usr/local/www/firewall_rules.php:783
msgid "No floating rules are currently defined."
msgstr ""
#: usr/local/www/system_advanced_misc.php:297
+#: usr/local/www/system_advanced_misc.php:316
+#: usr/local/www/system_advanced_misc.php:320
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 "
@@ -30334,6 +37460,8 @@ msgid ""
msgstr ""
#: usr/local/www/system_advanced_misc.php:308
+#: usr/local/www/system_advanced_misc.php:327
+#: usr/local/www/system_advanced_misc.php:331
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 "
@@ -30342,22 +37470,36 @@ msgid ""
msgstr ""
#: usr/local/www/system_advanced_misc.php:336
+#: usr/local/www/system_advanced_misc.php:355
+#: usr/local/www/system_advanced_misc.php:359
+#: usr/local/www/system_advanced_misc.php:367
msgid "Hiadaptive"
msgstr ""
#: usr/local/www/system_advanced_misc.php:337
+#: usr/local/www/system_advanced_misc.php:356
+#: usr/local/www/system_advanced_misc.php:360
+#: usr/local/www/system_advanced_misc.php:368
msgid "Adaptive"
msgstr ""
#: usr/local/www/system_advanced_misc.php:338
+#: usr/local/www/system_advanced_misc.php:357
+#: usr/local/www/system_advanced_misc.php:361
+#: usr/local/www/system_advanced_misc.php:369
msgid "Minimum"
msgstr ""
#: usr/local/www/system_advanced_misc.php:339
+#: usr/local/www/system_advanced_misc.php:358
+#: usr/local/www/system_advanced_misc.php:362
+#: usr/local/www/system_advanced_misc.php:370
msgid "Maximum"
msgstr ""
#: usr/local/www/system_advanced_misc.php:342
+#: usr/local/www/system_advanced_misc.php:361
+#: usr/local/www/system_advanced_misc.php:373
msgid ""
"The powerd utility monitors the system state and sets various power control "
"options accordingly. It offers four modes (maximum, minimum, adaptive and "
@@ -30376,20 +37518,25 @@ msgstr ""
#: usr/local/www/firewall_shaper_vinterface.php:204
#: usr/local/www/firewall_shaper_vinterface.php:228
+#: usr/local/www/firewall_shaper_vinterface.php:205
+#: usr/local/www/firewall_shaper_vinterface.php:230
msgid "You cannot name a child queue with the same name as a parent limiter"
msgstr ""
-#: usr/local/www/diag_routes.php:72
+#: usr/local/www/diag_routes.php:72 usr/local/www/diag_routes.php:73
msgid ""
"By enabling name resolution, the query should take a bit longer. You can "
"stop it at any time by clicking the Stop button in your browser."
msgstr ""
#: usr/local/www/status_dhcpv6_leases.php:481
+#: usr/local/www/status_dhcpv6_leases.php:482
+#: usr/local/www/status_dhcpv6_leases.php:485
msgid "IPv6 Prefix"
msgstr ""
#: usr/local/www/services_captiveportal.php:465
+#: usr/local/www/services_captiveportal.php:463
msgid ""
"This setting limits the number of concurrent connections to the captive "
"portal HTTP(S) server. This does not set how many users can be logged in to "
@@ -30399,22 +37546,31 @@ msgid ""
msgstr ""
#: usr/local/www/services_captiveportal.php:602
+#: usr/local/www/services_captiveportal.php:600
+#: usr/local/www/services_captiveportal.php:601
msgid "Radius Protocol"
msgstr ""
#: usr/local/www/services_captiveportal.php:611
+#: usr/local/www/services_captiveportal.php:609
+#: usr/local/www/services_captiveportal.php:610
msgid "CHAP_MD5"
msgstr ""
#: usr/local/www/services_captiveportal.php:615
+#: usr/local/www/services_captiveportal.php:613
+#: usr/local/www/services_captiveportal.php:614
msgid "MSCHAPv1"
msgstr ""
#: usr/local/www/services_captiveportal.php:619
+#: usr/local/www/services_captiveportal.php:617
+#: usr/local/www/services_captiveportal.php:618
msgid "MSCHAPv2"
msgstr ""
#: usr/local/www/system_gateways_edit.php:389
+#: usr/local/www/system_gateways_edit.php:495
msgid "Choose the Internet Protocol this gateway uses."
msgstr ""
@@ -30425,6 +37581,8 @@ msgid ""
msgstr ""
#: usr/local/www/system_gateways_edit.php:491
+#: usr/local/www/system_gateways_edit.php:597
+#: usr/local/www/system_gateways_edit.php:601
msgid ""
"NOTE: The quality graph is averaged over seconds, not intervals, so as the "
"frequency probe is increased the accuracy of the quality graph is decreased."
@@ -30446,26 +37604,33 @@ msgstr ""
#: usr/local/www/status_gateways.php:134
#: usr/local/www/widgets/widgets/gateways.widget.php:73
#: usr/local/www/widgets/widgets/gateways.widget.php:81
+#: usr/local/www/status_gateways.php:101 usr/local/www/status_gateways.php:109
+#: usr/local/www/status_gateways.php:135
+#: usr/local/www/widgets/widgets/gateways.widget.php:94
+#: usr/local/www/widgets/widgets/gateways.widget.php:103
msgid "Pending"
msgstr ""
# 76%
-#: usr/local/www/status_gateways.php:140
+#: usr/local/www/status_gateways.php:140 usr/local/www/status_gateways.php:141
#, fuzzy
msgid "Last check:"
msgstr "Última verificação %s"
# 95%
#: usr/local/www/diag_dump_states.php:145
+#: usr/local/www/diag_dump_states.php:144
#, fuzzy
msgid "Current state count"
msgstr "Contagem de estado atual:"
#: usr/local/www/diag_dump_states.php:147
+#: usr/local/www/diag_dump_states.php:146
msgid "Matching filter"
msgstr ""
#: usr/local/www/diag_dump_states.php:155
+#: usr/local/www/diag_dump_states.php:154
msgid "Kill"
msgstr ""
@@ -30475,35 +37640,51 @@ msgid ""
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:299
+#: usr/local/www/vpn_openvpn_server.php:300
+#: usr/local/www/vpn_openvpn_server.php:321
msgid ""
"Using a tunnel network and server bridge settings together is not allowed."
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:302
+#: usr/local/www/vpn_openvpn_server.php:303
+#: usr/local/www/vpn_openvpn_server.php:324
msgid "Server Bridge DHCP Start and End must both be empty, or defined."
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:304
+#: usr/local/www/vpn_openvpn_server.php:305
+#: usr/local/www/vpn_openvpn_server.php:326
msgid "Server Bridge DHCP Start must be an IPv4 address."
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:306
+#: usr/local/www/vpn_openvpn_server.php:307
+#: usr/local/www/vpn_openvpn_server.php:328
msgid "Server Bridge DHCP End must be an IPv4 address."
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:308
+#: usr/local/www/vpn_openvpn_server.php:309
+#: usr/local/www/vpn_openvpn_server.php:330
msgid "The Server Bridge DHCP range is invalid (start higher than end)."
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1084
+#: usr/local/www/vpn_openvpn_server.php:1112
+#: usr/local/www/vpn_openvpn_server.php:1139
msgid "Bridge DHCP"
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1094
+#: usr/local/www/vpn_openvpn_server.php:1122
+#: usr/local/www/vpn_openvpn_server.php:1149
msgid "Allow clients on the bridge to obtain DHCP."
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1102
+#: usr/local/www/vpn_openvpn_server.php:1130
+#: usr/local/www/vpn_openvpn_server.php:1157
msgid "Bridge Interface"
msgstr ""
@@ -30517,6 +37698,8 @@ msgid ""
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1133
+#: usr/local/www/vpn_openvpn_server.php:1161
+#: usr/local/www/vpn_openvpn_server.php:1188
msgid "Server Bridge DHCP Start"
msgstr ""
@@ -30529,28 +37712,39 @@ msgid ""
msgstr ""
#: usr/local/www/vpn_openvpn_server.php:1146
+#: usr/local/www/vpn_openvpn_server.php:1174
+#: usr/local/www/vpn_openvpn_server.php:1201
msgid "Server Bridge DHCP End"
msgstr ""
#: usr/local/www/services_dhcp.php:239 usr/local/www/services_dhcpv6.php:216
+#: usr/local/www/services_router_advertisements.php:159
+#: usr/local/www/services_dhcp.php:285 usr/local/www/services_dhcpv6.php:201
+#: usr/local/www/services_dhcp_edit.php:230
+#: usr/local/www/services_dhcp.php:266 usr/local/www/services_dhcpv6.php:195
msgid "A valid domain search list must be specified."
msgstr ""
-#: usr/local/www/services_dhcp.php:685
+#: usr/local/www/services_dhcp.php:685 usr/local/www/services_dhcp.php:861
+#: usr/local/www/services_dhcp_edit.php:427
+#: usr/local/www/services_dhcp.php:875
msgid ""
"The DHCP server can optionally provide a domain search list. Use the "
"semicolon character as seperator "
msgstr ""
#: usr/local/www/services_dhcp.php:735 usr/local/www/services_dhcpv6.php:716
+#: usr/local/www/services_dhcp.php:916 usr/local/www/services_dhcpv6.php:647
+#: usr/local/www/services_dhcp.php:930 usr/local/www/services_dhcpv6.php:664
msgid "Time format change"
msgstr ""
-#: usr/local/www/services_dhcp.php:744
+#: usr/local/www/services_dhcp.php:744 usr/local/www/services_dhcp.php:925
+#: usr/local/www/services_dhcp.php:939
msgid "Change DHCP display lease time from UTC to local time."
msgstr ""
-#: usr/local/www/services_dhcp.php:751
+#: usr/local/www/services_dhcp.php:751 usr/local/www/services_dhcp.php:932
msgid ""
"By default DHCP leases are displayed in UTC time. By checking this \n"
"\t\t\t\t\t\tbox DHCP lease time will be displayed in local time and set to "
@@ -30573,63 +37767,82 @@ msgid "%s is a subnet containing more than 64 IP addresses."
msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:173
+#: usr/local/www/load_balancer_virtual_server_edit.php:171
msgid ""
"You may also specify a host alias listed in Firewall -&gt; Aliases here."
msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:187
+#: usr/local/www/load_balancer_virtual_server_edit.php:185
msgid "If left blank, listening ports from the pool will be used."
msgstr ""
#: usr/local/www/load_balancer_virtual_server_edit.php:188
#: usr/local/www/load_balancer_pool_edit.php:216
+#: usr/local/www/load_balancer_virtual_server_edit.php:186
+#: usr/local/www/load_balancer_pool_edit.php:214
msgid ""
"You may also specify a port alias listed in Firewall -&gt; Aliases here."
msgstr ""
-#: usr/local/www/system_hasync.php:96
+#: usr/local/www/system_hasync.php:96 usr/local/www/system_hasync.php:97
msgid "High Availability Sync"
msgstr ""
# 76%
-#: usr/local/www/services_ntpd.php:86
+#: usr/local/www/services_ntpd.php:86 usr/local/www/services_ntpd.php:92
#, fuzzy
msgid "NTP Server Configuration"
msgstr "Configuração do servidor PPPoE"
#: usr/local/www/interfaces_bridge_edit.php:391
+#: usr/local/www/interfaces_bridge_edit.php:392
+#: usr/local/www/interfaces_bridge_edit.php:393
msgid ""
"Set the Spanning Tree priority of interface to value. The default is 128. "
"The minimum is 0 and the maximum is 240. Increments of 16."
msgstr ""
#: usr/local/www/diag_packet_capture.php:172
+#: usr/local/www/diag_packet_capture.php:219
msgid "Select the protocol to capture, or Any."
msgstr ""
#: usr/local/www/diag_packet_capture.php:245
+#: usr/local/www/diag_packet_capture.php:292
msgid "View Capture"
msgstr ""
#: usr/local/www/system_camanager.php:420
+#: usr/local/www/system_camanager.php:427
msgid "Serial for next certificate"
msgstr ""
#: usr/local/www/system_camanager.php:423
+#: usr/local/www/system_camanager.php:430
msgid ""
"Enter a decimal number to be used as the serial number for the next "
"certificate to be created using this CA."
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:140
+#: usr/local/www/vpn_ipsec_phase2.php:141
+#: usr/local/www/vpn_ipsec_phase2.php:163
+#: usr/local/www/vpn_ipsec_phase2.php:145
+#: usr/local/www/vpn_ipsec_phase2.php:171
msgid "Invalid Local Network."
msgstr ""
#: usr/local/www/vpn_ipsec_phase2.php:140
+#: usr/local/www/vpn_ipsec_phase2.php:141
+#: usr/local/www/vpn_ipsec_phase2.php:163
+#: usr/local/www/vpn_ipsec_phase2.php:145
+#: usr/local/www/vpn_ipsec_phase2.php:171
msgid "has no subnet."
msgstr ""
#: usr/local/www/firewall_nat_edit.php:233
+#: usr/local/www/firewall_nat_edit.php:238
#, php-format
msgid ""
"A valid local port must be specified. It must be a port alias or integer "
@@ -30638,149 +37851,181 @@ msgstr ""
# 94%
#: usr/local/www/firewall_nat_edit.php:793
+#: usr/local/www/firewall_nat_edit.php:792
+#: usr/local/www/firewall_nat_edit.php:787
#, fuzzy
msgid "Use system default"
msgstr "usar padrão do sistema"
-#: usr/local/www/interfaces.php:463
+#: usr/local/www/interfaces.php:463 usr/local/www/interfaces.php:460
+#: usr/local/www/interfaces.php:448
msgid ""
"This interface is referenced by IPv4 VIPs. Please delete those before "
"setting the interface to 'none' configuration."
msgstr ""
-#: usr/local/www/interfaces.php:516
+#: usr/local/www/interfaces.php:516 usr/local/www/interfaces.php:513
+#: usr/local/www/interfaces.php:501
msgid ""
"This interface is referenced by IPv6 VIPs. Please delete those before "
"setting the interface to 'none' configuration."
msgstr ""
-#: usr/local/www/interfaces.php:526
+#: usr/local/www/interfaces.php:526 usr/local/www/interfaces.php:523
+#: usr/local/www/interfaces.php:511
#, php-format
msgid "You can only have one interface configured as %s or 6to4."
msgstr ""
-#: usr/local/www/interfaces.php:536
+#: usr/local/www/interfaces.php:536 usr/local/www/interfaces.php:533
+#: usr/local/www/interfaces.php:521
#, php-format
msgid "You can only have one interface configured as %s or 6rd."
msgstr ""
-#: usr/local/www/interfaces.php:549
+#: usr/local/www/interfaces.php:549 usr/local/www/interfaces.php:546
+#: usr/local/www/interfaces.php:534
msgid "You must enter a valid hexadecimal number for the IPv6 prefix ID."
msgstr ""
-#: usr/local/www/interfaces.php:553
+#: usr/local/www/interfaces.php:553 usr/local/www/interfaces.php:550
+#: usr/local/www/interfaces.php:538
msgid "You specified an IPv6 prefix ID that is out of range."
msgstr ""
-#: usr/local/www/interfaces.php:1119
+#: usr/local/www/interfaces.php:1119 usr/local/www/interfaces.php:1107
+#: usr/local/www/interfaces.php:1121
msgid "SLAAC"
msgstr ""
-#: usr/local/www/interfaces.php:1119
+#: usr/local/www/interfaces.php:1119 usr/local/www/interfaces.php:1107
+#: usr/local/www/interfaces.php:1121
msgid "6rd Tunnel"
msgstr ""
-#: usr/local/www/interfaces.php:1119
+#: usr/local/www/interfaces.php:1119 usr/local/www/interfaces.php:1107
+#: usr/local/www/interfaces.php:1121
msgid "6to4 Tunnel"
msgstr ""
-#: usr/local/www/interfaces.php:1119
+#: usr/local/www/interfaces.php:1119 usr/local/www/interfaces.php:1107
+#: usr/local/www/interfaces.php:1121
msgid "Track Interface"
msgstr ""
-#: usr/local/www/interfaces.php:1411
+#: usr/local/www/interfaces.php:1411 usr/local/www/interfaces.php:1399
+#: usr/local/www/interfaces.php:1412
msgid ""
"If you leave this field blank, the adapter's default MTU will be used. This "
"is typically 1500 bytes but can vary in some circumstances."
msgstr ""
-#: usr/local/www/interfaces.php:1768
+#: usr/local/www/interfaces.php:1768 usr/local/www/interfaces.php:1756
+#: usr/local/www/interfaces.php:1774
msgid "6RD Rapid Deployment"
msgstr ""
-#: usr/local/www/interfaces.php:1771
+#: usr/local/www/interfaces.php:1771 usr/local/www/interfaces.php:1759
+#: usr/local/www/interfaces.php:1777
msgid "6RD prefix"
msgstr ""
-#: usr/local/www/interfaces.php:1775
+#: usr/local/www/interfaces.php:1775 usr/local/www/interfaces.php:1763
+#: usr/local/www/interfaces.php:1781
msgid ""
"The value in this field is the 6RD IPv6 prefix assigned by your ISP. e.g. "
"'2001:db8::/32'"
msgstr ""
-#: usr/local/www/interfaces.php:1779
+#: usr/local/www/interfaces.php:1779 usr/local/www/interfaces.php:1767
+#: usr/local/www/interfaces.php:1785
msgid "6RD Border Relay"
msgstr ""
-#: usr/local/www/interfaces.php:1783
+#: usr/local/www/interfaces.php:1783 usr/local/www/interfaces.php:1771
+#: usr/local/www/interfaces.php:1789
msgid ""
"The value in this field is 6RD IPv4 gateway address assigned by your ISP"
msgstr ""
-#: usr/local/www/interfaces.php:1787
+#: usr/local/www/interfaces.php:1787 usr/local/www/interfaces.php:1775
+#: usr/local/www/interfaces.php:1793
msgid "6RD IPv4 Prefix length"
msgstr ""
-#: usr/local/www/interfaces.php:1799
+#: usr/local/www/interfaces.php:1799 usr/local/www/interfaces.php:1787
+#: usr/local/www/interfaces.php:1805
msgid ""
"The value in this field is the 6RD IPv4 prefix length. Normally specified by "
"the ISP. A value of 0 means we embed the entire IPv4 address in the 6RD "
"prefix."
msgstr ""
-#: usr/local/www/interfaces.php:1809
+#: usr/local/www/interfaces.php:1809 usr/local/www/interfaces.php:1797
+#: usr/local/www/interfaces.php:1818
msgid "Track IPv6 Interface"
msgstr ""
-#: usr/local/www/interfaces.php:1812
+#: usr/local/www/interfaces.php:1812 usr/local/www/interfaces.php:1800
+#: usr/local/www/interfaces.php:1821
msgid "IPv6 Interface"
msgstr ""
-#: usr/local/www/interfaces.php:1838
+#: usr/local/www/interfaces.php:1838 usr/local/www/interfaces.php:1826
+#: usr/local/www/interfaces.php:1847
msgid "This selects the dynamic IPv6 WAN interface to track for configuration"
msgstr ""
-#: usr/local/www/interfaces.php:1842
+#: usr/local/www/interfaces.php:1842 usr/local/www/interfaces.php:1830
+#: usr/local/www/interfaces.php:1851
msgid "IPv6 Prefix ID"
msgstr ""
-#: usr/local/www/interfaces.php:1853
+#: usr/local/www/interfaces.php:1853 usr/local/www/interfaces.php:1841
+#: usr/local/www/interfaces.php:1862
msgid ""
"The value in this field is the (Delegated) IPv6 prefix id. This determines "
"the configurable network ID based on the dynamic IPv6 connection"
msgstr ""
-#: usr/local/www/interfaces.php:1855
+#: usr/local/www/interfaces.php:1855 usr/local/www/interfaces.php:1843
+#: usr/local/www/interfaces.php:1864
#, php-format
msgid ""
"Enter a <b>hexadecimal</b> value between %x and %x here, or leave blank."
msgstr ""
-#: usr/local/www/interfaces.php:2356
+#: usr/local/www/interfaces.php:2356 usr/local/www/interfaces.php:2344
+#: usr/local/www/interfaces.php:2374
msgid ""
"Note: Only required in Access Point mode. If left blank in Ad-hoc or "
"Infrastructure mode, this interface will connect to any available SSID"
msgstr ""
# 79%
-#: usr/local/www/interfaces.php:2576
+#: usr/local/www/interfaces.php:2576 usr/local/www/interfaces.php:2564
+#: usr/local/www/interfaces.php:2594
#, fuzzy
msgid "Secondary 802.1X Authentication Server IP Address"
msgstr "Endereço IP de Servidor de Autenticação 802.1X"
# 76%
-#: usr/local/www/interfaces.php:2583
+#: usr/local/www/interfaces.php:2583 usr/local/www/interfaces.php:2571
+#: usr/local/www/interfaces.php:2601
#, fuzzy
msgid "Secondary 802.1X Authentication Server Port"
msgstr "Porta do Servidor de Autenticação 802.1X"
# 80%
-#: usr/local/www/interfaces.php:2590
+#: usr/local/www/interfaces.php:2590 usr/local/www/interfaces.php:2578
+#: usr/local/www/interfaces.php:2608
#, fuzzy
msgid "Secondary 802.1X Authentication Server Shared Secret"
msgstr "Segredo Compartilhado do Servidor de Autenticação 802.1X"
#: usr/local/www/vpn_openvpn_client.php:196
+#: usr/local/www/vpn_openvpn_client.php:202
+#: usr/local/www/vpn_openvpn_client.php:220
msgid "The bandwidth limit must be a positive numeric value."
msgstr ""
@@ -30815,18 +38060,22 @@ msgid ""
msgstr ""
#: usr/local/www/firewall_virtual_ip_edit.php:153
+#: usr/local/www/firewall_virtual_ip_edit.php:152
+#: usr/local/www/firewall_virtual_ip_edit.php:144
#, php-format
msgid ""
"VHID %s is already in use on interface %s. Pick a unique number on this "
"interface."
msgstr ""
-#: usr/local/www/services_snmp.php:391
+#: usr/local/www/services_snmp.php:391 usr/local/www/services_snmp.php:392
+#: usr/local/www/services_snmp.php:407
msgid "Interface Binding"
msgstr ""
# 78%
-#: usr/local/www/services_snmp.php:396
+#: usr/local/www/services_snmp.php:396 usr/local/www/services_snmp.php:397
+#: usr/local/www/services_snmp.php:412
#, fuzzy
msgid "Bind Interface"
msgstr "Por Interface"
@@ -30839,32 +38088,38 @@ msgstr ""
msgid "Ident"
msgstr ""
-#: usr/local/www/system.php:418
+#: usr/local/www/system.php:418 usr/local/www/system.php:411
msgid "Language"
msgstr ""
-#: usr/local/www/system.php:431
+#: usr/local/www/system.php:431 usr/local/www/system.php:424
msgid "Choose a language for the webConfigurator"
msgstr "Escolha o idioma para o configurador web (webConfigurator)"
#: usr/local/www/firewall_virtual_ip.php:118
+#: usr/local/www/firewall_virtual_ip.php:115
+#: usr/local/www/firewall_virtual_ip.php:127
msgid ""
"This entry cannot be deleted because it is still referenced by a CARP IP "
"with the description"
msgstr ""
#: usr/local/www/firewall_virtual_ip.php:124
+#: usr/local/www/firewall_virtual_ip.php:121
+#: usr/local/www/firewall_virtual_ip.php:132
msgid ""
"This entry cannot be deleted because it is still referenced by an IP alias "
"entry with the description"
msgstr ""
#: usr/local/www/services_dhcpv6.php:531
+#: usr/local/www/services_router_advertisements.php:277
#, php-format
msgid "Select the Operating Mode for the Router Advertisement (RA) Daemon."
msgstr ""
#: usr/local/www/services_dhcpv6.php:532
+#: usr/local/www/services_router_advertisements.php:278
#, php-format
msgid ""
"Use \"Router Only\" to only advertise this router, \"Unmanaged\" for Router "
@@ -30874,6 +38129,7 @@ msgid ""
msgstr ""
#: usr/local/www/services_dhcpv6.php:533
+#: usr/local/www/services_router_advertisements.php:279
#, php-format
msgid ""
"It is not required to activate this DHCPv6 server when set to \"Managed\", "
@@ -30881,30 +38137,35 @@ msgid ""
msgstr ""
#: usr/local/www/services_dhcpv6.php:537
+#: usr/local/www/services_router_advertisements.php:283
msgid "Router Priority"
msgstr ""
#: usr/local/www/services_dhcpv6.php:544
+#: usr/local/www/services_router_advertisements.php:290
#, php-format
msgid "Select the Priority for the Router Advertisement (RA) Daemon."
msgstr ""
# 83%
#: usr/local/www/services_dhcpv6.php:558
+#: usr/local/www/services_router_advertisements.php:304
#, fuzzy
msgid "RA Interface"
msgstr "Por Interface"
#: usr/local/www/services_dhcpv6.php:566
+#: usr/local/www/services_router_advertisements.php:312
#, php-format
msgid "Select the Interface for the Router Advertisement (RA) Daemon."
msgstr ""
-#: usr/local/www/services_dhcpv6.php:653
+#: usr/local/www/services_dhcpv6.php:653 usr/local/www/services_dhcpv6.php:584
msgid "prefix delegation size"
msgstr ""
-#: usr/local/www/services_dhcpv6.php:662
+#: usr/local/www/services_dhcpv6.php:662 usr/local/www/services_dhcpv6.php:593
+#: usr/local/www/services_dhcpv6.php:610
msgid ""
"You can define a Prefix range here for DHCP Prefix Delegation. This allows "
"for \n"
@@ -30912,19 +38173,1815 @@ msgid ""
"must end on boundaries of the prefix delegation size."
msgstr ""
-#: usr/local/www/services_dhcpv6.php:685
+#: usr/local/www/services_dhcpv6.php:685 usr/local/www/services_dhcpv6.php:616
+#: usr/local/www/services_dhcpv6.php:633
msgid ""
"The DHCP server can optionally provide a domain search list. Use the "
"semicolon character as seperator"
msgstr ""
-#: usr/local/www/services_dhcpv6.php:725
+#: usr/local/www/services_dhcpv6.php:725 usr/local/www/services_dhcpv6.php:656
+#: usr/local/www/services_dhcpv6.php:673
msgid "Change DHCPv6 display lease time from UTC to local time."
msgstr ""
-#: usr/local/www/services_dhcpv6.php:732
+#: usr/local/www/services_dhcpv6.php:732 usr/local/www/services_dhcpv6.php:663
+#: usr/local/www/services_dhcpv6.php:680
msgid ""
"By default DHCPv6 leases are displayed in UTC time. By checking this \n"
"\t\t\t\t\t\tbox 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 ""
+
+#: etc/inc/priv.defs.inc:64
+msgid "WebCfg - Diagnostics: Sockets page"
+msgstr ""
+
+#: etc/inc/priv.defs.inc:65
+msgid "Allow access to the 'Diagnostics: Sockets' page."
+msgstr ""
+
+#: etc/inc/config.console.inc:263
+#, php-format
+msgid ""
+"%sEnter the Optional %s interface name or 'a' for auto-detection%s(or "
+"nothing if finished):%s"
+msgstr ""
+
+#: etc/inc/shaper.inc:2909 etc/inc/shaper.inc:2910
+#, php-format
+msgid "Bandwidth for schedule %s must be an integer."
+msgstr ""
+
+#: etc/inc/shaper.inc:2915 etc/inc/shaper.inc:2916
+msgid "You need to specify a schedule for every additional entry"
+msgstr ""
+
+#: etc/inc/shaper.inc:2917 etc/inc/shaper.inc:2918
+msgid "If more than one bandwidth configured all schedules need to be selected"
+msgstr ""
+
+#: etc/inc/shaper.inc:2919 etc/inc/shaper.inc:2920
+msgid "At least one bw specification is necessary"
+msgstr ""
+
+#: etc/inc/shaper.inc:3200 etc/inc/shaper.inc:3201
+msgid "add another schedule"
+msgstr ""
+
+#: etc/inc/functions.inc:94
+msgid "Acknowledge All Notices"
+msgstr ""
+
+#: etc/inc/functions.inc:95
+msgid "Click to Acknowledge"
+msgstr ""
+
+#: etc/inc/functions.inc:113
+msgid "unread notice"
+msgstr ""
+
+#: etc/inc/functions.inc:115
+msgid "unread notices"
+msgstr ""
+
+#: etc/inc/service-utils.inc:234 etc/inc/service-utils.inc:233
+msgid "Router Advertisement Daemon"
+msgstr ""
+
+#: etc/inc/service-utils.inc:313 etc/inc/service-utils.inc:312
+msgid "RIP Daemon"
+msgstr ""
+
+#: etc/inc/service-utils.inc:413 etc/inc/service-utils.inc:422
+#: etc/inc/service-utils.inc:412 etc/inc/service-utils.inc:421
+#, php-format
+msgid "%s Service is"
+msgstr ""
+
+#: etc/inc/service-utils.inc:447 etc/inc/service-utils.inc:446
+#, php-format
+msgid "Restart %sService"
+msgstr ""
+
+#: etc/inc/service-utils.inc:458 etc/inc/service-utils.inc:457
+#, php-format
+msgid "Stop %sService"
+msgstr ""
+
+#: etc/inc/service-utils.inc:471 etc/inc/service-utils.inc:470
+#, php-format
+msgid "Start %sService"
+msgstr ""
+
+#: etc/inc/filter.inc:2993 etc/inc/filter.inc:3079
+msgid "Removed 15 minute filter reload for Time Based Rules"
+msgstr ""
+
+#: usr/local/www/pkg_mgr.php:193
+msgid "Click on package name to access its website."
+msgstr ""
+
+#: usr/local/www/diag_logs_settings.php:276
+msgid "Show the applied rule description below or in the firewall log rows."
+msgstr ""
+
+#: usr/local/www/diag_logs_settings.php:278
+msgid ""
+"Displaying rule descriptions for all lines in the log might affect "
+"performance with large rulessets."
+msgstr ""
+
+#: usr/local/www/fbegin.inc:152 usr/local/www/fbegin.inc:144
+msgid "DHCPv6 Server/RA"
+msgstr ""
+
+#: usr/local/www/fbegin.inc:232 usr/local/www/diag_sockets.php:44
+#: usr/local/www/fbegin.inc:224
+msgid "Sockets"
+msgstr ""
+
+#: usr/local/www/fbegin.inc:419 usr/local/www/fbegin.inc:411
+msgid "Help for items on this page"
+msgstr ""
+
+#: usr/local/www/system_groupmanager.php:472
+msgid ""
+"Additional webConfigurator groups can be added here. \n"
+"\t\t\t\t\t\t\t\t\tGroup permissions can be assigned which are inherited by "
+"users who are members of the group.\n"
+"\t\t\t\t\t\t\t\t\tAn icon that appears grey indicates that it is a system "
+"defined object.\n"
+"\t\t\t\t\t\t\t\t\tSome system object properties can be modified but they "
+"cannot be deleted."
+msgstr ""
+
+#: usr/local/www/services_dnsmasq_edit.php:216
+msgid "or"
+msgstr ""
+
+#: usr/local/www/services_dhcpv6_edit.php:204
+#: usr/local/www/services_dhcpv6_edit.php:207
+msgid "If an IPv6 address is entered, the address must be outside of the pool."
+msgstr ""
+
+#: usr/local/www/services_dhcpv6_edit.php:206
+#: usr/local/www/services_dhcpv6_edit.php:209
+msgid ""
+"If no IPv6 address is given, one will be dynamically allocated from the pool."
+msgstr ""
+
+#: usr/local/www/services_router_advertisements.php:118
+msgid ""
+"Subnets are specified in CIDR format. Select the CIDR mask that pertains to "
+"each entry. /128 specifies a single IPv6 host; /64 specifies a normal IPv6 "
+"network; etc. If no subnets are specified here, the Router Advertisement "
+"(RA) Daemon will advertise to the subnet to which the router's interface is "
+"assigned."
+msgstr ""
+
+#: usr/local/www/services_router_advertisements.php:149
+#, php-format
+msgid "An invalid subnet or alias was specified. [%s/%s]"
+msgstr ""
+
+#: usr/local/www/services_router_advertisements.php:194
+msgid "Router advertisements"
+msgstr ""
+
+#: usr/local/www/services_router_advertisements.php:318
+msgid "RA Subnet(s)"
+msgstr ""
+
+#: usr/local/www/services_router_advertisements.php:384
+msgid ""
+"The RA server can optionally provide a domain search list. Use the semicolon "
+"character as seperator"
+msgstr ""
+
+#: usr/local/www/services_router_advertisements.php:392
+msgid "Use same settings as DHCPv6 server"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec.php:142 usr/local/www/vpn_ipsec_keys.php:94
+#: usr/local/www/vpn_ipsec_phase2.php:475
+#: usr/local/www/vpn_ipsec_phase1.php:498 usr/local/www/vpn_ipsec.php:148
+#: usr/local/www/vpn_ipsec_phase1.php:519
+#: usr/local/www/vpn_ipsec_phase2.php:497
+msgid "Pre-Shared Keys"
+msgstr ""
+
+#: usr/local/www/system_usermanager_settings_test.php:78
+#, php-format
+msgid "Testing %s LDAP settings... One moment please..."
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_mobile.php:149
+msgid "A valid split DNS domain list must be specified."
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_mobile.php:505
+msgid "Split DNS"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_mobile.php:514
+msgid ""
+"Provide a list of split DNS domain names to clients. Enter a comma separated "
+"list."
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_mobile.php:515
+msgid ""
+"NOTE: If left blank, and a default domain is set, it will be used for this "
+"value."
+msgstr ""
+
+#: usr/local/www/firewall_shaper.php:131
+#: usr/local/www/firewall_shaper_vinterface.php:146
+msgid "Unable to write config.xml (Access Denied?)"
+msgstr ""
+
+#: usr/local/www/firewall_rules_edit.php:455
+#: usr/local/www/firewall_rules_edit.php:458
+msgid ""
+"Please select a gateway, normaly the interface selected gateway, so the "
+"limiters work correctly"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_keys.php:136
+msgid "Do you really want to delete this Pre-Shared Key?"
+msgstr ""
+
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:83
+msgid "A valid domain must be specified after _msdcs."
+msgstr ""
+
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:93
+msgid "An interface IP address must be specified for the DNS query source."
+msgstr ""
+
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:144
+msgid "Source IP"
+msgstr ""
+
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:147
+msgid ""
+"Source IP address for queries to the DNS server for the override domain."
+msgstr ""
+
+#: usr/local/www/services_dnsmasq_domainoverride_edit.php:148
+msgid "Leave blank unless your DNS server is accessed through a VPN tunnel."
+msgstr ""
+
+#: usr/local/www/system_crlmanager.php:401
+msgid "Edit Imported Certificate Revocation List"
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:206
+#: usr/local/www/system_advanced_firewall.php:235
+msgid ""
+"expires idle connections quicker. More efficient use of CPU and memory but "
+"can drop legitimate idle connections"
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:207
+#: usr/local/www/system_advanced_firewall.php:236
+msgid ""
+"tries to avoid dropping any legitimate idle connections at the expense of "
+"increased memory usage and CPU utilization."
+msgstr ""
+
+#: usr/local/www/vpn_pptp.php:297 usr/local/www/vpn_pptp.php:300
+msgid ""
+"PPTP is no longer considered a secure VPN technology because it relies upon "
+"MS-CHAPv2 which has been compromised. If you continue to use PPTP be aware "
+"that intercepted traffic can be decrypted by a third party, so it should be "
+"considered unencrypted. We advise migrating to another VPN type such as "
+"OpenVPN or IPsec.<br/><br/><a href=\"https://isc.sans.edu/diary/End+of+Days"
+"+for+MS-CHAPv2/13807\">Read More</a>"
+msgstr ""
+
+#: usr/local/www/status_ntpd.php:185
+msgid "Clock Latitude"
+msgstr ""
+
+#: usr/local/www/status_ntpd.php:186
+msgid "Clock Longitude"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:77
+#: usr/local/www/system_advanced_misc.php:80
+msgid "AMD Geode LX Security Block"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:78
+#: usr/local/www/system_advanced_misc.php:81
+msgid "AES-NI CPU-based Acceleration"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:80
+#: usr/local/www/system_advanced_misc.php:83
+msgid "Intel Core* CPU on-die thermal sensor"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:81
+#: usr/local/www/system_advanced_misc.php:84
+msgid "AMD K8, K10 and K11 CPU on-die thermal sensor"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:92
+#: usr/local/www/system_advanced_misc.php:95
+msgid "Please select a valid Cryptographic Accelerator."
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:95
+#: usr/local/www/system_advanced_misc.php:98
+msgid "Please select a valid Thermal Hardware Sensor."
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:380
+#: usr/local/www/system_advanced_misc.php:392
+msgid "Cryptographic Hardware Acceleration"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:383
+#: usr/local/www/system_advanced_misc.php:395
+msgid "Cryptographic Hardware"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:392
+#: usr/local/www/system_advanced_misc.php:404
+msgid ""
+"A cryptographic accelerator module will use hardware support to speed up "
+"some cryptographic functions on systems which have the chip. Do not enable "
+"this option if you have a Hifn cryptographic acceleration card, as this will "
+"take precedence and the Hifn card will not be used. Acceleration should be "
+"automatic for IPsec when using a cipher supported by your chip, such as "
+"AES-128. OpenVPN should be set for AES-128-CBC and have cryptodev enabled "
+"for hardware acceleration."
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:400
+#: usr/local/www/system_advanced_misc.php:412
+msgid ""
+"If you do not have a crypto chip in your system, this option will have no "
+"effect. To unload the selected module, set this option to 'none' and then "
+"reboot."
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:408
+#: usr/local/www/system_advanced_misc.php:411
+#: usr/local/www/system_advanced_misc.php:420
+#: usr/local/www/system_advanced_misc.php:423
+msgid "Thermal Sensors"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:414
+#: usr/local/www/system_advanced_misc.php:426
+msgid "None/ACPI"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:420
+#: usr/local/www/system_advanced_misc.php:432
+msgid ""
+"If you have a supported CPU, selecting a themal sensor will load the "
+"appropriate driver to read its temperature. Setting this to 'None' will "
+"attempt to read the temperature from an ACPI-compliant motherboard sensor "
+"instead, if one is present."
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:424
+#: usr/local/www/system_advanced_misc.php:436
+msgid ""
+"If you do not have a supported thermal sensor chip in your system, this "
+"option will have no effect. To unload the selected module, set this option "
+"to 'none' and then reboot."
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:173
+#: usr/local/www/services_captiveportal.php:175
+msgid "Certificate must be specified for HTTPS login."
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:863
+#: usr/local/www/services_captiveportal.php:865
+msgid ""
+"If enabled, the username and password will be transmitted over an HTTPS "
+"connection to protect against eavesdroppers. A server name and certificate "
+"must also be specified below."
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:886
+#: usr/local/www/services_captiveportal.php:888
+msgid "No Certificates defined."
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:205
+msgid "The low latency threshold needs to be a numeric value."
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:208
+msgid "The low latency threshold needs to be positive."
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:215
+msgid "The high latency threshold needs to be a numeric value."
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:218
+msgid "The high latency threshold needs to be positive."
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:225
+msgid "The low Packet Loss threshold needs to be a numeric value."
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:228
+msgid "The low Packet Loss threshold needs to be positive."
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:231
+msgid "The low Packet Loss threshold needs to be less than 100."
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:238
+msgid "The high Packet Loss threshold needs to be a numeric value."
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:241
+msgid "The high Packet Loss threshold needs to be positive."
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:244
+msgid "The high Packet Loss threshold needs to be 100 or less."
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:252
+msgid ""
+"The high latency threshold needs to be higher than the low latency threshold"
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:275
+msgid ""
+"The high Packet Loss threshold needs to be higher than the low Packet Loss "
+"threshold"
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:297
+msgid "The frequency probe interval needs to be a numeric value."
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:300
+msgid "The frequency probe interval needs to be positive."
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:307
+msgid "The down time setting needs to be a numeric value."
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:310
+msgid "The down time setting needs to be positive."
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:318
+msgid ""
+"The Frequency Probe interval needs to be less than the down time setting."
+msgstr ""
+
+#: usr/local/www/system_gateways_edit.php:611
+#: usr/local/www/system_gateways_edit.php:615
+msgid ""
+"NOTE: The Frequency Probe interval must be less than the Down time, "
+"otherwise the gateway will seem to go down then come up again at the next "
+"probe."
+msgstr ""
+
+#: usr/local/www/shortcuts.inc:96
+msgid "Main page for this section"
+msgstr ""
+
+#: usr/local/www/shortcuts.inc:120
+msgid "Status of items on this page"
+msgstr ""
+
+#: usr/local/www/shortcuts.inc:127
+msgid "Log entries for items on this page"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1102
+#: usr/local/www/vpn_openvpn_server.php:1129
+msgid ""
+"This is the IPv6 virtual network used for private communications between "
+"this server and client hosts expressed using CIDR (eg. fe80::/64). The first "
+"network address will be assigned to the server virtual interface. The "
+"remaining network addresses can optionally be assigned to connecting "
+"clients. (see Address Pool)"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1152
+#: usr/local/www/vpn_openvpn_server.php:1179
+msgid ""
+"The interface to which this tap instance will be bridged. This is not done "
+"automatically. You must assign this interface and create the bridge "
+"separately. This setting controls which existing IP address and subnet mask "
+"are used by OpenVPN for the bridge. Setting this to 'none' will cause the "
+"Server Bridge DHCP settings below to be ignored."
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1165
+#: usr/local/www/vpn_openvpn_server.php:1192
+msgid ""
+"When using tap mode as a multi-point server, you may optionally supply a "
+"DHCP range to use on the interface to which this tap instance is bridged. If "
+"these settings are left blank, DHCP will be passed through to the LAN, and "
+"the interface setting above will be ignored."
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1225
+#: usr/local/www/vpn_openvpn_client.php:799
+msgid "IPv4 Remote Network"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1229
+msgid ""
+"This is a network that will be routed through the tunnel, so that a site-to-"
+"site VPN can be established without manually changing the routing tables. "
+"Expressed as a CIDR range. If this is a site-to-site VPN, enter the remote "
+"LAN here. You may leave this blank if you don't want a site-to-site VPN"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1239
+#: usr/local/www/vpn_openvpn_client.php:813
+msgid "IPv6 Remote Network"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1243
+msgid ""
+"This is an IPv6 network that will be routed through the tunnel, so that a "
+"site-to-site VPN can be established without manually changing the routing "
+"tables. Expressed as an IP/PREFIX. If this is a site-to-site VPN, enter the "
+"remote LAN here. You may leave this blank if you don't want a site-to-site "
+"VPN"
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:293 usr/local/www/services_dhcp.php:274
+msgid ""
+"If you specify a mac allow list, it must contain only valid partial MAC "
+"addresses."
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:295 usr/local/www/services_dhcp.php:276
+msgid ""
+"If you specify a mac deny list, it must contain only valid partial MAC "
+"addresses."
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:699 usr/local/www/services_dhcp.php:701
+msgid ""
+"Editing Pool-Specific Options. To return to the Interface, click its tab "
+"above."
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:775 usr/local/www/services_dhcp.php:785
+msgid "Additional Pools"
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:777 usr/local/www/services_dhcp.php:787
+msgid ""
+"If you need additional pools of addresses inside of this subnet outside the "
+"above Range, they may be specified here."
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:780 usr/local/www/services_dhcp.php:790
+msgid "Pool Start"
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:781 usr/local/www/services_dhcp.php:791
+msgid "Pool End"
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:805 usr/local/www/services_dhcp.php:819
+msgid "Do you really want to delete this pool?"
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:958 usr/local/www/services_dhcp.php:971
+msgid "MAC Address Control"
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:961 usr/local/www/services_dhcp.php:974
+msgid "Show MAC Address Control"
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:965 usr/local/www/services_dhcp.php:978
+msgid ""
+"Enter a list of partial MAC addresses to allow, comma separated, no spaces, "
+"such as "
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:967 usr/local/www/services_dhcp.php:980
+msgid ""
+"Enter a list of partial MAC addresses to deny access, comma separated, no "
+"spaces, such as "
+msgstr ""
+
+#: usr/local/www/load_balancer_virtual_server_edit.php:89
+msgid "You cannot use spaces or slashes in the 'name' field."
+msgstr ""
+
+#: usr/local/www/guiconfig.inc:1009 usr/local/www/guiconfig.inc:1024
+msgid "move mouse out this alias to hide"
+msgstr ""
+
+#: usr/local/www/guiconfig.inc:1066 usr/local/www/guiconfig.inc:1081
+msgid "edit this alias"
+msgstr ""
+
+#: usr/local/www/guiconfig.inc:1077 usr/local/www/guiconfig.inc:1089
+#: usr/local/www/guiconfig.inc:1092 usr/local/www/guiconfig.inc:1104
+msgid "loading..."
+msgstr ""
+
+#: usr/local/www/system_firmware_settings.php:175
+#: usr/local/www/system_firmware_settings.php:184
+msgid "Dashboard check"
+msgstr ""
+
+#: usr/local/www/system_firmware_settings.php:179
+#: usr/local/www/system_firmware_settings.php:188
+msgid "Disable the automatic dashboard auto-update check."
+msgstr ""
+
+#: usr/local/www/services_ntpd.php:119
+msgid "Interfaces without an IP address will not be shown."
+msgstr ""
+
+#: usr/local/www/services_ntpd.php:121
+msgid "Selecting no interfaces will listen on all interfaces with a wildcard."
+msgstr ""
+
+#: usr/local/www/services_ntpd.php:122
+msgid ""
+"Selecting all interfaces will explicitly listen on only the interfaces/IPs "
+"specified."
+msgstr ""
+
+#: usr/local/www/services_ntpd.php:140
+msgid "The GPS must provide NMEA format output!"
+msgstr ""
+
+#: usr/local/www/services_ntpd.php:142
+msgid ""
+"All serial ports are listed, be sure to pick only the port with the GPS "
+"attached."
+msgstr ""
+
+#: usr/local/www/services_ntpd.php:144
+msgid "It is best to configure at least 2 servers under"
+msgstr ""
+
+#: usr/local/www/services_ntpd.php:144
+msgid "System > General"
+msgstr ""
+
+#: usr/local/www/services_ntpd.php:144
+msgid ""
+"to avoid loss of sync if the GPS data is not valid over time. Otherwise ntpd "
+"may only use values from the unsynchronized local clock when providing time "
+"to clients."
+msgstr ""
+
+#: usr/local/www/firewall_aliases.php:177
+msgid "Ports"
+msgstr ""
+
+#: usr/local/www/firewall_aliases.php:178
+msgid "Urls"
+msgstr ""
+
+#: usr/local/www/firewall_aliases.php:195
+#: usr/local/www/firewall_aliases.php:272
+msgid "Add a new alias"
+msgstr ""
+
+#: usr/local/www/firewall_aliases.php:255
+msgid "Edit alias"
+msgstr ""
+
+#: usr/local/www/firewall_aliases.php:256
+msgid "Delete alias"
+msgstr ""
+
+#: usr/local/www/services_captiveportal_zones_edit.php:64
+msgid "The zone name can only contain letters, digits, and underscores (_)."
+msgstr ""
+
+#: usr/local/www/services_captiveportal_zones_edit.php:105
+#: usr/local/www/services_captiveportal_zones_edit.php:101
+msgid "Zone name. Can only contain letters, digits, and underscores (_)."
+msgstr ""
+
+#: usr/local/www/diag_packet_capture.php:81
+msgid "Invalid interface."
+msgstr ""
+
+#: usr/local/www/diag_packet_capture.php:84
+msgid "Invalid address family."
+msgstr ""
+
+#: usr/local/www/diag_packet_capture.php:87
+msgid "Invalid protocol."
+msgstr ""
+
+#: usr/local/www/diag_packet_capture.php:92
+#, php-format
+msgid "A valid IP address or CIDR block must be specified. [%s]"
+msgstr ""
+
+#: usr/local/www/diag_packet_capture.php:97
+msgid "Invalid value specified for port."
+msgstr ""
+
+#: usr/local/www/diag_packet_capture.php:104
+msgid "Invalid value specified for packet length."
+msgstr ""
+
+#: usr/local/www/diag_packet_capture.php:111
+msgid "Invalid value specified for packet count."
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:148
+#: usr/local/www/vpn_ipsec_phase2.php:152
+msgid "A valid nat local network bit count must be specified."
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:150
+#: usr/local/www/vpn_ipsec_phase2.php:154
+msgid ""
+"You cannot configure a network type address for NAT while only an address "
+"type is selected for local source."
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:153
+#: usr/local/www/vpn_ipsec_phase2.php:157
+msgid "A valid nat local network IP address must be specified."
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:548
+#: usr/local/www/vpn_ipsec_phase2.php:569
+msgid ""
+"In case you need NAT/BINAT on this network specify the address to be "
+"translated"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_keys_edit.php:114
+msgid "VPN: IPsec: Edit Pre-Shared Key"
+msgstr ""
+
+#: usr/local/www/services_dhcp_edit.php:227
+#: usr/local/www/services_dhcp_edit.php:355
+msgid "If an IPv4 address is entered, the address must be outside of the pool."
+msgstr ""
+
+#: usr/local/www/services_dhcp_edit.php:229
+#: usr/local/www/services_dhcp_edit.php:357
+msgid ""
+"If no IPv4 address is given, one will be dynamically allocated from the pool."
+msgstr ""
+
+#: usr/local/www/interfaces.php:2460 usr/local/www/interfaces.php:2490
+msgid "WPA Pre-Shared Key"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:789
+#: usr/local/www/vpn_openvpn_client.php:808
+msgid ""
+"This is the IPv6 virtual network used for private communications between "
+"this client and the server expressed using CIDR (eg. fe80::/64). The first "
+"network address is assumed to be the server address and the second network "
+"address will be assigned to the client virtual interface"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:803
+msgid ""
+"This is a network that will be routed through the tunnel, so that a site-to-"
+"site VPN can be established without manually changing the routing tables. "
+"Expressed as a CIDR range. If this is a site-to-site VPN, enter the remote "
+"LAN here. You may leave this blank to only communicate with other clients"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:817
+msgid ""
+"This is an IPv6 network that will be routed through the tunnel, so that a "
+"site-to-site VPN can be established without manually changing the routing "
+"tables. Expressed as an IP/PREFIX. If this is a site-to-site VPN, enter the "
+"remote LAN here. You may leave this blank to only communicate with other "
+"clients"
+msgstr ""
+
+#: usr/local/www/vpn_l2tp.php:301 usr/local/www/vpn_l2tp.php:304
+msgid "Enable L2TP server"
+msgstr ""
+
+#: usr/local/www/vpn_l2tp.php:322 usr/local/www/vpn_l2tp.php:325
+msgid "Server Address"
+msgstr ""
+
+#: usr/local/www/vpn_l2tp.php:334 usr/local/www/vpn_l2tp.php:337
+msgid "Remote Address Range"
+msgstr ""
+
+#: usr/local/www/vpn_l2tp.php:384 usr/local/www/vpn_l2tp.php:387
+msgid "Authentication Type"
+msgstr ""
+
+#: usr/local/www/vpn_l2tp.php:429 usr/local/www/vpn_l2tp.php:432
+msgid "RADIUS Shared Secret"
+msgstr ""
+
+#: usr/local/www/vpn_l2tp.php:436 usr/local/www/vpn_l2tp.php:439
+msgid "RADIUS Issued IP's"
+msgstr ""
+
+#: usr/local/www/firewall_virtual_ip_edit.php:126
+#: usr/local/www/firewall_virtual_ip_edit.php:128
+msgid "The /31 and /32 subnet mask are invalid for CARP IPs."
+msgstr ""
+
+#: usr/local/www/firewall_virtual_ip_edit.php:130
+#: usr/local/www/firewall_virtual_ip_edit.php:132
+msgid "The /127 and /128 subnet mask are invalid for CARP IPs."
+msgstr ""
+
+#: usr/local/www/interfaces_gif.php:137 usr/local/www/interfaces_gif.php:141
+msgid ""
+"If you are using a GIF tunnel to connect to a Hurricane Electric (he.net) "
+"Tunnel Broker on a WAN with a dynamic IP, you may want to add a"
+msgstr ""
+
+#: usr/local/www/interfaces_gif.php:137 usr/local/www/interfaces_gif.php:141
+msgid "HE.net Tunnelbroker type DynDNS Entry"
+msgstr ""
+
+#: usr/local/www/interfaces_gif.php:137 usr/local/www/interfaces_gif.php:141
+msgid "to keep your tunnel functional when your IP changes."
+msgstr ""
+
+#: usr/local/www/widgets/widgets/system_information.widget.php:102
+#: usr/local/www/widgets/widgets/system_information.widget.php:103
+msgid "Obtaining update status"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase1.php:680
+#: usr/local/www/vpn_ipsec_phase1.php:701
+msgid "Input your Pre-Shared Key string"
+msgstr ""
+
+#: usr/local/www/diag_nanobsd.php:179
+msgid "Media Read/Write Status"
+msgstr ""
+
+#: usr/local/www/diag_nanobsd.php:192
+msgid "Read/Write"
+msgstr ""
+
+#: usr/local/www/diag_nanobsd.php:194
+msgid "Switch to Read-Only"
+msgstr ""
+
+#: usr/local/www/diag_nanobsd.php:196
+msgid "Read-Only"
+msgstr ""
+
+#: usr/local/www/diag_nanobsd.php:198
+msgid "Switch to Read/Write"
+msgstr ""
+
+#: usr/local/www/diag_nanobsd.php:201
+msgid ""
+"NOTE: This setting is only temporary, and can be switched dynamically in the "
+"background."
+msgstr ""
+
+#: usr/local/www/diag_nanobsd.php:208
+msgid "Keep media mounted read/write at all times."
+msgstr ""
+
+#: usr/local/www/services_dhcpv6.php:821 usr/local/www/services_dhcpv6.php:838
+msgid "Status: DHCPv6 leases"
+msgstr ""
+
+#: usr/local/www/diag_logs_filter.php:181
+msgid "Rule"
+msgstr ""
+
+#: usr/local/www/system_firmware.php:55
+msgid "Standard Kernel"
+msgstr ""
+
+#: usr/local/www/system_firmware.php:56
+msgid "Embedded Kernel"
+msgstr ""
+
+#: usr/local/www/vpn_l2tp.php:88 usr/local/www/vpn_pptp.php:96
+msgid ""
+"'Server address' parameter should NOT be set to any IP address currently in "
+"use on this firewall."
+msgstr ""
+
+#: usr/local/www/system_camanager.php:220
+#: usr/local/www/system_certmanager.php:299
+#: usr/local/www/system_certmanager.php:301
+msgid "Please select a valid Key Length."
+msgstr ""
+
+#: usr/local/www/system_camanager.php:222
+#: usr/local/www/system_certmanager.php:303
+msgid "Please select a valid Digest Algorithm."
+msgstr ""
+
+#: usr/local/www/system_camanager.php:477
+#: usr/local/www/system_certmanager.php:690
+#: usr/local/www/system_certmanager.php:863
+msgid "Digest Algorithm"
+msgstr ""
+
+#: usr/local/www/system_camanager.php:489
+#: usr/local/www/system_certmanager.php:702
+#: usr/local/www/system_certmanager.php:875
+msgid ""
+"NOTE: It is recommended to use an algorithm stronger than SHA1 when possible."
+msgstr ""
+
+#: usr/local/www/system_camanager.php:653
+#: usr/local/www/system_certmanager.php:1127
+msgid "Valid From"
+msgstr ""
+
+#: usr/local/www/system_camanager.php:658
+#: usr/local/www/system_certmanager.php:1132
+msgid "Valid Until"
+msgstr ""
+
+#: usr/local/www/services_captiveportal_ip_edit.php:107
+msgid "A valid subnet mask must be specified"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:160
+#: usr/local/www/vpn_openvpn_server.php:213
+msgid ""
+"Protocol and IP address families do not match. You cannot select an IPv6 "
+"protocol and an IPv4 IP address."
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:162
+#: usr/local/www/vpn_openvpn_server.php:215
+msgid ""
+"Protocol and IP address families do not match. You cannot select an IPv4 "
+"protocol and an IPv6 IP address."
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:164
+#: usr/local/www/vpn_openvpn_server.php:217
+msgid ""
+"An IPv4 protocol was selected, but the selected interface has no IPv4 "
+"address."
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:166
+#: usr/local/www/vpn_openvpn_server.php:219
+msgid ""
+"An IPv6 protocol was selected, but the selected interface has no IPv6 "
+"address."
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:818
+#: usr/local/www/vpn_openvpn_server.php:1252
+msgid "IPv4 Remote Network/s"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:822
+msgid ""
+"These are the 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. Expressed as a comma-separated list of one or more CIDR ranges. If "
+"this is a site-to-site VPN, enter the remote LAN/s here. You may leave this "
+"blank to only communicate with other clients"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:832
+#: usr/local/www/vpn_openvpn_server.php:1266
+msgid "IPv6 Remote Network/s"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:836
+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 "
+"tables. Expressed as a comma-separated list of one or more IP/PREFIX. If "
+"this is a site-to-site VPN, enter the remote LAN/s here. You may leave this "
+"blank to only communicate with other clients"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_client.php:909
+msgid "EXAMPLE:"
+msgstr ""
+
+#: usr/local/www/status_openvpn.php:201
+msgid "Show Routing Table"
+msgstr ""
+
+#: usr/local/www/status_openvpn.php:201
+msgid "Display OpenVPN's internal routing table for this server."
+msgstr ""
+
+#: usr/local/www/status_openvpn.php:207
+msgid "Routing Table"
+msgstr ""
+
+#: usr/local/www/status_openvpn.php:216
+msgid "Target Network"
+msgstr ""
+
+#: usr/local/www/status_openvpn.php:217
+msgid "Last Used"
+msgstr ""
+
+#: usr/local/www/status_openvpn.php:239
+msgid ""
+"An IP address followed by C indicates a host currently connected through the "
+"VPN."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:49 usr/local/www/diag_testport.php:114
+#: usr/local/www/fbegin.inc:218
+msgid "Test Port"
+msgstr ""
+
+#: usr/local/www/diag_testport.php:64
+msgid "Please enter a valid IP or hostname."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:68
+msgid "Please enter a valid port number."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:72
+msgid "Please enter a valid source port number, or leave the field blank."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:76
+msgid "You cannot connect to an IPv4 address using IPv6."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:79
+msgid "You cannot connect to an IPv6 address using IPv4."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:106
+msgid ""
+"This page allows you to perform a simple TCP connection test to determine if "
+"a host is up and accepting connections on a given port. This test does not "
+"function for UDP since there is no way to reliably determine if a UDP port "
+"accepts connections in this manner."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:108
+msgid ""
+"No data is transmitted to the remote host during this test, it will only "
+"attempt to open a connection and optionally display the data sent back from "
+"the server."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:132
+msgid "This should typically be left blank."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:136
+msgid "Show Remote Text"
+msgstr ""
+
+#: usr/local/www/diag_testport.php:139
+msgid ""
+"Shows the text given by the server when connecting to the port. Will take "
+"10+ seconds to display if checked."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:159
+msgid "IP Protocol"
+msgstr ""
+
+#: usr/local/www/diag_testport.php:166
+msgid "IPv4"
+msgstr ""
+
+#: usr/local/www/diag_testport.php:169
+msgid "IPv6"
+msgstr ""
+
+#: usr/local/www/diag_testport.php:173
+msgid ""
+"If you force IPv4 or IPv6 and use a hostname that does not contain a result "
+"using that protocol, it will result in an error. For example if you force "
+"IPv4 and use a hostname that only returns an AAAA IPv6 IP address, it will "
+"not work."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:186
+msgid "Port Test Results"
+msgstr ""
+
+#: usr/local/www/diag_testport.php:246
+msgid ""
+"No output received, or connection failed. Try with \"Show Remote Text\" "
+"unchecked first."
+msgstr ""
+
+#: usr/local/www/diag_testport.php:248
+msgid "Connection failed (Refused/Timeout)"
+msgstr ""
+
+#: usr/local/www/firewall_rules_edit.php:1295
+#: usr/local/www/firewall_nat_edit.php:780
+#: usr/local/www/firewall_nat_out_edit.php:647
+msgid ""
+"Hint: This prevents the rule on Master from automatically syncing to other "
+"CARP members. This does NOT prevent the rule from being overwritten on Slave."
+msgstr ""
+
+#: usr/local/www/interfaces_qinq.php:68
+msgid "QinQ interface does not exist"
+msgstr ""
+
+#: usr/local/www/interfaces_vlan_edit.php:84
+msgid "Interface supplied as parent is invalid"
+msgstr ""
+
+#: usr/local/www/system_firmware_settings.php:151
+#, php-format
+msgid ""
+"Entries denoted by \"Current architecture\" match the architecture of your "
+"current installation, such as %s. Changing architectures during an upgrade "
+"is not recommended, and may require a manual reboot after the update "
+"completes."
+msgstr ""
+
+#: usr/local/www/interfaces_lagg_edit.php:95
+#: usr/local/www/interfaces_lagg_edit.php:98
+msgid "Interface supplied as member is invalid"
+msgstr ""
+
+#: usr/local/www/interfaces_lagg_edit.php:101
+msgid "Protocol supplied is invalid"
+msgstr ""
+
+#: usr/local/www/status_captiveportal_expire.php:58
+#: usr/local/www/status_captiveportal_expire.php:73
+#: usr/local/www/status_captiveportal_vouchers.php:112
+#: usr/local/www/status_captiveportal.php:110
+#: usr/local/www/status_captiveportal_test.php:75
+#: usr/local/www/status_captiveportal_voucher_rolls.php:79
+msgid "Expire Vouchers"
+msgstr ""
+
+#: usr/local/www/status_captiveportal_expire.php:86
+msgid ""
+"Enter multiple vouchers separated by space or newline. All valid vouchers "
+"will be marked as expired"
+msgstr ""
+
+#: usr/local/www/firewall_nat_edit.php:835
+msgid ""
+"NOTE: The \"pass\" selection does not work properly with Multi-WAN. It will "
+"only work on an interface containing the default gateway."
+msgstr ""
+
+#: usr/local/www/interfaces_vlan.php:71
+msgid "Invalid VLAN interface."
+msgstr ""
+
+#: usr/local/www/interfaces_gif_edit.php:87
+msgid ""
+"The alias IP address family has to match the family of the remote peer "
+"address."
+msgstr ""
+
+#: usr/local/www/services_dhcp_edit.php:193
+msgid ""
+"The IP address must not be within the range configured on a DHCP pool for "
+"this interface."
+msgstr ""
+
+#: usr/local/www/services_dhcp_edit.php:388
+msgid "ARP Table Static Entry"
+msgstr ""
+
+#: usr/local/www/services_dhcp_edit.php:391
+msgid "Create an ARP Table Static Entry for this MAC & IP Address pair. "
+msgstr ""
+
+#: usr/local/www/firewall_virtual_ip_edit.php:117
+msgid "This IP address is being used by another interface or VIP."
+msgstr ""
+
+#: usr/local/www/diag_traceroute.php:122
+msgid "Reverse Address Lookup"
+msgstr ""
+
+#: usr/local/www/interfaces_bridge.php:70
+msgid "Invalid bridge interface."
+msgstr ""
+
+#: usr/local/www/diag_smart.php:339
+msgid "Perform Self-tests"
+msgstr ""
+
+#: usr/local/www/diag_smart.php:384
+msgid "Self-test"
+msgstr ""
+
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1484
+#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:1427
+#: usr/local/www/wizards/traffic_shaper_wizard.inc:1364
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1225
+msgid "Connections From Upstream SIP Server"
+msgstr ""
+
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:1497
+#: usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:1440
+#: usr/local/www/wizards/traffic_shaper_wizard.inc:1377
+#: usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc:1238
+msgid "Connections To Upstream SIP Server"
+msgstr ""
+
+#: usr/local/www/vpn_pppoe_edit.php:149
+msgid "Wrong data submitted"
+msgstr ""
+
+#: usr/local/www/license.php:158
+msgid "1992-2012 The FreeBSD Project. All rights reserved"
+msgstr ""
+
+#: usr/local/www/license.php:161
+msgid "1999-2010 The PHP Group. All rights reserved."
+msgstr ""
+
+#: usr/local/www/license.php:164
+msgid "2004, Jan Knescke, incremental"
+msgstr ""
+
+#: usr/local/www/license.php:168
+msgid "2004-2012 Internet Software Consortium, Inc."
+msgstr ""
+
+#: usr/local/www/license.php:169
+msgid "1995-2003 Internet Software Consortium"
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:352
+msgid ""
+"The specified range must not be within the DHCP range for this interface."
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:361
+msgid ""
+"The specified range must not be within the range configured on a DHCP pool "
+"for this interface."
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:713
+msgid "Pool Description"
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:903
+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 DHCPd process is Primary or Secondary. Ensure one machine's "
+"advskew<20 (and the other is >20)."
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:946
+msgid ""
+"By default DHCP leases are displayed in UTC time. By checking this\n"
+"\t\t\t\t\t\tbox DHCP lease time will be displayed in local time and set to "
+"time zone selected. This will be used for all DHCP interfaces lease time."
+msgstr ""
+
+#: usr/local/www/services_dhcp.php:1146
+msgid "DHCP Static Mappings for this interface."
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:133
+msgid "View type:"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:136
+msgid "Label"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:141
+msgid "Speed"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:150
+msgid "Age"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:151
+msgid "Bytes"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:152
+msgid "Destination Address"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:154
+msgid "Expiry"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:156
+msgid "Peak"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:157
+msgid "Packet"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:161
+msgid "Source Address"
+msgstr ""
+
+#: usr/local/www/diag_system_pftop.php:166
+msgid "Number of States:"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:357
+msgid "On AC Power Mode"
+msgstr ""
+
+#: usr/local/www/system_advanced_misc.php:365
+msgid "On Battery Power Mode"
+msgstr ""
+
+#: usr/local/www/bandwidth_by_ip.php:24
+msgid "Wrong Interface"
+msgstr ""
+
+#: usr/local/www/services_dhcpv6.php:601
+msgid "Prefix Delegation Size"
+msgstr ""
+
+#: usr/local/www/services_dhcpv6.php:846
+msgid "DHCPv6 Static Mappings for this interface."
+msgstr ""
+
+#: usr/local/www/system_authservers.php:217
+msgid "RADIUS Timeout value must be numeric and positive."
+msgstr ""
+
+#: usr/local/www/system_authservers.php:731
+msgid "Authentication Timeout"
+msgstr ""
+
+#: usr/local/www/system_authservers.php:734
+msgid ""
+"This value controls how long, in seconds, that the RADIUS server may take to "
+"respond to an authentication request."
+msgstr ""
+
+#: usr/local/www/system_authservers.php:735
+msgid "If left blank, the default value is 5 seconds."
+msgstr ""
+
+#: usr/local/www/system_authservers.php:736
+msgid ""
+"NOTE: If you are using an interactive two-factor authentication system, "
+"increase this timeout to account for how long it will take the user to "
+"receive and enter a token."
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:80
+msgid "The Firewall Adaptive values must be set together."
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:82
+msgid "The Firewall Adaptive Start value must be an integer."
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:85
+msgid "The Firewall Adaptive End value must be an integer."
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:345
+msgid "Firewall Adaptive Timeouts"
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:347
+msgid ""
+"Timeouts for states can be scaled adaptively as the number of state table "
+"entries grows."
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:350
+msgid ""
+"When the number of state entries exceeds this value, adaptive scaling "
+"begins. All timeout values are scaled linearly with factor (adaptive.end - "
+"number of states) / (adaptive.end - adaptive.start)."
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:354
+msgid ""
+"When reaching this number of state entries, all timeout values become zero, "
+"effectively purging all state entries immediately. This value is used to "
+"define the scale factor, it should not actually be reached (set a lower "
+"state limit, see below)."
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:356
+msgid "Note: Leave this blank for the default(0)."
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:447
+msgid "Bogon Networks"
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:450
+msgid "Update Frequency"
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:453
+msgid "Monthly"
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:454
+msgid "Weekly"
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:455
+msgid "Daily"
+msgstr ""
+
+#: usr/local/www/system_advanced_firewall.php:458
+msgid ""
+"The frequency of updating the lists of IP addresses that are reserved (but "
+"not RFC 1918) or not yet assigned by IANA."
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:227
+msgid ""
+"The NAS-Identifier must be 3-253 characters long and should only contain "
+"ASCII characters."
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:593
+msgid "Allow only users/groups with 'Captive portal login' privilege set"
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:760
+msgid "MAC authentication secret"
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:823
+msgid "Accounting Style"
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:824
+msgid "Invert Acct-Input-Octets and Acct-Output-Octets"
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:825
+msgid ""
+"When this is enabled, data counts for RADIUS accounting packets will be "
+"taken from the client perspective, not the NAS. Acct-Input-Octets will "
+"represent download, and Acct-Output-Octets will represent upload."
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:829
+msgid "NAS Identifier"
+msgstr ""
+
+#: usr/local/www/services_captiveportal.php:831
+msgid "Specify a NAS identifier to override the default value"
+msgstr ""
+
+#: usr/local/www/pkg_mgr_install.php:193
+msgid "No packages are installed."
+msgstr ""
+
+#: usr/local/www/interfaces_bridge_edit.php:154
+msgid "A member interface passed does not exist in configuration"
+msgstr ""
+
+#: usr/local/www/status_queues.php:150
+msgid "PPS"
+msgstr ""
+
+#: usr/local/www/status_queues.php:152
+msgid "Borrows"
+msgstr ""
+
+#: usr/local/www/status_queues.php:153
+msgid "Suspends"
+msgstr ""
+
+#: usr/local/www/status_queues.php:154
+msgid "Drops"
+msgstr ""
+
+#: usr/local/www/status_queues.php:155
+msgid "Length"
+msgstr ""
+
+#: usr/local/www/widgets/widgets/dyn_dns_status.widget.php:51
+msgid "Int."
+msgstr ""
+
+#: usr/local/www/widgets/widgets/log.widget.php:164
+msgid "IF"
+msgstr ""
+
+#: usr/local/www/widgets/widgets/log.widget.php:167
+msgid "Prot"
+msgstr ""
+
+#: usr/local/www/services_dnsmasq.php:199
+msgid "DNS Query Forwarding"
+msgstr ""
+
+#: usr/local/www/services_dnsmasq.php:202
+msgid "Query DNS servers sequentially"
+msgstr ""
+
+#: usr/local/www/services_dnsmasq.php:203
+#, php-format
+msgid ""
+"If this option is set, %s DNS Forwarder (dnsmasq) will query the DNS servers "
+"sequentially in the order specified (<i>System - General Setup - DNS "
+"Servers</i>), rather than all at once in parallel. "
+msgstr ""
+
+#: usr/local/www/services_dnsmasq.php:212
+msgid "Require domain"
+msgstr ""
+
+#: usr/local/www/services_dnsmasq.php:213
+#, php-format
+msgid ""
+"If this option is set, %s DNS Forwarder (dnsmasq) will not forward A or AAAA "
+"queries for plain names, without dots or domain parts, to upstream name "
+"servers. If the name is not known from /etc/hosts or DHCP then a \"not found"
+"\" answer is returned. "
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase1.php:183
+msgid ""
+"A valid remote gateway IPv4 address must be specified or you need to change "
+"protocol to IPv6"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase1.php:185
+msgid ""
+"A valid remote gateway IPv6 address must be specified or you need to change "
+"protocol to IPv4"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase1.php:205
+msgid "There is a Phase 2 using IPv6, you cannot use IPv4."
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase1.php:209
+msgid "There is a Phase 2 using IPv4, you cannot use IPv6."
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1226
+msgid "IPv4 Local Network/s"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1230
+msgid ""
+"These are the IPv4 networks that will be accessible from the remote "
+"endpoint. Expressed as a comma-separated list of one or more CIDR ranges. "
+"You may leave this blank if you don't want to add a route to the local "
+"network through this tunnel on the remote machine. This is generally set to "
+"your LAN network"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1239
+msgid "IPv6 Local Network/s"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1243
+msgid ""
+"These are the IPv6 networks that will be accessible from the remote "
+"endpoint. Expressed as a comma-separated list of one or more IP/PREFIX. You "
+"may leave this blank if you don't want to add a route to the local network "
+"through this tunnel on the remote machine. This is generally set to your LAN "
+"network"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1256
+msgid ""
+"These are the 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. Expressed as a comma-separated list of one or more CIDR ranges. If "
+"this is a site-to-site VPN, enter the remote LAN/s here. You may leave this "
+"blank if you don't want a site-to-site VPN"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1270
+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 "
+"tables. Expressed as a comma-separated list of one or more IP/PREFIX. If "
+"this is a site-to-site VPN, enter the remote LAN/s here. You may leave this "
+"blank if you don't want a site-to-site VPN"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1405
+msgid "Topology"
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1415
+msgid ""
+"Allocate only one IP per client (topology subnet), rather than an isolated "
+"subnet per client (topology net30)."
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1422
+msgid ""
+"Relevant when supplying a virtual adapter IP address to clients when using "
+"tun mode on IPv4."
+msgstr ""
+
+#: usr/local/www/vpn_openvpn_server.php:1423
+msgid ""
+"Some clients may require this even for IPv6, such as OpenVPN Connect (iOS/"
+"Android). Others may break if it is present, such as older versions of "
+"OpenVPN or clients such as Yealink phones."
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:133
+msgid ""
+"A valid local network IPv4 address must be specified or you need to change "
+"Mode to IPv6"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:135
+msgid ""
+"A valid local network IPv6 address must be specified or you need to change "
+"Mode to IPv4"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:159
+msgid ""
+"A valid nat local network IPv4 address must be specified or you need to "
+"change Mode to IPv6"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:161
+msgid ""
+"A valid nat local network IPv6 address must be specified or you need to "
+"change Mode to IPv4"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:183
+msgid ""
+"A valid remote network IPv4 address must be specified or you need to change "
+"Mode to IPv6"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:185
+msgid ""
+"A valid remote network IPv6 address must be specified or you need to change "
+"Mode to IPv4"
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:192
+msgid "Mobile IPsec only supports Tunnel mode."
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:287
+msgid "Phase 1 is using IPv4. You cannot use Tunnel IPv6 on Phase 2."
+msgstr ""
+
+#: usr/local/www/vpn_ipsec_phase2.php:289
+msgid "Phase 1 is using IPv6. You cannot use Tunnel IPv4 on Phase 2."
+msgstr ""
+
+#: usr/local/www/interfaces_assign.php:210
+#, php-format
+msgid ""
+"You cannot set port %s to interface %s because this interface is a member of "
+"%s."
+msgstr ""
+
+#: usr/local/www/services_snmp.php:395
+msgid "UCD"
+msgstr ""
+
+#: usr/local/www/services_snmp.php:397
+msgid "Regex"
+msgstr ""
+
+#: usr/local/www/interfaces.php:553
+msgid "This IPv4 address is being used by another interface or VIP."
+msgstr ""
+
+#: usr/local/www/interfaces.php:557
+msgid "This IPv4 address conflicts with a Static Route."
+msgstr ""
+
+#: usr/local/www/interfaces.php:568
+msgid "This IPv6 address is being used by another interface or VIP."
+msgstr ""
+
+#: usr/local/www/interfaces.php:572
+msgid "This IPv6 address conflicts with a Static Route."
+msgstr ""
+
+#: usr/local/www/interfaces.php:2651
+msgid ""
+"Note: The update frequency can be changed under System->Advanced Firewall/"
+"NAT settings."
+msgstr ""
+
+#: etc/inc/priv/user.priv.inc:6
+msgid "User - Services - Captive portal login"
+msgstr ""
+
+#: etc/inc/priv/user.priv.inc:7
+msgid "Indicates whether the user is able to login on the captive portal."
+msgstr ""
+
+#: etc/inc/pkg-utils.inc:617 etc/inc/pkg-utils.inc:618
+#, php-format
+msgid "Package %s is not supported on this version."
+msgstr ""
+
+#: etc/inc/priv.defs.inc:732
+msgid "WebCfg - Services: Captive portal: Allowed Hostnames page"
+msgstr ""
+
+#: etc/inc/priv.defs.inc:733 etc/inc/priv.defs.inc:739
+msgid "Allow access to the 'Services: Captive portal: Allowed Hostnames' page."
+msgstr ""
+
+#: etc/inc/priv.defs.inc:738
+msgid "WebCfg - Services: Captive portal: Edit Allowed Hostnames page"
+msgstr ""
+
+#: etc/inc/priv.defs.inc:1136
+msgid "WebCfg - System: User Manager: settings page"
+msgstr ""
+
+#: etc/inc/priv.defs.inc:1137
+msgid "Allow access to the 'System: User Manager: settings' page."
+msgstr ""
+
+#: etc/inc/interfaces.inc:294
+#, php-format
+msgid "interface_qinq_configure called with invalid if.%s"
+msgstr ""
+
+#: etc/inc/interfaces.inc:401
+msgid "Creating wireless clone interfaces..."
+msgstr ""
+
+#: etc/inc/interfaces.inc:1139
+msgid "Wrong parameters used during interface_bring_down"
+msgstr ""
+
+#: etc/inc/services.inc:2013
+#, php-format
+msgid "Removed cron job for %s"
+msgstr ""
+
+#: etc/inc/openvpn.inc:257
+#, php-format
+msgid "The field '%s' must contain a single valid %s CIDR range."
+msgstr ""
+
+#: etc/inc/openvpn.inc:269
+#, php-format
+msgid ""
+"The field '%s' must contain only valid %s CIDR range(s) separated by commas."
+msgstr ""
+
+#: etc/inc/vpn.inc:1780
+#, php-format
+msgid ""
+"Removing SPDs from tunnel gw '%1$s'. Local Subnet '%2$s' and Remote Subnet "
+"'%3$s'. Reloading policy"
+msgstr ""
+
+#: etc/inc/pfsense-utils.inc:938
+msgid "Disabling auto login was not possible."
+msgstr ""
+
+#: etc/inc/pfsense-utils.inc:956
+msgid "Enabled console auto login, console menu is NOT password protected."
+msgstr ""
+
+#: etc/inc/pfsense-utils.inc:958
+msgid "Disabled console auto login, console menu is password protected."
+msgstr ""
diff --git a/usr/local/www/bandwidth_by_ip.php b/usr/local/www/bandwidth_by_ip.php
index ada7209..8f91489 100755
--- a/usr/local/www/bandwidth_by_ip.php
+++ b/usr/local/www/bandwidth_by_ip.php
@@ -19,31 +19,44 @@ $listedIPs = "";
//get interface IP and break up into an array
$interface = $_GET['if'];
-$real_interface = convert_friendly_interface_to_real_interface_name($interface);
+$real_interface = get_real_interface($interface);
+if (!does_interface_exist($real_interface)) {
+ echo gettext("Wrong Interface");
+ return;
+}
$intip = find_interface_ip($real_interface);
-$intip = explode (".", $intip);
-//get interface netmask
+//get interface subnet
$netmask = find_interface_subnet($real_interface);
+$intsubnet = gen_subnet($intip, $netmask) . "/$netmask";
//get the sort method
$sort = $_GET['sort'];
if ($sort == "out")
{$sort_method = "-T";}
else
{$sort_method = "-R";}
-//use the same class of the specified interface
-if ($netmask >= 24) {
- $intsubnet = $intip[0] . "." . $intip[1] . "." . $intip[2] . ".0/24";
-}
-elseif ($netmask >=16){
- $intsubnet = $intip[0] . "." . $intip[1] . ".0.0/16";
-}
-else {
- $intsubnet = $intip[0] . ".0.0.0/8";
+
+$filter = $_GET['filter'];
+
+// get the desired format for displaying the host name or IP
+$hostipformat = $_GET['hostipformat'];
+$iplookup = array();
+// If hostname display is requested and the DNS forwarder does not already have DHCP static names registered,
+// then load the DHCP static mappings into an array keyed by IP address.
+if (($hostipformat != "") && (!isset($config['dnsmasq']['regdhcpstatic']))) {
+ if (is_array($config['dhcpd'])) {
+ foreach ($config['dhcpd'] as $ifdata) {
+ if (is_array($ifdata['staticmap'])) {
+ foreach ($ifdata['staticmap'] as $hostent) {
+ if (($hostent['ipaddr'] != "") && ($hostent['hostname'] != "")) {
+ $iplookup[$hostent['ipaddr']] = $hostent['hostname'];
+ }
+ }
+ }
+ }
+ }
}
-exec("/usr/local/bin/rate -i {$real_interface} -nlq 1 -Aba 20 {$sort_method} -c {$intsubnet} | tr \"|\" \" \" | awk '{ printf \"%s:%s:%s:%s:%s\\n\", $1, $2, $4, $6, $8 }'", $listedIPs);
-unset($bandwidthinfo);
-unset($receivebytesarray);
-unset($transmitbytesarray);
+
+$_grb = exec("/usr/local/bin/rate -i {$real_interface} -nlq 1 -Aba 20 {$sort_method} -c {$intsubnet} | tr \"|\" \" \" | awk '{ printf \"%s:%s:%s:%s:%s\\n\", $1, $2, $4, $6, $8 }'", $listedIPs);
$someinfo = false;
for ($x=2; $x<12; $x++){
@@ -54,13 +67,36 @@ for ($x=2; $x<12; $x++){
$emptyinfocounter = 1;
if ($bandwidthinfo != "") {
$infoarray = explode (":",$bandwidthinfo);
- //print IP of host;
- echo $infoarray[0] . ";" . $infoarray[1] . ";" . $infoarray[2] . "|";
+ if (($filter == "") ||
+ (($filter == "local") && (ip_in_subnet($infoarray[0], $intsubnet))) ||
+ (($filter == "remote") && (!ip_in_subnet($infoarray[0], $intsubnet)))) {
+ if ($hostipformat == "") {
+ $addrdata = $infoarray[0];
+ } else {
+ // $hostipformat is "hostname" or "fqdn"
+ $addrdata = gethostbyaddr($infoarray[0]);
+ if ($addrdata == $infoarray[0]) {
+ // gethostbyaddr() gave us back the IP address, so try the static mapping array
+ if ($iplookup[$infoarray[0]] != "")
+ $addrdata = $iplookup[$infoarray[0]];
+ } else {
+ if ($hostipformat == "hostname") {
+ // Only pass back the first part of the name, not the FQDN.
+ $name_array = explode(".", $addrdata);
+ $addrdata = $name_array[0];
+ }
+ }
+ }
+ //print host information;
+ echo $addrdata . ";" . $infoarray[1] . ";" . $infoarray[2] . "|";
- //mark that we collected information
- $someinfo = true;
+ //mark that we collected information
+ $someinfo = true;
+ }
}
}
+unset($bandwidthinfo, $_grb);
+unset($listedIPs);
//no bandwidth usage found
if ($someinfo == false)
diff --git a/usr/local/www/classes/maintable.inc b/usr/local/www/classes/maintable.inc
index 2396a0d..77b29f3 100644
--- a/usr/local/www/classes/maintable.inc
+++ b/usr/local/www/classes/maintable.inc
@@ -73,7 +73,7 @@ class MainTable {
function display() {
echo "<!-- begin content table -->\n";
- echo "<table class=\"tabcont\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
+ echo "<table class=\"tabcont\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" summary=\"display\">\n";
echo " <!-- begin content table header -->\n";
echo $this->display_header();
echo " <!-- end content table header -->\n";
@@ -95,10 +95,10 @@ class MainTable {
}
echo " <td width=\"{$this->width[$this->columns - 1]}%\" class=\"listhdr\">{$this->headers[$this->columns - 1]}</td>\n";
echo " <td width=\"10%\" class=\"list\">\n";
- echo " <table border=\"0\" cellspacing=\"0\" cellpadding=\"1\">\n";
+ echo " <table border=\"0\" cellspacing=\"0\" cellpadding=\"1\" summary=\"display header\">\n";
echo " <tr>\n";
echo " <td width=\"17\"></td>\n";
- echo " <td valign=\"middle\"><a href=\"{$this->edit_uri}\"><img src=\"/themes/{$g['theme']}/images/icons/icon_plus.gif\" width=\"17\" height=\"17\" border=\"0\"></a></td>\n";
+ echo " <td valign=\"middle\"><a href=\"{$this->edit_uri}\"><img src=\"/themes/{$g['theme']}/images/icons/icon_plus.gif\" width=\"17\" height=\"17\" border=\"0\" alt=\"plus\" /></a></td>\n";
echo " </tr>\n";
echo " </table>\n";
echo " </td>\n";
@@ -116,7 +116,7 @@ class MainTable {
} else {
$cl = 'listr';
}
- echo " <td class=\"{$cl}\" onClick=\"fr_toggle({$cur_row})\" id=\"frd{$cur_row}\" ondblclick=\"document.location='{$this->edit_uri}?id={$cur_row}'\">\n";
+ echo " <td class=\"{$cl}\" onclick=\"fr_toggle({$cur_row})\" id=\"frd{$cur_row}\" ondblclick=\"document.location='{$this->edit_uri}?id={$cur_row}'\">\n";
if (is_array($row[$this->cname[$col]])) {
foreach ($row[$this->cname[$col]] as $data) {
echo " {$data}<br/>\n";
@@ -126,10 +126,10 @@ class MainTable {
}
echo " </td>\n";
}
- echo " <td class=\"listbg\" onClick=\"fr_toggle({$cur_row})\" id=\"frd{$cur_row}\" ondblclick=\"document.location=\'{$this->edit_uri}?id={$cur_row}\'\">\n";
+ echo " <td class=\"listbg\" onclick=\"fr_toggle({$cur_row})\" id=\"frd{$cur_row}\" ondblclick=\"document.location=\'{$this->edit_uri}?id={$cur_row}\'\">\n";
echo " <font color=\"#FFFFFF\">{$row[$this->cname[$this->columns - 1]]}</font>\n";
echo " </td>\n";
- echo " <td class=\"list\" nowrap>\n";
+ echo " <td class=\"list nowrap\">\n";
$this->display_buttons($cur_row);
echo " </td>\n";
echo "</tr>\n";
@@ -142,22 +142,23 @@ class MainTable {
echo "<tr>\n";
echo " <td class=\"list\" colspan=\"{$this->columns}\"></td>\n";
echo " <td class=\"list\">\n";
- echo " <table border=\"0\" cellspacing=\"0\" cellpadding=\"1\">\n";
+ echo " <table border=\"0\" cellspacing=\"0\" cellpadding=\"1\" summary=\"display footer\">\n";
echo " <tr>\n";
echo " <td width=\"17\"></td>\n";
- echo " <td valign=\"middle\"><a href=\"{$this->edit_uri}\"><img src=\"/themes/{$g['theme']}/images/icons/icon_plus.gif\" width=\"17\" height=\"17\" border=\"0\"></a></td>\n";
+ echo " <td valign=\"middle\"><a href=\"{$this->edit_uri}\"><img src=\"/themes/{$g['theme']}/images/icons/icon_plus.gif\" width=\"17\" height=\"17\" border=\"0\" alt=\"plus\" /></a></td>\n";
echo " </tr>\n";
echo " </table>\n";
echo " </td>\n";
echo "</tr>\n";
}
private function display_buttons($row) {
- echo " <table border=\"0\" cellspacing=\"0\" cellpadding=\"1\">\n";
+ echo " <table border=\"0\" cellspacing=\"0\" cellpadding=\"1\" summary=\"display buttons\">\n";
echo " <tr>\n";
if ($this->buttons['move'])
echo $this->display_button('move', $row);
if ($this->buttons['edit'])
echo $this->display_button('edit', $row);
+ echo " </tr>\n";
echo " <tr>\n";
if ($this->buttons['del'])
echo $this->display_button('del', $row);
@@ -171,19 +172,19 @@ class MainTable {
echo "<td valign=\"middle\">";
switch ($button) {
case "move": {
- echo "<input name=\"move_{$row}\" type=\"image\" src=\"./themes/{$g['theme']}/images/icons/icon_left.gif\" width=\"17\" height=\"17\" title=\"Move selected entries before this entry\" onMouseOver=\"fr_insline({$row}, true)\" onMouseOut=\"fr_insline({$row}, false)\">";
+ echo "<input name=\"move_{$row}\" type=\"image\" src=\"./themes/{$g['theme']}/images/icons/icon_left.gif\" width=\"17\" height=\"17\" title=\"Move selected entries before this entry\" onmouseover=\"fr_insline({$row}, true)\" onmouseout=\"fr_insline({$row}, false)\" />";
break;
}
case "edit": {
- echo "<a href=\"{$this->edit_uri}?id={$row}\"><img src=\"/themes/{$g['theme']}/images/icons/icon_e.gif\" width=\"17\" height=\"17\" border=\"0\" title=\"Edit entry\"></a>";
+ echo "<a href=\"{$this->edit_uri}?id={$row}\"><img src=\"/themes/{$g['theme']}/images/icons/icon_e.gif\" width=\"17\" height=\"17\" border=\"0\" title=\"Edit entry\" alt=\"edit\" /></a>";
break;
}
case "del": {
- echo "<a href=\"{$this->my_uri}?act=del&id={$row}\" onclick=\"return confirm(\'Do you really want to delete this entry?\')\"><img src=\"/themes/{$g['theme']}/images/icons/icon_x.gif\" width=\"17\" height=\"17\" border=\"0\" title=\"Delete entry\"></a>";
+ echo "<a href=\"{$this->my_uri}?act=del&amp;id={$row}\" onclick=\"return confirm(\'Do you really want to delete this entry?\')\"><img src=\"/themes/{$g['theme']}/images/icons/icon_x.gif\" width=\"17\" height=\"17\" border=\"0\" title=\"Delete entry\" alt=\"delete\" /></a>";
break;
}
case "dup": {
- echo "<a href=\"{$this->edit_uri}?act=dup&id={$row}\"><img src=\"/themes/{$g['theme']}/images/icons/icon_plus.gif\" width=\"17\" height=\"17\" border=\"0\" title=\"Duplicate entry\"></a>";
+ echo "<a href=\"{$this->edit_uri}?act=dup&amp;id={$row}\"><img src=\"/themes/{$g['theme']}/images/icons/icon_plus.gif\" width=\"17\" height=\"17\" border=\"0\" title=\"Duplicate entry\" alt=\"duplicate\" /></a>";
break;
}
}
diff --git a/usr/local/www/crash_reporter.php b/usr/local/www/crash_reporter.php
index 3cbc51f..d3146b8 100755
--- a/usr/local/www/crash_reporter.php
+++ b/usr/local/www/crash_reporter.php
@@ -101,7 +101,9 @@ exec("/usr/bin/grep -vi warning /tmp/PHP_errors.log", $php_errors);
<?php
if (gettext($_POST['Submit']) == "Yes") {
echo gettext("Processing...");
- file_put_contents("/var/crash/crashreport_header.txt", $crash_report_header);
+ if (!is_dir("/var/crash"))
+ mwexec("/bin/mkdir -p /var/crash");
+ @file_put_contents("/var/crash/crashreport_header.txt", $crash_report_header);
if(file_exists("/tmp/PHP_errors.log"))
exec("cp /tmp/PHP_errors.log /var/crash/");
exec("/usr/bin/gzip /var/crash/*");
diff --git a/usr/local/www/css/table.css b/usr/local/www/css/table.css
index 29ae503..3393db3 100644
--- a/usr/local/www/css/table.css
+++ b/usr/local/www/css/table.css
@@ -40,3 +40,7 @@ if theme changes are needed include a table.css in the /themes/yourtheme/ */
border-left: none;
border-bottom: 2px solid #999999;
}
+.ellipsis {
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
diff --git a/usr/local/www/diag_arp.php b/usr/local/www/diag_arp.php
index f79efce..c24ca62 100755
--- a/usr/local/www/diag_arp.php
+++ b/usr/local/www/diag_arp.php
@@ -321,14 +321,15 @@ $mac_man = load_mac_manufacturer_table();
<td class="listlr"><?=$entry['ip'];?></td>
<td class="listr">
<?php
- $mac=$entry['mac'];
+ $mac=trim($entry['mac']);
$mac_hi = strtoupper($mac[0] . $mac[1] . $mac[3] . $mac[4] . $mac[6] . $mac[7]);
print $mac;
if(isset($mac_man[$mac_hi])){ print "<br/><font size=\"-2\"><i>{$mac_man[$mac_hi]}</i></font>"; }
?>
+ </td>
<td class="listr">
<?php
- echo str_replace("Z_ ", "", $entry['dnsresolve']);
+ echo trim(str_replace("Z_ ", "", $entry['dnsresolve']));
?>
</td>
<td class="listr"><?=$hwif[$entry['interface']];?></td>
@@ -337,6 +338,9 @@ $mac_man = load_mac_manufacturer_table();
</table>
</td>
</tr>
+ <tr>
+ <td><br/><?= gettext("NOTE: Local IPv6 peers use") ?> <a href="diag_ndp.php"><?= gettext("NDP") ?></a> <?= gettext("instead of ARP") ?>.</td>
+ </tr>
</table>
<?php include("fend.inc"); ?>
diff --git a/usr/local/www/diag_authentication.php b/usr/local/www/diag_authentication.php
index 26c2dca..5b33d88 100755
--- a/usr/local/www/diag_authentication.php
+++ b/usr/local/www/diag_authentication.php
@@ -1,6 +1,6 @@
<?php
/*
- diag_arp.php
+ diag_authentication.php
part of the pfSense project (http://www.pfsense.org)
Copyright (C) 2010 Ermal Luçi
diff --git a/usr/local/www/diag_backup.php b/usr/local/www/diag_backup.php
index d84a501..6bcdb6b 100755
--- a/usr/local/www/diag_backup.php
+++ b/usr/local/www/diag_backup.php
@@ -61,7 +61,7 @@ $rrdtool = "/usr/bin/nice -n20 /usr/local/bin/rrdtool";
function rrd_data_xml() {
global $rrddbpath;
global $rrdtool;
-
+
$result = "\t<rrddata>\n";
$rrd_files = glob("{$rrddbpath}/*.rrd");
$xml_files = array();
@@ -176,7 +176,7 @@ function check_and_returnif_section_exists($section) {
function spit_out_select_items($name, $showall) {
global $config;
-
+
$areas = array("aliases" => gettext("Aliases"),
"captiveportal" => gettext("Captive Portal"),
"voucher" => gettext("Captive Portal Vouchers"),
@@ -203,7 +203,7 @@ function spit_out_select_items($name, $showall) {
$select = "<select name=\"{$name}\" id=\"{$name}\">";
$select .= "<option VALUE=\"\">" . gettext("ALL") . "</option>";
-
+
if($showall == true)
foreach($areas as $area => $areaname)
$select .= "<option value='{$area}'>{$areaname}</option>\n";
@@ -225,18 +225,18 @@ function spit_out_select_items($name, $showall) {
</script>
END_SCRIPT_BLOCK;
}
-
+
echo $select;
-
+
}
if ($_POST['apply']) {
- ob_flush();
- flush();
+ ob_flush();
+ flush();
conf_mount_rw();
clear_subsystem_dirty("restore");
conf_mount_ro();
- exit;
+ exit;
}
if ($_POST) {
@@ -251,32 +251,32 @@ if ($_POST) {
$mode = "download";
else if (stristr($_POST['Submit'], gettext("Restore version")))
$mode = "restore_ver";
-
+
if ($_POST["nopackages"] <> "")
$options = "nopackages";
-
+
if ($_POST["ver"] <> "")
$ver2restore = $_POST["ver"];
-
+
if ($mode) {
-
+
if ($mode == "download") {
-
+
if ($_POST['encrypt']) {
if(!$_POST['encrypt_password'] || !$_POST['encrypt_passconf'])
$input_errors[] = gettext("You must supply and confirm the password for encryption.");
if($_POST['encrypt_password'] != $_POST['encrypt_passconf'])
$input_errors[] = gettext("The supplied 'Password' and 'Confirm' field values must match.");
}
-
+
if (!$input_errors) {
-
+
//$lockbckp = lock('config');
-
+
$host = "{$config['system']['hostname']}.{$config['system']['domain']}";
$name = "config-{$host}-".date("YmdHis").".xml";
$data = "";
-
+
if($options == "nopackages") {
if(!$_POST['backuparea']) {
/* backup entire configuration */
@@ -303,14 +303,9 @@ if ($_POST) {
$name = "{$_POST['backuparea']}-{$name}";
}
}
-
+
//unlock($lockbckp);
-
- if ($_POST['encrypt']) {
- $data = encrypt_data($data, $_POST['encrypt_password']);
- tagfile_reformat($data, $data, "config.xml");
- }
-
+
/*
* Backup RRD Data
*/
@@ -319,7 +314,12 @@ if ($_POST) {
$closing_tag = "</" . $g['xml_rootobj'] . ">";
$data = str_replace($closing_tag, $rrd_data_xml . $closing_tag, $data);
}
-
+
+ if ($_POST['encrypt']) {
+ $data = encrypt_data($data, $_POST['encrypt_password']);
+ tagfile_reformat($data, $data, "config.xml");
+ }
+
$size = strlen($data);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename={$name}");
@@ -332,31 +332,31 @@ if ($_POST) {
header("Cache-Control: private, must-revalidate");
}
echo $data;
-
+
exit;
}
}
-
+
if ($mode == "restore") {
-
+
if ($_POST['decrypt']) {
if(!$_POST['decrypt_password'] || !$_POST['decrypt_passconf'])
$input_errors[] = gettext("You must supply and confirm the password for decryption.");
if($_POST['decrypt_password'] != $_POST['decrypt_passconf'])
$input_errors[] = gettext("The supplied 'Password' and 'Confirm' field values must match.");
}
-
+
if (!$input_errors) {
-
+
if (is_uploaded_file($_FILES['conffile']['tmp_name'])) {
-
+
/* read the file contents */
$data = file_get_contents($_FILES['conffile']['tmp_name']);
if(!$data) {
log_error(sprintf(gettext("Warning, could not read file %s"), $_FILES['conffile']['tmp_name']));
return 1;
}
-
+
if ($_POST['decrypt']) {
if (!tagfile_deformat($data, $data, "config.xml")) {
$input_errors[] = gettext("The uploaded file does not appear to contain an encrypted pfsense configuration.");
@@ -364,7 +364,7 @@ if ($_POST) {
}
$data = decrypt_data($data, $_POST['decrypt_password']);
}
-
+
if(stristr($data, "<m0n0wall>")) {
log_error(gettext("Upgrading m0n0wall configuration to pfsense."));
/* m0n0wall was found in config. convert it. */
@@ -515,9 +515,14 @@ if ($_POST) {
$savemsg = gettext("The m0n0wall configuration has been restored and upgraded to pfSense.");
mark_subsystem_dirty("restore");
}
- if(isset($config['captiveportal']['enable'])) {
- /* for some reason ipfw doesn't init correctly except on bootup sequence */
- mark_subsystem_dirty("restore");
+ if(is_array($config['captiveportal'])) {
+ foreach($config['captiveportal'] as $cp) {
+ if (isset($cp['enable'])) {
+ /* for some reason ipfw doesn't init correctly except on bootup sequence */
+ mark_subsystem_dirty("restore");
+ break;
+ }
+ }
}
setup_serial_port();
if(is_interface_mismatch() == true) {
@@ -544,15 +549,15 @@ if ($_POST) {
}
}
}
-
+
if ($mode == "reinstallpackages") {
-
+
header("Location: pkg_mgr_install.php?mode=reinstallall");
exit;
} else if ($mode == "clearpackagelock") {
clear_subsystem_dirty('packagelock');
$savemsg = "Package Lock Cleared";
- } else if ($mode == "restore_ver") {
+ } else if ($mode == "restore_ver") {
$input_errors[] = gettext("XXX - this feature may hose your config (do NOT backrev configs!) - billm");
if ($ver2restore <> "") {
$conf_file = "{$g['cf_conf_path']}/bak/config-" . strtotime($ver2restore) . ".xml";
@@ -601,11 +606,11 @@ function decrypt_change() {
function backuparea_change(obj) {
if (obj.value == "rrddata") {
- document.getElementById("nopackages").disabled = true;
- document.getElementById("dotnotbackuprrd").disabled = true;
+ document.getElementById("nopackages").disabled = true;
+ document.getElementById("dotnotbackuprrd").disabled = true;
} else {
- document.getElementById("nopackages").disabled = false;
- document.getElementById("dotnotbackuprrd").disabled = false;
+ document.getElementById("nopackages").disabled = false;
+ document.getElementById("dotnotbackuprrd").disabled = false;
}
}
//-->
@@ -693,8 +698,8 @@ function backuparea_change(obj) {
</tr>
<tr>
<td colspan="2" class="list" height="12">&nbsp;</td>
- </tr>
- <tr>
+ </tr>
+ <tr>
<td colspan="2" class="listtopic"><?=gettext("Restore configuration"); ?></td>
</tr>
<tr>
@@ -736,7 +741,7 @@ function backuparea_change(obj) {
<p><strong><span class="red"><?=gettext("Note:"); ?></span></strong><br /><?=gettext("The firewall will reboot after restoring the configuration."); ?><br /></p>
</td>
</tr>
- <?php if($config['installedpackages']['package'] != "") { ?>
+ <?php if (($config['installedpackages']['package'] != "") || (is_subsystem_dirty("packagelock"))) { ?>
<tr>
<td colspan="2" class="list" height="12">&nbsp;</td>
</tr>
@@ -746,12 +751,16 @@ function backuparea_change(obj) {
<tr>
<td width="22%" valign="baseline" class="vncell">&nbsp;</td>
<td width="78%" class="vtable">
- <p><?=gettext("Click this button to reinstall all system packages. This may take a while."); ?> <br /><br />
- <input name="Submit" type="submit" class="formbtn" id="reinstallpackages" value="<?=gettext("Reinstall packages"); ?>">
- <br/>
- <br/>
- <p><?=gettext("Click this button to clear the package lock if a package fails to reinstall properly after an upgrade."); ?> <br /><br />
- <input name="Submit" type="submit" class="formbtn" id="clearpackagelock" value="<?=gettext("Clear Package Lock"); ?>">
+ <?php if ($config['installedpackages']['package'] != "") { ?>
+ <p><?=gettext("Click this button to reinstall all system packages. This may take a while."); ?> <br /><br />
+ <input name="Submit" type="submit" class="formbtn" id="reinstallpackages" value="<?=gettext("Reinstall packages"); ?>">
+ <br/>
+ <br/>
+ <?php } ?>
+ <?php if (is_subsystem_dirty("packagelock")) { ?>
+ <p><?=gettext("Click this button to clear the package lock if a package fails to reinstall properly after an upgrade."); ?> <br /><br />
+ <input name="Submit" type="submit" class="formbtn" id="clearpackagelock" value="<?=gettext("Clear Package Lock"); ?>">
+ <?php } ?>
</td>
</tr>
<?php } ?>
diff --git a/usr/local/www/diag_confbak.php b/usr/local/www/diag_confbak.php
index daa036f..08072fc 100755
--- a/usr/local/www/diag_confbak.php
+++ b/usr/local/www/diag_confbak.php
@@ -145,7 +145,7 @@ include("head.inc");
<tr>
<td>
<div id="mainarea">
- <form action="diag_confbak.php" method="GET">
+ <form action="diag_confbak.php" method="get">
<table class="tabcont" align="center" width="100%" border="0" cellpadding="6" cellspacing="0">
<?php if (is_array($confvers)): ?>
<tr>
diff --git a/usr/local/www/diag_defaults.php b/usr/local/www/diag_defaults.php
index 86ea6f9..d389e9d 100755
--- a/usr/local/www/diag_defaults.php
+++ b/usr/local/www/diag_defaults.php
@@ -44,15 +44,9 @@
require("guiconfig.inc");
-if ($_POST) {
- if ($_POST['Submit'] != " No ") {
- reset_factory_defaults();
- system_reboot();
- $rebootmsg = gettext("The system has been reset to factory defaults and is now rebooting. This may take a few minutes, depending on your hardware.");
- } else {
- header("Location: index.php");
- exit;
- }
+if ($_POST['Submit'] == " " . gettext("No") . " ") {
+ header("Location: index.php");
+ exit;
}
$pgtitle = array(gettext("Diagnostics"),gettext("Factory defaults"));
@@ -62,26 +56,33 @@ include("head.inc");
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc"); ?>
-<?php if ($rebootmsg): echo print_info_box($rebootmsg); else: ?>
-<form action="diag_defaults.php" method="post">
- <p><strong> <?=gettext("If you click") . " &quot;" . gettext("Yes") . "&quot;, " . gettext("the firewall will:")?>
-
- <ul>
- <li><?=gettext("Reset to factory defaults");?></li>
- <li><?=gettext("LAN IP address will be reset to 192.168.1.1");?></li>
- <li><?=gettext("System will be configured as a DHCP server on the default LAN interface");?></li>
- <li><?=gettext("Reboot after changes are installed");?></li>
- <li><?=gettext("WAN interface will be set to obtain an address automatically from a DHCP server");?></li>
- <li><?=gettext("webConfigurator admin username will be reset to 'admin'");?></li>
- <li><?=gettext("webConfigurator admin password will be reset to");?> '<?=$g['factory_shipped_password']?>'</li>
- </ul>
- <?=gettext("Are you sure you want to proceed?");?></strong></p>
- <p>
- <input name="Submit" type="submit" class="formbtn" value=" <?=gettext("Yes");?> ">
- <input name="Submit" type="submit" class="formbtn" value=" <?=gettext("No");?> ">
- </p>
- </form>
+<?php if ($_POST['Submit'] == " " . gettext("Yes") . " "):
+ print_info_box(gettext("The system has been reset to factory defaults and is now rebooting. This may take a few minutes, depending on your hardware.")); ?>
+<pre>
+<?php
+ reset_factory_defaults();
+ system_reboot();
+?>
+</pre>
+<?php else: ?>
+<form action="diag_defaults.php" method="post">
+ <p><strong> <?=gettext("If you click") . " &quot;" . gettext("Yes") . "&quot;, " . gettext("the firewall will:")?>
+ <ul>
+ <li><?=gettext("Reset to factory defaults");?></li>
+ <li><?=gettext("LAN IP address will be reset to 192.168.1.1");?></li>
+ <li><?=gettext("System will be configured as a DHCP server on the default LAN interface");?></li>
+ <li><?=gettext("Reboot after changes are installed");?></li>
+ <li><?=gettext("WAN interface will be set to obtain an address automatically from a DHCP server");?></li>
+ <li><?=gettext("webConfigurator admin username will be reset to 'admin'");?></li>
+ <li><?=gettext("webConfigurator admin password will be reset to");?> '<?=$g['factory_shipped_password']?>'</li>
+ </ul>
+ <?=gettext("Are you sure you want to proceed?");?></strong></p>
+ <p>
+ <input name="Submit" type="submit" class="formbtn" value=" <?=gettext("Yes");?> ">
+ <input name="Submit" type="submit" class="formbtn" value=" <?=gettext("No");?> ">
+ </p>
+</form>
<?php endif; ?>
<?php include("fend.inc"); ?>
</body>
diff --git a/usr/local/www/diag_dns.php b/usr/local/www/diag_dns.php
index 0596373..511f333 100644
--- a/usr/local/www/diag_dns.php
+++ b/usr/local/www/diag_dns.php
@@ -144,9 +144,26 @@ if ($_POST) {
}
}
+if( ($_POST['host']) && ($_POST['dialog_output']) ) {
+ display_host_results ($host,$resolved,$dns_speeds);
+ exit;
+}
+
+function display_host_results ($address,$hostname,$dns_speeds) {
+ echo gettext("IP Address") . ": {$address} \n";
+ echo gettext("Host Name") . ": {$hostname} \n";
+ echo "\n";
+ echo gettext("Server") . "\t" . gettext("Query Time") . "\n";
+ if(is_array($dns_speeds))
+ foreach($dns_speeds as $qt){
+ echo trim($qt['dns_server']) . "\t" . trim($qt['query_time']);
+ echo "\n";
+ }
+}
+
include("head.inc"); ?>
<body link="#000000" vlink="#000000" alink="#000000">
-<? include("fbegin.inc"); ?>
+<?php include("fbegin.inc"); ?>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
@@ -165,7 +182,7 @@ include("head.inc"); ?>
<input name="host" type="text" class="formfld" id="host" size="20" value="<?=htmlspecialchars($host);?>">
</td>
<td>
- <? if ($resolved && $type) { ?>
+ <?php if ($resolved && $type) { ?>
= <font size="+1">
<?php
$found = 0;
diff --git a/usr/local/www/diag_dump_states.php b/usr/local/www/diag_dump_states.php
index ef00595..ce48762 100755
--- a/usr/local/www/diag_dump_states.php
+++ b/usr/local/www/diag_dump_states.php
@@ -28,7 +28,7 @@
*/
/*
- pfSense_BUILDER_BINARIES: /sbin/pfctl
+ pfSense_BUILDER_BINARIES: /sbin/pfctl
pfSense_MODULE: filter
*/
@@ -56,22 +56,14 @@ if($_GET['action']) {
if ($_GET['filter'] && ($_GET['killfilter'] == "Kill")) {
if (is_ipaddr($_GET['filter'])) {
- $tokill = $_GET['filter'] . "/32";
+ $tokill = escapeshellarg($_GET['filter'] . "/32");
} elseif (is_subnet($_GET['filter'])) {
- $tokill = $_GET['filter'];
+ $tokill = escapeshellarg($_GET['filter']);
}
$retval = mwexec("/sbin/pfctl -k {$tokill} -k 0/0");
$retval = mwexec("/sbin/pfctl -k 0.0.0.0/0 -k {$tokill}");
}
-/* get our states */
-if($_GET['filter']) {
- exec("/sbin/pfctl -s state | grep " . escapeshellarg(htmlspecialchars($_GET['filter'])), $states);
-}
-else {
- exec("/sbin/pfctl -s state", $states);
-}
-
$pgtitle = array(gettext("Diagnostics"),gettext("Show States"));
include("head.inc");
@@ -141,10 +133,7 @@ include("head.inc");
<table class="tabcont" width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
- <?=gettext("Current state count");?>: <?= $current_statecount ?>
- <?php if (!empty($_GET['filter'])): ?>
- (<?=gettext("Matching filter")?>: <?= count($states) ?>)
- <?php endif; ?>
+ <?=gettext("Current total state count");?>: <?= $current_statecount ?>
</td>
<td style="font-weight:bold;" align="right">
<?=gettext("Filter expression:");?>
@@ -173,50 +162,63 @@ include("head.inc");
<tbody>
<?php
$row = 0;
-if(count($states) > 0) {
- foreach($states as $line) {
- if($row >= 1000)
- break;
-
- $line_split = preg_split("/\s+/", $line);
- $type = array_shift($line_split);
- $proto = array_shift($line_split);
- $state = array_pop($line_split);
- $info = implode(" ", $line_split);
-
- /* break up info and extract $srcip and $dstip */
- $ends = preg_split("/\<?-\>?/", $info);
- $parts = explode(":", $ends[0]);
- $srcip = trim($parts[0]);
- $parts = explode(":", $ends[count($ends) - 1]);
- $dstip = trim($parts[0]);
-
- echo "<tr valign='top' name='r:{$srcip}:{$dstip}'>
- <td class='listlr'>{$proto}</td>
- <td class='listr'>{$info}</td>
- <td class='listr'>{$state}</td>
- <td class='list'>
- <img src='/themes/{$g['theme']}/images/icons/icon_x.gif' height='17' width='17' border='0'
- onclick=\"removeState('{$srcip}', '{$dstip}');\" style='cursor:pointer;'
- name='i:{$srcip}:{$dstip}'
- title='" . gettext("Remove all state entries from") . " {$srcip} " . gettext("to") . " {$dstip}' alt='' />
- </td>
- </tr>";
- $row++;
- }
-}
-else {
- echo "<tr>
- <td class='list' colspan='4' align='center' valign='top'>
- " . gettext("No states were found.") . "
+/* get our states */
+$grepline = ($_GET['filter']) ? "| grep " . escapeshellarg(htmlspecialchars($_GET['filter'])) : "";
+$fd = popen("/sbin/pfctl -s state {$grepline}", "r" );
+while ($line = chop(fgets($fd))) {
+ if($row >= 10000)
+ break;
+
+ $line_split = preg_split("/\s+/", $line);
+ $type = array_shift($line_split);
+ $proto = array_shift($line_split);
+ $state = array_pop($line_split);
+ $info = implode(" ", $line_split);
+
+ /* break up info and extract $srcip and $dstip */
+ $ends = preg_split("/\<?-\>?/", $info);
+ $parts = explode(":", $ends[0]);
+ $srcip = trim($parts[0]);
+ $parts = explode(":", $ends[count($ends) - 1]);
+ $dstip = trim($parts[0]);
+
+?>
+ <tr valign="top" name="r:<?= $srcip ?>:<?= $dstip ?>">
+ <td class="listlr"><?= $proto ?></td>
+ <td class="listr"><?= $info ?></td>
+ <td class="listr"><?= $state ?></td>
+ <td class="list">
+ <img src="/themes/<?= $g['theme'] ?>/images/icons/icon_x.gif" height="17" width="17" border="0"
+ onclick="removeState('<?= $srcip ?>', '<?= $dstip ?>');" style="cursor:pointer;"
+ name="i:<?= $srcip ?>:<?= $dstip ?>"
+ title="<?= gettext('Remove all state entries from') ?> <?= $srcip ?> <?= gettext('to') ?> <?= $dstip ?>" alt="" />
</td>
- </tr>";
+ </tr>
+<?php
+ $row++;
+ ob_flush();
}
+
+if ($row == 0): ?>
+ <tr>
+ <td class="list" colspan="4" align="center" valign="top">
+ <?= gettext("No states were found.") ?>
+ </td>
+ </tr>
+<?php endif;
+pclose($fd);
?>
</tbody>
</table>
</td>
</tr>
+ <tr>
+ <td class="list" colspan="4" align="center" valign="top">
+ <?php if (!empty($_GET['filter'])): ?>
+ <?=gettext("States matching current filter")?>: <?= $row ?>
+ <?php endif; ?>
+ </td>
+ </tr>
</table>
<!-- End of tab content -->
diff --git a/usr/local/www/diag_ipsec.php b/usr/local/www/diag_ipsec.php
index 7e00e3c..68f7dc8 100644
--- a/usr/local/www/diag_ipsec.php
+++ b/usr/local/www/diag_ipsec.php
@@ -53,12 +53,14 @@ include("head.inc");
require("ipsec.inc");
if ($_GET['act'] == "connect") {
- if (is_ipaddr($_GET['remoteid']) && is_ipaddr($_GET['source'])) {
+ if (is_ipaddrv4($_GET['remoteid']) && is_ipaddrv4($_GET['source'])) {
exec("/sbin/ping -S " . escapeshellarg($_GET['source']) . " -c 1 " . escapeshellarg($_GET['remoteid']));
}
+ else if (is_ipaddrv6($_GET['remoteid']) && is_ipaddrv6($_GET['source'])) {
+ exec("/sbin/ping6 -S " . escapeshellarg($_GET['source']) . " -c 1 " . escapeshellarg($_GET['remoteid']));
+ }
}
-
if ($_GET['act'] == "disconnect") {
if (!empty($_GET['user'])) {
ipsec_disconnect_mobile($_GET['user']);
@@ -150,28 +152,27 @@ $mobile = ipsec_dump_mobile();
$source = "";
$ip_interface = null;
$ip_alias = null;
- if ($ph2ent['localid']['type'] == 'lan') {
- $source = get_interface_ip('lan');
- } else if ($ph2ent['localid']['type'] == 'network') {
- $ip_interface = find_ip_interface($ph2ent['localid']['address'], $ph2ent['localid']['netbits']);
- if (!$ip_interface) {
- $ip_alias = find_virtual_ip_alias($ph2ent['localid']['address'], $ph2ent['localid']['netbits']);
- }
- } else {
- $ip_interface = find_ip_interface($ph2ent['localid']['address']);
- if (!$ip_interface) {
- $ip_alias = find_virtual_ip_alias($ph2ent['localid']['address']);
- }
- }
+ $localinfo = ipsec_idinfo_to_cidr($ph2ent['localid'], false, $ph2ent['mode']);
+ list($localip, $localsub) = explode("/", $localinfo);
+ $ip_interface = find_ip_interface($localip, $localsub);
+ if (!$ip_interface)
+ $ip_alias = find_virtual_ip_alias($localip, $localsub);
if ($ip_interface) {
- $source = get_interface_ip($ip_interface);
+ if (is_ipaddrv6($localip))
+ $source = get_interface_ipv6($ip_interface);
+ else
+ $source = get_interface_ip($ip_interface);
} else if ($ip_alias) {
$source = $ip_alias['subnet'];
}
+ if (!empty($ph2ent['pinghost']))
+ $remoteid = $ph2ent['pinghost'];
+ else
+ $remoteid = $ph2ent['remoteid']['address'];
?>
<?php if (($ph2ent['remoteid']['type'] != "mobile") && ($icon != "pass") && ($source != "")): ?>
<center>
- <a href="diag_ipsec.php?act=connect&remoteid=<?php echo $ph2ent['remoteid']['address']; ?>&source=<?php echo $source; ?>">
+ <a href="diag_ipsec.php?act=connect&amp;remoteid=<?php echo $remoteid; ?>&amp;source=<?php echo $source; ?>">
<img src ="/themes/<?php echo $g['theme']; ?>/images/icons/icon_service_start.gif" alt="Connect VPN" title="Connect VPN" border="0">
</a>
</center>
diff --git a/usr/local/www/diag_logs_filter.php b/usr/local/www/diag_logs_filter.php
index 7e0a82e..cedce3e 100755
--- a/usr/local/www/diag_logs_filter.php
+++ b/usr/local/www/diag_logs_filter.php
@@ -64,12 +64,42 @@ if($rulenum) {
exit;
}
-$interfacefilter = getGETPOSTsettingvalue('interface', null);
-$filtertext = htmlspecialchars(getGETPOSTsettingvalue('filtertext', ""));
+$filtersubmit = getGETPOSTsettingvalue('filtersubmit', null);
+if ($filtersubmit) {
+ $interfacefilter = getGETPOSTsettingvalue('interface', null);
+ $filtertext = getGETPOSTsettingvalue('filtertext', "");
+ $filterlogentries_qty = getGETPOSTsettingvalue('filterlogentries_qty', null);
+}
+
+$filterlogentries_submit = getGETPOSTsettingvalue('filterlogentries_submit', null);
+if ($filterlogentries_submit) {
+ $filterfieldsarray = array("act", "time", "interface", "srcip", "srcport", "dstip", "dstport", "proto", "tcpflags");
+
+ $actpass = getGETPOSTsettingvalue('actpass', null);
+ $actblock = getGETPOSTsettingvalue('actblock', null);
+ $actreject = getGETPOSTsettingvalue('actreject', null);
+
+ $filterfieldsarray['act'] = trim($actpass . " " . $actblock . " " . $actreject);
+ $filterfieldsarray['act'] = $filterfieldsarray['act'] ? $filterfieldsarray['act'] : 'All';
+ $filterfieldsarray['time'] = getGETPOSTsettingvalue('filterlogentries_time', null);
+ $filterfieldsarray['interface'] = getGETPOSTsettingvalue('filterlogentries_interfaces', null);
+ $filterfieldsarray['srcip'] = getGETPOSTsettingvalue('filterlogentries_sourceipaddress', null);
+ $filterfieldsarray['srcport'] = getGETPOSTsettingvalue('filterlogentries_sourceport', null);
+ $filterfieldsarray['dstip'] = getGETPOSTsettingvalue('filterlogentries_destinationipaddress', null);
+ $filterfieldsarray['dstport'] = getGETPOSTsettingvalue('filterlogentries_destinationport', null);
+ $filterfieldsarray['proto'] = getGETPOSTsettingvalue('filterlogentries_protocol', null);
+ $filterfieldsarray['tcpflags'] = getGETPOSTsettingvalue('filterlogentries_protocolflags', null);
+ $filterlogentries_qty = getGETPOSTsettingvalue('filterlogentries_qty', null);
+}
$filter_logfile = "{$g['varlog_path']}/filter.log";
$nentries = $config['syslog']['nentries'];
+
+# Override Display Quantity
+if ($filterlogentries_qty)
+ $nentries = $filterlogentries_qty;
+
if (!$nentries)
$nentries = 50;
@@ -109,52 +139,145 @@ include("head.inc");
<thead>
<tr>
<td colspan="<?=(!isset($config['syslog']['rawfilter']))?7:2?>" align="left" valign="middle">
- <div style="float: right; vertical-align:middle">
+ <div id="filterlogentries_show" name="filterlogentries_show" class="widgetconfigdiv" style=<?=(!isset($config['syslog']['rawfilter']))?"":"display:none"?>>
+ <form id="filterlogentries" name="filterlogentries" action="diag_logs_filter.php" method="post">
+ <?php
+ $Include_Act = explode(",", str_replace(" ", ",", $filterfieldsarray['act']));
+ if ($filterfieldsarray['interface'] == "All") $interface = "";
+ ?>
+ <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td rowspan=2>
+ <div align=center><?=gettext("Action");?></div>
+ <div align=left>
+ <input id="actpass" name="actpass" type="checkbox" value="Pass" <?php if (in_arrayi('Pass', $Include_Act)) echo "checked"; ?> /> Pass<br>
+ <input id="actblock" name="actblock" type="checkbox" value="Block" <?php if (in_arrayi('Block', $Include_Act)) echo "checked"; ?> /> Block<br>
+ <input id="actreject" name="actreject" type="checkbox" value="Reject" <?php if (in_arrayi('Reject', $Include_Act)) echo "checked"; ?> /> Reject<br>
+ </div>
+ </td>
+ <td>
+ <div align=center><?=gettext("Time");?></div>
+ <div align=center><input id="filterlogentries_time" name="filterlogentries_time" class="formfld search" type="text" size="12" value="<?= $filterfieldsarray['time'] ?>" /></div>
+ </td>
+ <td>
+ <div align=center><?=gettext("Source IP Address");?></div>
+ <div align=center><input id="filterlogentries_sourceipaddress" name="filterlogentries_sourceipaddress" class="formfld search" type="text" size="35" value="<?= $filterfieldsarray['srcip'] ?>" /></div>
+ </td>
+ <td>
+ <div align=center><?=gettext("Source Port");?></div>
+ <div align=center><input id="filterlogentries_sourceport" name="filterlogentries_sourceport" class="formfld search" type="text" size="10" value="<?= $filterfieldsarray['srcport'] ?>" /></div>
+ </td>
+ <td>
+ <div align=center><?=gettext("Protocol");?></div>
+ <div align=center><input id="filterlogentries_protocol" name="filterlogentries_protocol" class="formfld search" type="text" size="5" value="<?= $filterfieldsarray['proto'] ?>" /></div>
+ </td>
+ <td>
+ <div align=center valign=top><?=gettext("Quantity");?></div>
+ <div align=center valign=top><input id="filterlogentries_qty" name="filterlogentries_qty" class="" type="text" size="6" value="<?= $filterlogentries_qty ?>" /></div>
+ </td>
+ </tr>
+ <tr>
+ <td valign=top>
+ <div align=center><?=gettext("Interface");?></div>
+ <div align=center><input id="filterlogentries_interfaces" name="filterlogentries_interfaces" class="formfld search" type="text" size="12" value="<?= $filterfieldsarray['interface'] ?>" /></div>
+ </td>
+ <td valign=top>
+ <div align=center><?=gettext("Destination IP Address");?></div>
+ <div align=center><input id="filterlogentries_destinationipaddress" name="filterlogentries_destinationipaddress" class="formfld search" type="text" size="35" value="<?= $filterfieldsarray['dstip'] ?>" /></div>
+ </td>
+ <td valign=top>
+ <div align=center><?=gettext("Destination Port");?></div>
+ <div align=center><input id="filterlogentries_destinationport" name="filterlogentries_destinationport" class="formfld search" type="text" size="10" value="<?= $filterfieldsarray['dstport'] ?>" /></div>
+ </td>
+ <td valign=top>
+ <div align=center><?=gettext("Protocol Flags");?></div>
+ <div align=center><input id="filterlogentries_protocolflags" name="filterlogentries_protocolflags" class="formfld search" type="text" size="5" value="<?= $filterfieldsarray['tcpflags'] ?>" /></div>
+ </td>
+ <td valign=bottom>
+ <div align=center><input id="filterlogentries_submit" name="filterlogentries_submit" type="submit" class="formbtn" value="<?=gettext("Filter");?>" /></div>
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=5>
+ <?printf(gettext('Matches %1$s regular expression%2$s.'), '<a target="_blank" href="http://www.php.net/manual/en/book.pcre.php">', '</a>');?>&nbsp&nbsp
+ <?=gettext("Precede with exclamation (!) as first character to exclude match.");?>&nbsp&nbsp
+ </td>
+ </tr>
+ </table>
+ </form>
+ </div>
+ <div id="filterform_show" name="filterform_show" class="widgetconfigdiv" style=<?=(!isset($config['syslog']['rawfilter']))?"display:none":""?>>
<form id="filterform" name="filterform" action="diag_logs_filter.php" method="post">
- <select name="interface" onChange="dst_change(this.value,iface_old,document.iform.dsttype.value);iface_old = document.iform.interface.value;typesel_change();">
- <option value="" <?=$interfacefilter?"":"selected"?>>*Any interface</option>
- <?php
- $iflist = get_configured_interface_with_descr(false, true);
- //$iflist = get_interface_list();
- // Allow extending of the firewall edit interfaces
- pfSense_handle_custom_code("/usr/local/pkg/firewall_nat/pre_interfaces_edit");
- foreach ($iflist as $if => $ifdesc)
- $interfaces[$if] = $ifdesc;
+ <table width="0%" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td>
+ <div align=center valign=top><?=gettext("Interface");?></div>
+ <div align=center valign=top>
+ <select name="interface" onChange="dst_change(this.value,iface_old,document.iform.dsttype.value);iface_old = document.iform.interface.value;typesel_change();">
+ <option value="" <?=$interfacefilter?"":"selected"?>>*Any interface</option>
+ <?php
+ $iflist = get_configured_interface_with_descr(false, true);
+ //$iflist = get_interface_list();
+ // Allow extending of the firewall edit interfaces
+ pfSense_handle_custom_code("/usr/local/pkg/firewall_nat/pre_interfaces_edit");
+ foreach ($iflist as $if => $ifdesc)
+ $interfaces[$if] = $ifdesc;
+
+ if ($config['l2tp']['mode'] == "server")
+ $interfaces['l2tp'] = "L2TP VPN";
- if ($config['l2tp']['mode'] == "server")
- $interfaces['l2tp'] = "L2TP VPN";
+ if ($config['pptpd']['mode'] == "server")
+ $interfaces['pptp'] = "PPTP VPN";
- if ($config['pptpd']['mode'] == "server")
- $interfaces['pptp'] = "PPTP VPN";
+ if (is_pppoe_server_enabled() && have_ruleint_access("pppoe"))
+ $interfaces['pppoe'] = "PPPoE VPN";
- if (is_pppoe_server_enabled() && have_ruleint_access("pppoe"))
- $interfaces['pppoe'] = "PPPoE VPN";
+ /* add ipsec interfaces */
+ if (isset($config['ipsec']['enable']) || isset($config['ipsec']['client']['enable']))
+ $interfaces["enc0"] = "IPsec";
- /* add ipsec interfaces */
- if (isset($config['ipsec']['enable']) || isset($config['ipsec']['client']['enable']))
- $interfaces["enc0"] = "IPsec";
+ /* add openvpn/tun interfaces */
+ if ($config['openvpn']["openvpn-server"] || $config['openvpn']["openvpn-client"])
+ $interfaces["openvpn"] = "OpenVPN";
- /* add openvpn/tun interfaces */
- if ($config['openvpn']["openvpn-server"] || $config['openvpn']["openvpn-client"])
- $interfaces["openvpn"] = "OpenVPN";
-
- foreach ($interfaces as $iface => $ifacename): ?>
- <option value="<?=$iface;?>" <?=($iface==$interfacefilter)?"selected":"";?>><?=htmlspecialchars($ifacename);?></option>
- <?php endforeach; ?>
- </select>
-
- <input id="filtertext" name="filtertext" class="formfld search" style="vertical-align:top;" value="<?=gettext($filtertext);?>" />
- <input id="filtersubmit" name="filtersubmit" type="submit" class="formbtn" style="vertical-align:top;" value="<?=gettext("Filter");?>" />
+ foreach ($interfaces as $iface => $ifacename): ?>
+ <option value="<?=$iface;?>" <?=($iface==$interfacefilter)?"selected":"";?>><?=htmlspecialchars($ifacename);?></option>
+ <?php endforeach; ?>
+ </select>
+ </div>
+ </td>
+ <td>
+ <div align=center valign=top><?=gettext("Filter expresion");?></div>
+ <div align=center valign=top><input id="filtertext" name="filtertext" class="formfld search" style="vertical-align:top;" type="text" size="35" value="<?=$filtertext?>" /></div>
+ </td>
+ <td>
+ <div align=center valign=top><?=gettext("Quantity");?></div>
+ <div align=center valign=top><input id="filterlogentries_qty" name="filterlogentries_qty" class="" style="vertical-align:top;" type="text" size="6" value="<?= $filterlogentries_qty ?>" /></div>
+ </td>
+ <td>
+ <div align=center valign=top>&nbsp</div>
+ <div align=center valign=top><input id="filtersubmit" name="filtersubmit" type="submit" class="formbtn" style="vertical-align:top;" value="<?=gettext("Filter");?>" /></div>
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=2>
+ <?printf(gettext('Matches %1$s regular expression%2$s.'), '<a target="_blank" href="http://www.php.net/manual/en/book.pcre.php">', '</a>');?>&nbsp&nbsp
+ </td>
+ </tr>
+ </table>
</form>
- <br/>
</div>
<div style="float: left;">
+ <br>
<?=gettext("Normal View");?> | <a href="diag_logs_filter_dynamic.php"><?=gettext("Dynamic View");?></a> | <a href="diag_logs_filter_summary.php"><?=gettext("Summary View");?></a>
- <br/><br/>
- <?php if (isset($config['syslog']['filterdescriptions']) && $config['syslog']['filterdescriptions'] === "2"):?>
+ </div>
+ <div style="float: right; vertical-align:middle">
+ <br>
+ <?php if (!isset($config['syslog']['rawfilter']) && (isset($config['syslog']['filterdescriptions']) && $config['syslog']['filterdescriptions'] === "2")):?>
<a href="#" onclick="toggleListDescriptions()">Show/hide rule descriptions</a>
<?php endif;?>
- <br/>
</div>
</td>
</tr>
@@ -162,11 +285,14 @@ include("head.inc");
$iflist = get_configured_interface_with_descr(false, true);
if ($iflist[$interfacefilter])
$interfacefilter = $iflist[$interfacefilter];
- $filterlog = conv_log_filter($filter_logfile, $nentries, $nentries + 100, $filtertext, $interfacefilter);
+ if ($filterlogentries_submit)
+ $filterlog = conv_log_filter($filter_logfile, $nentries, $nentries + 100, $filterfieldsarray);
+ else
+ $filterlog = conv_log_filter($filter_logfile, $nentries, $nentries + 100, $filtertext, $interfacefilter);
?>
<tr>
<td colspan="<?=$config['syslog']['filterdescriptions']==="1"?7:6?>" class="listtopic">
- <?php if (!$filtertext)
+ <?php if ( (!$filtertext) && (!$filterfieldsarray) )
printf(gettext("Last %s firewall log entries."),count($filterlog));
else
echo count($filterlog). ' ' . gettext("matched log entries.");
@@ -195,11 +321,15 @@ include("head.inc");
<tr class="<?=$evenRowClass?>">
<td class="listMRlr" nowrap="nowrap" align="center" sorttable_customkey="<?=$filterent['act']?>">
<center>
- <a href="#" onclick="javascript:getURL('diag_logs_filter.php?getrulenum=<?php echo "{$filterent['rulenum']},{$filterent['act']}"; ?>', outputrule);">
+ <a onclick="javascript:getURL('diag_logs_filter.php?getrulenum=<?php echo "{$filterent['rulenum']},{$filterent['act']}"; ?>', outputrule);">
<img border="0" src="<?php echo find_action_image($filterent['act']);?>" width="11" height="11" align="middle" alt="<?php echo $filterent['act'];?>" title="<?php echo $filterent['act'];?>" />
<?php if ($filterent['count']) echo $filterent['count'];?></a></center></td>
<td class="listMRr" nowrap="nowrap"><?php echo htmlspecialchars($filterent['time']);?></td>
- <td class="listMRr" nowrap="nowrap"><?php echo htmlspecialchars($filterent['interface']);?></td>
+ <td class="listMRr" nowrap="nowrap">
+ <?php if ($filterent['direction'] == "out"): ?>
+ <img border="0" src="/themes/<?= $g['theme']; ?>/images/icons/out.gif" alt="Direction=OUT" title="Direction=OUT"/>
+ <?php endif; ?>
+ <?php echo htmlspecialchars($filterent['interface']);?></td>
<?php
if ($config['syslog']['filterdescriptions'] === "1")
echo("<td class=\"listMRr\" nowrap=\"nowrap\">".find_rule_by_number_buffer($filterent['rulenum'],$filterent['act'])."</td>");
@@ -218,6 +348,8 @@ include("head.inc");
$dststr = $filterent['dstip'] . get_port_with_service($filterent['dstport'], $proto);
?>
<td class="listMRr" nowrap="nowrap">
+ <a onclick="javascript:getURL('diag_dns.php?host=<?php echo "{$filterent['srcip']}"; ?>&dialog_output=true', outputrule);" title="<?=gettext("Reverse Resolve with DNS");?>">
+ <img border="0" src="/themes/<?= $g['theme']; ?>/images/icons/icon_log_d.gif" alt="Icon Reverse Resolve with DNS"/></a>
<a href="diag_dns.php?host=<?php echo $filterent['srcip']; ?>" title="<?=gettext("Reverse Resolve with DNS");?>">
<img border="0" src="/themes/<?= $g['theme']; ?>/images/icons/icon_log.gif" alt="Icon Reverse Resolve with DNS"/></a>
<a href="easyrule.php?<?php echo "action=block&amp;int={$int}&amp;src={$filterent['srcip']}&amp;ipproto={$ipproto}"; ?>" title="<?=gettext("Easy Rule: Add to Block List");?>" onclick="return confirm('<?=gettext("Do you really want to add this BLOCK rule?")."\n\n".gettext("Easy Rule is still experimental.")."\n".gettext("Continue at risk of your own peril.")."\n".gettext("Backups are also nice.")?>')">
@@ -225,6 +357,8 @@ include("head.inc");
<?php echo $srcstr;?>
</td>
<td class="listMRr" nowrap="nowrap">
+ <a onclick="javascript:getURL('diag_dns.php?host=<?php echo "{$filterent['dstip']}"; ?>&dialog_output=true', outputrule);" title="<?=gettext("Reverse Resolve with DNS");?>">
+ <img border="0" src="/themes/<?= $g['theme']; ?>/images/icons/icon_log_d.gif" alt="Icon Reverse Resolve with DNS" /></a>
<a href="diag_dns.php?host=<?php echo $filterent['dstip']; ?>" title="<?=gettext("Reverse Resolve with DNS");?>">
<img border="0" src="/themes/<?= $g['theme']; ?>/images/icons/icon_log.gif" alt="Icon Reverse Resolve with DNS" /></a>
<a href="easyrule.php?<?php echo "action=pass&amp;int={$int}&amp;proto={$proto}&amp;src={$filterent['srcip']}&amp;dst={$filterent['dstip']}&amp;dstport={$filterent['dstport']}&amp;ipproto={$ipproto}"; ?>" title="<?=gettext("Easy Rule: Pass this traffic");?>" onclick="return confirm('<?=gettext("Do you really want to add this PASS rule?")."\n\n".gettext("Easy Rule is still experimental.")."\n".gettext("Continue at risk of your own peril.")."\n".gettext("Backups are also nice.");?>')">
@@ -272,7 +406,7 @@ include("head.inc");
</tr>
</table>
-<p><span class="vexpl"><a href="http://doc.pfsense.org/index.php/What_are_TCP_Flags%3F">TCP Flags</a>: F - FIN, S - SYN, A or . - ACK, R - RST, P - PSH, U - URG, E - ECE, C - CWR</span></p>
+<p><span class="vexpl"><a href="http://doc.pfsense.org/index.php/What_are_TCP_Flags%3F">TCP Flags</a>: F - FIN, S - SYN, A or . - ACK, R - RST, P - PSH, U - URG, E - ECE, W - CWR</span></p>
<?php include("fend.inc"); ?>
</body>
diff --git a/usr/local/www/diag_logs_filter_dynamic.php b/usr/local/www/diag_logs_filter_dynamic.php
index 763a7b8..f1b714c 100755
--- a/usr/local/www/diag_logs_filter_dynamic.php
+++ b/usr/local/www/diag_logs_filter_dynamic.php
@@ -81,13 +81,11 @@ include("head.inc");
?>
/* Called by the AJAX updater */
function format_log_line(row) {
- var line = '';
- line = ' <span class="log-action" nowrap>' + row[0] + '</span>';
- line += ' <span class="log-time" nowrap>' + row[1] + '</span>';
- line += ' <span class="log-interface" nowrap>' + row[2] + '</span>';
- line += ' <span class="log-source" nowrap>' + row[3] + '</span>';
- line += ' <span class="log-destination" nowrap>' + row[4] + '</span>';
- line += ' <span class="log-protocol" nowrap>' + row[5] + '</span>';
+ var i = 0;
+ var line = '<td class="listMRlr" nowrap="nowrap" align="center">' + row[i++] + '</td>';
+ while (i < 6) {
+ line += '<td class="listMRr" nowrap="nowrap">' + row[i++] + '</td>';
+ }
return line;
}
</script>
@@ -106,7 +104,6 @@ include("head.inc");
$tab_array[] = array(gettext("Load Balancer"), false, "diag_logs_relayd.php");
$tab_array[] = array(gettext("OpenVPN"), false, "diag_logs_openvpn.php");
$tab_array[] = array(gettext("NTP"), false, "diag_logs_ntpd.php");
- $tab_array[] = array(gettext("Wireless"), false, "diag_logs_wireless.php");
$tab_array[] = array(gettext("Settings"), false, "diag_logs_settings.php");
display_top_tabs($tab_array);
?>
@@ -114,43 +111,58 @@ include("head.inc");
<tr>
<td>
<div id="mainarea">
- <div class="tabcont">
- <a href="diag_logs_filter.php"><?=gettext("Normal View");?></a> | <?=gettext("Dynamic View");?> | <a href="diag_logs_filter_summary.php"><?=gettext("Summary View");?></a>
- </div>
- <div class="listtopic">
- <?php printf(gettext("Last %s records"),$nentries);?>; <?=gettext("Pause:");?><input valign="middle" type="checkbox" onClick="javascript:toggle_pause();">
- </div>
- <div id="log">
- <div class="log-header">
- <span class="log-action"><?=gettext("Act");?></span>
- <span class="log-time"><?=gettext("Time");?></span>
- <span class="log-interface"><?=gettext("If");?></span>
- <span class="log-source"><?=gettext("Source");?></span>
- <span class="log-destination"><?=gettext("Destination");?></span>
- <span class="log-protocol"><?=gettext("Proto");?></span>
- </div>
- <?php $counter=0; foreach ($filterlog as $filterent): ?>
- <div class="log-entry"<?php echo is_first_row($counter, count($filterlog)); ?>>
- <span class="log-action" nowrap><a href="#" onClick="javascript:getURL('diag_logs_filter.php?getrulenum=<?php echo "{$filterent['rulenum']},{$filterent['act']}"; ?>', outputrule);">
- <img border="0" src="<?php echo find_action_image($filterent['act']);?>" width="11" height="11" align="absmiddle" alt="<?php echo $filterent['act'];?>" title="<?php echo $filterent['act'];?>" /></a></span>
- <span class="log-time" ><?php echo htmlspecialchars($filterent['time']);?></span>
- <span class="log-interface" ><?php echo htmlspecialchars($filterent['interface']);?></span>
- <span class="log-source" ><?php echo htmlspecialchars($filterent['src']);?></span>
- <span class="log-destination" ><?php echo htmlspecialchars($filterent['dst']);?></span>
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <thead>
+ <tr>
+ <td colspan="6" align"left" valign="middle">
+ <a href="diag_logs_filter.php"><?=gettext("Normal View");?></a> | <?=gettext("Dynamic View");?> | <a href="diag_logs_filter_summary.php"><?=gettext("Summary View");?></a>
+ <br/><br/>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="6" class="listtopic">
+ <?php printf(gettext("Last %s records"),$nentries);?>; <?=gettext("Pause:");?><input valign="middle" type="checkbox" onClick="javascript:toggle_pause();">
+ </td>
+ </tr>
+ <tr>
+ <td width="10%" class="listhdrr"><?=gettext("Act");?></ td>
+ <td width="10%" class="listhdrr"><?=gettext("Time");?></ td>
+ <td width="15%" class="listhdrr"><?=gettext("If");?></ td>
+ <td width="25%" class="listhdrr"><?=gettext("Source");?></ td>
+ <td width="25%" class="listhdrr"><?=gettext("Destination");?></ td>
+ <td width="15%" class="listhdrr"><?=gettext("Proto");?></ td>
+ </tr>
+ </thead>
+ <tbody id="filter-log-entries">
+ <?php
+ $rowIndex = 0;
+ foreach ($filterlog as $filterent):
+ $evenRowClass = $rowIndex % 2 ? " listMReven" : " listMRodd";
+ $rowIndex++;?>
+ <tr class="<?=$evenRowClass?>">
+ <td class="listMRlr" nowrap="nowrap" align="center">
+ <a href="#" onclick="javascript:getURL('diag_logs_filter.php?getrulenum=<?php echo "{$filterent['rulenum']},{$filterent['act']}"; ?>', outputrule);">
+ <img border="0" src="<?php echo find_action_image($filterent['act']);?>" width="11" height="11" alt="<?php echo $filterent['act'];?>" title="<?php echo $filterent['act'];?>" />
+ </a>
+ </td>
+ <td class="listMRr" nowrap="nowrap"><?php echo htmlspecialchars($filterent['time']);?></td>
+ <td class="listMRr" nowrap="nowrap"><?php echo htmlspecialchars($filterent['interface']);?></td>
+ <td class="listMRr" nowrap="nowrap"><?php echo htmlspecialchars($filterent['src']);?></td>
+ <td class="listMRr" nowrap="nowrap"><?php echo htmlspecialchars($filterent['dst']);?></td>
<?php
if ($filterent['proto'] == "TCP")
$filterent['proto'] .= ":{$filterent['tcpflags']}";
?>
- <span class="log-protocol" ><?php echo htmlspecialchars($filterent['proto']);?></span>
- </div>
- <?php $counter++; endforeach; ?>
- </div>
+ <td class="listMRr" nowrap="nowrap"><?php echo htmlspecialchars($filterent['proto']);?></td>
+ </tr>
+ <?php endforeach; ?>
+ </tbody>
+ </table>
</div>
</td>
</tr>
</table>
<p><span class="vexpl"><a href="http://doc.pfsense.org/index.php/What_are_TCP_Flags%3F"><?=gettext("TCP Flags"); ?></a>: F - FIN, S - SYN, A or . - ACK, R - RST, P - PSH, U - URG, E - ECE, C - CWR</span></p>
-
<?php include("fend.inc"); ?>
</body>
</html>
diff --git a/usr/local/www/diag_logs_filter_summary.php b/usr/local/www/diag_logs_filter_summary.php
index 17acbbc..1d1da9e 100644
--- a/usr/local/www/diag_logs_filter_summary.php
+++ b/usr/local/www/diag_logs_filter_summary.php
@@ -177,7 +177,7 @@ include("head.inc"); ?>
}
</script>
-<? include("fbegin.inc"); ?>
+<?php include("fbegin.inc"); ?>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td>
<?php
diff --git a/usr/local/www/diag_logs_ipsec.php b/usr/local/www/diag_logs_ipsec.php
index b37e31c..98061bc 100755
--- a/usr/local/www/diag_logs_ipsec.php
+++ b/usr/local/www/diag_logs_ipsec.php
@@ -124,6 +124,7 @@ include("head.inc");
</tr>
<?php
foreach($ipsec_logarr as $logent){
+ $logent = htmlspecialchars($logent);
foreach($search as $string) {
if(preg_match($string, $logent))
$match = true;
diff --git a/usr/local/www/diag_logs_ppp.php b/usr/local/www/diag_logs_ppp.php
index 929edb7..0cd6be8 100755
--- a/usr/local/www/diag_logs_ppp.php
+++ b/usr/local/www/diag_logs_ppp.php
@@ -54,8 +54,6 @@ if (!$nentries)
if ($_POST['clear'])
clear_log_file($ppp_logfile);
-$ppp_logarr = return_clog($ppp_logfile, $nentries);
-
$pgtitle = array(gettext("Status"),gettext("System logs"),gettext("PPP"));
include("head.inc");
@@ -89,23 +87,7 @@ include("head.inc");
<tr>
<td colspan="2" class="listtopic"><?php printf(gettext("Last %s PPP log entries"),$nentries);?></td>
</tr>
- <?php
- foreach($ppp_logarr as $logent){
- if(isset($match)) {
- $logent = preg_replace($search, $replace, $logent);
- } else {
- $searchs = "/(racoon: )([A-Z:].*?)([0-9].+\.[0-9].+.[0-9].+.[0-9].+\[[0-9].+\])(.*)/i";
- $replaces = "$1<strong><font color=red>[".gettext("Unknown Gateway/Dynamic")."]</font></strong>: $2$3$4";
- $logent = preg_replace($searchs, $replaces, $logent);
- }
- $logent = preg_split("/\s+/", $logent, 6);
- echo "<tr valign=\"top\">\n";
- $entry_date_time = htmlspecialchars(join(" ", array_slice($logent, 0, 3)));
- echo "<td class=\"listlr\" nowrap>" . $entry_date_time . "</td>\n";
- echo "<td class=\"listr\">" . $logent[4] . " " . $logent[5] . "</td>\n";
- echo "</tr>\n";
- }
- ?>
+ <?php dump_clog($ppp_logfile, $nentries); ?>
<tr>
<td>
<br>
diff --git a/usr/local/www/diag_nanobsd.php b/usr/local/www/diag_nanobsd.php
index c88aa1b..df3a7e4 100755
--- a/usr/local/www/diag_nanobsd.php
+++ b/usr/local/www/diag_nanobsd.php
@@ -99,15 +99,6 @@ EOF;
nanobsd_detect_slice_info();
}
-if (isset($_POST['rrdbackup'])) {
- $config['system']['rrdbackup'] = $_POST['rrdbackup'];
- install_cron_job("/etc/rc.backup_rrd.sh", ($config['system']['rrdbackup'] > 0), $minute="0", "*/{$config['system']['rrdbackup']}");
-}
-if (isset($_POST['dhcpbackup'])) {
- $config['system']['dhcpbackup'] = $_POST['dhcpbackup'];
- install_cron_job("/etc/rc.backup_dhcpleases.sh", ($config['system']['dhcpbackup'] > 0), $minute="0", "*/{$config['system']['dhcpbackup']}");
-}
-
if ($_POST['changero']) {
if (is_writable("/")) {
conf_mount_ro();
@@ -240,42 +231,11 @@ if ($savemsg)
<td colspan="2" valign="top" class="listtopic"><?=gettext("Periodic Data Backup");?></td>
</tr>
<tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("RRD Backup");?></td>
+ <td width="22%" valign="top" class="vncell"><?=gettext("RRD/DHCP Backup");?></td>
<td width="78%" class="vtable">
- <form action="diag_nanobsd.php" method="post" name="iform">
- <?=gettext("Frequency:");?>
- <select name='rrdbackup'>
- <option value='0' <? if (!isset($config['system']['rrdbackup']) || ($config['system']['rrdbackup'] == 0)) echo "selected"; ?>><?=gettext("Disable"); ?></option>
- <? for ($x=1; $x<=24; $x++) { ?>
- <option value='<?= $x ?>' <? if ($config['system']['rrdbackup'] == $x) echo "selected"; ?>><?= $x ?> <?=gettext("hour"); ?><? if ($x>1) echo "s"; ?></option>
- <? } ?>
- </select>
- <br/>
- <?=gettext("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 your media.");?>
- <br/>
- <br/>
+ <?=gettext("These options have been relocated to");?> <a href="system_advanced_misc.php"><?=gettext("System > Advanced, Miscellaneous tab")?></a>.
</td>
</tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("DHCP Leases Backup");?></td>
- <td width="78%" class="vtable">
- <form action="diag_nanobsd.php" method="post" name="iform">
- <?=gettext("Frequency:");?>
- <select name='dhcpbackup'>
- <option value='0' <? if (!isset($config['system']['dhcpbackup']) || ($config['system']['dhcpbackup'] == 0)) echo "selected"; ?>><?=gettext("Disable"); ?></option>
- <? for ($x=1; $x<=24; $x++) { ?>
- <option value='<?= $x ?>' <? if ($config['system']['dhcpbackup'] == $x) echo "selected"; ?>><?= $x ?> <?=gettext("hour"); ?><? if ($x>1) echo "s"; ?></option>
- <? } ?>
- </select>
- <br/>
- <?=gettext("This will periodically backup the DHCP leases 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 your media.");?>
- <br/>
- <br/>
- </td>
- </tr>
- <tr>
- <td valign="top" class="">&nbsp;</td><td><br/><input type='submit' value='<?=gettext("Save"); ?>'></form></td>
- </tr>
<?php if(file_exists("/conf/upgrade_log.txt")): ?>
<tr>
<td colspan="2" valign="top" class="">&nbsp;</td>
diff --git a/usr/local/www/diag_ndp.php b/usr/local/www/diag_ndp.php
index 6a02760..885598f 100755
--- a/usr/local/www/diag_ndp.php
+++ b/usr/local/www/diag_ndp.php
@@ -142,7 +142,7 @@ ob_implicit_flush(1);
?>
</td>
<td class="listr">
- <?
+ <?php
if(isset($hwif[$entry['interface']]))
echo $hwif[$entry['interface']];
else
diff --git a/usr/local/www/diag_packet_capture.php b/usr/local/www/diag_packet_capture.php
index 745801c..116f3ab 100644
--- a/usr/local/www/diag_packet_capture.php
+++ b/usr/local/www/diag_packet_capture.php
@@ -117,6 +117,14 @@ if ($_POST) {
conf_mount_rw();
+ if ($_POST['promiscuous']) {
+ //if promiscuous mode is checked
+ $disablepromiscuous = "";
+ } else {
+ //if promiscuous mode is unchecked
+ $disablepromiscuous = "-p";
+ }
+
if ($_POST['dnsquery']) {
//if dns lookup is checked
$disabledns = "";
@@ -175,11 +183,11 @@ include("fbegin.inc");
<form action="diag_packet_capture.php" method="post" name="iform" id="iform">
<table width="100%" border="0" cellpadding="6" cellspacing="0">
<tr>
- <td colspan="2" valign="top" class="listtopic"><?=gettext("Packet capture");?></td>
+ <td colspan="3" valign="top" class="listtopic"><?=gettext("Packet capture");?></td>
</tr>
<tr>
<td width="17%" valign="top" class="vncellreq"><?=gettext("Interface");?></td>
- <td width="83%" class="vtable">
+ <td width="32%" class="vtable">
<select name="interface">
<?php
?>
@@ -193,8 +201,16 @@ include("fbegin.inc");
</td>
</tr>
<tr>
+ <td width="17%" valign="top" class="vncellreq"><?=gettext("Promiscuous");?></td>
+ <td width="51%" class="vtable">
+ <input name="promiscuous" type="checkbox"<?php if($_POST['promiscuous']) echo " CHECKED"; ?>>
+ <br/><?=gettext("If checked, the");?> <a target="_blank" href="http://www.freebsd.org/cgi/man.cgi?query=tcpdump&amp;apropos=0&amp;sektion=0&amp;manpath=FreeBSD+8.3-stable&amp;arch=default&amp;format=html"><?= gettext("packet capture")?></a> <?= gettext("will be performed using promiscuous mode.");?>
+ <br/><b><?=gettext("Note");?>: </b><?=gettext("Some network adapters do not support or work well in promiscuous mode.");?>
+ </td>
+ </tr>
+ <tr>
<td width="17%" valign="top" class="vncellreq"><?=gettext("Address Family");?></td>
- <td width="83%" class="vtable">
+ <td colspan="2" width="83%" class="vtable">
<select name="fam">
<option value="">Any</option>
<option value="ip" <?php if ($fam == "ip") echo "selected"; ?>>IPv4 Only</option>
@@ -205,7 +221,7 @@ include("fbegin.inc");
</tr>
<tr>
<td width="17%" valign="top" class="vncellreq"><?=gettext("Protocol");?></td>
- <td width="83%" class="vtable">
+ <td colspan="2" width="83%" class="vtable">
<select name="proto">
<option value="">Any</option>
<option value="icmp" <?php if ($proto == "icmp") echo "selected"; ?>>ICMP</option>
@@ -221,7 +237,7 @@ include("fbegin.inc");
</tr>
<tr>
<td width="17%" valign="top" class="vncellreq"><?=gettext("Host Address");?></td>
- <td width="83%" class="vtable">
+ <td colspan="2" width="83%" class="vtable">
<input name="host" type="text" class="formfld host" id="host" size="20" value="<?=htmlspecialchars($host);?>">
<br/><?=gettext("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/><?=gettext("This value can be a domain name or IP address, or subnet in CIDR notation.");?>
@@ -230,7 +246,7 @@ include("fbegin.inc");
</tr>
<tr>
<td width="17%" valign="top" class="vncellreq"><?=gettext("Port");?></td>
- <td width="83%" class="vtable">
+ <td colspan="2" width="83%" class="vtable">
<input name="port" type="text" class="formfld unknown" id="port" size="5" value="<?=$port;?>">
<br/><?=gettext("The port can be either the source or destination port. The packet capture will look for this port in either field.");?>
<br/><?=gettext("Leave blank if you do not want to filter by port.");?>
@@ -238,20 +254,21 @@ include("fbegin.inc");
</tr>
<tr>
<td width="17%" valign="top" class="vncellreq"><?=gettext("Packet Length");?></td>
- <td width="83%" class="vtable">
+ <td colspan="2" width="83%" class="vtable">
<input name="snaplen" type="text" class="formfld unknown" id="snaplen" size="5" value="<?=$snaplen;?>">
<br/><?=gettext("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.");?>
</td>
</tr>
<tr>
<td width="17%" valign="top" class="vncellreq"><?=gettext("Count");?></td>
- <td width="83%" class="vtable">
+ <td colspan="2" width="83%" class="vtable">
<input name="count" type="text" class="formfld unknown" id="count" size="5" value="<?=$count;?>">
<br/><?=gettext("This is the number of packets the packet capture will grab. Default value is 100.") . "<br/>" . gettext("Enter 0 (zero) for no count limit.");?>
+ </td>
</tr>
<tr>
<td width="17%" valign="top" class="vncellreq"><?=gettext("Level of Detail");?></td>
- <td width="83%" class="vtable">
+ <td colspan="2" width="83%" class="vtable">
<select name="detail" type="text" class="formselect" id="detail" size="1">
<option value="normal" <?php if ($detail == "normal") echo "selected"; ?>><?=gettext("Normal");?></option>
<option value="medium" <?php if ($detail == "medium") echo "selected"; ?>><?=gettext("Medium");?></option>
@@ -261,10 +278,11 @@ include("fbegin.inc");
<br/><?=gettext("This is the level of detail that will be displayed after hitting 'Stop' when the packets have been captured.") . "<br/><b>" .
gettext("Note:") . "</b> " .
gettext("This option does not affect the level of detail when downloading the packet capture.");?>
+ </td>
</tr>
<tr>
<td width="17%" valign="top" class="vncellreq"><?=gettext("Reverse DNS Lookup");?></td>
- <td width="83%" class="vtable">
+ <td colspan="2" width="83%" class="vtable">
<input name="dnsquery" type="checkbox"<?php if($_POST['dnsquery']) echo " CHECKED"; ?>>
<br/><?=gettext("This check box will cause the packet capture to perform a reverse DNS lookup associated with all IP addresses.");?>
<br/><b><?=gettext("Note");?>: </b><?=gettext("This option can cause delays for large packet captures.");?>
@@ -272,7 +290,7 @@ include("fbegin.inc");
</tr>
<tr>
<td width="17%" valign="top">&nbsp;</td>
- <td width="83%">
+ <td colspan="2" width="83%">
<?php
/* check to see if packet capture tcpdump is already running */
@@ -341,7 +359,7 @@ include("fbegin.inc");
if ($action == gettext("Start")) {
$matchstr = implode($matches, " and ");
echo("<strong>" . gettext("Packet Capture is running.") . "</strong><br/>");
- mwexec_bg ("/usr/sbin/tcpdump -i $selectedif $searchcount -s $snaplen -w $fp$fn $matchstr");
+ mwexec_bg ("/usr/sbin/tcpdump -i $selectedif $disablepromiscuous $searchcount -s $snaplen -w $fp$fn $matchstr");
} else {
//action = stop
echo("<strong>" . gettext("Packet Capture stopped.") . "<br/><br/>" . gettext("Packets Captured:") . "</strong><br/>");
diff --git a/usr/local/www/diag_patterns.php b/usr/local/www/diag_patterns.php
index d42ef1c..a618972 100755
--- a/usr/local/www/diag_patterns.php
+++ b/usr/local/www/diag_patterns.php
@@ -63,29 +63,29 @@ include("head.inc");
<?php include("fbegin.inc"); ?>
<?php if ($ulmsg) echo "<p class=\"red\"><strong>" . $ulmsg . "</strong></p>\n"; ?>
<div id="mainarea">
-<form action="diag_patterns.php" method="POST" enctype="multipart/form-data" name="frmPattern">
- <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0">
+<form action="diag_patterns.php" method="post" enctype="multipart/form-data" name="frmPattern">
+ <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0" summary="upload pattern">
<tr>
<td colspan="4" valign="top" class="listtopic"><?=gettext("Upload layer7 pattern file");?></td>
</tr>
<tr>
<td align="right"><strong><?=gettext("File to upload:");?></strong></td>
<td valign="top" class="label">
- <input name="ulfile" type="file" class="formfld file" id="ulfile">
+ <input name="ulfile" type="file" class="formfld file" id="ulfile" />
</td>
</tr>
<tr>
<td valign="top">&nbsp;&nbsp;&nbsp;</td>
<td valign="top" class="label">
- <input name="submit" type="submit" class="button" id="upload" value="<?=gettext("Upload Pattern file");?>">
+ <input name="submit" type="submit" class="button" id="upload" value="<?=gettext("Upload Pattern file");?>" />
</td>
</tr>
<tr>
<td colspan="2" valign="top" height="16"></td>
</tr>
</table>
+</form>
</div>
<?php include("fend.inc"); ?>
-</form>
</body>
</html>
diff --git a/usr/local/www/diag_ping.php b/usr/local/www/diag_ping.php
index 155f0f7..e2c3037 100755
--- a/usr/local/www/diag_ping.php
+++ b/usr/local/www/diag_ping.php
@@ -28,7 +28,7 @@
POSSIBILITY OF SUCH DAMAGE.
*/
-/*
+/*
pfSense_BUILDER_BINARIES: /sbin/ping /sbin/ping6
pfSense_MODULE: routing
*/
@@ -40,8 +40,10 @@
##|*MATCH=diag_ping.php*
##|-PRIV
+$allowautocomplete = true;
$pgtitle = array(gettext("Diagnostics"), gettext("Ping"));
-require("guiconfig.inc");
+require_once("guiconfig.inc");
+
define('MAX_COUNT', 10);
define('DEFAULT_COUNT', 3);
@@ -59,10 +61,16 @@ if ($_POST || $_REQUEST['host']) {
$input_errors[] = sprintf(gettext("Count must be between 1 and %s"), MAX_COUNT);
}
+ $host = trim($_REQUEST['host']);
+ $ipproto = $_REQUEST['ipproto'];
+ if (($ipproto == "ipv4") && is_ipaddrv6($host))
+ $input_errors[] = gettext("When using IPv4, the target host must be an IPv4 address or hostname.");
+ if (($ipproto == "ipv6") && is_ipaddrv4($host))
+ $input_errors[] = gettext("When using IPv6, the target host must be an IPv6 address or hostname.");
+
if (!$input_errors) {
$do_ping = true;
- $host = $_REQUEST['host'];
- $interface = $_REQUEST['interface'];
+ $sourceip = $_REQUEST['sourceip'];
$count = $_POST['count'];
if (preg_match('/[^0-9]/', $count) )
$count = DEFAULT_COUNT;
@@ -76,80 +84,93 @@ if (!isset($do_ping)) {
include("head.inc"); ?>
<body link="#000000" vlink="#000000" alink="#000000">
-<? include("fbegin.inc"); ?>
+<?php include("fbegin.inc"); ?>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td>
+<tr><td>
<?php if ($input_errors) print_input_errors($input_errors); ?>
- <form action="diag_ping.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
- <tr>
- <td colspan="2" valign="top" class="listtopic"><?=gettext("Ping"); ?></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Host"); ?></td>
- <td width="78%" class="vtable">
- <?=$mandfldhtml;?><input name="host" type="text" class="formfld" id="host" size="20" value="<?=htmlspecialchars($host);?>"></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Interface"); ?></td>
- <td width="78%" class="vtable">
- <select name="interface" class="formfld">
- <?php $interfaces = get_configured_interface_with_descr();
- foreach ($interfaces as $iface => $ifacename): ?>
- <option value="<?=$iface;?>" <?php if (!link_interface_to_bridge($iface) && $iface == $interface) echo "selected"; ?>>
- <?=htmlspecialchars($ifacename);?>
- </option>
- <?php endforeach; ?>
- </select>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?= gettext("Count"); ?></td>
- <td width="78%" class="vtable">
- <select name="count" class="formfld" id="count">
- <?php for ($i = 1; $i <= MAX_COUNT; $i++): ?>
- <option value="<?=$i;?>" <?php if ($i == $count) echo "selected"; ?>><?=$i;?></option>
- <?php endfor; ?>
- </select></td>
- </tr>
- <tr>
- <td width="22%" valign="top">&nbsp;</td>
- <td width="78%">
- <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Ping"); ?>">
- </td>
- </tr>
- <tr>
- <td valign="top" colspan="2">
- <? if ($do_ping) {
- echo "<font face='terminal' size='2'>";
- echo "<strong>" . gettext("Ping output") . ":</strong><br>";
- echo('<pre>');
- $ifaddr = get_interface_ip($interface);
- if ($ifaddr)
- system("/sbin/ping -S$ifaddr -c$count " . escapeshellarg($host));
- else
- system("/sbin/ping -c$count " . escapeshellarg($host));
- $ifaddr = get_interface_ipv6($interface);
- if ($ifaddr)
- system("/sbin/ping6 -S$ifaddr -c$count " . escapeshellarg($host));
- else
- system("/sbin/ping6 -c$count " . escapeshellarg($host));
-
- echo('</pre>');
- }
- ?>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top">&nbsp;</td>
- <td width="78%">
- </td>
- </tr>
- </table>
- </form>
+<form action="diag_ping.php" method="post" name="iform" id="iform">
+<table width="100%" border="0" cellpadding="6" cellspacing="0">
+<tr>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("Ping"); ?></td>
+</tr>
+<tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Host"); ?></td>
+ <td width="78%" class="vtable">
+ <?=$mandfldhtml;?><input name="host" type="text" class="formfldunknown" id="host" size="20" value="<?=htmlspecialchars($host);?>"></td>
+</tr>
+<tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("IP Protocol"); ?></td>
+ <td width="78%" class="vtable">
+ <select name="ipproto" class="formselect">
+ <option value="ipv4" <?php if ($ipproto == "ipv4") echo 'selected="selected"' ?>>IPv4</option>
+ <option value="ipv6" <?php if ($ipproto == "ipv6") echo 'selected="selected"' ?>>IPv6</option>
+ </select>
</td>
</tr>
-</table>
-<?php include("fend.inc"); ?>
+<tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Source Address"); ?></td>
+ <td width="78%" class="vtable">
+ <select name="sourceip" class="formselect">
+ <option value="">Default</option>
+ <?php $sourceips = get_possible_traffic_source_addresses();
+ foreach ($sourceips as $sip):
+ $selected = "";
+ if (!link_interface_to_bridge($sip['value']) && ($sip['value'] == $sourceip))
+ $selected = 'selected="selected"';
+ ?>
+ <option value="<?=$sip['value'];?>" <?=$selected;?>>
+ <?=htmlspecialchars($sip['name']);?>
+ </option>
+ <?php endforeach; ?>
+ </select>
+ </td>
+</tr>
+<tr>
+ <td width="22%" valign="top" class="vncellreq"><?= gettext("Count"); ?></td>
+ <td width="78%" class="vtable">
+ <select name="count" class="formfld" id="count">
+ <?php for ($i = 1; $i <= MAX_COUNT; $i++): ?>
+ <option value="<?=$i;?>" <?php if ($i == $count) echo "selected"; ?>><?=$i;?></option>
+ <?php endfor; ?>
+ </select>
+ </td>
+</tr>
+<tr>
+ <td width="22%" valign="top">&nbsp;</td>
+ <td width="78%">
+ <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Ping"); ?>">
+ </td>
+</tr>
+<tr>
+ <td valign="top" colspan="2">
+ <?php if ($do_ping) {
+ echo "<font face='terminal' size='2'>";
+ echo "<strong>" . gettext("Ping output") . ":</strong><br>";
+ echo('<pre>');
+ $command = "/sbin/ping";
+ if ($ipproto == "ipv6") {
+ $command .= "6";
+ $ifaddr = is_ipaddr($sourceip) ? $sourceip : get_interface_ipv6($sourceip);
+ } else {
+ $ifaddr = is_ipaddr($sourceip) ? $sourceip : get_interface_ip($sourceip);
+ }
+ if ($ifaddr && (is_ipaddr($host) || is_hostname($host)))
+ $srcip = "-S" . escapeshellarg($ifaddr);
+ $cmd = "{$command} {$srcip} -c" . escapeshellarg($count) . " " . escapeshellarg($host);
+ //echo "Ping command: {$cmd}\n";
+ system($cmd);
+ echo('</pre>');
+ }
+ ?>
+ </td>
+</tr>
+<tr>
+ <td width="22%" valign="top">&nbsp;</td>
+ <td width="78%">&nbsp;</td>
+</tr>
+</table>
+</form>
+</td></tr>
+</table>
+<?php include("fend.inc"); ?> \ No newline at end of file
diff --git a/usr/local/www/diag_smart.php b/usr/local/www/diag_smart.php
index d3da72b..5864253 100644
--- a/usr/local/www/diag_smart.php
+++ b/usr/local/www/diag_smart.php
@@ -16,6 +16,11 @@ $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");
+$valid_log_types = array("error", "selftest");
+
+
include("head.inc");
?>
@@ -99,16 +104,24 @@ function smartmonctl($action)
// What page, aka. action is being wanted
// If they "get" a page but don't pass all arguments, smartctl will throw an error
$action = (isset($_POST['action']) ? $_POST['action'] : $_GET['action']);
-switch($action)
-{
+$targetdev = basename($_POST['device']);
+if (!file_exists('/dev/' . $targetdev)) {
+ echo "Device does not exist, bailing.";
+ return;
+}
+switch($action) {
// Testing devices
case 'test':
{
$test = $_POST['testType'];
- $output = add_colors(shell_exec($smartctl . " -t " . $test . " /dev/" . $_POST['device']));
+ if (!in_array($test, $valid_test_types)) {
+ echo "Invalid test type, bailing.";
+ return;
+ }
+ $output = add_colors(shell_exec($smartctl . " -t " . escapeshellarg($test) . " /dev/" . escapeshellarg($targetdev)));
echo '<pre>' . $output . '
- <form action="smartmon.php" method="post" name="abort">
- <input type="hidden" name="device" value="' . $_POST['device'] . '" />
+ <form action="diag_smart.php" method="post" name="abort">
+ <input type="hidden" name="device" value="' . $targetdev . '" />
<input type="hidden" name="action" value="abort" />
<input type="submit" name="submit" value="' . gettext("Abort") . '" />
</form>
@@ -120,7 +133,11 @@ switch($action)
case 'info':
{
$type = $_POST['type'];
- $output = add_colors(shell_exec($smartctl . " -" . $type . " /dev/" . $_POST['device']));
+ if (!in_array($type, $valid_info_types)) {
+ echo "Invalid info type, bailing.";
+ return;
+ }
+ $output = add_colors(shell_exec($smartctl . " -" . escapeshellarg($type) . " /dev/" . escapeshellarg($targetdev)));
echo "<pre>$output</pre>";
break;
}
@@ -129,7 +146,11 @@ switch($action)
case 'logs':
{
$type = $_POST['type'];
- $output = add_colors(shell_exec($smartctl . " -l " . $type . " /dev/" . $_POST['device']));
+ if (!in_array($type, $valid_log_types)) {
+ echo "Invalid log type, bailing.";
+ return;
+ }
+ $output = add_colors(shell_exec($smartctl . " -l " . escapeshellarg($type) . " /dev/" . escapeshellarg($targetdev)));
echo "<pre>$output</pre>";
break;
}
@@ -137,7 +158,7 @@ switch($action)
// Abort tests
case 'abort':
{
- $output = shell_exec($smartctl . " -X /dev/" . $_POST['device']);
+ $output = shell_exec($smartctl . " -X /dev/" . escapeshellarg($targetdev));
echo "<pre>$output</pre>";
break;
}
@@ -294,7 +315,7 @@ switch($action)
<?php
foreach($devs as $dev)
{
- echo "<option value=" . $dev . ">" . $dev;
+ echo "<option value=" . $dev . ">" . $dev . "</option>";
}
?>
</select>
@@ -315,7 +336,7 @@ switch($action)
<table width="100%" border="0" cellpadding="6" cellspacing="0">
<tbody>
<tr>
- <td colspan="2" valign="top" class="listtopic"><?=gettext("Perform Self Tests"); ?></td>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("Perform Self-tests"); ?></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Test type"); ?></td>
@@ -360,7 +381,7 @@ switch($action)
<td width="22%" valign="top" class="vncell"><?=gettext("Log type"); ?></td>
<td width="78%" class="vtable">
<input type="radio" name="type" value="error" checked /><?=gettext("Error"); ?><br />
- <input type="radio" name="type" value="selftest" /><?=gettext("Self Test"); ?><br />
+ <input type="radio" name="type" value="selftest" /><?=gettext("Self-test"); ?><br />
</td>
</tr>
<tr>
diff --git a/usr/local/www/diag_sockets.php b/usr/local/www/diag_sockets.php
index cdde4bd..8e6d7cc 100644
--- a/usr/local/www/diag_sockets.php
+++ b/usr/local/www/diag_sockets.php
@@ -1,138 +1,138 @@
-<?php
-
-/* $Id$ */
-/*
- diag_sockets.php
- Copyright (C) 2012
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
-*/
-
-/*
- pfSense_BUILDER_BINARIES: /usr/bin/sockstat
-*/
-##|+PRIV
-##|*IDENT=page-diagnostics-sockets
-##|*NAME=Diagnostics: Sockets page
-##|*DESCR=Allow access to the 'Diagnostics: Sockets' page.
-##|*MATCH=diag_sockets.php*
-##|-PRIV
-
-include('guiconfig.inc');
-
-$pgtitle = array(gettext("Diagnostics"),gettext("Sockets"));
-
-include('head.inc');
-
-?>
-<body link="#000000" vlink="#000000" alink="#000000">
-<?php include("fbegin.inc");
-
-$showAll = isset($_GET['showAll']);
-$showAllText = $showAll ? "Show only listening sockets" : "Show all socket connections";
-$showAllOption = $showAll ? "" : "?showAll";
-
-?>
-<div id="mainarea">
-<table class="tabcont" width="100%">
-<tr>
-<td>Information about listening sockets for both <a href="#IPv4">IPv4</a> and <a href="#IPv6">IPv6</a>.</td>
-</tr>
-<tr>
-<td>For explanation about the meaning of the information listed for each socket click <a href="#about">here</a>.</td>
-</tr>
-<tr>
-<td><input type="button" value="<?=$showAllText?>" ONCLICK="window.location.href='diag_sockets.php<?=$showAllOption?>'"/>To show information about both listening and connected sockets click this.</td>
-</tr>
-</table>
-
-<?php
- if (isset($_GET['showAll']))
- {
- $internet4 = shell_exec('sockstat -4');
- $internet6 = shell_exec('sockstat -6');
- } else {
- $internet4 = shell_exec('sockstat -4lL');
- $internet6 = shell_exec('sockstat -6lL');
- }
- foreach (array(&$internet4, &$internet6) as $tabindex => $table) {
- $elements = ($tabindex == 0 ? 7 : 7);
- $name = ($tabindex == 0 ? 'IPv4' : 'IPv6');
-?>
-<a name="<?=$name;?>"></a>
-<table style="padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px" width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr><td class="listtopic" colspan="<?=$elements?>"><strong><?=$name;?></strong></font></td></tr>
-<tr><td>
-<table class="tabcont sortable" id="sortabletable" width="100%" cellspacing="0" cellpadding="6" border="0">
-<?php
- foreach (explode("\n", $table) as $i => $line) {
- if ($i == 0)
- $class = 'listhdrr';
- else
- $class = 'listlr';
-
- if (trim($line) == "")
- continue;
- print("<tr id=\"$i\">\n");
- $j = 0;
- foreach (explode(' ', $line) as $entry) {
- if ($entry == '' || $entry == "ADDRESS") continue;
- if ($i == 0)
- print("<th class=\"$class\">$entry</th>\n");
- else
- print("<td class=\"$class\">$entry</td>\n");
- if ($i > 0)
- $class = 'listr';
- $j++;
- }
- print("</tr>\n");
- }?>
-</table>
-</td></tr></table>
-<?php
- }
-?>
-</table>
-<br/>
-<a name="about"></a>
-<table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" border="1">
- <tr><td colspan="2" class="listtopic" >Socket information explanation</td></tr>
-<tr><td colspan="2" class="">
-This page show 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:</td></tr>
- <tr><td class="listlr">USER </td><td class="listr">The user who owns the socket.</td></tr>
- <tr><td class="listlr">COMMAND </td><td class="listr">The command which holds the socket.</td></tr>
- <tr><td class="listlr">PID </td><td class="listr">The process ID of the command which holds the socket.</td></tr>
- <tr><td class="listlr">FD </td><td class="listr">The file descriptor number of the socket.</td></tr>
- <tr><td class="listlr">PROTO </td><td class="listr">The transport protocol associated with the socket for Internet sockets, or the type of socket (stream or data-gram) for UNIX sockets.</td></tr>
- <tr><td class="listlr">ADDRESS </td><td class="listr">(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.</td></tr>
- <tr><td class="listlr">LOCAL ADDRESS </td><td class="listr">(Internet sockets only) The address the local end of the socket is bound to (see getsockname(2)).</td></tr>
- <tr><td class="listlr">FOREIGN ADDRESS </td><td class="listr">(Internet sockets only) The address the foreign end of the socket is bound to (see getpeername(2)).</td></tr>
-</table>
-</div>
-<?php
-include('fend.inc');
-?>
+<?php
+
+/* $Id$ */
+/*
+ diag_sockets.php
+ Copyright (C) 2012
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+*/
+
+/*
+ pfSense_BUILDER_BINARIES: /usr/bin/sockstat
+*/
+##|+PRIV
+##|*IDENT=page-diagnostics-sockets
+##|*NAME=Diagnostics: Sockets page
+##|*DESCR=Allow access to the 'Diagnostics: Sockets' page.
+##|*MATCH=diag_sockets.php*
+##|-PRIV
+
+include('guiconfig.inc');
+
+$pgtitle = array(gettext("Diagnostics"),gettext("Sockets"));
+
+include('head.inc');
+
+?>
+<body link="#000000" vlink="#000000" alink="#000000">
+<?php include("fbegin.inc");
+
+$showAll = isset($_GET['showAll']);
+$showAllText = $showAll ? "Show only listening sockets" : "Show all socket connections";
+$showAllOption = $showAll ? "" : "?showAll";
+
+?>
+<div id="mainarea">
+<table class="tabcont" width="100%">
+<tr>
+<td>Information about listening sockets for both <a href="#IPv4">IPv4</a> and <a href="#IPv6">IPv6</a>.</td>
+</tr>
+<tr>
+<td>For explanation about the meaning of the information listed for each socket click <a href="#about">here</a>.</td>
+</tr>
+<tr>
+<td><input type="button" value="<?=$showAllText?>" ONCLICK="window.location.href='diag_sockets.php<?=$showAllOption?>'"/>To show information about both listening and connected sockets click this.</td>
+</tr>
+</table>
+
+<?php
+ if (isset($_GET['showAll']))
+ {
+ $internet4 = shell_exec('sockstat -4');
+ $internet6 = shell_exec('sockstat -6');
+ } else {
+ $internet4 = shell_exec('sockstat -4lL');
+ $internet6 = shell_exec('sockstat -6lL');
+ }
+ foreach (array(&$internet4, &$internet6) as $tabindex => $table) {
+ $elements = ($tabindex == 0 ? 7 : 7);
+ $name = ($tabindex == 0 ? 'IPv4' : 'IPv6');
+?>
+<a name="<?=$name;?>"></a>
+<table style="padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px" width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr><td class="listtopic" colspan="<?=$elements?>"><strong><?=$name;?></strong></font></td></tr>
+<tr><td>
+<table class="tabcont sortable" id="sortabletable" width="100%" cellspacing="0" cellpadding="6" border="0">
+<?php
+ foreach (explode("\n", $table) as $i => $line) {
+ if ($i == 0)
+ $class = 'listhdrr';
+ else
+ $class = 'listlr';
+
+ if (trim($line) == "")
+ continue;
+ print("<tr id=\"$i\">\n");
+ $j = 0;
+ foreach (explode(' ', $line) as $entry) {
+ if ($entry == '' || $entry == "ADDRESS") continue;
+ if ($i == 0)
+ print("<th class=\"$class\">$entry</th>\n");
+ else
+ print("<td class=\"$class\">$entry</td>\n");
+ if ($i > 0)
+ $class = 'listr';
+ $j++;
+ }
+ print("</tr>\n");
+ }?>
+</table>
+</td></tr></table>
+<?php
+ }
+?>
+</table>
+<br/>
+<a name="about"></a>
+<table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" border="1">
+ <tr><td colspan="2" class="listtopic" >Socket information explanation</td></tr>
+<tr><td colspan="2" class="">
+This page show 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:</td></tr>
+ <tr><td class="listlr">USER </td><td class="listr">The user who owns the socket.</td></tr>
+ <tr><td class="listlr">COMMAND </td><td class="listr">The command which holds the socket.</td></tr>
+ <tr><td class="listlr">PID </td><td class="listr">The process ID of the command which holds the socket.</td></tr>
+ <tr><td class="listlr">FD </td><td class="listr">The file descriptor number of the socket.</td></tr>
+ <tr><td class="listlr">PROTO </td><td class="listr">The transport protocol associated with the socket for Internet sockets, or the type of socket (stream or data-gram) for UNIX sockets.</td></tr>
+ <tr><td class="listlr">ADDRESS </td><td class="listr">(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.</td></tr>
+ <tr><td class="listlr">LOCAL ADDRESS </td><td class="listr">(Internet sockets only) The address the local end of the socket is bound to (see getsockname(2)).</td></tr>
+ <tr><td class="listlr">FOREIGN ADDRESS </td><td class="listr">(Internet sockets only) The address the foreign end of the socket is bound to (see getpeername(2)).</td></tr>
+</table>
+</div>
+<?php
+include('fend.inc');
+?>
diff --git a/usr/local/www/diag_system_pftop.php b/usr/local/www/diag_system_pftop.php
index ee233a8..87dbc65 100644
--- a/usr/local/www/diag_system_pftop.php
+++ b/usr/local/www/diag_system_pftop.php
@@ -44,30 +44,60 @@ $pfSversion = str_replace("\n", "", file_get_contents("/etc/version"));
$pgtitle = gettext("Diagnostics: pfTop");
+$sorttypes = array('age', 'bytes', 'dest', 'dport', 'exp', 'none', 'peak', 'pkt', 'rate', 'size', 'sport', 'src');
+$viewtypes = array('default', 'label', 'long', 'queue', 'rules', 'size', 'speed', 'state', 'time');
+$viewall = array('queue', 'label', 'rules');
+$numstates = array('50', '100', '200', '500', '1000', 'all');
+
if($_REQUEST['getactivity']) {
- if($_REQUEST['sorttype'])
- $sorttype = escapeshellarg($_REQUEST['sorttype']);
- else
- $sorttype = gettext("bytes");
- $text = `pftop -b -a -o {$sorttype}`;
+ if($_REQUEST['sorttype'] && in_array($_REQUEST['sorttype'], $sorttypes)
+ && $_REQUEST['viewtype'] && in_array($_REQUEST['viewtype'], $viewtypes)
+ && $_REQUEST['states'] && in_array($_REQUEST['states'], $numstates)) {
+ $viewtype = escapeshellarg($_REQUEST['viewtype']);
+ if (in_array($_REQUEST['viewtype'], $viewall)) {
+ $sorttype = "";
+ $numstate = "-a";
+ } else {
+ $sorttype = "-o " . escapeshellarg($_REQUEST['sorttype']);
+ $numstate = ($_REQUEST['states'] == "all" ? "-a" : escapeshellarg($_REQUEST['states']));
+ }
+ } else {
+ $sorttype = "bytes";
+ $viewtype = "default";
+ $numstate = "100";
+ }
+
+ $text = `pftop -b {$sorttype} -v {$viewtype} {$numstate}`;
echo $text;
exit;
}
include("head.inc");
-if($_REQUEST['sorttype'])
- $sorttype = htmlentities($_REQUEST['sorttype']);
-else
- $sorttype = gettext("bytes");
+if($_REQUEST['sorttype'] && in_array($_REQUEST['sorttype'], $sorttypes)
+ && $_REQUEST['viewtype'] && in_array($_REQUEST['viewtype'], $viewtypes)
+ && $_REQUEST['states'] && in_array($_REQUEST['states'], $numstates)) {
+ $viewtype = escapeshellarg($_REQUEST['viewtype']);
+ if (in_array($_REQUEST['viewtype'], $viewall)) {
+ $sorttype = "";
+ $numstate = "-a";
+ } else {
+ $sorttype = "-o " . escapeshellarg($_REQUEST['sorttype']);
+ $numstate = ($_REQUEST['states'] == "all" ? "-a" : escapeshellarg($_REQUEST['states']));
+ }
+} else {
+ $sorttype = "bytes";
+ $viewtype = "default";
+ $numstate = "100";
+}
?>
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<form method="post" action="diag_system_pftop.php">
<script type="text/javascript">
- function getcpuactivity() {
+ function getpftopactivity() {
var url = "/diag_system_pftop.php";
- var pars = 'getactivity=yes&sorttype=' + jQuery('#sorttype').val();
+ var pars = 'getactivity=yes&sorttype=' + jQuery('#sorttype').val() + '&viewtype=' + jQuery('#viewtype').val() + '&states=' + jQuery('#states').val();
jQuery.ajax(
url,
{
@@ -77,10 +107,10 @@ else
});
}
function activitycallback(transport) {
- jQuery('#cpuactivitydiv').html('<font face="Courier"><font size="2"><b><pre style="text-align:left;">' + transport.responseText + '</pre></font>');
- setTimeout('getcpuactivity()', 2500);
+ jQuery('#pftopactivitydiv').html('<font face="Courier"><font size="2"><b><pre style="text-align:left;">' + transport.responseText + '</pre></font>');
+ setTimeout('getpftopactivity()', 2500);
}
- setTimeout('getcpuactivity()', 1000);
+ setTimeout('getpftopactivity()', 1000);
</script>
<div id='maincontent'>
<?php
@@ -96,45 +126,91 @@ else
print_input_errors($input_errors);
?>
<form method="post">
- <?=gettext("Sort type:"); ?>
- <select name='sorttype' id='sorttype' onChange='this.form.submit();'>
- <option value='<?=$sorttype?>'><?=$sorttype?></option>
- <option value='age'><?=gettext("age");?></option>
- <option value='bytes'><?=gettext("bytes");?></option>
- <option value='dest'><?=gettext("dest");?></option>
- <option value='dport'><?=gettext("dport");?></option>
- <option value='exp'><?=gettext("exp");?></option>
- <option value='none'><?=gettext("none");?></option>
- <option value='peak'><?=gettext("peak");?></option>
- <option value='pkt'><?=gettext("pkt");?></option>
- <option value='rate'><?=gettext("rate");?></option>
- <option value='size'><?=gettext("size");?></option>
- <option value='sport'><?=gettext("sport");?></option>
- <option value='src'><?=gettext("src");?></option>
- </select>
- <p/>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td>
- <table id="backuptable" class="tabcont" align="center" width="100%" border="0" cellpadding="6" cellspacing="0">
- <tr>
- <td>
- <center>
- <table>
- <tr><td>
- <div name='cpuactivitydiv' id='cpuactivitydiv'>
- <b><?=gettext("Gathering pfTOP activity, please wait...");?>
- </div>
- </td></tr>
- </table>
- </td>
- </tr>
- </table>
+ <div id="mainarea" style="padding-bottom: 0px;">
+ <table class="tabcont" width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td class="list">
+ <div id='viewtypediv'><?=gettext("View type:"); ?>
+ <select name='viewtype' id='viewtype'>
+ <option value='default' <?php echo ($viewtype == "default") ? "selected" : ""; ?>><?=gettext("Default");?></option>
+ <option value='label' <?php echo ($viewtype == "label") ? "selected" : ""; ?>><?=gettext("Label");?></option>
+ <option value='long' <?php echo ($viewtype == "long") ? "selected" : ""; ?>><?=gettext("Long");?></option>
+ <option value='queue' <?php echo ($viewtype == "queue") ? "selected" : ""; ?>><?=gettext("Queue");?></option>
+ <option value='rules' <?php echo ($viewtype == "rules") ? "selected" : ""; ?>><?=gettext("Rules");?></option>
+ <option value='size' <?php echo ($viewtype == "size") ? "selected" : ""; ?>><?=gettext("Size");?></option>
+ <option value='speed' <?php echo ($viewtype == "speed") ? "selected" : ""; ?>><?=gettext("Speed");?></option>
+ <option value='state' <?php echo ($viewtype == "state") ? "selected" : ""; ?>><?=gettext("State");?></option>
+ <option value='time' <?php echo ($viewtype == "time") ? "selected" : ""; ?>><?=gettext("Time");?></option>
+ </select>
+ </div>
+ </td>
+ <td class="list">
+ <div id='sorttypediv'><?=gettext("Sort type:"); ?>
+ <select name='sorttype' id='sorttype'>
+ <option value='age' <?php echo ($sorttype == "age") ? "selected" : ""; ?>><?=gettext("Age");?></option>
+ <option value='bytes' <?php echo ($sorttype == "bytes") ? "selected" : ""; ?>><?=gettext("Bytes");?></option>
+ <option value='dest' <?php echo ($sorttype == "dest") ? "selected" : ""; ?>><?=gettext("Destination Address");?></option>
+ <option value='dport' <?php echo ($sorttype == "dport") ? "selected" : ""; ?>><?=gettext("Destination Port");?></option>
+ <option value='exp' <?php echo ($sorttype == "exp") ? "selected" : ""; ?>><?=gettext("Expiry");?></option>
+ <option value='none' <?php echo ($sorttype == "none") ? "selected" : ""; ?>><?=gettext("None");?></option>
+ <option value='peak' <?php echo ($sorttype == "peak") ? "selected" : ""; ?>><?=gettext("Peak");?></option>
+ <option value='pkt' <?php echo ($sorttype == "pkt") ? "selected" : ""; ?>><?=gettext("Packet");?></option>
+ <option value='rate' <?php echo ($sorttype == "rate") ? "selected" : ""; ?>><?=gettext("Rate");?></option>
+ <option value='size' <?php echo ($sorttype == "size") ? "selected" : ""; ?>><?=gettext("Size");?></option>
+ <option value='sport' <?php echo ($sorttype == "sport") ? "selected" : ""; ?>><?=gettext("Source Port");?></option>
+ <option value='src' <?php echo ($sorttype == "src") ? "selected" : ""; ?>><?=gettext("Source Address");?></option>
+ </select>
+ </div>
+ </td>
+ <td class="list">
+ <div id='statesdiv'><?=gettext("Number of States:"); ?>
+ <select name='states' id='states'>
+ <option value='50' <?php echo ($numstate == "50") ? "selected" : ""; ?>>50</option>
+ <option value='100' <?php echo ($numstate == "100") ? "selected" : ""; ?>>100</option>
+ <option value='200' <?php echo ($numstate == "200") ? "selected" : ""; ?>>200</option>
+ <option value='500' <?php echo ($numstate == "500") ? "selected" : ""; ?>>500</option>
+ <option value='1000' <?php echo ($numstate == "1000") ? "selected" : ""; ?>>1000</option>
+ <option value='all' <?php echo ($numstate == "all") ? "selected" : ""; ?>>all</option>
+ </select>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=3 align=center>
+ <table id="backuptable" class="tabcont" align="center" width="100%" border="0" cellpadding="6" cellspacing="0">
+ <tr>
+ <td>
+ <center>
+ <table>
+ <tr>
+ <td>
+ <div name='pftopactivitydiv' id='pftopactivitydiv'><b><?=gettext("Gathering pfTOP activity, please wait...");?></div>
+ </td>
+ </tr>
+ </table>
+ </center>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
</div>
- </td>
- </tr>
-</table>
</form>
<?php include("fend.inc"); ?>
+<script language="JavaScript">
+jQuery("#viewtype").change(function() {
+ var selected = jQuery("#viewtype option:selected");
+ switch(selected.val()) {
+ case "queue":
+ case "label":
+ case "rules":
+ jQuery("#sorttype, #sorttypediv, #statesdiv, #states").hide();
+ break;
+ default:
+ jQuery("#sorttype, #sorttypediv, #statesdiv, #states").show();
+ }
+});
+</script>
</body>
-</html>
+</html> \ No newline at end of file
diff --git a/usr/local/www/diag_tables.php b/usr/local/www/diag_tables.php
index 0802d30..b256766 100644
--- a/usr/local/www/diag_tables.php
+++ b/usr/local/www/diag_tables.php
@@ -70,7 +70,7 @@ if($_REQUEST['deleteall']) {
}
}
-if(($tablename == "bogons") && ($_POST['Download'])) {
+if((($tablename == "bogons") || ($tablename == "bogonsv6")) && ($_POST['Download'])) {
mwexec_bg("/etc/rc.update_bogons.sh now");
$maxtimetowait = 0;
$loading = true;
@@ -139,7 +139,7 @@ include("fbegin.inc");
<?php echo $entry; ?>
</td>
<td>
- <?php if ($tablename != "bogons") { ?>
+ <?php if ( ($tablename != "bogons") && ($tablename != "bogonsv6") ) { ?>
<a onClick='del_entry("<?=htmlspecialchars($entry)?>");'>
<img img src="/themes/<?=$g['theme'];?>/images/icons/icon_x.gif">
<?php } ?>
@@ -149,17 +149,22 @@ include("fbegin.inc");
<?php $count++; endforeach; ?>
<?php
if($count == 0)
- echo "<tr><td>" . gettext("No entries exist in this table.") . "</td></tr>";
+ if( ($tablename == "bogons") || ($tablename == "bogonsv6") )
+ echo "<p/>" . gettext("No entries exist in this table.") . "&nbsp&nbsp" . "<input name='Download' type='submit' class='formbtn' value='" . gettext("Download") . "'> " . gettext(" the latest bogon data.");
+ else
+ echo "<p/>" . gettext("No entries exist in this table.");
?>
-</table>
-
<?php
if($count > 0)
- if($tablename == "bogons")
- echo "<input name='Download' type='submit' class='formbtn' value='" . gettext("Download") . "'> " . gettext(" the latest bogon data.");
+ if( ($tablename == "bogons") || ($tablename == "bogonsv6") ) {
+ $last_updated = exec('/usr/bin/grep -i -m 1 -E "^# last updated" /etc/' . escapeshellarg($tablename));
+ echo "<p/>&nbsp<b>$count</b> " . gettext("entries in this table.") . "&nbsp&nbsp" . "<input name='Download' type='submit' class='formbtn' value='" . gettext("Download") . "'> " . gettext(" the latest bogon data.") . "<br>" . "$last_updated";
+ }
else
- echo "<p/>" . gettext("Delete") . " <a href='diag_tables.php?deleteall=true&type=" . htmlspecialchars($tablename) . "'>" . gettext("all") . "</a> " . gettext("entries in this table.");
+ echo "<p/>" . gettext("Delete") . " <a href='diag_tables.php?deleteall=true&type=" . htmlspecialchars($tablename) . "'>" . gettext("all") . "</a> " . "<b>$count</b> " . gettext("entries in this table.");
?>
+</table>
+
<?php include("fend.inc"); ?>
diff --git a/usr/local/www/diag_testport.php b/usr/local/www/diag_testport.php
new file mode 100644
index 0000000..b9abedf
--- /dev/null
+++ b/usr/local/www/diag_testport.php
@@ -0,0 +1,268 @@
+<?php
+/*
+ diag_testport.php
+
+ Copyright (C) 2013 Jim P (jimp@pfsense.org)
+ All rights reserved.
+
+ Portions based on diag_ping.php
+ part of m0n0wall (http://m0n0.ch/wall)
+ Copyright (C) 2003-2005 Bob Zoller (bob@kludgebox.com) and Manuel Kasper <mk@neon1.net>.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/*
+ pfSense_BUILDER_BINARIES: /usr/bin/nc
+ pfSense_MODULE: routing
+*/
+
+##|+PRIV
+##|*IDENT=page-diagnostics-testport
+##|*NAME=Diagnostics: Test Port
+##|*DESCR=Allow access to the 'Diagnostics: Test Port' page.
+##|*MATCH=diag_testport.php*
+##|-PRIV
+
+$allowautocomplete = true;
+
+$pgtitle = array(gettext("Diagnostics"), gettext("Test Port"));
+require("guiconfig.inc");
+
+define('NC_TIMEOUT', 10);
+
+if ($_POST || $_REQUEST['host']) {
+ unset($input_errors);
+ unset($do_testport);
+
+ /* input validation */
+ $reqdfields = explode(" ", "host port");
+ $reqdfieldsn = array(gettext("Host"),gettext("Port"));
+ do_input_validation($_REQUEST, $reqdfields, $reqdfieldsn, &$input_errors);
+
+ if (!is_ipaddr($_REQUEST['host']) && !is_hostname($_REQUEST['host'])) {
+ $input_errors[] = gettext("Please enter a valid IP or hostname.");
+ }
+
+ if (!is_port($_REQUEST['port'])) {
+ $input_errors[] = gettext("Please enter a valid port number.");
+ }
+
+ if (is_numeric($_REQUEST['srcport']) && !is_port($_REQUEST['srcport'])) {
+ $input_errors[] = gettext("Please enter a valid source port number, or leave the field blank.");
+ }
+
+ if (is_ipaddrv4($_REQUEST['host']) && ($_REQUEST['ipprotocol'] == "ipv6")) {
+ $input_errors[] = gettext("You cannot connect to an IPv4 address using IPv6.");
+ }
+ if (is_ipaddrv6($_REQUEST['host']) && ($_REQUEST['ipprotocol'] == "ipv4")) {
+ $input_errors[] = gettext("You cannot connect to an IPv6 address using IPv4.");
+ }
+
+ if (!$input_errors) {
+ $do_testport = true;
+ $host = $_REQUEST['host'];
+ $sourceip = $_REQUEST['sourceip'];
+ $port = $_REQUEST['port'];
+ $srcport = $_REQUEST['srcport'];
+ $showtext = isset($_REQUEST['showtext']);
+ $ipprotocol = $_REQUEST['ipprotocol'];
+ $timeout = NC_TIMEOUT;
+ }
+}
+if (!isset($do_testport)) {
+ $do_testport = false;
+ $host = '';
+ $port = '';
+ $srcport = '';
+ unset($showtext);
+}
+
+include("head.inc"); ?>
+<body link="#000000" vlink="#000000" alink="#000000">
+<?php include("fbegin.inc"); ?>
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr><td>
+<?php echo gettext("This page allows you to perform a simple TCP connection test to determine if a host is up and accepting connections on a given port. This test does not function for UDP since there is no way to reliably determine if a UDP port accepts connections in this manner."); ?>
+<br/><br/>
+<?php echo gettext("No data is transmitted to the remote host during this test, it will only attempt to open a connection and optionally display the data sent back from the server."); ?>
+<br/><br/><br/>
+<?php if ($input_errors) print_input_errors($input_errors); ?>
+ <form action="diag_testport.php" method="post" name="iform" id="iform">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <tr>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("Test Port"); ?></td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Host"); ?></td>
+ <td width="78%" class="vtable">
+ <?=$mandfldhtml;?>
+ <input name="host" type="text" class="formfld" id="host" size="20" value="<?=htmlspecialchars($host);?>"></td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq"><?= gettext("Port"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="port" type="text" class="formfld" id="port" size="10" value="<?=htmlspecialchars($port);?>">
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?= gettext("Source Port"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="srcport" type="text" class="formfld" id="srcport" size="10" value="<?=htmlspecialchars($srcport);?>">
+ <br/><br/><?php echo gettext("This should typically be left blank."); ?>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?= gettext("Show Remote Text"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="showtext" type="checkbox" id="showtext" <?php if ($showtext) echo "checked" ?>>
+ </br><br/><?php echo gettext("Shows the text given by the server when connecting to the port. Will take 10+ seconds to display if checked."); ?>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Source Address"); ?></td>
+ <td width="78%" class="vtable">
+ <select name="sourceip" class="formselect">
+ <option value="">Any</option>
+ <?php $sourceips = get_possible_traffic_source_addresses();
+ foreach ($sourceips as $sip):
+ $selected = "";
+ if (!link_interface_to_bridge($sip['value']) && ($sip['value'] == $sourceip))
+ $selected = 'selected="selected"';
+ ?>
+ <option value="<?=$sip['value'];?>" <?=$selected;?>>
+ <?=htmlspecialchars($sip['name']);?>
+ </option>
+ <?php endforeach; ?>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("IP Protocol"); ?></td>
+ <td width="78%" class="vtable">
+ <select name="ipprotocol" class="formfld">
+ <option value="any" <?php if ("any" == $ipprotocol) echo "selected"; ?>>
+ Any
+ </option>
+ <option value="ipv4" <?php if ($ipprotocol == "ipv4") echo "selected"; ?>>
+ <?=gettext("IPv4");?>
+ </option>
+ <option value="ipv6" <?php if ($ipprotocol == "ipv6") echo "selected"; ?>>
+ <?=gettext("IPv6");?>
+ </option>
+ </select>
+ <br/><br/>
+ <?php echo gettext("If you force IPv4 or IPv6 and use a hostname that does not contain a result using that protocol, it will result in an error. For example if you force IPv4 and use a hostname that only returns an AAAA IPv6 IP address, it will not work."); ?>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top">&nbsp;</td>
+ <td width="78%">
+ <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Test"); ?>">
+ </td>
+ </tr>
+ <tr>
+ <td valign="top" colspan="2">
+ <?php if ($do_testport) {
+ echo "<font face='terminal' size='2'>";
+ echo "<strong>" . gettext("Port Test Results") . ":</strong><br>";
+ echo '<pre>';
+ $result = "";
+ $nc_base_cmd = "/usr/bin/nc";
+ $nc_args = "-w {$timeout}";
+ if (!$showtext)
+ $nc_args .= " -z ";
+ if (!empty($srcport))
+ $nc_args .= " -p {$srcport} ";
+
+ /* Attempt to determine the interface address, if possible. Else try both. */
+ if (is_ipaddrv4($host)) {
+ $ifaddr = ($sourceip == "any") ? "" : get_interface_ip($sourceip);
+ $nc_args .= " -4";
+ } elseif (is_ipaddrv6($host)) {
+ $ifaddr = ($sourceip == "any") ? "" : get_interface_ipv6($sourceip);
+ $nc_args .= " -6";
+ } else {
+ switch ($ipprotocol) {
+ case "ipv4":
+ $ifaddr = get_interface_ip($sourceip);
+ $nc_ipproto = " -4";
+ break;
+ case "ipv6":
+ $ifaddr = get_interface_ipv6($sourceip);
+ $nc_ipproto = " -6";
+ break;
+ case "any":
+ $ifaddr = get_interface_ip($sourceip);
+ $nc_ipproto = (!empty($ifaddr)) ? " -4" : "";
+ if (empty($ifaddr)) {
+ $ifaddr = get_interface_ipv6($sourceip);
+ $nc_ipproto = (!empty($ifaddr)) ? " -6" : "";
+ }
+ break;
+ }
+ /* Netcat doesn't like it if we try to connect using a certain type of IP without specifying the family. */
+ if (!empty($ifaddr)) {
+ $nc_args .= $nc_ipproto;
+ } elseif ($sourceip == "any") {
+ switch ($ipprotocol) {
+ case "ipv4":
+ $nc_ipproto = " -4";
+ break;
+ case "ipv6":
+ $nc_ipproto = " -6";
+ break;
+ }
+ $nc_args .= $nc_ipproto;
+ }
+ }
+ /* Only add on the interface IP if we managed to find one. */
+ if (!empty($ifaddr))
+ $nc_args .= " -s " . escapeshellarg($ifaddr) . " ";
+
+ $nc_cmd = "{$nc_base_cmd} {$nc_args} " . escapeshellarg($host) . " " . escapeshellarg($port) . " 2>&1";
+ exec($nc_cmd, $result, $retval);
+ //echo "NC CMD: {$nc_cmd}\n\n";
+ if (empty($result)) {
+ if ($showtext)
+ echo gettext("No output received, or connection failed. Try with \"Show Remote Text\" unchecked first.");
+ else
+ echo gettext("Connection failed (Refused/Timeout)");
+ } else {
+ if (is_array($result)) {
+ foreach ($result as $resline) {
+ echo htmlspecialchars($resline) . "\n";
+ }
+ } else {
+ echo htmlspecialchars($result);
+ }
+ }
+ echo '</pre>' ;
+ }
+ ?>
+ </td>
+ </tr>
+ </table>
+</form>
+</td></tr></table>
+<?php include("fend.inc"); ?>
diff --git a/usr/local/www/diag_traceroute.php b/usr/local/www/diag_traceroute.php
index dc44f6b..467138b 100755
--- a/usr/local/www/diag_traceroute.php
+++ b/usr/local/www/diag_traceroute.php
@@ -28,7 +28,7 @@
POSSIBILITY OF SUCH DAMAGE.
*/
-/*
+/*
pfSense_BUILDER_BINARIES: /usr/sbin/traceroute
pfSense_MODULE: routing
*/
@@ -42,12 +42,13 @@
require("guiconfig.inc");
+$allowautocomplete = true;
$pgtitle = array(gettext("Diagnostics"),gettext("Traceroute"));
include("head.inc");
?>
<body link="#000000" vlink="#000000" alink="#000000">
-<? include("fbegin.inc"); ?>
+<?php include("fbegin.inc"); ?>
<?php
define('MAX_TTL', 64);
@@ -65,78 +66,135 @@ if ($_POST || $_REQUEST['host']) {
if (($_REQUEST['ttl'] < 1) || ($_REQUEST['ttl'] > MAX_TTL)) {
$input_errors[] = sprintf(gettext("Maximum number of hops must be between 1 and %s"), MAX_TTL);
}
+ $host = trim($_REQUEST['host']);
+ $ipproto = $_REQUEST['ipproto'];
+ if (($ipproto == "ipv4") && is_ipaddrv6($host))
+ $input_errors[] = gettext("When using IPv4, the target host must be an IPv4 address or hostname.");
+ if (($ipproto == "ipv6") && is_ipaddrv4($host))
+ $input_errors[] = gettext("When using IPv6, the target host must be an IPv6 address or hostname.");
if (!$input_errors) {
+ $sourceip = $_REQUEST['sourceip'];
$do_traceroute = true;
- $host = $_REQUEST['host'];
$ttl = $_REQUEST['ttl'];
-
+ $resolve = $_REQUEST['resolve'];
}
-}
+} else
+ $resolve = true;
+
if (!isset($do_traceroute)) {
$do_traceroute = false;
$host = '';
$ttl = DEFAULT_TTL;
}
+
?>
<?php if ($input_errors) print_input_errors($input_errors); ?>
- <form action="diag_traceroute.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
- <tr>
- <td colspan="2" valign="top" class="listtopic"><?=gettext("Traceroute");?></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Host");?></td>
- <td width="78%" class="vtable">
- <?=$mandfldhtml;?><input name="host" type="text" class="formfld" id="host" size="20" value="<?=htmlspecialchars($host);?>"></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Maximum number of hops");?></td>
- <td width="78%" class="vtable">
- <select name="ttl" class="formfld" id="ttl">
- <?php for ($i = 1; $i <= MAX_TTL; $i++): ?>
- <option value="<?=$i;?>" <?php if ($i == $ttl) echo "selected"; ?>><?=$i;?></option>
- <?php endfor; ?>
- </select></td>
- </tr>
-
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Use ICMP");?></td>
- <td width="78%" class="vtable">
- <input name="useicmp" type="checkbox"<?php if($_REQUEST['useicmp']) echo " CHECKED"; ?>>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top">&nbsp;</td>
- <td width="78%">
- <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Traceroute");?>">
- </td>
- </tr>
- <tr>
- <td valign="top" colspan="2">
- <p><span class="vexpl"><span class="red"><b><?=gettext("Note: ");?></b></span><?=gettext("Traceroute may take a while to complete. You may hit the Stop button on your browser at any time to see the progress of failed traceroutes.");?></span><p>
- <? if ($do_traceroute) {
- echo "<font face='terminal' size='2'>";
- echo("<br><strong>" . gettext("Traceroute output:") . "</strong><br>");
- echo('<pre>');
- ob_end_flush();
- if($_REQUEST['useicmp'])
- $useicmp = "-I";
- else
- $useicmp = "";
- system("/usr/sbin/traceroute $useicmp -w 2 -m " . escapeshellarg($ttl) . " " . escapeshellarg($host));
- system("/usr/sbin/traceroute6 $useicmp -w 2 -m " . escapeshellarg($ttl) . " " . escapeshellarg($host));
- echo('</pre>');
- }
- ?>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top">&nbsp;</td>
- <td width="78%">
- <span class="vexpl"><b><?=gettext("Note: ");?></b><?=gettext("Multi-wan is not supported from this utility currently.");?></span>
- </td>
- </tr>
- </table>
+<form action="diag_traceroute.php" method="post" name="iform" id="iform">
+<table width="100%" border="0" cellpadding="6" cellspacing="0">
+<tr>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("Traceroute");?></td>
+</tr>
+<tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Host");?></td>
+ <td width="78%" class="vtable">
+ <?=$mandfldhtml;?><input name="host" type="text" class="formfld" id="host" size="20" value="<?=htmlspecialchars($host);?>"></td>
+</tr>
+<tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("IP Protocol"); ?></td>
+ <td width="78%" class="vtable">
+ <select name="ipproto" class="formselect">
+ <option value="ipv4" <?php if ($ipproto == "ipv4") echo 'selected="selected"' ?>>IPv4</option>
+ <option value="ipv6" <?php if ($ipproto == "ipv6") echo 'selected="selected"' ?>>IPv6</option>
+ </select>
+ </td>
+</tr>
+<tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Source Address"); ?></td>
+ <td width="78%" class="vtable">
+ <select name="sourceip" class="formselect">
+ <option value="">Any</option>
+ <?php $sourceips = get_possible_traffic_source_addresses();
+ foreach ($sourceips as $sip):
+ $selected = "";
+ if (!link_interface_to_bridge($sip['value']) && ($sip['value'] == $sourceip))
+ $selected = 'selected="selected"';
+ ?>
+ <option value="<?=$sip['value'];?>" <?=$selected;?>>
+ <?=htmlspecialchars($sip['name']);?>
+ </option>
+ <?php endforeach; ?>
+ </select>
+ </td>
+</tr>
+<tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Maximum number of hops");?></td>
+ <td width="78%" class="vtable">
+ <select name="ttl" class="formfld" id="ttl">
+ <?php for ($i = 1; $i <= MAX_TTL; $i++): ?>
+ <option value="<?=$i;?>" <?php if ($i == $ttl) echo "selected"; ?>><?=$i;?></option>
+ <?php endfor; ?>
+ </select>
+ </td>
+</tr>
+<tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Reverse Address Lookup");?></td>
+ <td width="78%" class="vtable">
+ <input name="resolve" type="checkbox"<?php echo (!isset($resolve) ? "" : " CHECKED"); ?>>
+ </td>
+</tr>
+<tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Use ICMP");?></td>
+ <td width="78%" class="vtable">
+ <input name="useicmp" type="checkbox"<?php if($_REQUEST['useicmp']) echo " CHECKED"; ?>>
+ </td>
+</tr>
+<tr>
+ <td width="22%" valign="top">&nbsp;</td>
+ <td width="78%">
+ <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Traceroute");?>">
+ </td>
+</tr>
+<tr>
+ <td valign="top" colspan="2">
+ <span class="vexpl">
+ <span class="red"><b><?=gettext("Note: ");?></b></span>
+ <?=gettext("Traceroute may take a while to complete. You may hit the Stop button on your browser at any time to see the progress of failed traceroutes.");?>
+ <br/><br/>
+ <?=gettext("Using a source interface/IP address that does not match selected type (IPv4, IPv6) will result in an error or empty output.");?>
+ </span>
+ </td>
+</tr>
+<tr>
+ <td valign="top" colspan="2">
+<?php
+if ($do_traceroute) {
+ echo "<font face='terminal' size='2'>\n";
+ echo "<strong>" . gettext("Traceroute output:") . "</strong><br />\n";
+ ob_end_flush();
+ echo "<pre>\n";
+ $useicmp = isset($_REQUEST['useicmp']) ? "-I" : "";
+ $n = isset($resolve) ? "" : "-n";
+
+ $command = "/usr/sbin/traceroute";
+ if ($ipproto == "ipv6") {
+ $command .= "6";
+ $ifaddr = is_ipaddr($sourceip) ? $sourceip : get_interface_ipv6($sourceip);
+ } else {
+ $ifaddr = is_ipaddr($sourceip) ? $sourceip : get_interface_ip($sourceip);
+ }
+
+ if ($ifaddr && (is_ipaddr($host) || is_hostname($host)))
+ $srcip = "-s " . escapeshellarg($ifaddr);
+
+ $cmd = "{$command} {$n} {$srcip} -w 2 -m " . escapeshellarg($ttl) . " " . escapeshellarg($host);
+
+ //echo "Traceroute command: {$cmd}\n";
+ system($cmd);
+ echo "</pre>\n";
+} ?>
+ </td>
+</tr>
+</table>
</form>
<?php include("fend.inc"); ?>
diff --git a/usr/local/www/exec.php b/usr/local/www/exec.php
index 4342c1d..eda1321 100755
--- a/usr/local/www/exec.php
+++ b/usr/local/www/exec.php
@@ -249,7 +249,7 @@ if (!isBlank($_POST['txtPHPCommand'])) {
?>
<div id="niftyOutter">
-<form action="exec.php" method="POST" enctype="multipart/form-data" name="frmExecPlus" onSubmit="return frmExecPlus_onSubmit( this );">
+<form action="exec.php" method="post" enctype="multipart/form-data" name="frmExecPlus" onSubmit="return frmExecPlus_onSubmit( this );">
<table>
<tr>
<td colspan="2" valign="top" class="vnsepcell"><?=gettext("Execute Shell command"); ?></td>
diff --git a/usr/local/www/fbegin.inc b/usr/local/www/fbegin.inc
index 0ebaa23..a25e168 100755
--- a/usr/local/www/fbegin.inc
+++ b/usr/local/www/fbegin.inc
@@ -1,11 +1,3 @@
-
-<script src="/javascript/sorttable.js"></script>
-<script src="/javascript/ticker.js"></script>
-<style id="antiClickjack">body{display:none}</style> <script type="text/JavaScript">
-if (self === top) { var antiClickjack = document.getElementById("antiClickjack"); antiClickjack.parentNode.removeChild(antiClickjack);
-} else { top.location = self.location;
-}
-</script>
<?php
/*
pfSense_MODULE: header
@@ -156,13 +148,12 @@ $services_menu[] = array(gettext("IGMP proxy"), "/services_igmpproxy.php");
$services_menu[] = array(gettext("Load Balancer"), "/load_balancer_pool.php");
$services_menu[] = array(gettext("NTP"), "/services_ntpd.php");
$services_menu[] = array(gettext("PPPoE Server"), "/vpn_pppoe.php");
-$services_menu[] = array(gettext("RIP"), "/pkg_edit.php?xml=routed.xml&id=0");
$services_menu[] = array(gettext("SNMP"), "/services_snmp.php");
if(count($config['interfaces']) > 1) {
/* no use for UPnP in single-interface deployments
remove to reduce user confusion
*/
- $services_menu[] = array(gettext("UPnP &amp; NAT-PMP"), "/pkg_edit.php?xml=miniupnpd.xml&id=0");
+ $services_menu[] = array(gettext("UPnP &amp; NAT-PMP"), "/pkg_edit.php?xml=miniupnpd.xml&amp;id=0");
}
$services_menu[] = array(gettext("Wake on LAN"), "/services_wol.php");
$services_menu = msort(array_merge($services_menu, return_ext_menu("Services")),0);
@@ -224,6 +215,7 @@ $diagnostics_menu[] = array(gettext("NDP Table"), "/diag_ndp.php" );
$diagnostics_menu[] = array(gettext("Tables"), "/diag_tables.php");
$diagnostics_menu[] = array(gettext("Ping"), "/diag_ping.php");
+$diagnostics_menu[] = array(gettext("Test Port"), "/diag_testport.php");
$diagnostics_menu[] = array(gettext("pfInfo"), "/diag_pf_info.php");
$diagnostics_menu[] = array(gettext("pfTop"), "/diag_system_pftop.php");
$diagnostics_menu[] = array(gettext("Reboot"), "/reboot.php");
@@ -263,12 +255,12 @@ if(! $g['disablehelpmenu']) {
<div id="wrapper">
<div id="header">
- <div id="header-left"><a href="/index.php" id="status-link"><img src="/themes/<?= $g['theme']; ?>/images/transparent.gif" border="0"></a></div>
+ <div id="header-left"><a href="/index.php" id="status-link"><img src="/themes/<?= $g['theme']; ?>/images/transparent.gif" border="0" alt="transparent" /></a></div>
<div id="header-right">
<div class="container">
<div class="left">webConfigurator</div>
<div class="right" id="menu_messages">
-<?
+<?php
echo get_menu_messages();
?>
</div>
@@ -306,7 +298,7 @@ if(! $g['disablehelpmenu']) {
<li class="drop">
<div><?php echo gettext("Services"); ?></div>
<ul class="subdrop">
- <?
+ <?php
output_menu($services_menu);
?>
</ul>
@@ -330,7 +322,7 @@ if(! $g['disablehelpmenu']) {
<li class="drop">
<div><?php echo gettext("Diagnostics"); ?></div>
<ul id="diag" class="subdrop">
- <?
+ <?php
output_menu($diagnostics_menu);
?>
</ul>
@@ -339,8 +331,8 @@ if(! $g['disablehelpmenu']) {
<li class="lastdrop">
<div><?php echo gettext("Help"); ?></div>
<ul id="help" class="subdrop">
- <?
- output_menu($help_menu, "_new");
+ <?php
+ output_menu($help_menu, "_blank");
?>
</ul>
</li>
@@ -364,16 +356,16 @@ echo "\t<script type=\"text/javascript\" src=\"javascript/domTT/fadomatic.js\"><
$notices = get_notices();
if(!$notices) {
$need_alert_display = true;
- $display_text = print_notices($notices) . "<br>";
+ $display_text = print_notices($notices) . "<br />";
}
}
if($need_alert_display == true) {
echo "<div style=\"background-color:#000000\" id=\"roundalert\">";
- echo "<table>";
+ echo "<table summary=\"round alert\">";
echo "<tr><td><font color=\"#ffffff\">";
- echo "&nbsp;&nbsp;<img align=\"middle\" src=\"/top_notification.gif\">&nbsp;&nbsp;&nbsp;";
+ echo "&nbsp;&nbsp;<img align=\"middle\" src=\"/top_notification.gif\" alt=\"notification\" />&nbsp;&nbsp;&nbsp;";
echo $display_text;
- echo "</td>";
+ echo "</font></td>";
echo "</tr>";
echo "</table>";
echo "</div>";
@@ -387,7 +379,7 @@ function add_to_menu($url, $name) {
?>
<div>
-<span class="pgtitle"><a href="<?= $_SERVER['REQUEST_URI'] ?>"><?=genhtmltitle($pgtitle);?></a></span>
+<span class="pgtitle"><a href="<?= htmlentities($_SERVER['REQUEST_URI']) ?>"><?=genhtmltitle($pgtitle);?></a></span>
<span style="float:right; margin: 0 0 20px 20px">
<?php
if (!$hide_service_status && !empty($shortcuts[$shortcut_section]['service'])) {
@@ -416,7 +408,7 @@ echo get_shortcut_log_link($shortcut_section, true);
?>
<?php if(! $g['disablehelpicon']): ?>
-<a href="<?php echo $helpurl; ?>" title="<?php echo gettext("Help for items on this page"); ?>"><img style="vertical-align:middle" src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_help.gif" border="0"></a>
+<a href="<?php echo $helpurl; ?>" title="<?php echo gettext("Help for items on this page"); ?>"><img style="vertical-align:middle" src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_help.gif" border="0" alt="help" /></a>
<?php endif; ?>
</span>
</div>
@@ -426,7 +418,7 @@ echo get_shortcut_log_link($shortcut_section, true);
/* if upgrade in progress, alert user */
if(is_subsystem_dirty('packagelock')) {
$pgtitle = array(gettext("System"),gettext("Package Manager"));
- print_info_box(gettext("Packages are currently being reinstalled in the background.<p>Do not make changes in the GUI until this is complete.") . "<p><img src='/themes/{$g['theme']}/images/icons/icon_fw-update.gif'>");
+ print_info_box(gettext("Packages are currently being reinstalled in the background.<p>Do not make changes in the GUI until this is complete.") . "<p><img src='/themes/{$g['theme']}/images/icons/icon_fw-update.gif' alt='firmware update' />");
}
$pgtitle_output = true;
?>
diff --git a/usr/local/www/fend.inc b/usr/local/www/fend.inc
index dde5955..6ee1028 100755
--- a/usr/local/www/fend.inc
+++ b/usr/local/www/fend.inc
@@ -18,8 +18,10 @@
/* Disable form autocomplete on all but the login screen. */
if (basename($_SERVER["SCRIPT_FILENAME"] != "index.php") && !$allowautocomplete): ?>
<script type="text/javascript">
+//<![CDATA[
(function ($) {
$("input").attr("autocomplete","off");
})(jQuery);
+//]]>
</script>
<?php endif; ?>
diff --git a/usr/local/www/firewall_aliases.php b/usr/local/www/firewall_aliases.php
index 18314cd..4bc852b 100755
--- a/usr/local/www/firewall_aliases.php
+++ b/usr/local/www/firewall_aliases.php
@@ -50,10 +50,9 @@ if (!is_array($config['aliases']['alias']))
$config['aliases']['alias'] = array();
$a_aliases = &$config['aliases']['alias'];
-if ($_POST) {
+$tab = ($_REQUEST['tab'] == "" ? "ip" : preg_replace("/\W/","",$_REQUEST['tab']));
- if($_POST['tab'])
- $tab = $_POST['tab'];
+if ($_POST) {
if ($_POST['apply']) {
$retval = 0;
@@ -111,7 +110,7 @@ if ($_GET['act'] == "del") {
filter_configure();
mark_subsystem_dirty('aliases');
}
- header("Location: firewall_aliases.php");
+ header("Location: firewall_aliases.php?tab=" . $tab);
exit;
}
}
@@ -164,14 +163,13 @@ include("head.inc");
<form action="firewall_aliases.php" method="post">
<?php if ($savemsg) print_info_box($savemsg); ?>
<?php if (is_subsystem_dirty('aliases')): ?><p>
-<?php print_info_box_np(gettext("The alias list has been changed.") . "<br>" . gettext("You must apply the changes in order for them to take effect."));?>
+<?php print_info_box_np(gettext("The alias list has been changed.") . "<br/>" . gettext("You must apply the changes in order for them to take effect."));?>
<?php endif; ?>
<?php pfSense_handle_custom_code("/usr/local/pkg/firewall_aliases/pre_table"); ?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0" >
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="firewall aliases">
<tr>
<td class="tabnavtbl">
<?php
- $tab=($_REQUEST['tab'] == "" ? "ip" : preg_replace("/\W/","",$_REQUEST['tab']));
$tab_array = array();
$tab_array[] = array(gettext("IP"),($tab=="ip" ? true : ($tab=="host" ? true : ($tab == "network" ? true : false))), "/firewall_aliases.php?tab=ip");
$tab_array[] = array(gettext("Ports"), ($tab=="port"? true : false), "/firewall_aliases.php?tab=port");
@@ -179,116 +177,121 @@ include("head.inc");
$tab_array[] = array(gettext("All"), ($tab=="all"? true : false), "/firewall_aliases.php?tab=all");
display_top_tabs($tab_array);
?>
- <input type="hidden" name="tab" value="<?=htmlspecialchars($tab);?>">
+ <input type="hidden" name="tab" value="<?=htmlspecialchars($tab);?>" />
</td>
</tr>
-<tr><td><div id="mainarea">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td width="20%" class="listhdrr"><?=gettext("Name"); ?></td>
- <td width="43%" class="listhdrr"><?=gettext("Values"); ?></td>
- <td width="30%" class="listhdr"><?=gettext("Description"); ?></td>
- <td width="7%" class="list">
- <table border="0" cellspacing="0" cellpadding="1">
- <tr>
- <td valign="middle" width="17">&nbsp;</td>
- <td valign="middle"><a href="firewall_aliases_edit.php?tab=<?=$tab?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" <?=dom_title(gettext("Add a new alias"));?>></a></td>
- </tr>
- </table>
- </td>
-</tr>
- <?php
- asort($a_aliases);
- foreach ($a_aliases as $i=> $alias){
- unset ($show_alias);
- switch ($tab){
- case "all":
- $show_alias= true;
- break;
- case "ip":
- case "host":
- case "network":
- if (preg_match("/(host|network)/",$alias["type"]))
- $show_alias= true;
- break;
- case "url":
- if (preg_match("/(url)/i",$alias["type"]))
- $show_alias= true;
- break;
- case "port":
- if($alias["type"] == "port")
- $show_alias= true;
- break;
- }
- if ($show_alias){?>
- <tr>
- <td class="listlr" ondblclick="document.location='firewall_aliases_edit.php?id=<?=$i;?>';">
- <?=htmlspecialchars($alias['name']);?>
- </td>
- <td class="listr" ondblclick="document.location='firewall_aliases_edit.php?id=<?=$i;?>';">
- <?php
- if ($alias["url"]) {
- echo $alias["url"] . "<br/>";
- }
- if(is_array($alias["aliasurl"])) {
- $aliasurls = implode(", ", array_slice($alias["aliasurl"], 0, 10));
- echo $aliasurls;
- if(count($aliasurls) > 10) {
- echo "...<br/>";
- }
- echo "<br/>\n";
- }
- $tmpaddr = explode(" ", $alias['address']);
- $addresses = implode(", ", array_slice($tmpaddr, 0, 10));
- echo $addresses;
- if(count($tmpaddr) > 10) {
- echo "...";
- }
- ?>
- </td>
- <td class="listbg" ondblclick="document.location='firewall_aliases_edit.php?id=<?=$i;?>';">
- <?=htmlspecialchars($alias['descr']);?>&nbsp;
- </td>
- <td valign="middle" nowrap class="list">
- <table border="0" cellspacing="0" cellpadding="1">
- <tr>
- <td valign="middle"><a href="firewall_aliases_edit.php?id=<?=$i;?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0" <?=dom_title(gettext("Edit alias")." {$alias['name']}");?>></a></td>
- <td><a href="firewall_aliases.php?act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this alias? All elements that still use it will become invalid (e.g. filter rules)!");?>')"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" <?=dom_title(gettext("Delete alias")." {$alias['name']}");?>></a></td>
- </tr>
- </table>
- </td>
- </tr>
- <?php
- }
- }?>
+ <tr>
+ <td>
+ <div id="mainarea">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="main area">
+ <tr>
+ <td width="20%" class="listhdrr"><?=gettext("Name"); ?></td>
+ <td width="43%" class="listhdrr"><?=gettext("Values"); ?></td>
+ <td width="30%" class="listhdr"><?=gettext("Description"); ?></td>
+ <td width="7%" class="list">
+ <table border="0" cellspacing="0" cellpadding="1" summary="add">
+ <tr>
+ <td valign="middle" width="17">&nbsp;</td>
+ <td valign="middle"><a href="firewall_aliases_edit.php?tab=<?=$tab?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" <?=dom_title(gettext("Add a new alias"));?> alt="add" /></a></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <?php
+ asort($a_aliases);
+ foreach ($a_aliases as $i=> $alias){
+ unset ($show_alias);
+ switch ($tab){
+ case "all":
+ $show_alias= true;
+ break;
+ case "ip":
+ case "host":
+ case "network":
+ if (preg_match("/(host|network)/",$alias["type"]))
+ $show_alias= true;
+ break;
+ case "url":
+ if (preg_match("/(url)/i",$alias["type"]))
+ $show_alias= true;
+ break;
+ case "port":
+ if($alias["type"] == "port")
+ $show_alias= true;
+ break;
+ }
+ if ($show_alias) {
+ ?>
+ <tr>
+ <td class="listlr" ondblclick="document.location='firewall_aliases_edit.php?id=<?=$i;?>';">
+ <?=htmlspecialchars($alias['name']);?>
+ </td>
+ <td class="listr" ondblclick="document.location='firewall_aliases_edit.php?id=<?=$i;?>';">
+ <?php
+ if ($alias["url"]) {
+ echo $alias["url"] . "<br/>";
+ }
+ if(is_array($alias["aliasurl"])) {
+ $aliasurls = implode(", ", array_slice($alias["aliasurl"], 0, 10));
+ echo $aliasurls;
+ if(count($aliasurls) > 10) {
+ echo "...<br/>";
+ }
+ echo "<br/>\n";
+ }
+ $tmpaddr = explode(" ", $alias['address']);
+ $addresses = implode(", ", array_slice($tmpaddr, 0, 10));
+ echo $addresses;
+ if(count($tmpaddr) > 10) {
+ echo "...";
+ }
+ ?>
+ </td>
+ <td class="listbg" ondblclick="document.location='firewall_aliases_edit.php?id=<?=$i;?>';">
+ <?=htmlspecialchars($alias['descr']);?>&nbsp;
+ </td>
+ <td valign="middle" class="list nowrap">
+ <table border="0" cellspacing="0" cellpadding="1" summary="icons">
+ <tr>
+ <td valign="middle"><a href="firewall_aliases_edit.php?id=<?=$i;?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0" <?=dom_title(gettext("Edit alias")." {$alias['name']}");?> alt="edit" /></a></td>
+ <td><a href="firewall_aliases.php?act=del&amp;tab=<?=$tab;?>&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this alias? All elements that still use it will become invalid (e.g. filter rules)!");?>')"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" <?=dom_title(gettext("Delete alias")." {$alias['name']}");?> alt="delete" /></a></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <?php
+ } // if ($show_alias)
+ } // foreach
+ ?>
-<tr>
- <td colspan="3"/>&nbsp;</td>
- <td valign="middle" nowrap class="list">
- <table border="0" cellspacing="0" cellpadding="1">
- <tbody>
- <tr>
- <td valign="middle">
- <a href="firewall_aliases_edit.php?tab=<?=$tab?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" <?=dom_title(gettext("Add a new alias")); ?>></a>
- </td>
- <td valign="middle">
- <a href="firewall_aliases_import.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_import_alias.gif" width="17" height="17" border="0" <?=dom_title(gettext("Bulk import aliases from list"));?> alt="" /></a>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
-</tr>
+ <tr>
+ <td colspan="3">&nbsp;</td>
+ <td valign="middle" class="list nowrap">
+ <table border="0" cellspacing="0" cellpadding="1" summary="edit">
+ <tbody>
+ <tr>
+ <td valign="middle">
+ <a href="firewall_aliases_edit.php?tab=<?=$tab?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" <?=dom_title(gettext("Add a new alias")); ?> alt="add" /></a>
+ </td>
+ <td valign="middle">
+ <a href="firewall_aliases_import.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_import_alias.gif" width="17" height="17" border="0" <?=dom_title(gettext("Bulk import aliases from list"));?> alt="import" /></a>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
- <td class="tabcont" colspan="3">
- <p><span class="vexpl"><span class="red"><strong><?=gettext("Note:"); ?><br></strong></span><div style="overflow:hidden; text-align:justify;"><?=gettext("Aliases act as placeholders for real hosts, networks or ports. They can be used to minimize the number of changes that have to be made if a host, network or port changes. You can enter the name of an alias instead of the host, network or port in all fields that have a red background. The alias will be resolved according to the list above. If an alias cannot be resolved (e.g. because you deleted it), the corresponding element (e.g. filter/NAT/shaper rule) will be considered invalid and skipped."); ?></div></span></p>
- </td>
-</tr>
+ <tr>
+ <td class="tabcont" colspan="3">
+ <p><span class="vexpl"><span class="red"><strong><?=gettext("Note:"); ?><br/></strong></span></span></p><div style="overflow:hidden; text-align:justify;"><p><span class="vexpl"><?=gettext("Aliases act as placeholders for real hosts, networks or ports. They can be used to minimize the number of changes that have to be made if a host, network or port changes. You can enter the name of an alias instead of the host, network or port in all fields that have a red background. The alias will be resolved according to the list above. If an alias cannot be resolved (e.g. because you deleted it), the corresponding element (e.g. filter/NAT/shaper rule) will be considered invalid and skipped."); ?></span></p></div>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </td>
+ </tr>
</table>
- </div>
- </td>
- </tr>
- </table>
</form>
<?php include("fend.inc"); ?>
</body>
diff --git a/usr/local/www/firewall_aliases_edit.php b/usr/local/www/firewall_aliases_edit.php
index 28e3dad..a41770c 100755
--- a/usr/local/www/firewall_aliases_edit.php
+++ b/usr/local/www/firewall_aliases_edit.php
@@ -61,7 +61,9 @@ $reserved_keywords = array_merge($reserved_keywords, $reserved_ifs);
if (!is_array($config['aliases']['alias']))
$config['aliases']['alias'] = array();
$a_aliases = &$config['aliases']['alias'];
-
+
+$tab = $_REQUEST['tab'];
+
if($_POST)
$origname = $_POST['origname'];
@@ -71,7 +73,7 @@ if($debug)
function alias_same_type($name, $type) {
global $config;
-
+
foreach ($config['aliases']['alias'] as $alias) {
if ($name == $alias['name']) {
if (in_array($type, array("host", "network")) &&
@@ -101,7 +103,7 @@ if (isset($id) && $a_aliases[$id]) {
/* interface list */
$iflist = get_configured_interface_with_descr(false, true);
foreach ($iflist as $if => $ifdesc)
- if($ifdesc == $pconfig['descr'])
+ if($ifdesc == $pconfig['descr'])
$input_errors[] = sprintf(gettext("Sorry, an interface is already named %s."), $pconfig['descr']);
if($a_aliases[$id]['type'] == "urltable") {
@@ -110,18 +112,10 @@ if (isset($id) && $a_aliases[$id]) {
}
if($a_aliases[$id]['aliasurl'] <> "") {
$pconfig['type'] = "url";
- if(is_array($a_aliases[$id]['aliasurl'])) {
- $isfirst = 0;
- $pconfig['address'] = "";
- foreach($a_aliases[$id]['aliasurl'] as $aa) {
- if($isfirst == 1)
- $pconfig['address'] .= " ";
- $isfirst = 1;
- $pconfig['address'] .= $aa;
- }
- } else {
+ if(is_array($a_aliases[$id]['aliasurl']))
+ $pconfig['address'] = implode(" ", $a_aliases[$id]['aliasurl']);
+ else
$pconfig['address'] = $a_aliases[$id]['aliasurl'];
- }
}
}
@@ -155,7 +149,7 @@ if ($_POST) {
}
/* Check for reserved keyword names */
- foreach($reserved_keywords as $rk)
+ foreach($reserved_keywords as $rk)
if($rk == $_POST['name'])
$input_errors[] = sprintf(gettext("Cannot use a reserved keyword as alias name %s"), $rk);
@@ -166,7 +160,7 @@ if ($_POST) {
break;
}
}
-
+
$alias = array();
$address = array();
$final_address_details = array();
@@ -191,13 +185,17 @@ if ($_POST) {
$input_errors[] = gettext("Unable to fetch usable data.");
$dont_update = true;
}
+ if ($_POST["detail0"] <> "")
+ $final_address_details[] = $_POST["detail0"];
+ else
+ $final_address_details[] = sprintf(gettext("Entry added %s"), date('r'));
}
} elseif($_POST['type'] == "url") {
$isfirst = 0;
$address_count = 2;
/* item is a url type */
- for($x=0; isset($_POST['address' . $x]); $x++) {
+ for($x=0; $x<4999; $x++) {
$_POST['address' . $x] = trim($_POST['address' . $x]);
if($_POST['address' . $x]) {
/* fetch down and add in */
@@ -212,6 +210,16 @@ if ($_POST) {
/* if the item is tar gzipped then extract */
if(stristr($_POST['address' . $x], ".tgz"))
process_alias_tgz($temp_filename);
+
+ if (!isset($alias['aliasurl']))
+ $alias['aliasurl'] = array();
+
+ $alias['aliasurl'][] = $_POST['address' . $x];
+ if ($_POST["detail{$x}"] <> "")
+ $final_address_details[] = $_POST["detail{$x}"];
+ else
+ $final_address_details[] = sprintf(gettext("Entry added %s"), date('r'));
+
if(file_exists("{$temp_filename}/aliases")) {
$file_contents = file_get_contents("{$temp_filename}/aliases");
$file_contents = str_replace("#", "\n#", $file_contents);
@@ -234,21 +242,27 @@ if ($_POST) {
}
if($isfirst == 0) {
/* nothing was found */
- $input_errors[] = gettext("You must provide a valid URL. Could not fetch usable data.");
+ $input_errors[] = sprintf(gettext("You must provide a valid URL. Could not fetch usable data from '%s'."), $_POST['address' . $x]);
$dont_update = true;
- break;
}
- $alias['aliasurl'][] = $_POST['address' . $x];
mwexec("/bin/rm -rf {$temp_filename}");
} else {
- $input_errors[] = gettext("You must provide a valid URL.");
+ $input_errors[] = sprintf(gettext("URL '%s' is not valid."), $_POST['address' . $x]);
$dont_update = true;
- break;
}
}
}
} else {
/* item is a normal alias type */
+ $used_for_routes = 0;
+ if (isset($config['staticroutes']['route']) && is_array($config['staticroutes']['route'])) {
+ foreach($config['staticroutes']['route'] as $route) {
+ if ($route['network'] == $_POST['origname']) {
+ $used_for_routes = 1;
+ break;
+ }
+ }
+ }
$wrongaliases = "";
for($x=0; $x<4999; $x++) {
if($_POST["address{$x}"] <> "") {
@@ -267,6 +281,11 @@ if ($_POST) {
&& !is_hostname($_POST["address{$x}"])
&& !is_iprange($_POST["address{$x}"]))
$input_errors[] = sprintf(gettext('%1$s is not a valid %2$s alias.'), $_POST["address{$x}"], $_POST['type']);
+ if (($used_for_routes === 1)
+ && !is_ipaddr($_POST["address{$x}"])
+ && !is_iprange($_POST["address{$x}"])
+ && is_hostname($_POST["address{$x}"]))
+ $input_errors[] = gettext('This alias is used on a static route and cannot contain FQDNs.');
}
if (is_iprange($_POST["address{$x}"])) {
list($startip, $endip) = explode('-', $_POST["address{$x}"]);
@@ -288,7 +307,7 @@ if ($_POST) {
$input_errors[] = sprintf(gettext('The alias(es): %s cannot be nested because they are not of the same type.'), $wrongaliases);
}
- // Allow extending of the firewall edit page and include custom input validation
+ // Allow extending of the firewall edit page and include custom input validation
pfSense_handle_custom_code("/usr/local/pkg/firewall_aliases_edit/input_validation");
if (!$input_errors) {
@@ -356,8 +375,8 @@ if ($_POST) {
if (write_config())
mark_subsystem_dirty('aliases');
- if($_POST['tab'])
- header("Location: firewall_aliases.php?tab=" . htmlspecialchars ($_POST['tab']));
+ if(!empty($tab))
+ header("Location: firewall_aliases.php?tab=" . htmlspecialchars ($tab));
else
header("Location: firewall_aliases.php");
exit;
@@ -367,7 +386,10 @@ if ($_POST) {
{
$pconfig['name'] = $_POST['name'];
$pconfig['descr'] = $_POST['descr'];
- $pconfig['address'] = implode(" ", $address);
+ if ($_POST['type'] == 'url')
+ $pconfig['address'] = implode(" ", $alias['aliasurl']);
+ else
+ $pconfig['address'] = implode(" ", $address);
$pconfig['type'] = $_POST['type'];
$pconfig['detail'] = implode("||", $final_address_details);
}
@@ -378,7 +400,7 @@ include("head.inc");
$jscriptstr = <<<EOD
<script type="text/javascript">
-
+//<![CDATA[
var objAlias = new Array(4999);
function typesel_change() {
switch (document.iform.type.selectedIndex) {
@@ -413,7 +435,7 @@ function typesel_change() {
eval(comd);
}
break;
-/* case 3: // OpenVPN Users
+/* case 3: // OpenVPN Users
var cmd;
newrows = totalrows;
@@ -532,6 +554,7 @@ function update_box_type() {
document.getElementById ("addrowbutton").style.display = 'none';
}
}
+//]]>
</script>
EOD;
@@ -544,19 +567,16 @@ EOD;
echo $jscriptstr;
?>
-<script type="text/javascript" src="/javascript/jquery.ipv4v6ify.js">
-</script>
-<script type="text/javascript" src="/javascript/row_helper.js">
-</script>
-<script type="text/javascript" src="/javascript/autosuggest.js">
-</script>
-<script type="text/javascript" src="/javascript/suggestions.js">
-</script>
+<script type="text/javascript" src="/javascript/jquery.ipv4v6ify.js"></script>
+<script type="text/javascript" src="/javascript/row_helper.js"></script>
+<script type="text/javascript" src="/javascript/autosuggest.js"></script>
+<script type="text/javascript" src="/javascript/suggestions.js"></script>
<input type='hidden' name='address_type' value='textbox' />
<input type='hidden' name='address_subnet_type' value='select' />
<script type="text/javascript">
+//<![CDATA[
rowname[0] = "address";
rowtype[0] = "textbox,ipv4v6";
rowsize[0] = "30";
@@ -568,6 +588,7 @@ EOD;
rowname[2] = "detail";
rowtype[2] = "textbox";
rowsize[2] = "50";
+//]]>
</script>
<?php pfSense_handle_custom_code("/usr/local/pkg/firewall_aliases_edit/pre_input_errors"); ?>
@@ -575,126 +596,136 @@ EOD;
<div id="inputerrors"></div>
<form action="firewall_aliases_edit.php" method="post" name="iform" id="iform">
-<input name="tab" type="hidden" id="tab" value="<?=htmlspecialchars($pconfig['type']);?>" />
-<table width="100%" border="0" cellpadding="6" cellspacing="0">
- <tr>
- <td colspan="2" valign="top" class="listtopic"><?=gettext("Alias Edit"); ?></td>
- </tr>
- <tr>
- <td valign="top" class="vncellreq"><?=gettext("Name"); ?></td>
- <td class="vtable">
- <input name="origname" type="hidden" id="origname" class="formfld unknown" size="40" value="<?=htmlspecialchars($pconfig['name']);?>" />
- <input name="name" type="text" id="name" class="formfld unknown" size="40" value="<?=htmlspecialchars($pconfig['name']);?>" />
- <?php if (isset($id) && $a_aliases[$id]): ?>
- <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>" />
- <?php endif; ?>
- <br />
- <span class="vexpl">
- <?=gettext("The name of the alias may only consist of the characters \"a-z, A-Z, 0-9 and _\"."); ?>
- </span>
- </td>
- </tr>
- <?php pfSense_handle_custom_code("/usr/local/pkg/firewall_aliases_edit/after_first_tr"); ?>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Description"); ?></td>
- <td width="78%" class="vtable">
- <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>" />
- <br />
- <span class="vexpl">
- <?=gettext("You may enter a description here for your reference (not parsed)."); ?>
- </span>
- </td>
- </tr>
- <tr>
- <td valign="top" class="vncellreq"><?=gettext("Type"); ?></td>
- <td class="vtable">
- <select name="type" class="formselect" id="type" onchange="update_box_type(); typesel_change();">
- <option value="host" <?php if ($pconfig['type'] == "host") echo "selected"; ?>><?=gettext("Host(s)"); ?></option>
- <option value="network" <?php if ($pconfig['type'] == "network") echo "selected"; ?>><?=gettext("Network(s)"); ?></option>
- <option value="port" <?php if ($pconfig['type'] == "port") echo "selected"; ?>><?=gettext("Port(s)"); ?></option>
-<!-- <option value="openvpn" <?php if ($pconfig['type'] == "openvpn") echo "selected"; ?>><?=gettext("OpenVPN Users"); ?></option> -->
- <option value="url" <?php if ($pconfig['type'] == "url") echo "selected"; ?>><?=gettext("URL");?></option>
- <option value="urltable" <?php if ($pconfig['type'] == "urltable") echo "selected"; ?>><?=gettext("URL Table"); ?></option>
- </select>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><div id="addressnetworkport"><?=gettext("Host(s)"); ?></div></td>
- <td width="78%" class="vtable">
- <table id="maintable">
- <tbody>
- <tr>
- <td colspan="4">
- <div style="padding:5px; margin-top: 16px; margin-bottom: 16px; border:1px dashed #000066; background-color: #ffffff; color: #000000; font-size: 8pt;" id="itemhelp"><?=gettext("Item information"); ?></div>
- </td>
- </tr>
- <tr>
- <td><div id="onecolumn"><?=gettext("Network"); ?></div></td>
- <td><div id="twocolumn">CIDR</div></td>
- <td><div id="threecolumn"><?=gettext("Description"); ?></div></td>
- </tr>
-
- <?php
- $counter = 0;
- $address = $pconfig['address'];
- if ($address <> "") {
- $item = explode(" ", $address);
- $item3 = explode("||", $pconfig['detail']);
- foreach($item as $ww) {
- $address = $item[$counter];
- $address_subnet = "";
- $item2 = explode("/", $address);
- foreach($item2 as $current) {
- if($item2[1] <> "") {
- $address = $item2[0];
- $address_subnet = $item2[1];
- }
-
- }
- $item4 = $item3[$counter];
- $tracker = $counter;
- ?>
- <tr>
- <td>
- <input autocomplete="off" name="address<?php echo $tracker; ?>" type="text" class="formfldalias ipv4v6" id="address<?php echo $tracker; ?>" size="30" value="<?=htmlspecialchars($address);?>" />
- </td>
- <td>
- <select name="address_subnet<?php echo $tracker; ?>" class="formselect ipv4v6" id="address_subnet<?php echo $tracker; ?>">
- <option></option>
- <?php for ($i = 128; $i >= 1; $i--): ?>
- <option value="<?=$i;?>" <?php if (($i == $address_subnet) || ($i == $pconfig['updatefreq'])) echo "selected"; ?>><?=$i;?></option>
- <?php endfor; ?>
- </select>
- </td>
- <td>
- <input name="detail<?php echo $tracker; ?>" type="text" class="formfld unknown" id="detail<?php echo $tracker; ?>" size="50" value="<?=$item4;?>" />
- </td>
- <td>
- <a onclick="removeRow(this); return false;" href="#"><img border="0" src="/themes/<?echo $g['theme'];?>/images/icons/icon_x.gif" alt="" title="<?=gettext("remove this entry"); ?>" /></a>
- </td>
- </tr>
<?php
- $counter++;
-
- } // end foreach
- } // end if
+if (empty($tab)) {
+ if ($pconfig['type'] == 'urltable')
+ $tab = 'url';
+ else if ($pconfig['type'] == 'host')
+ $tab = 'ip';
+ else
+ $tab = $pconfig['type'];
+}
?>
- </tbody>
- <tfoot>
+<input name="tab" type="hidden" id="tab" value="<?=htmlspecialchars($tab);?>" />
+<table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0" summary="firewall aliases edit">
+ <tr>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("Alias Edit"); ?></td>
+ </tr>
+ <tr>
+ <td valign="top" class="vncellreq"><?=gettext("Name"); ?></td>
+ <td class="vtable">
+ <input name="origname" type="hidden" id="origname" class="formfld unknown" size="40" value="<?=htmlspecialchars($pconfig['name']);?>" />
+ <input name="name" type="text" id="name" class="formfld unknown" size="40" value="<?=htmlspecialchars($pconfig['name']);?>" />
+ <?php if (isset($id) && $a_aliases[$id]): ?>
+ <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>" />
+ <?php endif; ?>
+ <br />
+ <span class="vexpl">
+ <?=gettext("The name of the alias may only consist of the characters \"a-z, A-Z, 0-9 and _\"."); ?>
+ </span>
+ </td>
+ </tr>
+ <?php pfSense_handle_custom_code("/usr/local/pkg/firewall_aliases_edit/after_first_tr"); ?>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Description"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>" />
+ <br />
+ <span class="vexpl">
+ <?=gettext("You may enter a description here for your reference (not parsed)."); ?>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top" class="vncellreq"><?=gettext("Type"); ?></td>
+ <td class="vtable">
+ <select name="type" class="formselect" id="type" onchange="update_box_type(); typesel_change();">
+ <option value="host" <?php if ($pconfig['type'] == "host") echo "selected=\"selected\""; ?>><?=gettext("Host(s)"); ?></option>
+ <option value="network" <?php if ($pconfig['type'] == "network") echo "selected=\"selected\""; ?>><?=gettext("Network(s)"); ?></option>
+ <option value="port" <?php if ($pconfig['type'] == "port") echo "selected=\"selected\""; ?>><?=gettext("Port(s)"); ?></option>
+ <!--<option value="openvpn" <?php if ($pconfig['type'] == "openvpn") echo "selected=\"selected\""; ?>><?=gettext("OpenVPN Users"); ?></option> -->
+ <option value="url" <?php if ($pconfig['type'] == "url") echo "selected=\"selected\""; ?>><?=gettext("URL");?></option>
+ <option value="urltable" <?php if ($pconfig['type'] == "urltable") echo "selected=\"selected\""; ?>><?=gettext("URL Table"); ?></option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq"><div id="addressnetworkport"><?=gettext("Host(s)"); ?></div></td>
+ <td width="78%" class="vtable">
+ <table id="maintable" summary="maintable">
+ <tbody>
+ <tr>
+ <td colspan="4">
+ <div style="padding:5px; margin-top: 16px; margin-bottom: 16px; border:1px dashed #000066; background-color: #ffffff; color: #000000; font-size: 8pt;" id="itemhelp"><?=gettext("Item information"); ?></div>
+ </td>
+ </tr>
+ <tr>
+ <td><div id="onecolumn"><?=gettext("Network"); ?></div></td>
+ <td><div id="twocolumn">CIDR</div></td>
+ <td><div id="threecolumn"><?=gettext("Description"); ?></div></td>
+ </tr>
+
+ <?php
+ $counter = 0;
+ $address = $pconfig['address'];
+ if ($address <> "") {
+ $item = explode(" ", $address);
+ $item3 = explode("||", $pconfig['detail']);
+ foreach($item as $ww) {
+ $address = $item[$counter];
+ $address_subnet = "";
+ $item2 = explode("/", $address);
+ foreach($item2 as $current) {
+ if($item2[1] <> "") {
+ $address = $item2[0];
+ $address_subnet = $item2[1];
+ }
- </tfoot>
- </table>
- <div id="addrowbutton"><a onclick="javascript:addRowTo('maintable', 'formfldalias'); typesel_change(); add_alias_control(this); return false;" href="#">
- <img border="0" src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" alt="" title="<?=gettext("add another entry"); ?>" /></a></div>
+ }
+ $item4 = $item3[$counter];
+ $tracker = $counter;
+ ?>
+ <tr>
+ <td>
+ <input autocomplete="off" name="address<?php echo $tracker; ?>" type="text" class="formfldalias ipv4v6" id="address<?php echo $tracker; ?>" size="30" value="<?=htmlspecialchars($address);?>" />
+ </td>
+ <td>
+ <select name="address_subnet<?php echo $tracker; ?>" class="formselect ipv4v6" id="address_subnet<?php echo $tracker; ?>">
+ <option></option>
+ <?php for ($i = 128; $i >= 1; $i--): ?>
+ <option value="<?=$i;?>" <?php if (($i == $address_subnet) || ($i == $pconfig['updatefreq'])) echo "selected=\"selected\""; ?>><?=$i;?></option>
+ <?php endfor; ?>
+ </select>
+ </td>
+ <td>
+ <input name="detail<?php echo $tracker; ?>" type="text" class="formfld unknown" id="detail<?php echo $tracker; ?>" size="50" value="<?=$item4;?>" />
+ </td>
+ <td>
+ <a onclick="removeRow(this); return false;" href="#"><img border="0" src="/themes/<?echo $g['theme'];?>/images/icons/icon_x.gif" alt="" title="<?=gettext("remove this entry"); ?>" /></a>
+ </td>
+ </tr>
+ <?php
+ $counter++;
+
+ } // end foreach
+ } // end if
+ ?>
+ </tbody>
+ </table>
+ <div id="addrowbutton">
+ <a onclick="javascript:addRowTo('maintable', 'formfldalias'); typesel_change(); add_alias_control(this); return false;" href="#">
+ <img border="0" src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" alt="" title="<?=gettext("add another entry"); ?>" />
+ </a>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top">&nbsp;</td>
+ <td width="78%">
+ <input id="submit" name="submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>" />
+ <a href="firewall_aliases.php?tab=<?=$tab;?>"><input id="cancelbutton" name="cancelbutton" type="button" class="formbtn" value="<?=gettext("Cancel"); ?>" /></a>
</td>
- </tr>
- <tr>
- <td width="22%" valign="top">&nbsp;</td>
- <td width="78%">
- <input id="submit" name="submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>" />
- <a href="firewall_aliases.php"><input id="cancelbutton" name="cancelbutton" type="button" class="formbtn" value="<?=gettext("Cancel"); ?>" /></a>
- </td>
- </tr>
+ </tr>
</table>
</form>
@@ -710,7 +741,7 @@ EOD;
var addressarray = <?= json_encode(array_exclude($pconfig['name'], get_alias_list($pconfig['type']))) ?>;
function createAutoSuggest() {
- <?php
+ <?php
for ($jv = 0; $jv < $counter; $jv++)
echo "objAlias[{$jv}] = new AutoSuggestControl(document.getElementById(\"address{$jv}\"), new StateSuggestions(addressarray));\n";
?>
diff --git a/usr/local/www/firewall_aliases_import.php b/usr/local/www/firewall_aliases_import.php
index de52671..776b348 100755
--- a/usr/local/www/firewall_aliases_import.php
+++ b/usr/local/www/firewall_aliases_import.php
@@ -126,7 +126,7 @@ include("head.inc");
<div id="niftyOutter">
<form action="firewall_aliases_import.php" method="post" name="iform" id="iform">
<div id="inputerrors"></div>
-<table width="100%" border="0" cellpadding="6" cellspacing="0">
+<table width="100%" border="0" cellpadding="6" cellspacing="0" summary="firewall alias import">
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Alias Import"); ?></td>
</tr>
@@ -144,7 +144,7 @@ include("head.inc");
</tr>
<tr>
<td valign="top" class="vncellreq"><?=gettext("Aliases to import"); ?></td>
- <td class="vtable"><textarea name="aliasimport" ROWS="15" COLS="40"><?php echo $_POST['aliasimport']; ?></textarea>
+ <td class="vtable"><textarea name="aliasimport" rows="15" cols="40"><?php echo $_POST['aliasimport']; ?></textarea>
<br /> <span class="vexpl"><?=gettext("Paste in the aliases to import separated by a carriage return. Common examples are lists of IPs, networks, blacklists, etc."); ?>
<br /> <?=gettext("The list may contain only IP addresses."); ?> </span></td>
</tr>
@@ -153,7 +153,7 @@ include("head.inc");
<td width="78%">
<input id="submit" name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>" />
<input class="formbtn" type="button" value="<?=gettext("Cancel"); ?>" onclick="history.back()" />
- </tr>
+ </td></tr>
</table>
@@ -163,10 +163,11 @@ include("head.inc");
<?php include("fend.inc"); ?>
<script type="text/javascript">
+//<![CDATA[
NiftyCheck();
Rounded("div#nifty","top","#FFF","#EEEEEE","smooth");
+//]]>
</script>
-
</body>
</html>
diff --git a/usr/local/www/firewall_nat.php b/usr/local/www/firewall_nat.php
index 75d675d..27d7eff 100755
--- a/usr/local/www/firewall_nat.php
+++ b/usr/local/www/firewall_nat.php
@@ -216,7 +216,7 @@ echo "<script type=\"text/javascript\" language=\"javascript\" src=\"/javascript
<input name="del" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" title="<?=gettext("delete selected rules"); ?>" onclick="return confirm('<?=gettext("Do you really want to delete the selected rules?");?>')">
<?php endif; ?>
</td>
- <td><a href="firewall_nat_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
+ <td><a href="firewall_nat_edit.php?after=-1"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
</tr>
</table>
</td>
diff --git a/usr/local/www/firewall_nat_edit.php b/usr/local/www/firewall_nat_edit.php
index 009a442..6f6d5cf 100755
--- a/usr/local/www/firewall_nat_edit.php
+++ b/usr/local/www/firewall_nat_edit.php
@@ -60,15 +60,25 @@ $id = $_GET['id'];
if (isset($_POST['id']))
$id = $_POST['id'];
+$after = $_GET['after'];
+
+if (isset($_POST['after']))
+ $after = $_POST['after'];
+
if (isset($_GET['dup'])) {
$id = $_GET['dup'];
$after = $_GET['dup'];
}
if (isset($id) && $a_nat[$id]) {
+ if ( isset($a_nat[$id]['created']) && is_array($a_nat[$id]['created']) )
+ $pconfig['created'] = $a_nat[$id]['created'];
+
+ if ( isset($a_nat[$id]['updated']) && is_array($a_nat[$id]['updated']) )
+ $pconfig['updated'] = $a_nat[$id]['updated'];
+
$pconfig['disabled'] = isset($a_nat[$id]['disabled']);
$pconfig['nordr'] = isset($a_nat[$id]['nordr']);
-
address_to_pconfig($a_nat[$id]['source'], $pconfig['src'],
$pconfig['srcmask'], $pconfig['srcnot'],
$pconfig['srcbeginport'], $pconfig['srcendport']);
@@ -365,16 +375,6 @@ if ($_POST) {
$_POST['filter-rule-association']=='add-unassociated') )
$need_filter_rule = true;
- // Determine NAT entry ID now, we need it for the firewall rule
- if (isset($id) && $a_nat[$id])
- $a_nat[$id] = $natent;
- else {
- if (is_numeric($after))
- $id = $after + 1;
- else
- $id = count($a_nat);
- }
-
if ($need_filter_rule == true) {
/* auto-generate a matching firewall rule */
@@ -383,7 +383,7 @@ if ($_POST) {
// If a rule already exists, load it
if (!empty($natent['associated-rule-id'])) {
$filterentid = get_id($natent['associated-rule-id'], $config['filter']['rule']);
- if ($filterentid == false)
+ if ($filterentid === false)
$filterent['associated-rule-id'] = $natent['associated-rule-id'];
else
$filterent =& $config['filter']['rule'][$filterentid];
@@ -414,12 +414,18 @@ if ($_POST) {
// If this is a new rule, create an ID and add the rule
if( $_POST['filter-rule-association']=='add-associated' ) {
$filterent['associated-rule-id'] = $natent['associated-rule-id'] = get_unique_id();
+ $filterent['created'] = make_config_revision_entry(null, gettext("NAT Port Forward"));
$config['filter']['rule'][] = $filterent;
}
mark_subsystem_dirty('filter');
}
+ if ( isset($a_nat[$id]['created']) && is_array($a_nat[$id]['created']) )
+ $natent['created'] = $a_nat[$id]['created'];
+
+ $natent['updated'] = make_config_revision_entry();
+
// Allow extending of the firewall edit page and include custom input validation
pfSense_handle_custom_code("/usr/local/pkg/firewall_nat/pre_write_config");
@@ -427,6 +433,7 @@ if ($_POST) {
if (isset($id) && $a_nat[$id])
$a_nat[$id] = $natent;
else {
+ $natent['created'] = make_config_revision_entry();
if (is_numeric($after))
array_splice($a_nat, $after+1, 0, array($natent));
else
@@ -782,7 +789,7 @@ include("fbegin.inc"); ?>
<td width="22%" valign="top" class="vncell"><?=gettext("No XMLRPC Sync"); ?></td>
<td width="78%" class="vtable">
<input type="checkbox" value="yes" name="nosync"<?php if($pconfig['nosync']) echo " CHECKED"; ?>><br>
- <?=gettext("HINT: This prevents the rule from automatically syncing to other CARP members"); ?>.
+ <?=gettext("Hint: This prevents the rule on Master from automatically syncing to other CARP members. This does NOT prevent the rule from being overwritten on Slave.");?>
</td>
</tr>
<tr>
@@ -837,12 +844,41 @@ include("fbegin.inc"); ?>
<option value="add-unassociated"><?=gettext("Add unassociated filter rule"); ?></option>
<option value="pass"><?=gettext("Pass"); ?></option>
</select>
+ <br/><br/><?=gettext("NOTE: The \"pass\" selection does not work properly with Multi-WAN. It will only work on an interface containing the default gateway.")?>
</td>
</tr><?php endif; ?>
<?php
// Allow extending of the firewall edit page and include custom input validation
pfSense_handle_custom_code("/usr/local/pkg/firewall_nat/htmlphplate");
?>
+<?php
+$has_created_time = (isset($a_nat[$id]['created']) && is_array($a_nat[$id]['created']));
+$has_updated_time = (isset($a_nat[$id]['updated']) && is_array($a_nat[$id]['updated']));
+?>
+ <?php if ($has_created_time || $has_updated_time): ?>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("Rule Information");?></td>
+ </tr>
+ <?php if ($has_created_time): ?>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Created");?></td>
+ <td width="78%" class="vtable">
+ <?= date(gettext("n/j/y H:i:s"), $a_nat[$id]['created']['time']) ?> <?= gettext("by") ?> <strong><?= $a_nat[$id]['created']['username'] ?></strong>
+ </td>
+ </tr>
+ <?php endif; ?>
+ <?php if ($has_updated_time): ?>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Updated");?></td>
+ <td width="78%" class="vtable">
+ <?= date(gettext("n/j/y H:i:s"), $a_nat[$id]['updated']['time']) ?> <?= gettext("by") ?> <strong><?= $a_nat[$id]['updated']['username'] ?></strong>
+ </td>
+ </tr>
+ <?php endif; ?>
+ <?php endif; ?>
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">&nbsp;</td>
@@ -854,6 +890,7 @@ include("fbegin.inc"); ?>
<?php if (isset($id) && $a_nat[$id]): ?>
<input name="id" type="hidden" value="<?=htmlspecialchars($id);?>">
<?php endif; ?>
+ <input name="after" type="hidden" value="<?=htmlspecialchars($after);?>">
</td>
</tr>
</table>
diff --git a/usr/local/www/firewall_nat_out.php b/usr/local/www/firewall_nat_out.php
index 7485965..f8c2417 100755
--- a/usr/local/www/firewall_nat_out.php
+++ b/usr/local/www/firewall_nat_out.php
@@ -94,120 +94,127 @@ if (isset($_POST['save']) && $_POST['save'] == "Save") {
$ifdescrs = get_configured_interface_with_descr();
foreach($ifdescrs as $if => $ifdesc) {
- if (interface_has_gateway($if))
+ if (!interface_has_gateway($if))
continue;
- $osipaddr = get_interface_ip($if);
- $ossubnet = get_interface_subnet($if);
- if (!is_ipaddr($osipaddr) || empty($ossubnet))
- continue;
- $osn = gen_subnet($osipaddr, $ossubnet);
foreach ($ifdescrs as $if2 => $ifdesc2) {
- if (!interface_has_gateway($if2))
+ if (interface_has_gateway($if2))
+ continue;
+
+ $osipaddr = get_interface_ip($if2);
+ $ossubnet = get_interface_subnet($if2);
+ if (!is_ipaddr($osipaddr) || empty($ossubnet))
continue;
+ $osn = gen_subnet($osipaddr, $ossubnet);
$natent = array();
$natent['source']['network'] = "{$osn}/{$ossubnet}";
$natent['dstport'] = "500";
- $natent['descr'] = sprintf(gettext('Auto created rule for ISAKMP - %1$s to %2$s'),$ifdesc,$ifdesc2);
+ $natent['descr'] = sprintf(gettext('Auto created rule for ISAKMP - %1$s to %2$s'),$ifdesc2,$ifdesc);
$natent['target'] = "";
- $natent['interface'] = $if2;
+ $natent['interface'] = $if;
$natent['destination']['any'] = true;
$natent['staticnatport'] = true;
+ $natent['created'] = make_config_revision_entry(null, gettext("Manual Outbound NAT Switch"));
$a_out[] = $natent;
-
+
$natent = array();
- $natent['source']['network'] = "{$osn}/{$ossubnet}";
- $natent['sourceport'] = "";
- $natent['descr'] = sprintf(gettext('Auto created rule for %1$s to %2$s'),$ifdesc,$ifdesc2);
- $natent['target'] = "";
- $natent['interface'] = $if2;
- $natent['destination']['any'] = true;
- $natent['natport'] = "";
- $a_out[] = $natent;
-
- $natent = array();
- $natent['source']['network'] = "127.0.0.0/8";
- $natent['dstport'] = "";
- $natent['descr'] = sprintf(gettext('Auto created rule for localhost to %1$s'),$ifdesc2);
- $natent['target'] = "";
- $natent['interface'] = $if2;
- $natent['destination']['any'] = true;
- $natent['staticnatport'] = false;
- $natent['natport'] = "1024:65535";
- $a_out[] = $natent;
-
- /* PPTP subnet */
- if (($config['pptpd']['mode'] == "server") && is_private_ip($config['pptpd']['remoteip'])) {
- $pptp_size = empty($config['pptpd']['n_pptp_units']) ? 16 : $config['pptpd']['n_pptp_units'];
- $pptptopip = $pptp_size - 1;
- $pptp_subnets = ip_range_to_subnet_array($config['pptpd']['remoteip'], long2ip32(ip2long($config['pptpd']['remoteip'])+$pptptopip));
- foreach ($pptp_subnets as $pptpsn) {
- $natent = array();
- $natent['source']['network'] = $pptpsn;
- $natent['sourceport'] = "";
- $natent['descr'] = gettext("Auto created rule for PPTP server");
- $natent['target'] = "";
- $natent['interface'] = $if2;
- $natent['destination']['any'] = true;
- $natent['natport'] = "";
- $a_out[] = $natent;
- }
- }
- /* PPPoE subnet */
- if (is_pppoe_server_enabled() && have_ruleint_access("pppoe")) {
- foreach ($config['pppoes']['pppoe'] as $pppoes) {
- if (($pppoes['mode'] == "server") && is_ipaddr($pppoes['localip'])) {
- if($pppoes['pppoe_subnet'] <> "")
- $ossubnet = $pppoes['pppoe_subnet'];
- else
- $ossubnet = "32";
- $osn = gen_subnet($pppoes['localip'], $ossubnet);
- $natent = array();
- $natent['source']['network'] = "{$osn}/{$ossubnet}";
- $natent['sourceport'] = "";
- $natent['descr'] = gettext("Auto created rule for PPPoE server");
- $natent['target'] = "";
- $natent['interface'] = $if2;
- $natent['destination']['any'] = true;
- $natent['natport'] = "";
- $a_out[] = $natent;
- }
- }
+ $natent['source']['network'] = "{$osn}/{$ossubnet}";
+ $natent['sourceport'] = "";
+ $natent['descr'] = sprintf(gettext('Auto created rule for %1$s to %2$s'),$ifdesc2,$ifdesc);
+ $natent['target'] = "";
+ $natent['interface'] = $if;
+ $natent['destination']['any'] = true;
+ $natent['natport'] = "";
+ $natent['created'] = make_config_revision_entry(null, gettext("Manual Outbound NAT Switch"));
+ $a_out[] = $natent;
+ }
+ /* Localhost */
+ $natent = array();
+ $natent['source']['network'] = "127.0.0.0/8";
+ $natent['dstport'] = "";
+ $natent['descr'] = sprintf(gettext('Auto created rule for localhost to %1$s'),$ifdesc);
+ $natent['target'] = "";
+ $natent['interface'] = $if;
+ $natent['destination']['any'] = true;
+ $natent['staticnatport'] = false;
+ $natent['natport'] = "1024:65535";
+ $natent['created'] = make_config_revision_entry(null, gettext("Manual Outbound NAT Switch"));
+ $a_out[] = $natent;
+ /* PPTP subnet */
+ if (($config['pptpd']['mode'] == "server") && is_private_ip($config['pptpd']['remoteip'])) {
+ $pptp_size = empty($config['pptpd']['n_pptp_units']) ? 16 : $config['pptpd']['n_pptp_units'];
+ $pptptopip = $pptp_size - 1;
+ $pptp_subnets = ip_range_to_subnet_array($config['pptpd']['remoteip'], long2ip32(ip2long($config['pptpd']['remoteip'])+$pptptopip));
+ foreach ($pptp_subnets as $pptpsn) {
+ $natent = array();
+ $natent['source']['network'] = $pptpsn;
+ $natent['sourceport'] = "";
+ $natent['descr'] = gettext("Auto created rule for PPTP server");
+ $natent['target'] = "";
+ $natent['interface'] = $if;
+ $natent['destination']['any'] = true;
+ $natent['natport'] = "";
+ $natent['created'] = make_config_revision_entry(null, gettext("Manual Outbound NAT Switch"));
+ $a_out[] = $natent;
}
- /* L2TP subnet */
- if($config['l2tp']['mode'] == "server") {
- if (is_ipaddr($config['l2tp']['localip'])) {
- if($config['l2tp']['l2tp_subnet'] <> "")
- $ossubnet = $config['l2tp']['l2tp_subnet'];
+ }
+ /* PPPoE subnet */
+ if (is_pppoe_server_enabled() && have_ruleint_access("pppoe")) {
+ foreach ($config['pppoes']['pppoe'] as $pppoes) {
+ if (($pppoes['mode'] == "server") && is_ipaddr($pppoes['localip'])) {
+ if($pppoes['pppoe_subnet'] <> "")
+ $ossubnet = $pppoes['pppoe_subnet'];
else
$ossubnet = "32";
- $osn = gen_subnet($config['l2tp']['localip'], $ossubnet);
+ $osn = gen_subnet($pppoes['localip'], $ossubnet);
$natent = array();
$natent['source']['network'] = "{$osn}/{$ossubnet}";
$natent['sourceport'] = "";
- $natent['descr'] = gettext("Auto created rule for L2TP server");
+ $natent['descr'] = gettext("Auto created rule for PPPoE server");
$natent['target'] = "";
- $natent['interface'] = $if2;
+ $natent['interface'] = $if;
$natent['destination']['any'] = true;
$natent['natport'] = "";
+ $natent['created'] = make_config_revision_entry(null, gettext("Manual Outbound NAT Switch"));
$a_out[] = $natent;
}
}
- /* add openvpn interfaces */
- if($config['openvpn']['openvpn-server']) {
- foreach ($config['openvpn']['openvpn-server'] as $ovpnsrv) {
- $natent = array();
- $natent['source']['network'] = $ovpnsrv['tunnel_network'];
- $natent['sourceport'] = "";
- $natent['descr'] = gettext("Auto created rule for OpenVPN server");
- $natent['target'] = "";
- $natent['interface'] = $if2;
- $natent['destination']['any'] = true;
- $natent['natport'] = "";
- $a_out[] = $natent;
- }
+ }
+ /* L2TP subnet */
+ if($config['l2tp']['mode'] == "server") {
+ if (is_ipaddr($config['l2tp']['localip'])) {
+ if($config['l2tp']['l2tp_subnet'] <> "")
+ $ossubnet = $config['l2tp']['l2tp_subnet'];
+ else
+ $ossubnet = "32";
+ $osn = gen_subnet($config['l2tp']['localip'], $ossubnet);
+ $natent = array();
+ $natent['source']['network'] = "{$osn}/{$ossubnet}";
+ $natent['sourceport'] = "";
+ $natent['descr'] = gettext("Auto created rule for L2TP server");
+ $natent['target'] = "";
+ $natent['interface'] = $if;
+ $natent['destination']['any'] = true;
+ $natent['natport'] = "";
+ $natent['created'] = make_config_revision_entry(null, gettext("Manual Outbound NAT Switch"));
+ $a_out[] = $natent;
+ }
+ }
+ /* add openvpn interfaces */
+ if($config['openvpn']['openvpn-server']) {
+ foreach ($config['openvpn']['openvpn-server'] as $ovpnsrv) {
+ $natent = array();
+ $natent['source']['network'] = $ovpnsrv['tunnel_network'];
+ $natent['sourceport'] = "";
+ $natent['descr'] = gettext("Auto created rule for OpenVPN server");
+ $natent['target'] = "";
+ $natent['interface'] = $if;
+ $natent['destination']['any'] = true;
+ $natent['natport'] = "";
+ $natent['created'] = make_config_revision_entry(null, gettext("Manual Outbound NAT Switch"));
+ $a_out[] = $natent;
}
- }
+ }
}
$savemsg = gettext("Default rules for each interface have been created.");
@@ -362,7 +369,7 @@ include("head.inc");
<table border="0" cellspacing="0" cellpadding="1">
<tr>
<td width="17"></td>
- <td><a href="firewall_nat_out_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" title="<?=gettext("add new mapping");?>"></a></td>
+ <td><a href="firewall_nat_out_edit.php?after=-1"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" title="<?=gettext("add new mapping");?>"></a></td>
</tr>
</table>
</td>
@@ -372,12 +379,7 @@ include("head.inc");
<td class="listt"><input type="checkbox" id="frc<?=$nnats;?>" name="rule[]" value="<?=$i;?>" onClick="fr_bgcolor('<?=$nnats;?>')" style="margin: 0; padding: 0; width: 15px; height: 15px;"></td>
<td class="listt" align="center"></td>
<td class="listlr" onClick="fr_toggle(<?=$nnats;?>)" id="frd<?=$nnats;?>" ondblclick="document.location='firewall_nat_out_edit.php?id=<?=$nnats;?>';">
- <?php
- if (!$natent['interface'])
- echo htmlspecialchars(convert_friendly_interface_to_friendly_descr("wan"));
- else
- echo htmlspecialchars(convert_friendly_interface_to_friendly_descr($natent['interface']));
- ?>
+ <?php echo htmlspecialchars(convert_friendly_interface_to_friendly_descr($natent['interface'])); ?>
&nbsp;
</td>
<td class="listr" onClick="fr_toggle(<?=$nnats;?>)" id="frd<?=$nnats;?>" ondblclick="document.location='firewall_nat_out_edit.php?id=<?=$nnats;?>';">
diff --git a/usr/local/www/firewall_nat_out_edit.php b/usr/local/www/firewall_nat_out_edit.php
index eff0271..479f6f4 100755
--- a/usr/local/www/firewall_nat_out_edit.php
+++ b/usr/local/www/firewall_nat_out_edit.php
@@ -63,13 +63,23 @@ if (isset($_POST['id'])) {
$id = $_POST['id'];
}
+$after = $_GET['after'];
+
+if (isset($_POST['after']))
+ $after = $_POST['after'];
+
if (isset($_GET['dup'])) {
$id = $_GET['dup'];
$after = $_GET['dup'];
-} else
- unset($after);
+}
if (isset($id) && $a_out[$id]) {
+ if ( isset($a_out[$id]['created']) && is_array($a_out[$id]['created']) )
+ $pconfig['created'] = $a_out[$id]['created'];
+
+ if ( isset($a_out[$id]['updated']) && is_array($a_out[$id]['updated']) )
+ $pconfig['updated'] = $a_out[$id]['updated'];
+
$pconfig['protocol'] = $a_out[$id]['protocol'];
list($pconfig['source'],$pconfig['source_subnet']) = explode('/', $a_out[$id]['source']['network']);
if (!is_numeric($pconfig['source_subnet']))
@@ -290,12 +300,18 @@ if ($_POST) {
$natent['destination']['not'] = true;
}
+ if ( isset($a_out[$id]['created']) && is_array($a_out[$id]['created']) )
+ $natent['created'] = $a_out[$id]['created'];
+
+ $natent['updated'] = make_config_revision_entry();
+
// Allow extending of the firewall edit page and include custom input validation
pfSense_handle_custom_code("/usr/local/pkg/firewall_aon/pre_write_config");
if (isset($id) && $a_out[$id]) {
$a_out[$id] = $natent;
} else {
+ $natent['created'] = make_config_revision_entry();
if (is_numeric($after)) {
array_splice($a_out, $after+1, 0, array($natent));
} else {
@@ -640,7 +656,7 @@ any)");?></td>
<td width="22%" valign="top" class="vncell"><?=gettext("No XMLRPC Sync");?></td>
<td width="78%" class="vtable">
<input value="yes" name="nosync" type="checkbox" class="formfld" id="nosync"<?php if($pconfig['nosync']) echo " CHECKED"; ?>><br>
- <?=gettext("HINT: This prevents the rule from automatically syncing to other CARP members.");?>
+ <?=gettext("Hint: This prevents the rule on Master from automatically syncing to other CARP members. This does NOT prevent the rule from being overwritten on Slave.");?>
</td>
</tr>
<tr>
@@ -651,6 +667,34 @@ any)");?></td>
"for your reference (not parsed).");?></span></td>
</tr>
<?php
+$has_created_time = (isset($a_out[$id]['created']) && is_array($a_out[$id]['created']));
+$has_updated_time = (isset($a_out[$id]['updated']) && is_array($a_out[$id]['updated']));
+?>
+ <?php if ($has_created_time || $has_updated_time): ?>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("Rule Information");?></td>
+ </tr>
+ <?php if ($has_created_time): ?>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Created");?></td>
+ <td width="78%" class="vtable">
+ <?= date(gettext("n/j/y H:i:s"), $a_out[$id]['created']['time']) ?> <?= gettext("by") ?> <strong><?= $a_out[$id]['created']['username'] ?></strong>
+ </td>
+ </tr>
+ <?php endif; ?>
+ <?php if ($has_updated_time): ?>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Updated");?></td>
+ <td width="78%" class="vtable">
+ <?= date(gettext("n/j/y H:i:s"), $a_out[$id]['updated']['time']) ?> <?= gettext("by") ?> <strong><?= $a_out[$id]['updated']['username'] ?></strong>
+ </td>
+ </tr>
+ <?php endif; ?>
+ <?php endif; ?>
+<?php
// Allow extending of the firewall edit page and include custom input validation
pfSense_handle_custom_code("/usr/local/pkg/firewall_aon/htmlphplate");
?>
@@ -661,6 +705,7 @@ any)");?></td>
<?php if (isset($id) && $a_out[$id]): ?>
<input name="id" type="hidden" value="<?=htmlspecialchars($id);?>">
<?php endif; ?>
+ <input name="after" type="hidden" value="<?=htmlspecialchars($after);?>">
</td>
</tr>
</table>
diff --git a/usr/local/www/firewall_rules.php b/usr/local/www/firewall_rules.php
index 3cbc398..355c71f 100755
--- a/usr/local/www/firewall_rules.php
+++ b/usr/local/www/firewall_rules.php
@@ -3,7 +3,7 @@
/*
firewall_rules.php
part of pfSense (http://www.pfsense.com)
- Copyright (C) 2005 Scott Ullrich (sullrich@gmail.com)
+ Copyright (C) 2005 Scott Ullrich (sullrich@gmail.com)
originally part of m0n0wall (http://m0n0.ch/wall)
Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
@@ -109,14 +109,14 @@ if($_REQUEST['dragdroporder']) {
// Redirect back to page
mark_subsystem_dirty('filter');
$undo = array();
- foreach($_REQUEST['dragtable'] as $dt)
+ foreach($_REQUEST['dragtable'] as $dt)
$undo[] = "";
$counter = 0;
foreach($_REQUEST['dragtable'] as $dt) {
$undo[$dt] = $counter;
$counter++;
}
- foreach($undo as $dt)
+ foreach($undo as $dt)
$undotxt .= "&dragtable[]={$dt}";
Header("Location: firewall_rules.php?if=" . $_REQUEST['if'] . "&undodrag=true" . $undotxt);
exit;
@@ -149,15 +149,15 @@ if (is_array($config['ifgroups']['ifgroupentry']))
$iflist[$ifgen['ifname']] = $ifgen['ifname'];
foreach ($ifdescs as $ifent => $ifdesc)
- if(have_ruleint_access($ifent))
+ if(have_ruleint_access($ifent))
$iflist[$ifent] = $ifdesc;
if ($config['l2tp']['mode'] == "server")
- if(have_ruleint_access("l2tp"))
- $iflist['l2tp'] = "L2TP VPN";
+ if(have_ruleint_access("l2tp"))
+ $iflist['l2tp'] = "L2TP VPN";
if ($config['pptpd']['mode'] == "server")
- if(have_ruleint_access("pptp"))
+ if(have_ruleint_access("pptp"))
$iflist['pptp'] = "PPTP VPN";
if (is_array($config['pppoes']['pppoe'])) {
@@ -168,19 +168,19 @@ if (is_array($config['pppoes']['pppoe'])) {
/* add ipsec interfaces */
if (isset($config['ipsec']['enable']) || isset($config['ipsec']['client']['enable']))
- if(have_ruleint_access("enc0"))
+ if(have_ruleint_access("enc0"))
$iflist["enc0"] = "IPsec";
/* add openvpn/tun interfaces */
if ($config['openvpn']["openvpn-server"] || $config['openvpn']["openvpn-client"])
- $iflist["openvpn"] = "OpenVPN";
+ $iflist["openvpn"] = "OpenVPN";
pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/interfaces_override");
if (!$if || !isset($iflist[$if])) {
if ("any" == $if)
- $if = "FloatingRules";
- else if ("FloatingRules" != $if) {
+ $if = "FloatingRules";
+ else if ("FloatingRules" != $if) {
if (isset($iflist['wan']))
$if = "wan";
else
@@ -218,7 +218,7 @@ if ($_GET['act'] == "del") {
}
// Handle save msg if defined
-if($_REQUEST['savemsg'])
+if($_REQUEST['savemsg'])
$savemsg = htmlentities($_REQUEST['savemsg']);
if (isset($_POST['del_x'])) {
@@ -235,10 +235,10 @@ if (isset($_POST['del_x'])) {
}
} else if ($_GET['act'] == "toggle") {
if ($a_filter[$_GET['id']]) {
- if(isset($a_filter[$_GET['id']]['disabled']))
- unset($a_filter[$_GET['id']]['disabled']);
- else
- $a_filter[$_GET['id']]['disabled'] = true;
+ if(isset($a_filter[$_GET['id']]['disabled']))
+ unset($a_filter[$_GET['id']]['disabled']);
+ else
+ $a_filter[$_GET['id']]['disabled'] = true;
if (write_config())
mark_subsystem_dirty('filter');
header("Location: firewall_rules.php?if=" . htmlspecialchars($if));
@@ -301,38 +301,37 @@ include("head.inc");
<?php include("fbegin.inc"); ?>
<form action="firewall_rules.php" method="post">
-<script type="text/javascript" language="javascript" src="/javascript/row_toggle.js">
-</script>
+<script type="text/javascript" language="javascript" src="/javascript/row_toggle.js"></script>
<?php if ($savemsg) print_info_box($savemsg); ?>
<?php if (is_subsystem_dirty('filter')): ?><p>
<?php
if($_REQUEST['undodrag']) {
- foreach($_REQUEST['dragtable'] as $dt)
+ foreach($_REQUEST['dragtable'] as $dt)
$dragtable .= "&dragtable[]={$dt}";
- print_info_box_np_undo(gettext("The firewall rule configuration has been changed.<br>You must apply the changes in order for them to take effect."), "apply" , gettext("Apply changes") , "firewall_rules.php?if={$_REQUEST['if']}&dragdroporder=true&{$dragtable}");
+ print_info_box_np_undo(gettext("The firewall rule configuration has been changed.<br/>You must apply the changes in order for them to take effect."), "apply" , gettext("Apply changes") , "firewall_rules.php?if={$_REQUEST['if']}&dragdroporder=true&{$dragtable}");
} else {
- print_info_box_np(gettext("The firewall rule configuration has been changed.<br>You must apply the changes in order for them to take effect."));
+ print_info_box_np(gettext("The firewall rule configuration has been changed.<br/>You must apply the changes in order for them to take effect."));
}
?>
-<br>
+<br/>
<?php endif; ?>
<div id="loading" style="visibity:hidden">
- <img src="/themes/<?=$g['theme']?>/images/misc/loader.gif"> Loading, please wait...
+ <img src="/themes/<?=$g['theme']?>/images/misc/loader.gif" alt="loader" /> Loading, please wait...
<p/>&nbsp;
</div>
<?php
pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/before_table");
?>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr><td class="tabnavtbl">
- <?php
+ <tr><td class="tabnavtbl">
+ <?php
/* active tabs */
$tab_array = array();
- if ("FloatingRules" == $if)
- $active = true;
- else
- $active = false;
- $tab_array[] = array(gettext("Floating"), $active, "firewall_rules.php?if=FloatingRules");
+ if ("FloatingRules" == $if)
+ $active = true;
+ else
+ $active = false;
+ $tab_array[] = array(gettext("Floating"), $active, "firewall_rules.php?if=FloatingRules");
$tabscounter = 0; $i = 0; foreach ($iflist as $ifent => $ifname) {
if ($ifent == $if)
$active = true;
@@ -341,22 +340,21 @@ if($_REQUEST['undodrag']) {
$tab_array[] = array($ifname, $active, "firewall_rules.php?if={$ifent}");
}
display_top_tabs($tab_array);
- ?>
- </td></tr>
- <tr>
- <td>
- <div id="mainarea">
+ ?>
+ </td></tr>
+ <tr><td>
+ <div id="mainarea">
<table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
-<?php
- pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/before_first_tr");
-?>
+ <?php
+ pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/before_first_tr");
+ ?>
<tr id="frheader">
<td width="3%" class="list">&nbsp;</td>
<td width="5%" class="list">&nbsp;</td>
<td width="3%" class="listhdrr"><?=gettext("ID");?></td>
-<?php
+ <?php
pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_id_tablehead");
-?>
+ ?>
<td width="6%" class="listhdrr"><?=gettext("Proto");?></td>
<td width="12%" class="listhdrr"><?=gettext("Source");?></td>
<td width="6%" class="listhdrr"><?=gettext("Port");?></td>
@@ -365,48 +363,49 @@ if($_REQUEST['undodrag']) {
<td width="5%" class="listhdrr"><?=gettext("Gateway");?></td>
<td width="8%" class="listhdrr"><?=gettext("Queue");?></td>
<td width="5%" class="listhdrr"><?=gettext("Schedule");?></td>
-<?php
+ <?php
pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_desc_tablehead");
-?>
+ ?>
<td width="19%" class="listhdr"><?=gettext("Description");?></td>
<td width="10%" class="list">
- <table border="0" cellspacing="0" cellpadding="1">
- <tr>
- <?php
- $nrules = 0;
- for ($i = 0; isset($a_filter[$i]); $i++) {
- $filterent = $a_filter[$i];
- if ($filterent['interface'] != $if && !isset($filterent['floating']))
- continue;
- if (isset($filterent['floating']) && "FloatingRules" != $if)
- continue;
- $nrules++;
- }
- ?>
- <td>
- <?php if ($nrules == 0): ?>
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x_d.gif" width="17" height="17" title="<?gettext("delete selected rules"); ?>" border="0"><?php else: ?>
- <input name="del" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" title="<?=gettext("delete selected rules");?>" onclick="return confirm('<?=gettext('Do you really want to delete the selected rules?');?>')"><?php endif; ?>
- </td>
- <td align="center" valign="middle"><a href="firewall_rules_edit.php?if=<?=htmlspecialchars($if);?>&after=-1"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add new rule");?>" width="17" height="17" border="0"></a></td>
- </tr>
- </table>
- </td>
- </tr>
-<?php // Show the anti-lockout rule if it's enabled, and we are on LAN with an if count > 1, or WAN with an if count of 1.
- if (!isset($config['system']['webgui']['noantilockout']) &&
- (((count($config['interfaces']) > 1) && ($if == 'lan'))
- || ((count($config['interfaces']) == 1) && ($if == 'wan')))):
-
- $alports = implode('<br/>', filter_get_antilockout_ports(true));
-?>
- <tr valign="top" id="antilockout">
+ <table border="0" cellspacing="0" cellpadding="1">
+ <tr>
+ <?php
+ $nrules = 0;
+ for ($i = 0; isset($a_filter[$i]); $i++) {
+ $filterent = $a_filter[$i];
+ if ($filterent['interface'] != $if && !isset($filterent['floating']))
+ continue;
+ if (isset($filterent['floating']) && "FloatingRules" != $if)
+ continue;
+ $nrules++;
+ }
+ ?>
+ <td>
+ <?php if ($nrules == 0): ?>
+ <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x_d.gif" width="17" height="17" title="<?gettext("delete selected rules"); ?>" border="0" alt="delete" /><?php else: ?>
+ <input name="del" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" style="width:17;height:17" title="<?=gettext("delete selected rules");?>" onclick="return confirm('<?=gettext('Do you really want to delete the selected rules?');?>')" />
+ <?php endif; ?>
+ </td>
+ <td align="center" valign="middle"><a href="firewall_rules_edit.php?if=<?=htmlspecialchars($if);?>&amp;after=-1"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add new rule");?>" width="17" height="17" border="0" alt="add" /></a></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <?php // Show the anti-lockout rule if it's enabled, and we are on LAN with an if count > 1, or WAN with an if count of 1.
+ if (!isset($config['system']['webgui']['noantilockout']) &&
+ (((count($config['interfaces']) > 1) && ($if == 'lan'))
+ || ((count($config['interfaces']) == 1) && ($if == 'wan')))):
+
+ $alports = implode('<br/>', filter_get_antilockout_ports(true));
+ ?>
+ <tr valign="top" id="antilockout">
<td class="list">&nbsp;</td>
- <td class="listt" align="center"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_pass.gif" width="11" height="11" border="0"></td>
+ <td class="listt" align="center"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_pass.gif" width="11" height="11" border="0" alt="pass" /></td>
<td class="listlr" style="background-color: #E0E0E0">&nbsp;</td>
-<?php
+ <?php
pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_id_tr_antilockout");
-?>
+ ?>
<td class="listr" style="background-color: #E0E0E0">*</td>
<td class="listr" style="background-color: #E0E0E0">*</td>
<td class="listr" style="background-color: #E0E0E0">*</td>
@@ -416,15 +415,15 @@ if($_REQUEST['undodrag']) {
<td class="listr" style="background-color: #E0E0E0">*</td>
<td class="listr" style="background-color: #E0E0E0">&nbsp;</td>
<td class="listbg"><?=gettext("Anti-Lockout Rule");?></td>
- <td valign="middle" nowrap class="list">
+ <td valign="middle" class="list nowrap">
<table border="0" cellspacing="0" cellpadding="1">
<tr>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected rules before this rule");?>"></td>
- <td><a href="system_advanced_admin.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit rule");?>" width="17" height="17" border="0"></a></td>
+ <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected rules before this rule");?>" alt="move" /></td>
+ <td><a href="system_advanced_admin.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit rule");?>" width="17" height="17" border="0" alt="edit" /></a></td>
</tr>
<tr>
<td align="center" valign="middle"></td>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus_d.gif" title="<?=gettext("add a new rule based on this one");?>" width="17" height="17" border="0"></td>
+ <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus_d.gif" title="<?=gettext("add a new rule based on this one");?>" width="17" height="17" border="0" alt="add" /></td>
</tr>
</table>
</td>
@@ -432,124 +431,126 @@ if($_REQUEST['undodrag']) {
<?php endif; ?>
<?php if (isset($config['interfaces'][$if]['blockpriv'])): ?>
- <tr valign="top" id="frrfc1918">
- <td class="list">&nbsp;</td>
- <td class="listt" align="center"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block.gif" width="11" height="11" border="0"></td>
- <td class="listlr" style="background-color: #E0E0E0">&nbsp;</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0"><?=gettext("RFC 1918 networks");?></td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">&nbsp;</td>
- <td class="listbg"><?=gettext("Block private networks");?></td>
- <td valign="middle" nowrap class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ <tr valign="top" id="frrfc1918">
+ <td class="list">&nbsp;</td>
+ <td class="listt" align="center"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block.gif" width="11" height="11" border="0" alt=""block" /></td>
+ <td class="listlr" style="background-color: #E0E0E0">&nbsp;</td>
+ <td class="listr" style="background-color: #E0E0E0">*</td>
+ <td class="listr" style="background-color: #E0E0E0"><?=gettext("RFC 1918 networks");?></td>
+ <td class="listr" style="background-color: #E0E0E0">*</td>
+ <td class="listr" style="background-color: #E0E0E0">*</td>
+ <td class="listr" style="background-color: #E0E0E0">*</td>
+ <td class="listr" style="background-color: #E0E0E0">*</td>
+ <td class="listr" style="background-color: #E0E0E0">*</td>
+ <td class="listr" style="background-color: #E0E0E0">&nbsp;</td>
+ <td class="listbg"><?=gettext("Block private networks");?></td>
+ <td valign="middle" class="list nowrap">
+ <table border="0" cellspacing="0" cellpadding="1">
<tr>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected rules before this rule");?>"></td>
- <td><a href="interfaces.php?if=<?=htmlspecialchars($if)?>#rfc1918"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit rule");?>" width="17" height="17" border="0"></a></td>
+ <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected rules before this rule");?>" alt="edit" /></td>
+ <td><a href="interfaces.php?if=<?=htmlspecialchars($if)?>#rfc1918"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit rule");?>" width="17" height="17" border="0" alt="edit" /></a></td>
</tr>
<tr>
- <td align="center" valign="middle"></td>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus_d.gif" title="<?=gettext("add a new rule based on this one");?>" width="17" height="17" border="0"></td>
+ <td align="center" valign="middle"></td>
+ <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus_d.gif" title="<?=gettext("add a new rule based on this one");?>" width="17" height="17" border="0" alt="add" /></td>
</tr>
- </table>
- </td>
- </tr>
+ </table>
+ </td>
+ </tr>
<?php endif; ?>
<?php if (isset($config['interfaces'][$if]['blockbogons'])): ?>
- <tr valign="top" id="frrfc1918">
- <td class="list">&nbsp;</td>
- <td class="listt" align="center"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block.gif" width="11" height="11" border="0"></td>
- <td class="listlr" style="background-color: #E0E0E0">&nbsp;</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0"><?=gettext("Reserved/not assigned by IANA");?></td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listbg"><?=gettext("Block bogon networks");?></td>
- <td valign="middle" nowrap class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ <tr valign="top" id="frrfc1918">
+ <td class="list">&nbsp;</td>
+ <td class="listt" align="center"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block.gif" width="11" height="11" border="0" alt="block" /></td>
+ <td class="listlr" style="background-color: #E0E0E0">&nbsp;</td>
+ <td class="listr" style="background-color: #E0E0E0">*</td>
+ <td class="listr" style="background-color: #E0E0E0"><?=gettext("Reserved/not assigned by IANA");?></td>
+ <td class="listr" style="background-color: #E0E0E0">*</td>
+ <td class="listr" style="background-color: #E0E0E0">*</td>
+ <td class="listr" style="background-color: #E0E0E0">*</td>
+ <td class="listr" style="background-color: #E0E0E0">*</td>
+ <td class="listr" style="background-color: #E0E0E0">*</td>
+ <td class="listr" style="background-color: #E0E0E0">*</td>
+ <td class="listbg"><?=gettext("Block bogon networks");?></td>
+ <td valign="middle" class="list nowrap">
+ <table border="0" cellspacing="0" cellpadding="1">
<tr>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected rules before this rule");?>"></td>
- <td><a href="interfaces.php?if=<?=htmlspecialchars($if)?>#rfc1918"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit rule");?>" width="17" height="17" border="0"></a></td>
+ <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected rules before this rule");?>" alt="move" /></td>
+ <td><a href="interfaces.php?if=<?=htmlspecialchars($if)?>#rfc1918"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit rule");?>" width="17" height="17" border="0" alt=" edit" /></a></td>
</tr>
<tr>
- <td align="center" valign="middle"></td>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus_d.gif" title="<?=gettext("add a new rule based on this one");?>" width="17" height="17" border="0"></td>
+ <td align="center" valign="middle"></td>
+ <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus_d.gif" title="<?=gettext("add a new rule based on this one");?>" width="17" height="17" border="0" alt="add" /></td>
</tr>
- </table>
- </td>
- </tr>
+ </table>
+ </td>
+ </tr>
<?php endif; ?>
- <tbody id="dragtable" width="100%">
- <?php $nrules = 0; for ($i = 0; isset($a_filter[$i]); $i++):
- pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/row_start");
- $filterent = $a_filter[$i];
- if ($filterent['interface'] != $if && !isset($filterent['floating']))
- continue;
- if (isset($filterent['floating']) && "FloatingRules" != $if)
- continue;
- $isadvset = firewall_check_for_advanced_options($filterent);
- if($isadvset)
- $advanced_set = "<img src=\"./themes/{$g['theme']}/images/icons/icon_advanced.gif\" title=\"" . gettext("advanced settings set") . ": {$isadvset}\" border=\"0\">";
- else
- $advanced_set = "";
- ?>
- <tr valign="top" id="fr<?=$nrules;?>">
- <td class="listt">
- <input type="checkbox" id="frc<?=$nrules;?>" name="rule[]" value="<?=$i;?>" onClick="fr_bgcolor('<?=$nrules;?>')" style="margin: 0; padding: 0; width: 15px; height: 15px;">
- <?php echo $advanced_set; ?>
- </td>
- <td class="listt" align="center">
- <?php if ($filterent['type'] == "block")
- $iconfn = "block";
- else if ($filterent['type'] == "reject") {
- $iconfn = "reject";
- } else
- $iconfn = "pass";
- if (isset($filterent['disabled'])) {
- $textss = "<span class=\"gray\">";
- $textse = "</span>";
- $iconfn .= "_d";
- } else {
- $textss = $textse = "";
- }
- ?>
- <a href="?if=<?=htmlspecialchars($if);?>&act=toggle&id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_<?=$iconfn;?>.gif" width="11" height="11" border="0" title="<?=gettext("click to toggle enabled/disabled status");?>"></a>
- <?php if (isset($filterent['log'])):
- $iconfnlog = "log_s";
- if (isset($filterent['disabled']))
- $iconfnlog .= "_d";
- ?>
- <br><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_<?=$iconfnlog;?>.gif" width="11" height="15" border="0">
- <?php endif; ?>
- </td>
- <?php
-
+ <tbody id="dragtable">
+<?php $nrules = 0; for ($i = 0; isset($a_filter[$i]); $i++):
+ pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/row_start");
+ $filterent = $a_filter[$i];
+ if ($filterent['interface'] != $if && !isset($filterent['floating']))
+ continue;
+ if (isset($filterent['floating']) && "FloatingRules" != $if)
+ continue;
+ $isadvset = firewall_check_for_advanced_options($filterent);
+ if($isadvset)
+ $advanced_set = "<img src=\"./themes/{$g['theme']}/images/icons/icon_advanced.gif\" title=\"" . gettext("advanced settings set") . ": {$isadvset}\" border=\"0\" alt=\"avanced\" />";
+ else
+ $advanced_set = "";
+?>
+ <tr valign="top" id="fr<?=$nrules;?>">
+ <td class="listt">
+ <input type="checkbox" id="frc<?=$nrules;?>" name="rule[]" value="<?=$i;?>" onclick="fr_bgcolor('<?=$nrules;?>')" style="margin: 0; padding: 0; width: 15px; height: 15px;" />
+ <?php echo $advanced_set; ?>
+ </td>
+ <td class="listt" align="center">
+ <?php
+ if ($filterent['type'] == "block")
+ $iconfn = "block";
+ else if ($filterent['type'] == "reject")
+ $iconfn = "reject";
+ else
+ $iconfn = "pass";
+ if (isset($filterent['disabled'])) {
+ $textss = "<span class=\"gray\">";
+ $textse = "</span>";
+ $iconfn .= "_d";
+ } else {
+ $textss = $textse = "";
+ }
+ ?>
+ <a href="?if=<?=htmlspecialchars($if);?>&amp;act=toggle&amp;id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_<?=$iconfn;?>.gif" width="11" height="11" border="0" title="<?=gettext("click to toggle enabled/disabled status");?>" alt="icon" /></a>
+ <?php
+ if (isset($filterent['log'])):
+ $iconfnlog = "log_s";
+ if (isset($filterent['disabled']))
+ $iconfnlog .= "_d";
+ ?>
+ <br/><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_<?=$iconfnlog;?>.gif" width="11" height="15" border="0" alt="icon" />
+<?php endif; ?>
+ </td>
+ <?php
+
//build Alias popup box
$alias_src_span_begin = "";
$alias_src_port_span_begin = "";
$alias_dst_span_begin = "";
$alias_dst_port_span_begin = "";
-
+
$alias_popup = rule_popup($filterent['source']['address'],pprint_port($filterent['source']['port']),$filterent['destination']['address'],pprint_port($filterent['destination']['port']));
-
+
$alias_src_span_begin = $alias_popup["src"];
$alias_src_port_span_begin = $alias_popup["srcport"];
$alias_dst_span_begin = $alias_popup["dst"];
$alias_dst_port_span_begin = $alias_popup["dstport"];
-
+
$alias_src_span_end = $alias_popup["src_end"];
$alias_src_port_span_end = $alias_popup["srcport_end"];
$alias_dst_span_end = $alias_popup["dst_end"];
$alias_dst_port_span_end = $alias_popup["dstport_end"];
-
+
//build Schedule popup box
$a_schedules = &$config['schedules']['schedule'];
$schedule_span_begin = "";
@@ -564,22 +565,22 @@ if($_REQUEST['undodrag']) {
{
if ($schedule['name'] == $filterent['sched'] ){
$schedstatus = filter_get_time_based_rule_status($schedule);
-
+
foreach($schedule['timerange'] as $timerange) {
$tempFriendlyTime = "";
$tempID = "";
$firstprint = false;
if ($timerange){
$dayFriendly = "";
- $tempFriendlyTime = "";
-
+ $tempFriendlyTime = "";
+
//get hours
$temptimerange = $timerange['hour'];
$temptimeseparator = strrpos($temptimerange, "-");
-
- $starttime = substr ($temptimerange, 0, $temptimeseparator);
- $stoptime = substr ($temptimerange, $temptimeseparator+1);
-
+
+ $starttime = substr ($temptimerange, 0, $temptimeseparator);
+ $stoptime = substr ($temptimerange, $temptimeseparator+1);
+
if ($timerange['month']){
$tempmontharray = explode(",", $timerange['month']);
$tempdayarray = explode(",",$timerange['day']);
@@ -589,14 +590,14 @@ if($_REQUEST['undodrag']) {
foreach ($tempmontharray as $monthtmp){
$month = $tempmontharray[$arraycounter];
$day = $tempdayarray[$arraycounter];
-
+
if (!$firstDayFound)
{
$firstDay = $day;
$firstmonth = $month;
$firstDayFound = true;
}
-
+
$currentDay = $day;
$nextDay = $tempdayarray[$arraycounter+1];
$currentDay++;
@@ -608,21 +609,21 @@ if($_REQUEST['undodrag']) {
$dayFriendly .= $monthArray[$firstmonth-1] . " " . $firstDay . " - " . $currentDay ;
else
$dayFriendly .= $monthArray[$month-1] . " " . $day;
- $firstDayFound = false;
+ $firstDayFound = false;
$firstPrint = true;
- }
- $arraycounter++;
+ }
+ $arraycounter++;
}
}
else
{
$tempdayFriendly = $timerange['position'];
$firstDayFound = false;
- $tempFriendlyDayArray = explode(",", $tempdayFriendly);
+ $tempFriendlyDayArray = explode(",", $tempdayFriendly);
$currentDay = "";
$firstDay = "";
$nextDay = "";
- $counter = 0;
+ $counter = 0;
foreach ($tempFriendlyDayArray as $day){
if ($day != ""){
if (!$firstDayFound)
@@ -633,7 +634,7 @@ if($_REQUEST['undodrag']) {
$currentDay =$tempFriendlyDayArray[$counter];
//get next day
$nextDay = $tempFriendlyDayArray[$counter+1];
- $currentDay++;
+ $currentDay++;
if ($currentDay != $nextDay){
if ($firstprint)
$dayFriendly .= ", ";
@@ -642,16 +643,16 @@ if($_REQUEST['undodrag']) {
$dayFriendly .= $dayArray[$firstDay-1] . " - " . $dayArray[$currentDay-1];
else
$dayFriendly .= $dayArray[$firstDay-1];
- $firstDayFound = false;
- $firstprint = true;
+ $firstDayFound = false;
+ $firstprint = true;
}
$counter++;
}
}
- }
+ }
$timeFriendly = $starttime . " - " . $stoptime;
$description = $timerange['rangedescr'];
- $sched_content .= $dayFriendly . "; " . $timeFriendly . "<br>";
+ $sched_content .= $dayFriendly . "; " . $timeFriendly . "<br/>";
}
}
$sched_caption_escaped = str_replace("'", "\'", $schedule['descr']);
@@ -663,242 +664,245 @@ if($_REQUEST['undodrag']) {
$printicon = false;
$alttext = "";
$image = "";
- if (!isset($filterent['disabled'])){
- if ($schedstatus)
- {
- if ($iconfn == "block" || $iconfn == "reject")
- {
- $image = "icon_block";
- $alttext = gettext("Traffic matching this rule is currently being denied");
- }
- else
- {
- $image = "icon_pass";
- $alttext = gettext("Traffic matching this rule is currently being allowed");
- }
- $printicon = true;
- }
- else if ($filterent['sched'])
- {
- if ($iconfn == "block" || $iconfn == "reject")
- $image = "icon_block_d";
- else
- $image = "icon_block";
- $alttext = gettext("This rule is not currently active because its period has expired");
- $printicon = true;
- }
+ if (!isset($filterent['disabled'])) {
+ if ($schedstatus) {
+ if ($iconfn == "block" || $iconfn == "reject") {
+ $image = "icon_block";
+ $alttext = gettext("Traffic matching this rule is currently being denied");
+ } else {
+ $image = "icon_pass";
+ $alttext = gettext("Traffic matching this rule is currently being allowed");
+ }
+ $printicon = true;
+ } else if ($filterent['sched']) {
+ if ($iconfn == "block" || $iconfn == "reject")
+ $image = "icon_block_d";
+ else
+ $image = "icon_block";
+ $alttext = gettext("This rule is not currently active because its period has expired");
+ $printicon = true;
+ }
}
- ?>
- <td class="listlr" onClick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
- <?=$textss;?><?php if (isset($filterent['id'])) echo $filterent['id']."&nbsp;"; else echo "&nbsp;"; ?><?=$textse;?>
- </td>
-<?php
+ ?>
+ <td class="listlr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
+ <?=$textss;?><?php if (isset($filterent['id'])) echo $filterent['id']."&nbsp;"; else echo "&nbsp;"; ?><?=$textse;?>
+ </td>
+ <?php
pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_id_tr");
-?>
- <td class="listr" onClick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
- <?=$textss;?><?php
- if (isset($filterent['ipprotocol'])) {
- switch($filterent['ipprotocol']) {
- case "inet":
- echo "IPv4 ";
- break;
- case "inet6":
- echo "IPv6 ";
- break;
- case "inet46":
- echo "IPv4+6 ";
- break;
- }
- } else {
- echo "IPv4 ";
- }
- if (isset($filterent['protocol'])) {
- echo strtoupper($filterent['protocol']);
- if (strtoupper($filterent['protocol']) == "ICMP" && !empty($filterent['icmptype'])) {
- echo ' <span style="cursor: help;" title="ICMP type: ' . $icmptypes[$filterent['icmptype']] . '"><u>';
- echo $filterent['icmptype'];
- echo '</u></span>';
+ ?>
+ <td class="listr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
+ <?=$textss;?>
+ <?php
+ if (isset($filterent['ipprotocol'])) {
+ switch($filterent['ipprotocol']) {
+ case "inet":
+ echo "IPv4 ";
+ break;
+ case "inet6":
+ echo "IPv6 ";
+ break;
+ case "inet46":
+ echo "IPv4+6 ";
+ break;
+ }
+ } else {
+ echo "IPv4 ";
}
- } else echo "*";
- ?><?=$textse;?>
- </td>
- <td class="listr" onClick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
- <?=$textss;?><?php echo $alias_src_span_begin;?><?php echo htmlspecialchars(pprint_address($filterent['source']));?><?php echo $alias_src_span_end;?><?=$textse;?>
- </td>
- <td class="listr" onClick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
- <?=$textss;?><?php echo $alias_src_port_span_begin;?><?php echo htmlspecialchars(pprint_port($filterent['source']['port'])); ?><?php echo $alias_src_port_span_end;?><?=$textse;?>
- </td>
- <td class="listr" onClick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
- <?=$textss;?><?php echo $alias_dst_span_begin;?><?php echo htmlspecialchars(pprint_address($filterent['destination'])); ?><?php echo $alias_dst_span_end;?><?=$textse;?>
- </td>
- <td class="listr" onClick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
- <?=$textss;?><?php echo $alias_dst_port_span_begin;?><?php echo htmlspecialchars(pprint_port($filterent['destination']['port'])); ?><?php echo $alias_dst_port_span_end;?><?=$textse;?>
- </td>
- <td class="listr" onClick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
- <?=$textss;?><?php if (isset($config['interfaces'][$filterent['gateway']]['descr'])) echo htmlspecialchars($config['interfaces'][$filterent['gateway']]['descr']); else echo htmlspecialchars(pprint_port($filterent['gateway'])); ?><?=$textse;?>
- </td>
- <td class="listr" onClick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';"><?=$textss;?>
- <?php
- if (isset($filterent['ackqueue']) && isset($filterent['defaultqueue'])) {
- $desc = $filterent['ackqueue'] ;
- echo "<a href=\"firewall_shaper_queues.php?queue={$filterent['ackqueue']}&action=show\">{$desc}</a>";
- $desc = $filterent['defaultqueue'];
- echo "/<a href=\"firewall_shaper_queues.php?queue={$filterent['defaultqueue']}&action=show\">{$desc}</a>";
- } else if (isset($filterent['defaultqueue'])) {
- $desc = $filterent['defaultqueue'];
- echo "<a href=\"firewall_shaper_queues.php?queue={$filterent['defaultqueue']}&action=show\">{$desc}</a>"; }
- else echo gettext("none");
- ?><?=$textse;?>
- </td>
- <td class="listr" onClick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';"><font color="black">
- <?php if ($printicon) { ?><img src="./themes/<?= $g['theme']; ?>/images/icons/<?php echo $image; ?>.gif" title="<?php echo $alttext;?>" border="0"><?php } ?>&nbsp;<?=$textss;?><?php echo $schedule_span_begin;?><?=htmlspecialchars($filterent['sched']);?><?php echo $schedule_span_end; ?><?=$textse;?>
- </td>
-<?php
+ if (isset($filterent['protocol'])) {
+ echo strtoupper($filterent['protocol']);
+ if (strtoupper($filterent['protocol']) == "ICMP" && !empty($filterent['icmptype'])) {
+ echo ' <span style="cursor: help;" title="ICMP type: ' . $icmptypes[$filterent['icmptype']] . '"><u>';
+ echo $filterent['icmptype'];
+ echo '</u></span>';
+ }
+ } else echo "*";
+ ?>
+ <?=$textse;?>
+ </td>
+ <td class="listr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
+ <?=$textss;?><?php echo $alias_src_span_begin;?><?php echo htmlspecialchars(pprint_address($filterent['source']));?><?php echo $alias_src_span_end;?><?=$textse;?>
+ </td>
+ <td class="listr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
+ <?=$textss;?><?php echo $alias_src_port_span_begin;?><?php echo htmlspecialchars(pprint_port($filterent['source']['port'])); ?><?php echo $alias_src_port_span_end;?><?=$textse;?>
+ </td>
+ <td class="listr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
+ <?=$textss;?><?php echo $alias_dst_span_begin;?><?php echo htmlspecialchars(pprint_address($filterent['destination'])); ?><?php echo $alias_dst_span_end;?><?=$textse;?>
+ </td>
+ <td class="listr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
+ <?=$textss;?><?php echo $alias_dst_port_span_begin;?><?php echo htmlspecialchars(pprint_port($filterent['destination']['port'])); ?><?php echo $alias_dst_port_span_end;?><?=$textse;?>
+ </td>
+ <td class="listr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
+ <?=$textss;?><?php if (isset($config['interfaces'][$filterent['gateway']]['descr'])) echo htmlspecialchars($config['interfaces'][$filterent['gateway']]['descr']); else echo htmlspecialchars(pprint_port($filterent['gateway'])); ?><?=$textse;?>
+ </td>
+ <td class="listr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
+ <?=$textss;?>
+ <?php
+ if (isset($filterent['ackqueue']) && isset($filterent['defaultqueue'])) {
+ $desc = $filterent['ackqueue'] ;
+ echo "<a href=\"firewall_shaper_queues.php?queue={$filterent['ackqueue']}&amp;action=show\">{$desc}</a>";
+ $desc = $filterent['defaultqueue'];
+ echo "/<a href=\"firewall_shaper_queues.php?queue={$filterent['defaultqueue']}&amp;action=show\">{$desc}</a>";
+ } else if (isset($filterent['defaultqueue'])) {
+ $desc = $filterent['defaultqueue'];
+ echo "<a href=\"firewall_shaper_queues.php?queue={$filterent['defaultqueue']}&amp;action=show\">{$desc}</a>";
+ } else
+ echo gettext("none");
+ ?>
+ <?=$textse;?>
+ </td>
+ <td class="listr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';"><font color="black">
+ <?php if ($printicon) { ?><img src="./themes/<?= $g['theme']; ?>/images/icons/<?php echo $image; ?>.gif" title="<?php echo $alttext;?>" border="0" alt="icon" /><?php } ?>&nbsp;<?=$textss;?><?php echo $schedule_span_begin;?><?=htmlspecialchars($filterent['sched']);?><?php echo $schedule_span_end; ?><?=$textse;?>
+ </font></td>
+ <?php
pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_descr_tr");
-?>
- <td class="listbg" onClick="fr_toggle(<?=$nrules;?>)" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';" class="descr">
- <?=$textss;?><?=htmlspecialchars($filterent['descr']);?>&nbsp;<?=$textse;?>
- </td>
- <td valign="middle" nowrap class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ ?>
+ <td class="listbg descr" onclick="fr_toggle(<?=$nrules;?>)" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
+ <?=$textss;?><?=htmlspecialchars($filterent['descr']);?>&nbsp;<?=$textse;?>
+ </td>
+ <td valign="middle" class="list nowrap">
+ <table border="0" cellspacing="0" cellpadding="1">
<tr>
- <td><input name="move_<?=$i;?>" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" width="17" height="17" title="<?=gettext("move selected rules before this rule"); ?>" onMouseOver="fr_insline(<?=$nrules;?>, true)" onMouseOut="fr_insline(<?=$nrules;?>, false)"></td>
- <td><a href="firewall_rules_edit.php?id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit rule"); ?>" width="17" height="17" border="0"></a></td>
+ <td><input name="move_<?=$i;?>" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" style="width:17;height:17" title="<?=gettext("move selected rules before this rule"); ?>" onmouseover="fr_insline(<?=$nrules;?>, true)" onmouseout="fr_insline(<?=$nrules;?>, false)" /></td>
+ <td><a href="firewall_rules_edit.php?id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit rule"); ?>" width="17" height="17" border="0" alt="edit" /></a></td>
</tr>
<tr>
- <td align="center" valign="middle"><a href="firewall_rules.php?act=del&if=<?=htmlspecialchars($if);?>&id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" title="<?=gettext("delete rule"); ?>" onclick="return confirm('Do you really want to delete this rule?')"></a></td>
- <td><a href="firewall_rules_edit.php?dup=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add a new rule based on this one"); ?>" width="17" height="17" border="0"></a></td>
+ <td align="center" valign="middle"><a href="firewall_rules.php?act=del&amp;if=<?=htmlspecialchars($if);?>&amp;id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" title="<?=gettext("delete rule"); ?>" onclick="return confirm('Do you really want to delete this rule?')" alt="delete" /></a></td>
+ <td><a href="firewall_rules_edit.php?dup=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add a new rule based on this one"); ?>" width="17" height="17" border="0" alt="add" /></a></td>
</tr>
- </table>
- </td>
- </tr>
- <?php $nrules++; endfor; ?>
- </tbody>
- <?php if ($nrules == 0): ?>
- <td class="listt"></td>
- <td class="listt"></td>
- <td class="listlr" colspan="10" align="center" valign="middle">
- <span class="gray">
- <?php if ($_REQUEST['if'] == "FloatingRules"): ?>
- <?=gettext("No floating rules are currently defined."); ?><br/><br/>
- <?php else: ?>
- <?=gettext("No rules are currently defined for this interface"); ?><br/>
- <?=gettext("All incoming connections on this interface will be blocked until you add pass rules."); ?><br/><br/>
- <?php endif; ?>
- <?=gettext("Click the"); ?> <a href="firewall_rules_edit.php?if=<?=htmlspecialchars($if);?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add new rule");?>" border="0" width="17" height="17" align="absmiddle"></a><?=gettext(" button to add a new rule.");?></span>
- </td>
- <?php endif; ?>
- <tr id="fr<?=$nrules;?>">
- <td class="list"></td>
- <td class="list"></td>
-<?php
+ </table>
+ </td>
+ </tr>
+ <?php $nrules++; endfor; ?>
+ <tr><td></td></tr></tbody>
+<?php if ($nrules == 0): ?>
+ <tr>
+ <td class="listt"></td>
+ <td class="listt"></td>
+ <td class="listlr" colspan="10" align="center" valign="middle">
+ <span class="gray">
+ <?php if ($_REQUEST['if'] == "FloatingRules"): ?>
+ <?=gettext("No floating rules are currently defined."); ?><br/><br/>
+ <?php else: ?>
+ <?=gettext("No rules are currently defined for this interface"); ?><br/>
+ <?=gettext("All incoming connections on this interface will be blocked until you add pass rules."); ?><br/><br/>
+ <?php endif; ?>
+ <?=gettext("Click the"); ?> <a href="firewall_rules_edit.php?if=<?=htmlspecialchars($if);?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add new rule");?>" border="0" width="17" height="17" align="middle" alt="add" /></a><?=gettext(" button to add a new rule.");?></span>
+ </td>
+ </tr>
+<?php endif; ?>
+ <tr id="fr<?=$nrules;?>">
+ <td class="list"></td>
+ <td class="list"></td>
+ <?php
pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_id_tr_belowtable");
-?>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ ?>
+ <td class="list">&nbsp;</td>
+ <td class="list">&nbsp;</td>
+ <td class="list">&nbsp;</td>
+ <td class="list">&nbsp;</td>
+ <td class="list">&nbsp;</td>
+ <td class="list">&nbsp;</td>
+ <td class="list">&nbsp;</td>
+ <td class="list">&nbsp;</td>
+ <td class="list">&nbsp;</td>
+ <td class="list">&nbsp;</td>
+ <td class="list">
+ <table border="0" cellspacing="0" cellpadding="1">
<tr>
- <td>
- <?php if ($nrules == 0): ?><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected rules to end");?>" border="0"><?php else: ?><input name="move_<?=$i;?>" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" width="17" height="17" title="<?=gettext("move selected rules to end");?>" onMouseOver="fr_insline(<?=$nrules;?>, true)" onMouseOut="fr_insline(<?=$nrules;?>, false)"><?php endif; ?></td>
- <td></td>
- </tr>
+ <td>
+ <?php if ($nrules == 0): ?><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected rules to end");?>" border="0" alt="move" /><?php else: ?><input name="move_<?=$i;?>" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" style="width:17;height:17" title="<?=gettext("move selected rules to end");?>" onmouseover="fr_insline(<?=$nrules;?>, true)" onmouseout="fr_insline(<?=$nrules;?>, false)" /><?php endif; ?></td>
+ <td></td>
+ </tr>
<tr>
- <td>
- <?php if ($nrules == 0): ?>
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x_d.gif" width="17" height="17" title="<?=gettext("delete selected rules");?>" border="0"><?php else: ?>
- <input name="del" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" title="<?=gettext("delete selected rules");?>" onclick="return confirm('<?=gettext('Do you really want to delete the selected rules?');?>')"><?php endif; ?>
- </td>
- <td><a href="firewall_rules_edit.php?if=<?=htmlspecialchars($if);?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add new rule");?>" width="17" height="17" border="0"></a></td>
+ <td>
+<?php if ($nrules == 0): ?>
+ <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x_d.gif" width="17" height="17" title="<?=gettext("delete selected rules");?>" border="0" alt="delete" /><?php else: ?>
+ <input name="del" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" style="width:17;height:17" title="<?=gettext("delete selected rules");?>" onclick="return confirm('<?=gettext('Do you really want to delete the selected rules?');?>')" />
+<?php endif; ?>
+ </td>
+ <td><a href="firewall_rules_edit.php?if=<?=htmlspecialchars($if);?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add new rule");?>" width="17" height="17" border="0" alt="add" /></a></td>
</tr>
- </table>
- </td>
- </tr>
- </table>
- <table class="tabcont" width="100%" border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td width="16"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_pass.gif" width="11" height="11"></td>
- <td><?=gettext("pass");?></td>
- <td width="14"></td>
- <td width="16"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block.gif" width="11" height="11"></td>
- <td><?=gettext("block");?></td>
- <td width="14"></td>
- <td width="16"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_reject.gif" width="11" height="11"></td>
- <td><?=gettext("reject");?></td>
- <td width="14"></td>
- <td width="16"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_log.gif" width="11" height="11"></td>
- <td><?=gettext("log");?></td>
- </tr>
- <tr>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_pass_d.gif" width="11" height="11"></td>
- <td nowrap><?=gettext("pass (disabled)");?></td>
- <td>&nbsp;</td>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block_d.gif" width="11" height="11"></td>
- <td nowrap><?=gettext("block (disabled)");?></td>
- <td>&nbsp;</td>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_reject_d.gif" width="11" height="11"></td>
- <td nowrap><?=gettext("reject (disabled)");?></td>
- <td>&nbsp;</td>
- <td width="16"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_log_d.gif" width="11" height="11"></td>
- <td nowrap><?=gettext("log (disabled)");?></td>
- </tr>
- <tr>
- <td colspan="10">
- &nbsp;<p/>
- <strong>
- <span class="red"><?=gettext("Hint:");?></span>
- </strong><br>
- <ul>
-<? if ("FloatingRules" != $if): ?>
- <li><?=gettext("Rules are evaluated on a first-match basis (i.e. " .
- "the action of the first rule to match a packet will be executed). " .
- "This means that if you use block rules, you'll have to pay attention " .
- "to the rule order. Everything that isn't explicitly passed is blocked " .
- "by default. ");?>
- </li>
-<? else: ?>
- <li><?=gettext("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 checked on a rule. Otherwise they will only apply if no " .
- "other rules match. Pay close attention to the rule order and options " .
- "chosen. If no rule here matches, the per-interface or default rules are used. ");?>
- </li>
-<? endif; ?>
-</ul>
- </td>
- </tr>
- </table>
- </div>
- </td>
- </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ <table class="tabcont" width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td width="16"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_pass.gif" width="11" height="11" alt="pass" /></td>
+ <td><?=gettext("pass");?></td>
+ <td width="14"></td>
+ <td width="16"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block.gif" width="11" height="11" alt="block" /></td>
+ <td><?=gettext("block");?></td>
+ <td width="14"></td>
+ <td width="16"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_reject.gif" width="11" height="11" alt="reject" /></td>
+ <td><?=gettext("reject");?></td>
+ <td width="14"></td>
+ <td width="16"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_log.gif" width="11" height="11" alt="log" /></td>
+ <td><?=gettext("log");?></td>
+ </tr>
+ <tr>
+ <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_pass_d.gif" width="11" height="11" alt="pass disabled" /></td>
+ <td class="nowrap"><?=gettext("pass (disabled)");?></td>
+ <td>&nbsp;</td>
+ <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block_d.gif" width="11" height="11" alt="block disabled" /></td>
+ <td class="nowrap"><?=gettext("block (disabled)");?></td>
+ <td>&nbsp;</td>
+ <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_reject_d.gif" width="11" height="11" alt="reject disabled" /></td>
+ <td class="nowrap"><?=gettext("reject (disabled)");?></td>
+ <td>&nbsp;</td>
+ <td width="16"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_log_d.gif" width="11" height="11" alt="log disabled" /></td>
+ <td class="nowrap"><?=gettext("log (disabled)");?></td>
+ </tr>
+ <tr>
+ <td colspan="10">
+ &nbsp;<p/>
+ <strong>
+ <span class="red"><?=gettext("Hint:");?></span>
+ </strong><br/>
+ <ul>
+ <?php if ("FloatingRules" != $if): ?>
+ <li><?=gettext("Rules are evaluated on a first-match basis (i.e. " .
+ "the action of the first rule to match a packet will be executed). " .
+ "This means that if you use block rules, you'll have to pay attention " .
+ "to the rule order. Everything that isn't explicitly passed is blocked " .
+ "by default. ");?>
+ </li>
+ <?php else: ?>
+ <li><?=gettext("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 checked on a rule. Otherwise they will only apply if no " .
+ "other rules match. Pay close attention to the rule order and options " .
+ "chosen. If no rule here matches, the per-interface or default rules are used. ");?>
+ </li>
+ <?php endif; ?>
+ </ul>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </td>
+ </tr>
</table>
- <input type="hidden" name="if" value="<?=htmlspecialchars($if);?>">
- <script type="text/javascript">
+<input type="hidden" name="if" value="<?=htmlspecialchars($if);?>" />
+<script type="text/javascript">
+//<![CDATA[
var number_of_rules = <?=$nrules?>;
-<?php $nrules = 0; for ($i = 0; isset($a_filter[$i]); $i++): ?>
-/*
- Sortable.create("dragtable", {
- tag:"tr",
- format:"fr([0-9999999])",
- containment:["dragtable"],
- onChange:function(affected) {
- document.body.style.cursor = 'move';
- },
- onUpdate:function(container) {
- document.body.style.cursor = 'move';
- updateOrder(Sortable.serialize('dragtable', 'tr'));
- }
- });
-*/
-<?php endfor; ?>
+ <?php $nrules = 0; for ($i = 0; isset($a_filter[$i]); $i++): ?>
+ /*
+ Sortable.create("dragtable", {
+ tag:"tr",
+ format:"fr([0-9999999])",
+ containment:["dragtable"],
+ onChange:function(affected) {
+ document.body.style.cursor = 'move';
+ },
+ onUpdate:function(container) {
+ document.body.style.cursor = 'move';
+ updateOrder(Sortable.serialize('dragtable', 'tr'));
+ }
+ });
+ */
+ <?php endfor; ?>
function updateOrder(order) {
if(document.getElementById("redboxtable"))
jQuery('#redboxtable').hide();
@@ -908,7 +912,8 @@ if($_REQUEST['undodrag']) {
return;
}
jQuery('#loading').hide();
- </script>
+//]]>
+</script>
</form>
<?php include("fend.inc"); ?>
</body>
diff --git a/usr/local/www/firewall_rules_edit.php b/usr/local/www/firewall_rules_edit.php
index c88c57c..77808e4 100755
--- a/usr/local/www/firewall_rules_edit.php
+++ b/usr/local/www/firewall_rules_edit.php
@@ -78,6 +78,12 @@ if (isset($id) && $a_filter[$id]) {
if (isset($a_filter[$id]['id']))
$pconfig['ruleid'] = $a_filter[$id]['id'];
+ if ( isset($a_filter[$id]['created']) && is_array($a_filter[$id]['created']) )
+ $pconfig['created'] = $a_filter[$id]['created'];
+
+ if ( isset($a_filter[$id]['updated']) && is_array($a_filter[$id]['updated']) )
+ $pconfig['updated'] = $a_filter[$id]['updated'];
+
if (!isset($a_filter[$id]['type']))
$pconfig['type'] = "pass";
else
@@ -163,16 +169,16 @@ if (isset($id) && $a_filter[$id]) {
$pconfig['gateway'] = $a_filter[$id]['gateway'];
/* Shaper support */
- $pconfig['defaultqueue'] = $a_filter[$id]['defaultqueue'];
- $pconfig['ackqueue'] = $a_filter[$id]['ackqueue'];
- $pconfig['dnpipe'] = $a_filter[$id]['dnpipe'];
- $pconfig['pdnpipe'] = $a_filter[$id]['pdnpipe'];
- $pconfig['l7container'] = $a_filter[$id]['l7container'];
+ $pconfig['defaultqueue'] = (($a_filter[$id]['ackqueue'] == "none") ? '' : $a_filter[$id]['defaultqueue']);
+ $pconfig['ackqueue'] = (($a_filter[$id]['ackqueue'] == "none") ? '' : $a_filter[$id]['ackqueue']);
+ $pconfig['dnpipe'] = (($a_filter[$id]['dnpipe'] == "none") ? '' : $a_filter[$id]['dnpipe']);
+ $pconfig['pdnpipe'] = (($a_filter[$id]['pdnpipe'] == "none") ? '' : $a_filter[$id]['pdnpipe']);
+ $pconfig['l7container'] = (($a_filter[$id]['l7container'] == "none") ? '' : $a_filter[$id]['l7container']);
//schedule support
- $pconfig['sched'] = $a_filter[$id]['sched'];
- $pconfig['vlanprio'] = $a_filter[$id]['vlanprio'];
- $pconfig['vlanprioset'] = $a_filter[$id]['vlanprioset'];
+ $pconfig['sched'] = (($a_filter[$id]['sched'] == "none") ? '' : $a_filter[$id]['sched']);
+ $pconfig['vlanprio'] = (($a_filter[$id]['vlanprio'] == "none") ? '' : $a_filter[$id]['vlanprio']);
+ $pconfig['vlanprioset'] = (($a_filter[$id]['vlanprioset'] == "none") ? '' : $a_filter[$id]['vlanprioset']);
if (!isset($_GET['dup']))
$pconfig['associated-rule-id'] = $a_filter[$id]['associated-rule-id'];
@@ -289,13 +295,19 @@ if ($_POST) {
$_POST['src'] = $_POST['srctype'];
$_POST['srcmask'] = 0;
} else if ($_POST['srctype'] == "single") {
- $_POST['srcmask'] = 32;
+ if (is_ipaddrv6($_POST['src']))
+ $_POST['srcmask'] = 128;
+ else
+ $_POST['srcmask'] = 32;
}
if (is_specialnet($_POST['dsttype'])) {
$_POST['dst'] = $_POST['dsttype'];
$_POST['dstmask'] = 0;
} else if ($_POST['dsttype'] == "single") {
- $_POST['dstmask'] = 32;
+ if (is_ipaddrv6($_POST['dst']))
+ $_POST['dstmask'] = 128;
+ else
+ $_POST['dstmask'] = 32;
}
$pconfig = $_POST;
@@ -429,18 +441,18 @@ if ($_POST) {
if( $_POST['proto'] != "tcp" )
$input_errors[] = gettext("OS detection is only valid with protocol tcp.");
- if ($_POST['ackqueue'] && $_POST['ackqueue'] != "none") {
- if ($_POST['defaultqueue'] == "none" )
+ if ($_POST['ackqueue'] != "") {
+ if ($_POST['defaultqueue'] == "" )
$input_errors[] = gettext("You have to select a queue when you select an acknowledge queue too.");
else if ($_POST['ackqueue'] == $_POST['defaultqueue'])
$input_errors[] = gettext("Acknowledge queue and Queue cannot be the same.");
}
- if (isset($_POST['floating']) && $_POST['pdnpipe'] != "none" && (empty($_POST['direction']) || $_POST['direction'] == "any"))
+ if (isset($_POST['floating']) && $_POST['pdnpipe'] != "" && (empty($_POST['direction']) || $_POST['direction'] == "any"))
$input_errors[] = gettext("You can not use limiters in Floating rules without choosing a direction.");
if (isset($_POST['floating']) && $_POST['gateway'] != "" && (empty($_POST['direction']) || $_POST['direction'] == "any"))
$input_errors[] = gettext("You can not use gateways in Floating rules without choosing a direction.");
- if ($_POST['pdnpipe'] && $_POST['pdnpipe'] != "none") {
- if ($_POST['dnpipe'] == "none" )
+ if ($_POST['pdnpipe'] && $_POST['pdnpipe'] != "") {
+ if ($_POST['dnpipe'] == "" )
$input_errors[] = gettext("You must select a queue for the In direction before selecting one for Out too.");
else if ($_POST['pdnpipe'] == $_POST['dnpipe'])
$input_errors[] = gettext("In and Out Queue cannot be the same.");
@@ -453,7 +465,7 @@ if ($_POST) {
}
if( !empty($_POST['ruleid']) && !ctype_digit($_POST['ruleid']))
$input_errors[] = gettext('ID must be an integer');
- if($_POST['l7container'] && $_POST['l7container'] != "none") {
+ if($_POST['l7container'] && $_POST['l7container'] != "") {
if(!($_POST['proto'] == "tcp" || $_POST['proto'] == "udp" || $_POST['proto'] == "tcp/udp"))
$input_errors[] = gettext("You can only select a layer7 container for TCP and/or UDP protocols");
if ($_POST['type'] <> "pass")
@@ -586,19 +598,19 @@ if ($_POST) {
$filterent['gateway'] = $_POST['gateway'];
}
- if (isset($_POST['defaultqueue']) && $_POST['defaultqueue'] != "none") {
+ if ($_POST['defaultqueue'] != "") {
$filterent['defaultqueue'] = $_POST['defaultqueue'];
- if (isset($_POST['ackqueue']) && $_POST['ackqueue'] != "none")
+ if ($_POST['ackqueue'] != "")
$filterent['ackqueue'] = $_POST['ackqueue'];
}
- if (isset($_POST['dnpipe']) && $_POST['dnpipe'] != "none") {
+ if ($_POST['dnpipe'] != "") {
$filterent['dnpipe'] = $_POST['dnpipe'];
- if (isset($_POST['pdnpipe']) && $_POST['pdnpipe'] != "none")
+ if ($_POST['pdnpipe'] != "")
$filterent['pdnpipe'] = $_POST['pdnpipe'];
}
- if (isset($_POST['l7container']) && $_POST['l7container'] != "none") {
+ if ($_POST['l7container'] != "") {
$filterent['l7container'] = $_POST['l7container'];
}
@@ -630,12 +642,18 @@ if ($_POST) {
$filterent['associated-rule-id'] = $a_filter[$id]['associated-rule-id'];
}
+ if ( isset($a_filter[$id]['created']) && is_array($a_filter[$id]['created']) )
+ $filterent['created'] = $a_filter[$id]['created'];
+
+ $filterent['updated'] = make_config_revision_entry();
+
// Allow extending of the firewall edit page and include custom input validation
pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_write_config");
if (isset($id) && $a_filter[$id])
$a_filter[$id] = $filterent;
else {
+ $filterent['created'] = make_config_revision_entry();
if (is_numeric($after))
array_splice($a_filter, $after+1, 0, array($filterent));
else
@@ -675,9 +693,9 @@ include("head.inc");
<?php if ($input_errors) print_input_errors($input_errors); ?>
<form action="firewall_rules_edit.php" method="post" name="iform" id="iform">
-<input type='hidden' name="ruleid" value="<?=(isset($pconfig['ruleid'])&&$pconfig['ruleid']>0)?htmlspecialchars($pconfig['ruleid']):''?>">
+<input type='hidden' name="ruleid" value="<?=(isset($pconfig['ruleid'])&&$pconfig['ruleid']>0)?htmlspecialchars($pconfig['ruleid']):''?>" />
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="firewall rules edit">
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Edit Firewall rule");?></td>
</tr>
@@ -690,12 +708,12 @@ include("head.inc");
<td width="78%" class="vtable">
<select name="type" class="formselect">
<?php $types = explode(" ", "Pass Block Reject"); foreach ($types as $type): ?>
- <option value="<?=strtolower($type);?>" <?php if (strtolower($type) == strtolower($pconfig['type'])) echo "selected"; ?>>
+ <option value="<?=strtolower($type);?>" <?php if (strtolower($type) == strtolower($pconfig['type'])) echo "selected=\"selected\""; ?>>
<?=htmlspecialchars($type);?>
</option>
<?php endforeach; ?>
<?php if ($if == "FloatingRules" || isset($pconfig['floating'])): ?>
- <option value="match" <?php if ("match" == strtolower($pconfig['type'])) echo "selected"; ?>>Match</option>
+ <option value="match" <?php if ("match" == strtolower($pconfig['type'])) echo "selected=\"selected\""; ?>>Match</option>
<?php endif; ?>
</select>
<br/>
@@ -708,7 +726,7 @@ include("head.inc");
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Disabled");?></td>
<td width="78%" class="vtable">
- <input name="disabled" type="checkbox" id="disabled" value="yes" <?php if ($pconfig['disabled']) echo "checked"; ?>>
+ <input name="disabled" type="checkbox" id="disabled" value="yes" <?php if ($pconfig['disabled']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Disable this rule");?></strong><br />
<span class="vexpl"><?=gettext("Set this option to disable this rule without removing it from the list.");?></span>
</td>
@@ -738,14 +756,14 @@ include("head.inc");
if (is_array($config['nat']['rule'])) {
foreach( $config['nat']['rule'] as $index => $nat_rule ) {
if( isset($nat_rule['associated-rule-id']) && $nat_rule['associated-rule-id']==$pconfig['associated-rule-id'] ) {
- echo "<a href=\"firewall_nat_edit.php?id={$index}\">" . gettext("View the NAT rule") . "</a><br>";
+ echo "<a href=\"firewall_nat_edit.php?id={$index}\">" . gettext("View the NAT rule") . "</a><br/>";
break;
}
}
}
- echo "<input name='associated-rule-id' id='associated-rule-id' type='hidden' value='{$pconfig['associated-rule-id']}' >";
+ echo "<input name='associated-rule-id' id='associated-rule-id' type='hidden' value='{$pconfig['associated-rule-id']}' />";
if (!empty($pconfig['interface']))
- echo "<input name='interface' id='interface' type='hidden' value='{$pconfig['interface']}' >";
+ echo "<input name='interface' id='interface' type='hidden' value='{$pconfig['interface']}' />";
?>
<script type="text/javascript">
editenabled = 0;
@@ -757,7 +775,7 @@ include("head.inc");
<td width="22%" valign="top" class="vncellreq"><?=gettext("Interface");?></td>
<td width="78%" class="vtable">
<?php if ($if == "FloatingRules" || isset($pconfig['floating'])): ?>
- <select name="interface[]" title="Select interfaces..." multiple style="width:350px;" class="chzn-select" tabindex="2" <?=$edit_disabled;?>>
+ <select name="interface[]" title="Select interfaces..." multiple="multiple" style="width:350px;" class="chzn-select" tabindex="2" <?=$edit_disabled;?>>
<?php else: ?>
<select name="interface" class="formselect" <?=$edit_disabled;?>>
<?php
@@ -793,7 +811,7 @@ include("head.inc");
$pconfig['interface'] = implode(",", $pconfig['interface']);
$selected_interfaces = explode(",", $pconfig['interface']);
foreach ($interfaces as $iface => $ifacename): ?>
- <option value="<?=$iface;?>" <?php if ($pconfig['interface'] <> "" && ( strcasecmp($pconfig['interface'], $iface) == 0 || in_array($iface, $selected_interfaces) )) echo "selected"; ?>><?=$ifacename?></option>
+ <option value="<?=$iface;?>" <?php if ($pconfig['interface'] <> "" && ( strcasecmp($pconfig['interface'], $iface) == 0 || in_array($iface, $selected_interfaces) )) echo "selected=\"selected\""; ?>><?=$ifacename?></option>
<?php endforeach; ?>
</select>
<br />
@@ -816,7 +834,7 @@ include("head.inc");
><?=$direction;?></option>
<?php endforeach; ?>
</select>
- <input type="hidden" id="floating" name="floating" value="floating">
+ <input type="hidden" id="floating" name="floating" value="floating" />
</td>
<tr>
<?php endif; ?>
@@ -843,14 +861,14 @@ include("head.inc");
<?php
$protocols = explode(" ", "TCP UDP TCP/UDP ICMP ESP AH GRE IGMP OSPF any carp pfsync");
foreach ($protocols as $proto): ?>
- <option value="<?=strtolower($proto);?>" <?php if (strtolower($proto) == $pconfig['proto']) echo "selected"; ?>><?=htmlspecialchars($proto);?></option>
+ <option value="<?=strtolower($proto);?>" <?php if (strtolower($proto) == $pconfig['proto']) echo "selected=\"selected\""; ?>><?=htmlspecialchars($proto);?></option>
<?php endforeach; ?>
</select>
<br />
<span class="vexpl"><?=gettext("Choose which IP protocol this rule should match.");?> <br /> <?=gettext("Hint: in most cases, you should specify ");?><em>TCP</em> &nbsp;<?=gettext("here.");?></span>
</td>
</tr>
- <tr id="icmpbox" name="icmpbox">
+ <tr id="icmpbox">
<td valign="top" class="vncell"><?=gettext("ICMP type");?></td>
<td class="vtable">
<select <?=$edit_disabled;?> name="icmptype" class="formselect">
@@ -876,7 +894,7 @@ include("head.inc");
);
foreach ($icmptypes as $icmptype => $descr): ?>
- <option value="<?=$icmptype;?>" <?php if ($icmptype == $pconfig['icmptype']) echo "selected"; ?>><?=htmlspecialchars($descr);?></option>
+ <option value="<?=$icmptype;?>" <?php if ($icmptype == $pconfig['icmptype']) echo "selected=\"selected\""; ?>><?=htmlspecialchars($descr);?></option>
<?php endforeach; ?>
</select>
<br />
@@ -886,7 +904,7 @@ include("head.inc");
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Source");?></td>
<td width="78%" class="vtable">
- <input <?=$edit_disabled;?> name="srcnot" type="checkbox" id="srcnot" value="yes" <?php if ($pconfig['srcnot']) echo "checked"; ?>>
+ <input <?=$edit_disabled;?> name="srcnot" type="checkbox" id="srcnot" value="yes" <?php if ($pconfig['srcnot']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("not");?></strong>
<br />
<?=gettext("Use this option to invert the sense of the match.");?>
@@ -896,26 +914,32 @@ include("head.inc");
<tr>
<td><?=gettext("Type:");?>&nbsp;&nbsp;</td>
<td>
- <select <?=$edit_disabled;?> name="srctype" class="formselect" onChange="typesel_change()">
+ <select <?=$edit_disabled;?> name="srctype" class="formselect" onchange="typesel_change()">
<?php
$sel = is_specialnet($pconfig['src']); ?>
- <option value="any" <?php if ($pconfig['src'] == "any") { echo "selected"; } ?>><?=gettext("any");?></option>
- <option value="single" <?php if (($pconfig['srcmask'] == 32) && !$sel) { echo "selected"; $sel = 1; } ?>><?=gettext("Single host or alias");?></option>
- <option value="network" <?php if (!$sel) echo "selected"; ?>><?=gettext("Network");?></option>
+ <option value="any" <?php if ($pconfig['src'] == "any") { echo "selected=\"selected\""; } ?>><?=gettext("any");?></option>
+ <option value="single"
+ <?php if (!$sel &&
+ ((is_ipaddrv6($pconfig['src']) && $pconfig['srcmask'] == 128) ||
+ (is_ipaddrv4($pconfig['src']) && $pconfig['srcmask'] == 32) || is_alias($pconfig['src'])))
+ { echo "selected=\"selected\""; $sel = 1; }
+ ?>
+ > <?=gettext("Single host or alias");?></option>
+ <option value="network" <?php if (!$sel) echo "selected=\"selected\""; ?>><?=gettext("Network");?></option>
<?php if(have_ruleint_access("pptp")): ?>
- <option value="pptp" <?php if ($pconfig['src'] == "pptp") { echo "selected"; } ?>><?=gettext("PPTP clients");?></option>
+ <option value="pptp" <?php if ($pconfig['src'] == "pptp") { echo "selected=\"selected\""; } ?>><?=gettext("PPTP clients");?></option>
<?php endif; ?>
<?php if(have_ruleint_access("pppoe")): ?>
- <option value="pppoe" <?php if ($pconfig['src'] == "pppoe") { echo "selected"; } ?>><?=gettext("PPPoE clients");?></option>
+ <option value="pppoe" <?php if ($pconfig['src'] == "pppoe") { echo "selected=\"selected\""; } ?>><?=gettext("PPPoE clients");?></option>
<?php endif; ?>
<?php if(have_ruleint_access("l2tp")): ?>
- <option value="l2tp" <?php if ($pconfig['src'] == "l2tp") { echo "selected"; } ?>><?=gettext("L2TP clients");?></option>
+ <option value="l2tp" <?php if ($pconfig['src'] == "l2tp") { echo "selected=\"selected\""; } ?>><?=gettext("L2TP clients");?></option>
<?php endif; ?>
<?php
foreach ($ifdisp as $ifent => $ifdesc): ?>
<?php if(have_ruleint_access($ifent)): ?>
- <option value="<?=$ifent;?>" <?php if ($pconfig['src'] == $ifent) { echo "selected"; } ?>><?=htmlspecialchars($ifdesc);?><?=gettext(" subnet");?></option>
- <option value="<?=$ifent;?>ip"<?php if ($pconfig['src'] == $ifent . "ip") { echo "selected"; } ?>>
+ <option value="<?=$ifent;?>" <?php if ($pconfig['src'] == $ifent) { echo "selected=\"selected\""; } ?>><?=htmlspecialchars($ifdesc);?><?=gettext(" subnet");?></option>
+ <option value="<?=$ifent;?>ip"<?php if ($pconfig['src'] == $ifent . "ip") { echo "selected=\"selected\""; } ?>>
<?=$ifdesc?> <?=gettext("address");?>
</option>
<?php endif; ?>
@@ -926,10 +950,10 @@ include("head.inc");
<tr>
<td><?=gettext("Address:");?>&nbsp;&nbsp;</td>
<td>
- <input <?=$edit_disabled;?> autocomplete='off' name="src" type="text" class="formfldalias ipv4v6" id="src" size="20" value="<?php if (!is_specialnet($pconfig['src'])) echo htmlspecialchars($pconfig['src']);?>"> /
+ <input <?=$edit_disabled;?> autocomplete='off' name="src" type="text" class="formfldalias ipv4v6" id="src" size="20" value="<?php if (!is_specialnet($pconfig['src'])) echo htmlspecialchars($pconfig['src']);?>" /> /
<select <?=$edit_disabled;?> name="srcmask" class="formselect ipv4v6" id="srcmask">
<?php for ($i = 127; $i > 0; $i--): ?>
- <option value="<?=$i;?>" <?php if ($i == $pconfig['srcmask']) echo "selected"; ?>><?=$i;?></option>
+ <option value="<?=$i;?>" <?php if ($i == $pconfig['srcmask']) echo "selected=\"selected\""; ?>><?=$i;?></option>
<?php endfor; ?>
</select>
</td>
@@ -937,11 +961,12 @@ include("head.inc");
</table>
<div id="showadvancedboxspr">
<p>
- <input <?=$edit_disabled;?> type="button" onClick="show_source_port_range()" value="<?=gettext("Advanced"); ?>"></input> - <?=gettext("Show source port range");?></a>
+ <input <?=$edit_disabled;?> type="button" onclick="show_source_port_range()" value="<?=gettext("Advanced"); ?>" /> - <?=gettext("Show source port range");?>
+ </p>
</div>
</td>
</tr>
- <tr style="display:none" id="sprtable" name="sprtable">
+ <tr style="display:none" id="sprtable">
<td width="22%" valign="top" class="vncellreq"><?=gettext("Source port range");?></td>
<td width="78%" class="vtable">
<table border="0" cellspacing="0" cellpadding="0">
@@ -950,12 +975,12 @@ include("head.inc");
<td>
<select <?=$edit_disabled;?> name="srcbeginport" class="formselect" onchange="src_rep_change();ext_change()">
<option value="">(<?=gettext("other"); ?>)</option>
- <option value="any" <?php $bfound = 0; if ($pconfig['srcbeginport'] == "any") { echo "selected"; $bfound = 1; } ?>><?=gettext("any");?></option>
+ <option value="any" <?php $bfound = 0; if ($pconfig['srcbeginport'] == "any") { echo "selected=\"selected\""; $bfound = 1; } ?>><?=gettext("any");?></option>
<?php foreach ($wkports as $wkport => $wkportdesc): ?>
- <option value="<?=$wkport;?>" <?php if ($wkport == $pconfig['srcbeginport']) { echo "selected"; $bfound = 1; } ?>><?=htmlspecialchars($wkportdesc);?></option>
+ <option value="<?=$wkport;?>" <?php if ($wkport == $pconfig['srcbeginport']) { echo "selected=\"selected\""; $bfound = 1; } ?>><?=htmlspecialchars($wkportdesc);?></option>
<?php endforeach; ?>
</select>
- <input <?=$edit_disabled;?> autocomplete='off' class="formfldalias" name="srcbeginport_cust" id="srcbeginport_cust" type="text" size="5" value="<?php if (!$bfound && $pconfig['srcbeginport']) echo htmlspecialchars($pconfig['srcbeginport']); ?>">
+ <input <?=$edit_disabled;?> autocomplete='off' class="formfldalias" name="srcbeginport_cust" id="srcbeginport_cust" type="text" size="5" value="<?php if (!$bfound && $pconfig['srcbeginport']) echo htmlspecialchars($pconfig['srcbeginport']); ?>" />
</td>
</tr>
<tr>
@@ -963,12 +988,12 @@ include("head.inc");
<td>
<select <?=$edit_disabled;?> name="srcendport" class="formselect" onchange="ext_change()">
<option value="">(<?=gettext("other"); ?>)</option>
- <option value="any" <?php $bfound = 0; if ($pconfig['srcendport'] == "any") { echo "selected"; $bfound = 1; } ?>><?=gettext("any");?></option>
+ <option value="any" <?php $bfound = 0; if ($pconfig['srcendport'] == "any") { echo "selected=\"selected\""; $bfound = 1; } ?>><?=gettext("any");?></option>
<?php foreach ($wkports as $wkport => $wkportdesc): ?>
- <option value="<?=$wkport;?>" <?php if ($wkport == $pconfig['srcendport']) { echo "selected"; $bfound = 1; } ?>><?=htmlspecialchars($wkportdesc);?></option>
+ <option value="<?=$wkport;?>" <?php if ($wkport == $pconfig['srcendport']) { echo "selected=\"selected\""; $bfound = 1; } ?>><?=htmlspecialchars($wkportdesc);?></option>
<?php endforeach; ?>
</select>
- <input <?=$edit_disabled;?> autocomplete='off' class="formfldalias" name="srcendport_cust" id="srcendport_cust" type="text" size="5" value="<?php if (!$bfound && $pconfig['srcendport']) echo htmlspecialchars($pconfig['srcendport']); ?>">
+ <input <?=$edit_disabled;?> autocomplete='off' class="formfldalias" name="srcendport_cust" id="srcendport_cust" type="text" size="5" value="<?php if (!$bfound && $pconfig['srcendport']) echo htmlspecialchars($pconfig['srcendport']); ?>" />
</td>
</tr>
</table>
@@ -979,7 +1004,7 @@ include("head.inc");
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Destination");?></td>
<td width="78%" class="vtable">
- <input <?=$edit_disabled;?> name="dstnot" type="checkbox" id="dstnot" value="yes" <?php if ($pconfig['dstnot']) echo "checked"; ?>>
+ <input <?=$edit_disabled;?> name="dstnot" type="checkbox" id="dstnot" value="yes" <?php if ($pconfig['dstnot']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("not");?></strong>
<br />
<?=gettext("Use this option to invert the sense of the match.");?>
@@ -989,26 +1014,32 @@ include("head.inc");
<tr>
<td><?=gettext("Type:");?>&nbsp;&nbsp;</td>
<td>
- <select <?=$edit_disabled;?> name="dsttype" class="formselect" onChange="typesel_change()">
+ <select <?=$edit_disabled;?> name="dsttype" class="formselect" onchange="typesel_change()">
<?php
$sel = is_specialnet($pconfig['dst']); ?>
- <option value="any" <?php if ($pconfig['dst'] == "any") { echo "selected"; } ?>><?=gettext("any");?></option>
- <option value="single" <?php if (($pconfig['dstmask'] == 32) && !$sel) { echo "selected"; $sel = 1; } ?>><?=gettext("Single host or alias");?></option>
- <option value="network" <?php if (!$sel) echo "selected"; ?>><?=gettext("Network");?></option>
+ <option value="any" <?php if ($pconfig['dst'] == "any") { echo "selected=\"selected\""; } ?>><?=gettext("any");?></option>
+ <option value="single"
+ <?php if (!$sel &&
+ ((is_ipaddrv6($pconfig['dst']) && $pconfig['dstmask'] == 128) ||
+ (is_ipaddrv4($pconfig['dst']) && $pconfig['dstmask'] == 32) || is_alias($pconfig['dst'])))
+ { echo "selected=\"selected\""; $sel = 1; }
+ ?>
+ ><?=gettext("Single host or alias");?></option>
+ <option value="network" <?php if (!$sel) echo "selected=\"selected\""; ?>><?=gettext("Network");?></option>
<?php if(have_ruleint_access("pptp")): ?>
- <option value="pptp" <?php if ($pconfig['dst'] == "pptp") { echo "selected"; } ?>><?=gettext("PPTP clients");?></option>
+ <option value="pptp" <?php if ($pconfig['dst'] == "pptp") { echo "selected=\"selected\""; } ?>><?=gettext("PPTP clients");?></option>
<?php endif; ?>
<?php if(have_ruleint_access("pppoe")): ?>
- <option value="pppoe" <?php if ($pconfig['dst'] == "pppoe") { echo "selected"; } ?>><?=gettext("PPPoE clients");?></option>
+ <option value="pppoe" <?php if ($pconfig['dst'] == "pppoe") { echo "selected=\"selected\""; } ?>><?=gettext("PPPoE clients");?></option>
<?php endif; ?>
<?php if(have_ruleint_access("l2tp")): ?>
- <option value="l2tp" <?php if ($pconfig['dst'] == "l2tp") { echo "selected"; } ?>><?=gettext("L2TP clients");?></option>
+ <option value="l2tp" <?php if ($pconfig['dst'] == "l2tp") { echo "selected=\"selected\""; } ?>><?=gettext("L2TP clients");?></option>
<?php endif; ?>
<?php foreach ($ifdisp as $if => $ifdesc): ?>
<?php if(have_ruleint_access($if)): ?>
- <option value="<?=$if;?>" <?php if ($pconfig['dst'] == $if) { echo "selected"; } ?>><?=htmlspecialchars($ifdesc);?> <?=gettext("subnet");?></option>
- <option value="<?=$if;?>ip"<?php if ($pconfig['dst'] == $if . "ip") { echo "selected"; } ?>>
+ <option value="<?=$if;?>" <?php if ($pconfig['dst'] == $if) { echo "selected=\"selected\""; } ?>><?=htmlspecialchars($ifdesc);?> <?=gettext("subnet");?></option>
+ <option value="<?=$if;?>ip"<?php if ($pconfig['dst'] == $if . "ip") { echo "selected=\"selected\""; } ?>>
<?=$ifdesc;?> <?=gettext("address");?>
</option>
<?php endif; ?>
@@ -1019,13 +1050,13 @@ include("head.inc");
<tr>
<td><?=gettext("Address:");?>&nbsp;&nbsp;</td>
<td>
- <input <?=$edit_disabled;?> autocomplete='off' name="dst" type="text" class="formfldalias ipv4v6" id="dst" size="20" value="<?php if (!is_specialnet($pconfig['dst'])) echo htmlspecialchars($pconfig['dst']);?>">
+ <input <?=$edit_disabled;?> autocomplete='off' name="dst" type="text" class="formfldalias ipv4v6" id="dst" size="20" value="<?php if (!is_specialnet($pconfig['dst'])) echo htmlspecialchars($pconfig['dst']);?>" />
/
<select <?=$edit_disabled;?> name="dstmask" class="formselect ipv4v6" id="dstmask">
<?php
for ($i = 127; $i > 0;
$i--): ?>
- <option value="<?=$i;?>" <?php if ($i == $pconfig['dstmask']) echo "selected"; ?>><?=$i;?></option>
+ <option value="<?=$i;?>" <?php if ($i == $pconfig['dstmask']) echo "selected=\"selected\""; ?>><?=$i;?></option>
<?php endfor; ?>
</select>
</td>
@@ -1033,7 +1064,7 @@ $i--): ?>
</table>
</td>
</tr>
- <tr id="dprtr" name="dprtr">
+ <tr id="dprtr">
<td width="22%" valign="top" class="vncellreq"><?=gettext("Destination port range ");?></td>
<td width="78%" class="vtable">
<table border="0" cellspacing="0" cellpadding="0">
@@ -1042,12 +1073,12 @@ $i--): ?>
<td>
<select <?=$edit_disabled;?> name="dstbeginport" class="formselect" onchange="dst_rep_change();ext_change()">
<option value="">(<?=gettext("other"); ?>)</option>
- <option value="any" <?php $bfound = 0; if ($pconfig['dstbeginport'] == "any") { echo "selected"; $bfound = 1; } ?>><?=gettext("any");?></option>
+ <option value="any" <?php $bfound = 0; if ($pconfig['dstbeginport'] == "any") { echo "selected=\"selected\""; $bfound = 1; } ?>><?=gettext("any");?></option>
<?php foreach ($wkports as $wkport => $wkportdesc): ?>
- <option value="<?=$wkport;?>" <?php if ($wkport == $pconfig['dstbeginport']) { echo "selected"; $bfound = 1; }?>><?=htmlspecialchars($wkportdesc);?></option>
+ <option value="<?=$wkport;?>" <?php if ($wkport == $pconfig['dstbeginport']) { echo "selected=\"selected\""; $bfound = 1; }?>><?=htmlspecialchars($wkportdesc);?></option>
<?php endforeach; ?>
</select>
- <input <?=$edit_disabled;?> autocomplete='off' class="formfldalias" name="dstbeginport_cust" id="dstbeginport_cust" type="text" size="5" value="<?php if (!$bfound && $pconfig['dstbeginport']) echo htmlspecialchars($pconfig['dstbeginport']); ?>">
+ <input <?=$edit_disabled;?> autocomplete='off' class="formfldalias" name="dstbeginport_cust" id="dstbeginport_cust" type="text" size="5" value="<?php if (!$bfound && $pconfig['dstbeginport']) echo htmlspecialchars($pconfig['dstbeginport']); ?>" />
</td>
</tr>
<tr>
@@ -1055,12 +1086,12 @@ $i--): ?>
<td>
<select <?=$edit_disabled;?> name="dstendport" class="formselect" onchange="ext_change()">
<option value="">(<?=gettext("other"); ?>)</option>
- <option value="any" <?php $bfound = 0; if ($pconfig['dstendport'] == "any") { echo "selected"; $bfound = 1; } ?>><?=gettext("any");?></option>
+ <option value="any" <?php $bfound = 0; if ($pconfig['dstendport'] == "any") { echo "selected=\"selected\""; $bfound = 1; } ?>><?=gettext("any");?></option>
<?php foreach ($wkports as $wkport => $wkportdesc): ?>
- <option value="<?=$wkport;?>" <?php if ($wkport == $pconfig['dstendport']) { echo "selected"; $bfound = 1; } ?>><?=htmlspecialchars($wkportdesc);?></option>
+ <option value="<?=$wkport;?>" <?php if ($wkport == $pconfig['dstendport']) { echo "selected=\"selected\""; $bfound = 1; } ?>><?=htmlspecialchars($wkportdesc);?></option>
<?php endforeach; ?>
</select>
- <input <?=$edit_disabled;?> autocomplete='off' class="formfldalias" name="dstendport_cust" id="dstendport_cust" type="text" size="5" value="<?php if (!$bfound && $pconfig['dstendport']) echo htmlspecialchars($pconfig['dstendport']); ?>">
+ <input <?=$edit_disabled;?> autocomplete='off' class="formfldalias" name="dstendport_cust" id="dstendport_cust" type="text" size="5" value="<?php if (!$bfound && $pconfig['dstendport']) echo htmlspecialchars($pconfig['dstendport']); ?>" />
</td>
</tr>
</table>
@@ -1075,7 +1106,7 @@ $i--): ?>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Log");?></td>
<td width="78%" class="vtable">
- <input name="log" type="checkbox" id="log" value="yes" <?php if ($pconfig['log']) echo "checked"; ?>>
+ <input name="log" type="checkbox" id="log" value="yes" <?php if ($pconfig['log']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Log packets that are handled by this rule");?></strong>
<br />
<span class="vexpl"><?=gettext("Hint: the firewall has limited local log space. Don't turn on logging for everything. If you want to do a lot of logging, consider using a remote syslog server"); ?> (<?=gettext("see the"); ?> <a href="diag_logs_settings.php"><?=gettext("Diagnostics: System logs: Settings"); ?></a> <?=gettext("page"); ?>).</span>
@@ -1084,7 +1115,7 @@ $i--): ?>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Description");?></td>
<td width="78%" class="vtable">
- <input name="descr" type="text" class="formfld unknown" id="descr" size="52" maxlength="52" value="<?=htmlspecialchars($pconfig['descr']);?>">
+ <input name="descr" type="text" class="formfld unknown" id="descr" size="52" maxlength="52" value="<?=htmlspecialchars($pconfig['descr']);?>" />
<br />
<span class="vexpl"><?=gettext("You may enter a description here for your reference.");?></span>
</td>
@@ -1093,12 +1124,12 @@ $i--): ?>
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
- &nbsp;<br>&nbsp;
- <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>"> <input type="button" class="formbtn" value="<?=gettext("Cancel"); ?>" onclick="history.back()">
+ &nbsp;<br/>&nbsp;
+ <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>" /> <input type="button" class="formbtn" value="<?=gettext("Cancel"); ?>" onclick="history.back()" />
<?php if (isset($id) && $a_filter[$id]): ?>
- <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>">
+ <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>" />
<?php endif; ?>
- <input name="after" type="hidden" value="<?=htmlspecialchars($after);?>">
+ <input name="after" type="hidden" value="<?=htmlspecialchars($after);?>" />
</td>
</tr>
<?php endif; ?>
@@ -1112,7 +1143,7 @@ $i--): ?>
<td width="22%" valign="top" class="vncell"><?=gettext("Source OS");?></td>
<td width="78%" class="vtable">
<div id="showadvsourceosbox" <?php if ($pconfig['os']) echo "style='display:none'"; ?>>
- <input type="button" onClick="show_advanced_sourceos()" value="<?=gettext("Advanced"); ?>"></input> - <?=gettext("Show advanced option");?></a>
+ <input type="button" onclick="show_advanced_sourceos()" value="<?=gettext("Advanced"); ?>" /> - <?=gettext("Show advanced option");?>
</div>
<div id="showsourceosadv" <?php if (empty($pconfig['os'])) echo "style='display:none'"; ?>>
<?=gettext("OS Type:");?>&nbsp;
@@ -1132,7 +1163,7 @@ $i--): ?>
"NMAP" => "NMAP"
);
foreach ($ostypes as $ostype => $descr): ?>
- <option value="<?=$ostype;?>" <?php if ($ostype == $pconfig['os']) echo "selected"; ?>><?=htmlspecialchars($descr);?></option>
+ <option value="<?=$ostype;?>" <?php if ($ostype == $pconfig['os']) echo "selected=\"selected\""; ?>><?=htmlspecialchars($descr);?></option>
<?php
endforeach;
?>
@@ -1145,14 +1176,14 @@ $i--): ?>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Diffserv Code Point");?></td>
<td width="78%" class="vtable">
- <div id="dsadv" name="dsadv" <?php if ($pconfig['dscp']) echo "style='display:none'"; ?>>
- <input type="button" onClick="show_dsdiv();" value="<?=gettext("Advanced"); ?>"> - <?=gettext("Show advanced option");?>
+ <div id="dsadv" <?php if ($pconfig['dscp']) echo "style='display:none'"; ?>>
+ <input type="button" onclick="show_dsdiv();" value="<?=gettext("Advanced"); ?>" /> - <?=gettext("Show advanced option");?>
</div>
- <div id="dsdivmain" name="dsdivmain" <?php if (empty($pconfig['dscp'])) echo "style='display:none'"; ?>>
+ <div id="dsdivmain" <?php if (empty($pconfig['dscp'])) echo "style='display:none'"; ?>>
<select name="dscp" id="dscp">
<option value=""></option>
<?php foreach($firewall_rules_dscp_types as $frdt): ?>
- <option value="<?=$frdt?>"<?php if($pconfig['dscp'] == $frdt) echo " SELECTED"; ?>><?=$frdt?></option>
+ <option value="<?=$frdt?>"<?php if($pconfig['dscp'] == $frdt) echo " selected=\"selected\""; ?>><?=$frdt?></option>
<?php endforeach; ?>
</select>
</div>
@@ -1161,81 +1192,77 @@ $i--): ?>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Advanced Options");?></td>
<td width="78%" class="vtable">
- <div id="aoadv" name="aoadv">
- <input type="button" onClick="show_aodiv();" value="<?=gettext("Advanced"); ?>"> - <?=gettext("Show advanced option");?>
+ <div id="aoadv">
+ <input type="button" onclick="show_aodiv();" value="<?=gettext("Advanced"); ?>" /> - <?=gettext("Show advanced option");?>
</div>
- <div id="aodivmain" name="aodivmain" style="display:none">
- <input type="checkbox" id="allowopts" value="yes" name="allowopts"<?php if($pconfig['allowopts'] == true) echo " checked"; ?>>
+ <div id="aodivmain" style="display:none">
+ <input type="checkbox" id="allowopts" value="yes" name="allowopts"<?php if($pconfig['allowopts'] == true) echo " checked=\"checked\""; ?> />
<br/><span class="vexpl"><?=gettext("This allows packets with IP options to pass. Otherwise they are blocked by default. This is usually only seen with multicast traffic.");?>
</span><p>
- <input type="checkbox" id="disablereplyto" value="yes" name="disablereplyto"<?php if($pconfig['disablereplyto'] == true) echo " checked"; ?>>
+ <input type="checkbox" id="disablereplyto" value="yes" name="disablereplyto"<?php if($pconfig['disablereplyto'] == true) echo " checked=\"checked\""; ?> />
<br/><span class="vexpl"><?=gettext("This will disable auto generated reply-to for this rule.");?>
- </span><p>
- <input name="tag" id="tag" value="<?=htmlspecialchars($pconfig['tag']);?>">
+ </span></p><p>
+ <input name="tag" id="tag" value="<?=htmlspecialchars($pconfig['tag']);?>" />
<br /><span class="vexpl"><?=gettext("You can mark a packet matching this rule and use this mark to match on other NAT/filter rules. It is called"); ?> <b><?=gettext("Policy filtering"); ?></b>
- </span><p>
- <input name="tagged" id="tagged" value="<?=htmlspecialchars($pconfig['tagged']);?>">
+ </span></p><p>
+ <input name="tagged" id="tagged" value="<?=htmlspecialchars($pconfig['tagged']);?>" />
<br /><span class="vexpl"><?=gettext("You can match packet on a mark placed before on another rule.")?>
- </span> <p>
- <input name="max" id="max" value="<?php echo htmlspecialchars($pconfig['max']) ?>"><br><?=gettext(" Maximum state entries this rule can create");?></p><p>
- <input name="max-src-nodes" id="max-src-nodes" value="<?php echo htmlspecialchars($pconfig['max-src-nodes']) ?>"><br><?=gettext(" Maximum number of unique source hosts");?></p><p>
- <input name="max-src-conn" id="max-src-conn" value="<?php echo htmlspecialchars($pconfig['max-src-conn']) ?>"><br><?=gettext(" Maximum number of established connections per host");?></p><p>
- <input name="max-src-states" id="max-src-states" value="<?php echo htmlspecialchars($pconfig['max-src-states']) ?>"><br><?=gettext(" Maximum state entries per host");?></p><p>
- <input name="max-src-conn-rate" id="max-src-conn-rate" value="<?php echo htmlspecialchars($pconfig['max-src-conn-rate']) ?>"> /
+ </span></p><p>
+ <input name="max" id="max" value="<?php echo htmlspecialchars($pconfig['max']) ?>" /><br/><?=gettext(" Maximum state entries this rule can create");?></p><p>
+ <input name="max-src-nodes" id="max-src-nodes" value="<?php echo htmlspecialchars($pconfig['max-src-nodes']) ?>" /><br/><?=gettext(" Maximum number of unique source hosts");?></p><p>
+ <input name="max-src-conn" id="max-src-conn" value="<?php echo htmlspecialchars($pconfig['max-src-conn']) ?>" /><br/><?=gettext(" Maximum number of established connections per host");?></p><p>
+ <input name="max-src-states" id="max-src-states" value="<?php echo htmlspecialchars($pconfig['max-src-states']) ?>" /><br/><?=gettext(" Maximum state entries per host");?></p><p>
+ <input name="max-src-conn-rate" id="max-src-conn-rate" value="<?php echo htmlspecialchars($pconfig['max-src-conn-rate']) ?>" /> /
<select name="max-src-conn-rates" id="max-src-conn-rates">
- <option value=""<?php if(intval($pconfig['max-src-conn-rates']) < 1) echo " selected"; ?>></option>
+ <option value=""<?php if(intval($pconfig['max-src-conn-rates']) < 1) echo " selected=\"selected\""; ?>></option>
<?php for($x=1; $x<255; $x++) {
- if($x == $pconfig['max-src-conn-rates']) $selected = " selected"; else $selected = "";
+ if($x == $pconfig['max-src-conn-rates']) $selected = " selected=\"selected\""; else $selected = "";
echo "<option value=\"{$x}\"{$selected}>{$x}</option>\n";
} ?>
</select><br />
<?=gettext("Maximum new connections / per second(s)");?>
</p><p>
-
- <input name="statetimeout" value="<?php echo htmlspecialchars($pconfig['statetimeout']) ?>"><br>
+ <input name="statetimeout" value="<?php echo htmlspecialchars($pconfig['statetimeout']) ?>" /><br/>
<?=gettext("State Timeout in seconds");?>
</p>
-
<p><strong><?=gettext("Note: Leave fields blank to disable that feature.");?></strong></p>
</div>
</td>
</tr>
- <tr id="tcpflags" name="tcpflags">
+ <tr id="tcpflags">
<td width="22%" valign="top" class="vncell"><?=gettext("TCP flags");?></td>
<td width="78%" class="vtable">
<div id="showtcpflagsbox" <?php if ($pconfig['tcpflags_any'] || $pconfig['tcpflags1'] || $pconfig['tcpflags2']) echo "style='display:none'"; ?>>
- <input type="button" onClick="show_advanced_tcpflags()" value="<?=gettext("Advanced"); ?>"></input> - <?=gettext("Show advanced option");?></a>
+ <input type="button" onclick="show_advanced_tcpflags()" value="<?=gettext("Advanced"); ?>" /> - <?=gettext("Show advanced option");?>
</div>
<div id="showtcpflagsadv" <?php if (empty($pconfig['tcpflags_any']) && empty($pconfig['tcpflags1']) && empty($pconfig['tcpflags2'])) echo "style='display:none'"; ?>>
- <div id="tcpheader" name="tcpheader">
- <center>
+ <div id="tcpheader" align="center">
<table border="0" cellspacing="0" cellpadding="0">
<?php
$setflags = explode(",", $pconfig['tcpflags1']);
$outofflags = explode(",", $pconfig['tcpflags2']);
- $header = "<td width='40' nowrap></td>";
- $tcpflags1 = "<td width='40' nowrap>set</td>";
- $tcpflags2 = "<td width='40' nowrap>out of</td>";
+ $header = "<td width='40' class='nowrap'></td>";
+ $tcpflags1 = "<td width='40' class='nowrap'>set</td>";
+ $tcpflags2 = "<td width='40' class='nowrap'>out of</td>";
foreach ($tcpflags as $tcpflag) {
- $header .= "<td width='40' nowrap><strong>" . strtoupper($tcpflag) . "</strong></td>\n";
- $tcpflags1 .= "<td width='40' nowrap> <input type='checkbox' name='tcpflags1_{$tcpflag}' value='on' ";
+ $header .= "<td width='40' class='nowrap'><strong>" . strtoupper($tcpflag) . "</strong></td>\n";
+ $tcpflags1 .= "<td width='40' class='nowrap'> <input type='checkbox' name='tcpflags1_{$tcpflag}' value='on' ";
if (array_search($tcpflag, $setflags) !== false)
- $tcpflags1 .= "checked";
- $tcpflags1 .= "></td>\n";
- $tcpflags2 .= "<td width='40' nowrap> <input type='checkbox' name='tcpflags2_{$tcpflag}' value='on' ";
+ $tcpflags1 .= "checked=\"checked\"";
+ $tcpflags1 .= " /></td>\n";
+ $tcpflags2 .= "<td width='40' class='nowrap'> <input type='checkbox' name='tcpflags2_{$tcpflag}' value='on' ";
if (array_search($tcpflag, $outofflags) !== false)
- $tcpflags2 .= "checked";
- $tcpflags2 .= "></td>\n";
+ $tcpflags2 .= "checked=\"checked\"";
+ $tcpflags2 .= " /></td>\n";
}
- echo "<tr id='tcpheader' name='tcpheader'>{$header}</tr>\n";
- echo "<tr id='tcpflags1' name='tcpflags1'>{$tcpflags1}</tr>\n";
- echo "<tr id='tcpflags2' name='tcpflags2'>{$tcpflags2}</tr>\n";
+ echo "<tr id='tcpheader'>{$header}</tr>\n";
+ echo "<tr id='tcpflags1'>{$tcpflags1}</tr>\n";
+ echo "<tr id='tcpflags2'>{$tcpflags2}</tr>\n";
?>
</table>
- <center>
</div>
<br/><center>
- <input onClick='tcpflags_anyclick(this);' type='checkbox' name='tcpflags_any' value='on' <?php if ($pconfig['tcpflags_any']) echo "checked"; ?>><strong><?=gettext("Any flags.");?></strong><br/></center>
+ <input onclick='tcpflags_anyclick(this);' type='checkbox' name='tcpflags_any' value='on' <?php if ($pconfig['tcpflags_any']) echo "checked=\"checked\""; ?> /><strong><?=gettext("Any flags.");?></strong><br/></center>
<br/>
<span class="vexpl"><?=gettext("Use this to choose TCP flags that must ".
"be set or cleared for this rule to match.");?></span>
@@ -1246,23 +1273,21 @@ $i--): ?>
<td width="22%" valign="top" class="vncell"><?=gettext("State Type");?></td>
<td width="78%" class="vtable">
<div id="showadvstatebox" <?php if (!empty($pconfig['statetype']) && $pconfig['statetype'] != "keep state") echo "style='display:none'"; ?>>
- <input type="button" onClick="show_advanced_state()" value="<?=gettext("Advanced"); ?>"></input> - <?=gettext("Show advanced option");?></a>
+ <input type="button" onclick="show_advanced_state()" value="<?=gettext("Advanced"); ?>" /> - <?=gettext("Show advanced option");?>
</div>
<div id="showstateadv" <?php if (empty($pconfig['statetype']) || $pconfig['statetype'] == "keep state") echo "style='display:none'"; ?>>
<select name="statetype">
- <option value="keep state" <?php if(!isset($pconfig['statetype']) or $pconfig['statetype'] == "keep state") echo "selected"; ?>><?=gettext("keep state");?></option>
- <option value="sloppy state" <?php if($pconfig['statetype'] == "sloppy state") echo "selected"; ?>><?=gettext("sloppy state");?></option>
- <option value="synproxy state"<?php if($pconfig['statetype'] == "synproxy state") echo "selected"; ?>><?=gettext("synproxy state");?></option>
- <option value="none"<?php if($pconfig['statetype'] == "none") echo "selected"; ?>><?=gettext("none");?></option>
- </select><br><?=gettext("Hint: Select which type of state tracking mechanism you would like to use. If in doubt, use keep state.");?>
- <p>
+ <option value="keep state" <?php if(!isset($pconfig['statetype']) or $pconfig['statetype'] == "keep state") echo "selected=\"selected\""; ?>><?=gettext("keep state");?></option>
+ <option value="sloppy state" <?php if($pconfig['statetype'] == "sloppy state") echo "selected=\"selected\""; ?>><?=gettext("sloppy state");?></option>
+ <option value="synproxy state"<?php if($pconfig['statetype'] == "synproxy state") echo "selected=\"selected\""; ?>><?=gettext("synproxy state");?></option>
+ <option value="none"<?php if($pconfig['statetype'] == "none") echo "selected=\"selected\""; ?>><?=gettext("none");?></option>
+ </select><br/><?=gettext("Hint: Select which type of state tracking mechanism you would like to use. If in doubt, use keep state.");?>
<table width="90%">
<tr><td width="25%"><ul><li><?=gettext("keep state");?></li></ul></td><td><?=gettext("Works with all IP protocols.");?></td></tr>
<tr><td width="25%"><ul><li><?=gettext("sloppy state");?></li></ul></td><td><?=gettext("Works with all IP protocols.");?></td></tr>
<tr><td width="25%"><ul><li><?=gettext("synproxy state");?></li></ul></td><td><?=gettext("Proxies incoming TCP connections to help protect servers from spoofed TCP SYN floods. This option includes the functionality of keep state and modulate state combined.");?></td></tr>
<tr><td width="25%"><ul><li><?=gettext("none");?></li></ul></td><td><?=gettext("Do not use state mechanisms to keep track. This is only useful if you're doing advanced queueing in certain situations. Please check the documentation.");?></td></tr>
</table>
- </p>
</div>
</td>
</tr>
@@ -1270,11 +1295,11 @@ $i--): ?>
<td width="22%" valign="top" class="vncell"><?=gettext("No XMLRPC Sync");?></td>
<td width="78%" class="vtable">
<div id="showadvnoxmlrpcsyncbox" <?php if ($pconfig['nosync']) echo "style='display:none'"; ?>>
- <input type="button" onClick="show_advanced_noxmlrpc()" value="<?=gettext("Advanced"); ?>"></input> - <?=gettext("Show advanced option");?></a>
+ <input type="button" onclick="show_advanced_noxmlrpc()" value="<?=gettext("Advanced"); ?>" /> - <?=gettext("Show advanced option");?>
</div>
<div id="shownoxmlrpcadv" <?php if (empty($pconfig['nosync'])) echo "style='display:none'"; ?>>
- <input type="checkbox" name="nosync"<?php if($pconfig['nosync']) echo " CHECKED"; ?>><br>
- <?=gettext("Hint: This prevents the rule from automatically syncing to other CARP members.");?>
+ <input type="checkbox" name="nosync"<?php if($pconfig['nosync']) echo " checked=\"checked\""; ?> /><br/>
+ <?=gettext("Hint: This prevents the rule on Master from automatically syncing to other CARP members. This does NOT prevent the rule from being overwritten on Slave.");?>
</div>
</td>
</tr>
@@ -1282,7 +1307,7 @@ $i--): ?>
<td width="22%" valign="top" class="vncell"><?=gettext("802.1p");?></td>
<td width="78%" class="vtable">
<div id="showadvvlanpriobox" <?php if (!empty($pconfig['vlanprio'])) echo "style='display:none'"; ?>>
- <input type="button" onClick="show_advanced_vlanprio()" value="<?=gettext("Advanced"); ?>"></input> - <?=gettext("Show advanced option");?></a>
+ <input type="button" onclick="show_advanced_vlanprio()" value="<?=gettext("Advanced"); ?>" /> - <?=gettext("Show advanced option");?>
</div>
<div id="showvlanprioadv" <?php if (empty($pconfig['vlanprio'])) echo "style='display:none'"; ?>>
<?php $vlanprio = array("none", "be", "bk", "ee", "ca", "vi", "vo", "ic", "nc"); ?>
@@ -1290,21 +1315,33 @@ $i--): ?>
$opts = "";
foreach($vlanprio as $vprio) {
if ($vprio == $pconfig['vlanprio'])
- $selected = " SELECTED";
+ $selected = " selected=\"selected\"";
else
$selected = "";
if ($vprio == "none")
- $opts .= "<option value=\"\" {$vprio}>{$vprio}</option>\n";
+ $opts .= "<option value=\"\">{$vprio}</option>\n";
else
$opts .= "<option value=\"{$vprio}\" {$selected}>" . strtoupper($vprio) . "</option>\n";
}
+
+ $optsset = "";
+ foreach($vlanprio as $vprioset) {
+ if ($vprioset == $pconfig['vlanprioset'])
+ $selected = " selected=\"selected\"";
+ else
+ $selected = "";
+ if ($vprioset == "none")
+ $optsset .= "<option value=\"\">{$vprioset}</option>\n";
+ else
+ $optsset .= "<option value=\"{$vprioset}\" {$selected}>" . strtoupper($vprioset) . "</option>\n";
+ }
?>
<select name='vlanprio'>
<?php echo $opts; ?>
</select>
<p><?=gettext("Choose 802.1p priority to match on");?></p>
<select name='vlanprioset'>
- <?php echo $opts; ?>
+ <?php echo $optsset; ?>
</select>
<p><?=gettext("Choose 802.1p priority to apply");?></p>
</div>
@@ -1325,14 +1362,14 @@ $i--): ?>
<td width="22%" valign="top" class="vncell"><?=gettext("Schedule");?></td>
<td width="78%" class="vtable">
<div id="showadvschedulebox" <?php if (!empty($pconfig['sched'])) echo "style='display:none'"; ?>>
- <input type="button" onClick="show_advanced_schedule()" value="<?=gettext("Advanced"); ?>"></input> - <?=gettext("Show advanced option");?></a>
+ <input type="button" onclick="show_advanced_schedule()" value="<?=gettext("Advanced"); ?>" /> - <?=gettext("Show advanced option");?>
</div>
<div id="showscheduleadv" <?php if (empty($pconfig['sched'])) echo "style='display:none'"; ?>>
<select name='sched'>
<?php
foreach($schedules as $schedule) {
if($schedule == $pconfig['sched']) {
- $selected = " SELECTED";
+ $selected = " selected=\"selected\"";
} else {
$selected = "";
}
@@ -1352,7 +1389,7 @@ $i--): ?>
<td width="22%" valign="top" class="vncell"><?=gettext("Gateway");?></td>
<td width="78%" class="vtable">
<div id="showadvgatewaybox" <?php if (!empty($pconfig['gateway'])) echo "style='display:none'"; ?>>
- <input type="button" onClick="show_advanced_gateway()" value="<?=gettext("Advanced"); ?>"></input> - <?=gettext("Show advanced option");?></a>
+ <input type="button" onclick="show_advanced_gateway()" value="<?=gettext("Advanced"); ?>" /> - <?=gettext("Show advanced option");?>
</div>
<div id="showgatewayadv" <?php if (empty($pconfig['gateway'])) echo "style='display:none'"; ?>>
<select name='gateway'>
@@ -1364,14 +1401,14 @@ $i--): ?>
foreach($gateways as $gwname => $gw) {
if(($pconfig['ipprotocol'] == "inet46"))
continue;
- if(($pconfig['ipprotocol'] == "inet6") && !is_ipaddrv6($gw['gateway']))
+ if(($pconfig['ipprotocol'] == "inet6") && !(($gw['ipprotocol'] == "inet6") || (is_ipaddrv6($gw['gateway']))))
continue;
- if(($pconfig['ipprotocol'] == "inet") && !is_ipaddrv4($gw['gateway']))
+ if(($pconfig['ipprotocol'] == "inet") && !(($gw['ipprotocol'] == "inet") || (is_ipaddrv4($gw['gateway']))))
continue;
if($gw == "")
continue;
if($gwname == $pconfig['gateway']) {
- $selected = " SELECTED";
+ $selected = " selected=\"selected\"";
} else {
$selected = "";
}
@@ -1390,7 +1427,7 @@ $i--): ?>
if($gw_group['name'] == "")
continue;
if($pconfig['gateway'] == $gw_group['name']) {
- $selected = " SELECTED";
+ $selected = " selected=\"selected\"";
} else {
$selected = "";
}
@@ -1407,15 +1444,15 @@ $i--): ?>
<td width="22%" valign="top" class="vncell"><?=gettext("In/Out");?></td>
<td width="78%" class="vtable">
<div id="showadvinoutbox" <?php if (!empty($pconfig['dnpipe'])) echo "style='display:none'"; ?>>
- <input type="button" onClick="show_advanced_inout()" value="<?=gettext("Advanced"); ?>"></input> - <?=gettext("Show advanced option");?></a>
+ <input type="button" onclick="show_advanced_inout()" value="<?=gettext("Advanced"); ?>" /> - <?=gettext("Show advanced option");?>
</div>
<div id="showinoutadv" <?php if (empty($pconfig['dnpipe'])) echo "style='display:none'"; ?>>
<select name="dnpipe">
<?php
if (!is_array($dnqlist))
$dnqlist = array();
- echo "<option value=\"none\"";
- if (!$dnqselected) echo " SELECTED";
+ echo "<option value=\"\"";
+ if (!$dnqselected) echo " selected=\"selected\"";
echo " >none</option>";
foreach ($dnqlist as $dnq => $dnqkey) {
if($dnq == "")
@@ -1423,7 +1460,7 @@ $i--): ?>
echo "<option value=\"$dnq\"";
if ($dnq == $pconfig['dnpipe']) {
$dnqselected = 1;
- echo " SELECTED";
+ echo " selected=\"selected\"";
}
echo ">{$dnq}</option>";
}
@@ -1432,8 +1469,8 @@ $i--): ?>
<select name="pdnpipe">
<?php
$dnqselected = 0;
- echo "<option value=\"none\"";
- if (!$dnqselected) echo " SELECTED";
+ echo "<option value=\"\"";
+ if (!$dnqselected) echo " selected=\"selected\"";
echo " >none</option>";
foreach ($dnqlist as $dnq => $dnqkey) {
if($dnq == "")
@@ -1441,7 +1478,7 @@ $i--): ?>
echo "<option value=\"$dnq\"";
if ($dnq == $pconfig['pdnpipe']) {
$dnqselected = 1;
- echo " SELECTED";
+ echo " selected=\"selected\"";
}
echo ">{$dnq}</option>";
}
@@ -1457,15 +1494,15 @@ $i--): ?>
<td width="22%" valign="top" class="vncell"><?=gettext("Ackqueue/Queue");?></td>
<td width="78%" class="vtable">
<div id="showadvackqueuebox" <?php if (!empty($pconfig['defaultqueue'])) echo "style='display:none'"; ?>>
- <input type="button" onClick="show_advanced_ackqueue()" value="<?=gettext("Advanced"); ?>"></input> - <?=gettext("Show advanced option");?></a>
+ <input type="button" onclick="show_advanced_ackqueue()" value="<?=gettext("Advanced"); ?>" /> - <?=gettext("Show advanced option");?>
</div>
<div id="showackqueueadv" <?php if (empty($pconfig['defaultqueue'])) echo "style='display:none'"; ?>>
<select name="ackqueue">
<?php
if (!is_array($qlist))
$qlist = array();
- echo "<option value=\"none\"";
- if (!$qselected) echo " SELECTED";
+ echo "<option value=\"\"";
+ if (!$qselected) echo " selected=\"selected\"";
echo " >none</option>";
foreach ($qlist as $q => $qkey) {
if($q == "")
@@ -1473,7 +1510,7 @@ $i--): ?>
echo "<option value=\"$q\"";
if ($q == $pconfig['ackqueue']) {
$qselected = 1;
- echo " SELECTED";
+ echo " selected=\"selected\"";
}
if (isset($ifdisp[$q]))
echo ">{$ifdisp[$q]}</option>";
@@ -1485,8 +1522,8 @@ $i--): ?>
<select name="defaultqueue">
<?php
$qselected = 0;
- echo "<option value=\"none\"";
- if (!$qselected) echo " SELECTED";
+ echo "<option value=\"\"";
+ if (!$qselected) echo " selected=\"selected\"";
echo " >none</option>";
foreach ($qlist as $q => $qkey) {
if($q == "")
@@ -1494,7 +1531,7 @@ $i--): ?>
echo "<option value=\"$q\"";
if ($q == $pconfig['defaultqueue']) {
$qselected = 1;
- echo " SELECTED";
+ echo " selected=\"selected\"";
}
if (isset($ifdisp[$q]))
echo ">{$ifdisp[$q]}</option>";
@@ -1505,25 +1542,26 @@ $i--): ?>
</select>
<br />
<span class="vexpl"><?=gettext("Choose the Acknowledge Queue only if you have selected Queue.");?></span>
+ </div>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Layer7");?></td>
<td width="78%" class="vtable">
<div id="showadvlayer7box" <?php if (!empty($pconfig['l7container'])) echo "style='display:none'"; ?>>
- <input type="button" onClick="show_advanced_layer7()" value="<?=gettext("Advanced"); ?>"></input> - <?=gettext("Show advanced option");?></a>
+ <input type="button" onclick="show_advanced_layer7()" value="<?=gettext("Advanced"); ?>" /> - <?=gettext("Show advanced option");?>
</div>
<div id="showlayer7adv" <?php if (empty($pconfig['l7container'])) echo "style='display:none'"; ?>>
<select name="l7container">
<?php
if (!is_array($l7clist))
$l7clist = array();
- echo "<option value=\"none\"";
+ echo "<option value=\"\"";
echo " >none</option>";
foreach ($l7clist as $l7ckey) {
echo "<option value=\"{$l7ckey}\"";
if ($l7ckey == $pconfig['l7container']) {
- echo " SELECTED";
+ echo " selected=\"selected\"";
}
echo ">{$l7ckey}</option>";
}
@@ -1541,20 +1579,48 @@ $i--): ?>
// Allow extending of the firewall edit page and include custom input validation
pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/htmlphplate");
?>
+<?php
+$has_created_time = (isset($a_filter[$id]['created']) && is_array($a_filter[$id]['created']));
+$has_updated_time = (isset($a_filter[$id]['updated']) && is_array($a_filter[$id]['updated']));
+?>
+ <?php if ($has_created_time || $has_updated_time): ?>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("Rule Information");?></td>
+ </tr>
+ <?php if ($has_created_time): ?>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Created");?></td>
+ <td width="78%" class="vtable">
+ <?= date(gettext("n/j/y H:i:s"), $a_filter[$id]['created']['time']) ?> <?= gettext("by") ?> <strong><?= $a_filter[$id]['created']['username'] ?></strong>
+ </td>
+ </tr>
+ <?php endif; ?>
+ <?php if ($has_updated_time): ?>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Updated");?></td>
+ <td width="78%" class="vtable">
+ <?= date(gettext("n/j/y H:i:s"), $a_filter[$id]['updated']['time']) ?> <?= gettext("by") ?> <strong><?= $a_filter[$id]['updated']['username'] ?></strong>
+ </td>
+ </tr>
+ <?php endif; ?>
+ <?php endif; ?>
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
- &nbsp;<br>&nbsp;
- <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>"> <input type="button" class="formbtn" value="<?=gettext("Cancel"); ?>" onclick="history.back()">
+ &nbsp;<br/>&nbsp;
+ <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>" /> <input type="button" class="formbtn" value="<?=gettext("Cancel"); ?>" onclick="history.back()" />
<?php if (isset($id) && $a_filter[$id]): ?>
- <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>">
+ <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>" />
<?php endif; ?>
- <input name="after" type="hidden" value="<?=htmlspecialchars($after);?>">
+ <input name="after" type="hidden" value="<?=htmlspecialchars($after);?>" />
</td>
</tr>
</table>
</form>
-<script language="JavaScript">
+<script type="text/javascript">
//<![CDATA[
ext_change();
typesel_change();
diff --git a/usr/local/www/firewall_schedule.php b/usr/local/www/firewall_schedule.php
index c6c6961..850eb7c 100644
--- a/usr/local/www/firewall_schedule.php
+++ b/usr/local/www/firewall_schedule.php
@@ -91,16 +91,16 @@ include("head.inc");
<?php include("fbegin.inc"); ?>
<?php if ($savemsg) print_info_box($savemsg); ?>
<form action="firewall_schedule.php" method="post">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="firewall schedule">
<tr>
<td width="25%" class="listhdrr"><?=gettext("Name");?></td>
<td width="35%" class="listhdrr"><?=gettext("Time Range(s)");?></td>
<td width="35%" class="listhdr"><?=gettext("Description");?></td>
<td width="5%" class="list sort_ignore">
- <table border="0" cellspacing="0" cellpadding="1">
+ <table border="0" cellspacing="0" cellpadding="1" summary="add">
<tr>
<td width="17"></td>
- <td valign="middle"><a href="firewall_schedule_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" title="<?=gettext("add a new schedule");?>" alt="" /></a></td>
+ <td valign="middle"><a href="firewall_schedule_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" title="<?=gettext("add a new schedule");?>" alt="add" /></a></td>
</tr>
</table>
</td>
@@ -112,12 +112,12 @@ include("head.inc");
<?php
$schedstatus = filter_get_time_based_rule_status($schedule);
if ($schedstatus) { ?>
- &nbsp;<img src="./themes/<?= $g['theme']; ?>/images/icons/icon_frmfld_time.png" title="<?=gettext("Schedule is currently active");?>" width="17" height="17" border="0">
+ &nbsp;<img src="./themes/<?= $g['theme']; ?>/images/icons/icon_frmfld_time.png" title="<?=gettext("Schedule is currently active");?>" width="17" height="17" border="0" alt="schedule" />
<?php } ?>
</td>
<td class="listlr" ondblclick="document.location='firewall_schedule_edit.php?id=<?=$i;?>';">
- <table width="98%" border="0" cellpadding="0" cellspacing="0">
+ <table width="98%" border="0" cellpadding="0" cellspacing="0" summary="schedule">
<?php
foreach($schedule['timerange'] as $timerange) {
@@ -207,18 +207,18 @@ include("head.inc");
$timeFriendly = $starttime . "-" . $stoptime;
$description = $timerange['rangedescr'];
- ?><tr><td><?=$dayFriendly;?></td><td><?=$timeFriendly;?></td><td><?=$description;?></td><tr/><?php
+ ?><tr><td><?=$dayFriendly;?></td><td><?=$timeFriendly;?></td><td><?=$description;?></td></tr><?php
}
}//end for?></table>
</td>
<td class="listbg" ondblclick="document.location='firewall_schedule_edit.php?id=<?=$i;?>';">
<?=htmlspecialchars($schedule['descr']);?>&nbsp;
</td>
- <td valign="middle" nowrap class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ <td valign="middle" class="list nowrap">
+ <table border="0" cellspacing="0" cellpadding="1" summary="buttons">
<tr>
- <td valign="middle"><a href="firewall_schedule_edit.php?id=<?=$i;?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0" title="<?=gettext("edit alias");?>"></a></td>
- <td><a href="firewall_schedule.php?act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext('Do you really want to delete this schedule?');?>')"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" title="<?=gettext("delete alias");?>"></a></td>
+ <td valign="middle"><a href="firewall_schedule_edit.php?id=<?=$i;?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0" title="<?=gettext("edit alias");?>" alt="edit" /></a></td>
+ <td><a href="firewall_schedule.php?act=del&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext('Do you really want to delete this schedule?');?>')"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" title="<?=gettext("delete alias");?>" alt="delete" /></a></td>
</tr>
</table>
</td>
@@ -227,23 +227,21 @@ include("head.inc");
<tr>
<td class="list" colspan="3"></td>
<td class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ <table border="0" cellspacing="0" cellpadding="1" summary="add">
<tr>
<td width="17"></td>
- <td valign="middle"><a href="firewall_schedule_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" title="<?=gettext("add a new schedule");?>" alt="" /></a></td>
+ <td valign="middle"><a href="firewall_schedule_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" title="<?=gettext("add a new schedule");?>" alt="add" /></a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="tabcont" colspan="3">
- <p><span class="vexpl"><span class="red"><strong><?=gettext("Note:");?><br></strong></span><?=gettext("Schedules act as placeholders for time ranges to be used in Firewall Rules.");?></span></p>
+ <p><span class="vexpl"><span class="red"><strong><?=gettext("Note:");?><br/></strong></span><?=gettext("Schedules act as placeholders for time ranges to be used in Firewall Rules.");?></span></p>
</td>
</tr>
</table>
-
</form>
-
<?php include("fend.inc"); ?>
</body>
</html>
diff --git a/usr/local/www/firewall_schedule_edit.php b/usr/local/www/firewall_schedule_edit.php
index 8e81d1b..7e50f56 100644
--- a/usr/local/www/firewall_schedule_edit.php
+++ b/usr/local/www/firewall_schedule_edit.php
@@ -209,7 +209,7 @@ include("head.inc");
/* using some of the $pfSenseHead function calls */
$jscriptstr = <<<EOD
<script type="text/javascript">
-
+//<![CDATA[
var daysSelected = "";
var month_array = ['January','February','March','April','May','June','July','August','September','October','November','December'];
var day_array = ['Mon','Tues','Wed','Thur','Fri','Sat','Sun'];
@@ -234,7 +234,7 @@ function repeatExistingDays(){
tempstr = 'w' + week + 'p' + daypos;
daycell = eval('document.getElementById(tempstr)');
if (daydone == "-1"){
- if (daycell.style.backgroundColor == "lightcoral")
+ if (daycell.style.backgroundColor == "#F08080") // lightcoral
daytogglerepeating(week,daypos,true);
else
daytogglerepeating(week,daypos,false);
@@ -257,11 +257,11 @@ function daytogglerepeating(week,daypos,bExists){
if (daycell != null)
{
if (bExists){
- daycell.style.backgroundColor = "WHITE";
+ daycell.style.backgroundColor = "#FFFFFF"; // white
}
else
{
- daycell.style.backgroundColor = "lightcoral";
+ daycell.style.backgroundColor = "#F08080"; // lightcoral
}
if (dayoriginalpos != "-1")
@@ -302,12 +302,12 @@ function daytoggle(id) {
var daycell = document.getElementById(idmod);
if (daycell != null){
- if (daycell.style.backgroundColor == "RED"){
- daycell.style.backgroundColor = "WHITE";
+ if (daycell.style.backgroundColor == "#FF0000"){ // red
+ daycell.style.backgroundColor = "#FFFFFF"; // white
str = id + ",";
daysSelected = daysSelected.replace(str, "");
}
- else if (daycell.style.backgroundColor == "lightcoral")
+ else if (daycell.style.backgroundColor == "#F08080") // lightcoral
{
daytogglerepeating(week,daypos,true);
}
@@ -315,11 +315,11 @@ function daytoggle(id) {
{
if (!runrepeat)
{
- daycell.style.backgroundColor = "RED";
+ daycell.style.backgroundColor = "#FF0000"; // red
}
else
{
- daycell.style.backgroundColor = "lightcoral";
+ daycell.style.backgroundColor = "#F08080"; // lightcoral
daytogglerepeating(week,daypos,false);
}
daysSelected += id + ",";
@@ -609,15 +609,15 @@ function insertElements(tempFriendlyTime, starttimehour, starttimemin, stoptimeh
tr.appendChild(td);
td = d.createElement("td");
- td.innerHTML="<input type='text' readonly class='vexpl' name='starttime" + schCounter + "' id='starttime" + schCounter + "' style=' word-wrap:break-word; width:100%; border:0px solid;' value='" + starttimehour + ":" + starttimemin + "'>";
+ td.innerHTML="<input type='text' readonly class='vexpl' name='starttime" + schCounter + "' id='starttime" + schCounter + "' style=' word-wrap:break-word; width:100%; border:0px solid;' value='" + starttimehour + ":" + starttimemin + "' />";
tr.appendChild(td);
td = d.createElement("td");
- td.innerHTML="<input type='text' readonly class='vexpl' name='stoptime" + schCounter + "' id='stoptime" + schCounter + "' style=' word-wrap:break-word; width:100%; border:0px solid;' value='" + stoptimehour + ":" + stoptimemin + "'>";
+ td.innerHTML="<input type='text' readonly class='vexpl' name='stoptime" + schCounter + "' id='stoptime" + schCounter + "' style=' word-wrap:break-word; width:100%; border:0px solid;' value='" + stoptimehour + ":" + stoptimemin + "' />";
tr.appendChild(td);
td = d.createElement("td");
- td.innerHTML="<input type='text' readonly class='vexpl' name='timedescr" + schCounter + "' id='timedescr" + schCounter + "' style=' word-wrap:break-word; width:100%; border:0px solid;' value='" + tempdescr + "'>";
+ td.innerHTML="<input type='text' readonly class='vexpl' name='timedescr" + schCounter + "' id='timedescr" + schCounter + "' style=' word-wrap:break-word; width:100%; border:0px solid;' value='" + tempdescr + "' />";
tr.appendChild(td);
td = d.createElement("td");
@@ -629,7 +629,7 @@ function insertElements(tempFriendlyTime, starttimehour, starttimemin, stoptimeh
tr.appendChild(td);
td = d.createElement("td");
- td.innerHTML="<input type='hidden' id='schedule" + schCounter + "' name='schedule" + schCounter + "' value='" + tempID + "'>";
+ td.innerHTML="<input type='hidden' id='schedule" + schCounter + "' name='schedule" + schCounter + "' value='" + tempID + "' />";
tr.appendChild(td);
tbody.appendChild(tr);
@@ -654,7 +654,7 @@ function clearCalendar(){
tempstr = 'w' + j + 'p' + k;
daycell = eval('document.getElementById(tempstr)');
if (daycell != null){
- daycell.style.backgroundColor = "WHITE";
+ daycell.style.backgroundColor = "#FFFFFF"; // white
}
}
}
@@ -751,7 +751,7 @@ function removeRow(el) {
}
}
}
-
+//]]>
</script>
EOD;
?>
@@ -781,7 +781,7 @@ EOD;
<span class="vexpl"><?=gettext("NOTE: This schedule is in use so the name may not be modified!");?></span>
</p>
<?php else: ?>
- <input name="name" type="text" id="name" size="40" maxlength="40" class="formfld unknown" value="<?=htmlspecialchars($pconfig['name']);?>"><br>
+ <input name="name" type="text" id="name" size="40" maxlength="40" class="formfld unknown" value="<?=htmlspecialchars($pconfig['name']);?>" /><br/>
<span class="vexpl">
<?=gettext("The name of the alias may only consist of the characters a-z, A-Z and 0-9");?>
</span>
@@ -790,15 +790,15 @@ EOD;
</tr>
<tr>
<td width="15%" valign="top" class="vncell"><?=gettext("Description");?></td>
- <td width="85%" class="vtable"><input name="descr" type="text" id="descr" size="40" maxlength="40" class="formfld unknown" value="<?=htmlspecialchars($pconfig['descr']);?>"><br>
+ <td width="85%" class="vtable"><input name="descr" type="text" id="descr" size="40" maxlength="40" class="formfld unknown" value="<?=htmlspecialchars($pconfig['descr']);?>" /><br/>
<span class="vexpl">
<?=gettext("You may enter a description here for your reference (not parsed).");?>
</span>
</td>
</tr>
- <tr>
- </tr>
+ <!-- tr>
+ </tr -->
<tr>
<td width="15%" valign="top" class="vncellreq"><?=gettext("Month");?></td>
<td width="85%" class="vtable">
@@ -820,7 +820,7 @@ EOD;
$monthcounter++;
}
} ?>
- </select><br><br>
+ </select><br/><br/>
<?php
$firstmonth = TRUE;
$monthcounter = date("n");
@@ -837,19 +837,19 @@ EOD;
$lasttr = FALSE;
$positioncounter = 1;//7 for Sun, 1 for Mon, 2 for Tues, etc
?>
- <div id="<?php echo date("F y",mktime(0, 0, 0, date($monthcounter), 1, date($yearcounter)));?>" z-index:-1000; style="position:relative; display:<?php if($firstmonth)echo "block";else echo "none";?>">
- <TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1 id="calTable" class="tabcont">
- <TR><TD COLSPAN="7" ALIGN=center class="listbg"><B><?php echo date("F Y", mktime(0, 0, 0, date($monthcounter), 1, date($yearcounter)));?></B></TD>
- </TR>
- <TR>
- <TD ALIGN=center class="listhdrr" style="cursor: pointer;" onClick="daytoggle('w1p1');"><u><b><?=gettext("Mon");?></b></u></TD>
- <TD ALIGN=center class="listhdrr" style="cursor: pointer;" onClick="daytoggle('w1p2');"><u><b><?=gettext("Tue");?></b></u></TD>
- <TD ALIGN=center class="listhdrr" style="cursor: pointer;" onClick="daytoggle('w1p3');"><u><b><?=gettext("Wed");?></b></u></TD>
- <TD ALIGN=center class="listhdrr" style="cursor: pointer;" onClick="daytoggle('w1p4');"><u><b><?=gettext("Thu");?></b></u></TD>
- <TD ALIGN=center class="listhdrr" style="cursor: pointer;" onClick="daytoggle('w1p5');"><u><b><?=gettext("Fri");?></b></u></TD>
- <TD ALIGN=center class="listhdrr" style="cursor: pointer;" onClick="daytoggle('w1p6');"><u><b><?=gettext("Sat");?></b></u></TD>
- <TD ALIGN=center class="listhdrr" style="cursor: pointer;" onClick="daytoggle('w1p7');"><u><b><?=gettext("Sun");?></b></u></TD>
- </TR>
+ <div id="<?php echo date("F y",mktime(0, 0, 0, date($monthcounter), 1, date($yearcounter)));?>" style=" position:relative; display:<?php if($firstmonth)echo "block";else echo "none";?>">
+ <table border="1" cellspacing="1" cellpadding="1" id="calTable" class="tabcont">
+ <tr><td colspan="7" align="center" class="listbg"><b><?php echo date("F Y", mktime(0, 0, 0, date($monthcounter), 1, date($yearcounter)));?></b></td>
+ </tr>
+ <tr>
+ <td align="center" class="listhdrr" style="cursor: pointer;" onclick="daytoggle('w1p1');"><u><b><?=gettext("Mon");?></b></u></td>
+ <td align="center" class="listhdrr" style="cursor: pointer;" onclick="daytoggle('w1p2');"><u><b><?=gettext("Tue");?></b></u></td>
+ <td align="center" class="listhdrr" style="cursor: pointer;" onclick="daytoggle('w1p3');"><u><b><?=gettext("Wed");?></b></u></td>
+ <td align="center" class="listhdrr" style="cursor: pointer;" onclick="daytoggle('w1p4');"><u><b><?=gettext("Thu");?></b></u></td>
+ <td align="center" class="listhdrr" style="cursor: pointer;" onclick="daytoggle('w1p5');"><u><b><?=gettext("Fri");?></b></u></td>
+ <td align="center" class="listhdrr" style="cursor: pointer;" onclick="daytoggle('w1p6');"><u><b><?=gettext("Sat");?></b></u></td>
+ <td align="center" class="listhdrr" style="cursor: pointer;" onclick="daytoggle('w1p7');"><u><b><?=gettext("Sun");?></b></u></td>
+ </tr>
<?php
$firstmonth = FALSE;
while ($daycounter<=$numberofdays){
@@ -860,21 +860,21 @@ EOD;
echo "<tr>";
}
if ($firstdayofmonth == $positioncounter){?>
- <TD ALIGN=center style="cursor: pointer;" class="listr" id="w<?=$weekcounter;?>p<?=$positioncounter;?>" onClick="daytoggle('w<?=$weekcounter;?>p<?=$positioncounter;?>-m<?=$monthcounter;?>d<?=$daycounter;?>');">
+ <td align="center" style="cursor: pointer;" class="listr" id="w<?=$weekcounter;?>p<?=$positioncounter;?>" onclick="daytoggle('w<?=$weekcounter;?>p<?=$positioncounter;?>-m<?=$monthcounter;?>d<?=$daycounter;?>');">
<?php echo $daycounter;
$daycounter++;
$firstdayprinted = TRUE;
echo "</td>";
}
elseif ($firstdayprinted == TRUE && $daycounter <= $numberofdays){?>
- <TD ALIGN=center style="cursor: pointer;" class="listr" id="w<?=$weekcounter;?>p<?=$positioncounter;?>" onClick="daytoggle('w<?=$weekcounter;?>p<?=$positioncounter;?>-m<?=$monthcounter;?>d<?=$daycounter;?>');">
+ <td align="center" style="cursor: pointer;" class="listr" id="w<?=$weekcounter;?>p<?=$positioncounter;?>" onclick="daytoggle('w<?=$weekcounter;?>p<?=$positioncounter;?>-m<?=$monthcounter;?>d<?=$daycounter;?>');">
<?php echo $daycounter;
$daycounter++;
echo "</td>";
}
else
{
- echo "<td align=center class=\"listr\"></td>";
+ echo "<td align=\"center\" class=\"listr\"></td>";
}
if ($positioncounter ==7){
@@ -886,7 +886,7 @@ EOD;
}
}//end while loop?>
- </TABLE>
+ </table>
</div>
<?php
@@ -908,7 +908,7 @@ EOD;
<tr>
<td width="15%" valign="top" class="vncellreq"><?=gettext("Time");?></td>
<td width="85%" class="vtable">
- <table cellspacing=2 class="tabcont">
+ <table cellspacing="2" class="tabcont">
<tr>
<td class="listhdrr" align="center"><?=gettext("Start Time");?></td><td></td><td class="listhdrr" align="center"><?=gettext("Stop Time");?></td>
</tr>
@@ -939,7 +939,7 @@ EOD;
for ($i=0; $i<24; $i++)
{
if ($i==23)
- $selected = "SELECTED";
+ $selected = "selected=\"selected\"";
else
$selected = "";
@@ -954,17 +954,17 @@ EOD;
<option value="15">15</option>
<option value="30">30</option>
<option value="45">45</option>
- <option value="59" SELECTED>59</option>
+ <option value="59" selected="selected">59</option>
</select>&nbsp;<?=gettext("Min");?>
</td>
</tr>
- </table><br>
+ </table><br/>
<?=gettext("Select the time range for the day(s) selected on the Month(s) above. A full day is 0:00-23:59.")?>
</td>
</tr>
<tr>
<td width="15%" valign="top" class="vncell"><?=gettext("Time Range Description")?></td>
- <td width="85%" class="vtable"><input name="timerangedescr" type="text" class="formfld unknown" id="timerangedescr" size="40" maxlength="40"><br>
+ <td width="85%" class="vtable"><input name="timerangedescr" type="text" class="formfld unknown" id="timerangedescr" size="40" maxlength="40" /><br/>
<span class="vexpl">
<?=gettext("You may enter a description here for your reference (not parsed).")?>
</span>
@@ -973,8 +973,8 @@ EOD;
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
- <input type="button" value="<?=gettext("Add Time");?>" class="formbtn" onclick="javascript:processEntries();">&nbsp;&nbsp;&nbsp;
- <input type="button" value="<?=gettext("Clear Selection");?>" class="formbtn" onclick="javascript:clearCalendar(); clearTime(); clearDescr();">
+ <input type="button" value="<?=gettext("Add Time");?>" class="formbtn" onclick="javascript:processEntries();" />&nbsp;&nbsp;&nbsp;
+ <input type="button" value="<?=gettext("Clear Selection");?>" class="formbtn" onclick="javascript:clearCalendar(); clearTime(); clearDescr();" />
</td>
</tr>
<tr>
@@ -991,10 +991,10 @@ EOD;
<table id="scheduletable">
<tbody>
<tr>
- <TD ALIGN="center" class="listbg" width="35%"><?=gettext("Day(s)");?></td>
- <TD ALIGN="center" class="listbg" width="12%"><?=gettext("Start Time");?></td>
- <TD ALIGN="center" class="listbg" width="11%"><?=gettext("Stop Time");?></td>
- <TD ALIGN="center" class="listbg" width="42%"><?=gettext("Description");?></td>
+ <td align="center" class="listbg" width="35%"><?=gettext("Day(s)");?></td>
+ <td align="center" class="listbg" width="12%"><?=gettext("Start Time");?></td>
+ <td align="center" class="listbg" width="11%"><?=gettext("Stop Time");?></td>
+ <td align="center" class="listbg" width="42%"><?=gettext("Description");?></td>
</tr>
<?php
if ($getSchedule){
@@ -1121,13 +1121,13 @@ EOD;
<span class="vexpl"><?php echo $tempFriendlyTime; ?><span>
</td>
<td>
- <input type='text' readonly class='vexpl' name='starttime<?php echo $counter; ?>' id='starttime<?php echo $counter; ?>' style=' word-wrap:break-word; width:100%; border:0px solid;' value='<?php echo $starttime; ?>'>
+ <input type='text' readonly class='vexpl' name='starttime<?php echo $counter; ?>' id='starttime<?php echo $counter; ?>' style=' word-wrap:break-word; width:100%; border:0px solid;' value='<?php echo $starttime; ?>' />
</td>
<td>
- <input type='text' readonly class='vexpl' name='stoptime<?php echo $counter; ?>' id='stoptime<?php echo $counter; ?>' style=' word-wrap:break-word; width:100%; border:0px solid;' value='<?php echo $stoptime; ?>'>
+ <input type='text' readonly class='vexpl' name='stoptime<?php echo $counter; ?>' id='stoptime<?php echo $counter; ?>' style=' word-wrap:break-word; width:100%; border:0px solid;' value='<?php echo $stoptime; ?>' />
</td>
<td>
- <input type='text' readonly class='vexpl' name='timedescr<?php echo $counter; ?>' id='timedescr<?php echo $counter; ?>' style=' word-wrap:break-word; width:100%; border:0px solid;' value='<?php echo $timedescr; ?>'>
+ <input type='text' readonly class='vexpl' name='timedescr<?php echo $counter; ?>' id='timedescr<?php echo $counter; ?>' style=' word-wrap:break-word; width:100%; border:0px solid;' value='<?php echo $timedescr; ?>' />
</td>
<td>
<a onclick='editRow("<?php echo $tempTime; ?>",this); return false;' href='#'><img border='0' src='/themes/<?php echo $g['theme']; ?>/images/icons/icon_e.gif' /></a>
@@ -1136,7 +1136,7 @@ EOD;
<a onclick='removeRow(this); return false;' href='#'><img border='0' src='/themes/<?php echo $g['theme']; ?>/images/icons/icon_x.gif' /></a>
</td>
<td>
- <input type='hidden' id='schedule<?php echo $counter; ?>' name='schedule<?php echo $counter; ?>' value='<?php echo $tempID; ?>'>
+ <input type='hidden' id='schedule<?php echo $counter; ?>' name='schedule<?php echo $counter; ?>' value='<?php echo $tempID; ?>' />
</td>
</tr>
<?php
@@ -1145,7 +1145,7 @@ EOD;
} // end foreach
}//end if
?>
- </tdody>
+ </tbody>
</table>
</td>
</tr>
diff --git a/usr/local/www/firewall_shaper.php b/usr/local/www/firewall_shaper.php
index 6ac8538..a43791e 100755
--- a/usr/local/www/firewall_shaper.php
+++ b/usr/local/www/firewall_shaper.php
@@ -163,7 +163,7 @@ if ($_GET) {
$q->SetInterface($interface);
$output_form .= $q->build_form();
$output_form .= "<input type=\"hidden\" name=\"parentqueue\" id=\"parentqueue\"";
- $output_form .= " value=\"".$qname."\">";
+ $output_form .= " value=\"".$qname."\" />";
$newjavascript = $q->build_javascript();
unset($q);
$newqueue = true;
@@ -194,7 +194,7 @@ if ($_GET) {
$input_errors[] = gettext("Queue not found!");
break;
default:
- $output_form .= "<p class=\"pgtitle\">" . $default_shaper_msg."</p>";
+ $output_form .= $default_shaper_msg;
$dontshow = true;
break;
}
@@ -309,12 +309,12 @@ if ($_GET) {
read_altq_config();
$output_form .= $queue->build_form();
} else {
- $output_form .= "<p class=\"pgtitle\">" . $default_shaper_msg."</p>";
+ $output_form .= $default_shaper_msg;
$dontshow = true;
}
mwexec("killall qstats");
} else {
- $output_form .= "<p class=\"pgtitle\">" . $default_shaper_msg."</p>";
+ $output_form .= $default_shaper_msg;
$dontshow = true;
}
@@ -343,50 +343,51 @@ $tree .= "</ul>";
if (!$dontshow || $newqueue) {
-$output_form .= "<tr><td width=\"22%\" valign=\"center\" class=\"vncellreq\">";
+$output_form .= "<tr><td width=\"22%\" valign=\"middle\" class=\"vncellreq\">";
$output_form .= "<br />" . gettext("Queue Actions") . "<br />";
-$output_form .= "</td><td valign=\"center\" class=\"vncellreq\" width=\"78%\"><br />";
+$output_form .= "</td><td valign=\"middle\" class=\"vncellreq\" width=\"78%\"><br />";
$output_form .= "<input type=\"submit\" name=\"Submit\" value=\"" . gettext("Save") . "\" class=\"formbtn\" />";
if ($can_add || $addnewaltq) {
$output_form .= "<a href=\"firewall_shaper.php?interface=";
$output_form .= $interface;
if ($queue) {
- $output_form .= "&queue=" . $queue->GetQname();
+ $output_form .= "&amp;queue=" . $queue->GetQname();
}
- $output_form .= "&action=add\">";
- $output_form .= "<input type=\"button\" class=\"formbtn\" name=\"add\" value=\"" . gettext("Add new queue") . "\">";
+ $output_form .= "&amp;action=add\">";
+ $output_form .= "<input type=\"button\" class=\"formbtn\" name=\"add\" value=\"" . gettext("Add new queue") . "\" />";
$output_form .= "</a>";
$output_form .= "<a href=\"firewall_shaper.php?interface=";
- $output_form .= $interface . "&queue=";
+ $output_form .= $interface . "&amp;queue=";
if ($queue) {
- $output_form .= "&queue=" . $queue->GetQname();
+ $output_form .= "&amp;queue=" . $queue->GetQname();
}
- $output_form .= "&action=delete\">";
+ $output_form .= "&amp;action=delete\">";
$output_form .= "<input type=\"button\" class=\"formbtn\" name=\"delete\"";
if ($queue)
- $output_form .= " value=\"" . gettext("Delete this queue") . "\">";
+ $output_form .= " value=\"" . gettext("Delete this queue") . "\" />";
else
- $output_form .= " value=\"" . gettext("Disable shaper on interface") . "\">";
+ $output_form .= " value=\"" . gettext("Disable shaper on interface") . "\" />";
$output_form .= "</a>";
}
$output_form .= "<br /></td></tr>";
-$output_form .= "</div>";
+$output_form .= "</table>";
}
else
- $output_form .= "</div>";
+ $output_form .= "</table>";
-$output = "<div id=\"shaperarea\" style=\"position:relative\">";
+$output = "<table summary=\"output form\">";
$output .= $output_form;
//$pgtitle = "Firewall: Shaper: By Interface View";
-
+$closehead = false;
include("head.inc");
?>
-
-<body link="#0000CC" vlink="#0000CC" alink="#0000CC" >
<link rel="stylesheet" type="text/css" media="all" href="./tree/tree.css" />
<script type="text/javascript" src="./tree/tree.js"></script>
+</head>
+
+<body link="#0000CC" vlink="#0000CC" alink="#0000CC" >
<?php
if ($queue)
echo $queue->build_javascript();
@@ -401,9 +402,9 @@ include("fbegin.inc");
<?php if ($savemsg) print_info_box($savemsg); ?>
<?php if (is_subsystem_dirty('shaper')): ?><p>
-<?php print_info_box_np(gettext("The traffic shaper configuration has been changed.")."<br>".gettext("You must apply the changes in order for them to take effect."));?><br>
+<?php print_info_box_np(gettext("The traffic shaper configuration has been changed.")."<br/>".gettext("You must apply the changes in order for them to take effect."));?><br/></p>
<?php endif; ?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="traffic shaper">
<tr><td>
<?php
$tab_array = array();
@@ -418,26 +419,26 @@ include("fbegin.inc");
<tr>
<td>
<div id="mainarea">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="main area">
<?php if (count($altq_list_queues) > 0): ?>
<tr class="tabcont"><td width="25%" align="left">
<a href="firewall_shaper.php?action=resetall" >
- <input type="button" value="<?=gettext("Remove Shaper")?>" class="formbtn">
+ <input type="button" value="<?=gettext("Remove Shaper")?>" class="formbtn" />
</a>
</td><td width="75%"> </td></tr>
<?php endif; ?>
<tr>
- <td width="25%" valign="top" algin="left">
+ <td width="25%" valign="top" align="left">
<?php
echo $tree;
?>
</td>
<td width="75%" valign="top" align="center">
- <table>
- <?
+ <div id="shaperarea" style="position:relative">
+ <?php
echo $output;
?>
- </table>
+ </div>
</td></tr>
</table>
@@ -446,7 +447,6 @@ include("fbegin.inc");
</tr>
</table>
</form>
-<?php include("fend.inc");
-?>
+<?php include("fend.inc"); ?>
</body>
</html>
diff --git a/usr/local/www/firewall_shaper_layer7.php b/usr/local/www/firewall_shaper_layer7.php
index 44c659f..fe37735 100755
--- a/usr/local/www/firewall_shaper_layer7.php
+++ b/usr/local/www/firewall_shaper_layer7.php
@@ -62,8 +62,8 @@ $shortcut_section = "trafficshaper";
$output_form = "";
$default_layer7shaper_msg = "<tr><td colspan=\"4\">";
-$default_layer7shaper_msg .= "<p><span class=\"vexpl\"><span class=\"red\"><strong>" . gettext("Note") . ":<br>";
-$default_layer7shaper_msg .= "</strong></span>" . gettext("You can add new layer7 protocol patterns by simply uploading the file") . " <a href=\"diag_patterns.php\">" . gettext("here") . ".</a><br>";
+$default_layer7shaper_msg .= "<span class=\"vexpl\"><span class=\"red\"><strong>" . gettext("Note") . ":<br/>";
+$default_layer7shaper_msg .= "</strong></span>" . gettext("You can add new layer7 protocol patterns by simply uploading the file") . " <a href=\"diag_patterns.php\">" . gettext("here") . ".</a></span><br/>";
$default_layer7shaper_msg .= "</td></tr>";
@@ -114,7 +114,7 @@ if ($_GET) {
default:
echo log_error("Get default");
$show_proto_form = false;
- $output_form .= "<p class=\"pgtitle\">" . $dn_default_shaper_msg . $default_layer7shaper_msg . "</p>";
+ $output_form .= $dn_default_shaper_msg . $default_layer7shaper_msg;
break;
}
}
@@ -191,7 +191,7 @@ else if ($_POST) {
$output_form .= $container->build_form();
} else {
$show_proto_form = false;
- $output_form .= "<p class=\"pgtitle\">" . $dn_default_shaper_msg . $default_layer7shaper_msg . "</p>";
+ $output_form .= $dn_default_shaper_msg . $default_layer7shaper_msg;
}
} else if ($_POST['delete']) {
$container->delete_l7c();
@@ -208,7 +208,7 @@ else if ($_POST) {
}
else {
$show_proto_form = false;
- $output_form .= "<p class=\"pgtitle\">" . $dn_default_shaper_msg . $default_layer7shaper_msg . "</p>";
+ $output_form .= $dn_default_shaper_msg . $default_layer7shaper_msg;
}
// Builds the left tree
@@ -220,18 +220,16 @@ if (is_array($layer7_rules_list)) {
}
$tree .= "</ul>";
-$output = "<div id=\"shaperarea\" style=\"position:relative\">";
+$output = "<table summary=\"output form\">";
$output .= $output_form;
-
+$closehead = false;
include("head.inc");
?>
-
-<body link="#0000CC" vlink="#0000CC" alink="#0000CC" >
<link rel="stylesheet" type="text/css" media="all" href="./tree/tree.css" />
<script type="text/javascript" src="./tree/tree.js"></script>
-<script language="javascript">
-
+<script type="text/javascript">
+//<![CDATA[
var initial_count = new Array();
var rows_limit = 0; // Set to 0 to disable limitation
@@ -271,47 +269,47 @@ function array_limiter(a_behav) {
/* Fill the variables with available protocols, structures and behaviours */
function fillProtocol() {
- var protocol = '<select name="protocol[]" id="protocol" style="font-size:8pt">';
+ var protocol = '<select name="protocol[]" style="font-size:8pt">';
var name;
<?php foreach ($avail_protos as $key => $proto) { ?>
name = "<?= $proto; ?>";
- protocol += "<option value=" + name + ">" + name + "</option>";
+ protocol += "<option value=" + name + ">" + name + "<\/option>";
<?php } ?>
- protocol += "</select>";
+ protocol += "<\/select>";
return protocol;
}
function fillStructure() {
- var structure = '<select name="structure[]" id="structure" style="font-size:8pt" onchange="changeBehaviourValues(this.parentNode.parentNode);">';
+ var structure = '<select name="structure[]" style="font-size:8pt" onchange="changeBehaviourValues(this.parentNode.parentNode);">';
var name;
<?php foreach ($avail_structures as $key => $struct) { ?>
name = "<?= $struct; ?>";
if(name == "queue") {
- if(js_behaviours_altq != "") { structure += "<option value=" + name + ">" + name + "</option>";}
+ if(js_behaviours_altq != "") { structure += "<option value=" + name + ">" + name + "<\/option>";}
}
else {
if(name == "limiter") {
- if(js_behaviours_limiter != "") { structure += "<option value=" + name + ">" + name + "</option>";}
+ if(js_behaviours_limiter != "") { structure += "<option value=" + name + ">" + name + "<\/option>";}
}
- else structure += "<option value=" + name + ">" + name + "</option>"; //action
+ else structure += "<option value=" + name + ">" + name + "<\/option>"; //action
}
<?php } ?>
- structure += "</select>";
+ structure += "<\/select>";
return structure;
}
//Used by default to fill the values when inserting a new row.
function fillBehaviour() {
- var behaviour = '<select name="behaviour[]" id="behaviour" style="width:80px; font-size:8pt">';
+ var behaviour = '<select name="behaviour[]" style="width:80px; font-size:8pt">';
var name;
<?php foreach ($avail_behaviours_action as $key => $behav) { ?>
name = "<?= $behav; ?>";
- behaviour += "<option value=" + name + ">" + name + "</option>";
+ behaviour += "<option value=" + name + ">" + name + "<\/option>";
<?php } ?>
- behaviour += "</select>";
+ behaviour += "<\/select>";
return behaviour;
}
@@ -339,7 +337,7 @@ function changeBehaviourValues(row) {
var new_behav;
var name;
for(i=0; i<a_behav.length; i++) {
- new_behav += "<option value=" + a_behav[i] + ">" + a_behav[i] + "</option>";
+ new_behav += "<option value=" + a_behav[i] + ">" + a_behav[i] + "<\/option>";
}
document.getElementsByName("behaviour[]")[selectedRow].innerHTML = new_behav;
@@ -358,7 +356,7 @@ function addRow(table_id) {
var tFielsNum = rows_count - initial_count[table_id];
if (rows_limit!=0 && tFielsNum >= rows_limit) return false;
- var remove = '<a onclick="removeRow(\''+table_id+'\',this.parentNode.parentNode)" href="#"><img border="0" src="/themes/<?=$g['theme'];?>/images/icons/icon_x.gif" /></a>';
+ var remove = '<a onclick="removeRow(\''+table_id+'\',this.parentNode.parentNode)" href="#"><img border="0" src="/themes/<?=$g['theme'];?>/images/icons/icon_x.gif" alt="x" /><\/a>';
try {
var newRow = tbl.insertRow(rows_count);
@@ -386,11 +384,13 @@ function removeRow(tbl,row) {
alert(ex);
}
}
+//]]>
</script>
+</head>
-<?php
-include("fbegin.inc");
-?>
+<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
+
+<?php include("fbegin.inc"); ?>
<div id="inputerrors"></div>
<?php if ($input_errors) print_input_errors($input_errors); ?>
@@ -398,9 +398,9 @@ include("fbegin.inc");
<?php if ($savemsg) print_info_box($savemsg); ?>
<?php if (is_subsystem_dirty('shaper')): ?><p>
-<?php print_info_box_np(gettext("The traffic shaper configuration has been changed") . ".<br>" . gettext("You must apply the changes in order for them to take effect."));?><br>
+<?php print_info_box_np(gettext("The traffic shaper configuration has been changed") . ".<br/>" . gettext("You must apply the changes in order for them to take effect."));?><br/></p>
<?php endif; ?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="traffic shaper layer7">
<tr><td>
<?php
$tab_array = array();
@@ -415,7 +415,7 @@ include("fbegin.inc");
<tr>
<td>
<div id="mainarea">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="main area">
<?php if (count($layer7_rules_list) > 0): ?>
<tr class="tabcont"><td width="25%" align="left">
@@ -423,37 +423,37 @@ include("fbegin.inc");
<?php endif; ?>
<tr>
- <td width="25%" valign="top" algin="left">
+ <td width="25%" valign="top" align="left">
<?php
echo $tree;
?>
<br/><br/>
<a href="firewall_shaper_layer7.php?action=add">
- <img src="./themes/<?=$g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("Create new l7 rules group"); ?>" width="17" height="17" border="0"> <?=gettext("Create new l7 rules group"); ?>
+ <img src="./themes/<?=$g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("Create new l7 rules group"); ?>" width="17" height="17" border="0" alt="add" /> <?=gettext("Create new l7 rules group"); ?>
</a><br/>
</td>
<td width="75%" valign="top" align="center">
- <table>
- <?
+ <div id="shaperarea" style="position:relative">
+ <?php
echo $output;
?>
<!-- Layer 7 rules form -->
<?php if($show_proto_form): ?>
- <td width = "22%" valign = "top" class = "vncellreq">
- <div id = "addressnetworkport">
+ <tr><td width="22%" valign="top" class="vncellreq">
+ <div id="addressnetworkport">
<?=gettext("Rule(s)"); ?>
</div>
</td>
- <td width = "78%" class = "vtable">
- <table width="236" id = "maintable">
+ <td width="78%" class="vtable">
+ <table width="236" id="maintable" summary="main table">
<tbody>
<tr>
- <td colspan = "4">
- <div style = "font-size: 8pt; padding:5px; margin-top: 16px; margin-bottom: 16px; border:1px dashed #000066;"
- id = "itemhelp">
+ <td colspan="4">
+ <div style="font-size: 8pt; padding:5px; margin-top: 16px; margin-bottom: 16px; border:1px dashed #000066;"
+ id="itemhelp">
<?=gettext("Add one or more rules"); ?>
</div>
</td>
@@ -461,22 +461,22 @@ include("fbegin.inc");
<tr>
<td>
- <div style = "font-size: 8pt; padding:5px;"
- id = "onecolumn">
+ <div style="font-size: 8pt; padding:5px;"
+ id="onecolumn">
<?=gettext("Protocol"); ?>
</div>
</td>
<td>
- <div style = "font-size: 8pt; padding:5px;"
- id = "twocolumn">
+ <div style="font-size: 8pt; padding:5px;"
+ id="twocolumn">
<?=gettext("Structure"); ?>
</div>
</td>
<td>
- <div style = "font-size: 8pt; padding:5px;"
- id = "threecolumn">
+ <div style="font-size: 8pt; padding:5px;"
+ id="threecolumn">
<?=gettext("Behaviour"); ?>
</div>
</td>
@@ -488,29 +488,29 @@ include("fbegin.inc");
?>
<tr>
<td>
- <select name="protocol[]" class="formselect" id="protocol" style="font-size:8pt">
+ <select name="protocol[]" class="formselect" style="font-size:8pt">
<?php foreach($avail_protos as $proto): ?>
- <option value="<?=$proto;?>" <?php if ($proto == $l7rule->GetRProtocol()) echo "selected"; ?>><?=$proto;?></option>
+ <option value="<?=$proto;?>" <?php if ($proto == $l7rule->GetRProtocol()) echo "selected=\"selected\""; ?>><?=$proto;?></option>
<?php endforeach; ?>
</select>
</td>
<td>
- <select name="structure[]" class="formselect" id="structure" style="font-size:8pt" onchange="changeBehaviourValues(this.parentNode.parentNode);">
+ <select name="structure[]" class="formselect" style="font-size:8pt" onchange="changeBehaviourValues(this.parentNode.parentNode);">
<?php foreach($avail_structures as $struct) {
if($struct == "queue") {
if(!empty($avail_behaviours_altq)) { ?>
- <option value="<?=$struct ?>" <?php if ($struct == $l7rule->GetRStructure()) echo "selected"; ?>><?=$struct;?></option>
+ <option value="<?=$struct ?>" <?php if ($struct == $l7rule->GetRStructure()) echo "selected=\"selected\""; ?>><?=$struct;?></option>
<?php }
}
else {
if($struct == "limiter") {
if(!empty($avail_behaviours_limiter)) { ?>
- <option value="<?=$struct ?>" <?php if ($struct == $l7rule->GetRStructure()) echo "selected"; ?>><?=$struct;?></option>
+ <option value="<?=$struct ?>" <?php if ($struct == $l7rule->GetRStructure()) echo "selected=\"selected\""; ?>><?=$struct;?></option>
<?php }
}
else {
if($struct == "action") { ?>
- <option value="<?=$struct ?>" <?php if ($struct == $l7rule->GetRStructure()) echo "selected"; ?>><?=$struct;?></option>
+ <option value="<?=$struct ?>" <?php if ($struct == $l7rule->GetRStructure()) echo "selected=\"selected\""; ?>><?=$struct;?></option>
<?php }
}
}
@@ -518,28 +518,28 @@ include("fbegin.inc");
</select>
</td>
<td>
- <select name="behaviour[]" class="formselect" id="behaviour" style="width:80px; font-size:8pt">
+ <select name="behaviour[]" class="formselect" style="width:80px; font-size:8pt">
<?php if($l7rule->GetRStructure() == "action"): ?>
<?php foreach($avail_behaviours_action as $behaviour): ?>
- <option value="<?=$behaviour ?>" <?php if ($behaviour == $l7rule->GetRBehaviour()) echo "selected"; ?>><?=$behaviour;?></option>
+ <option value="<?=$behaviour ?>" <?php if ($behaviour == $l7rule->GetRBehaviour()) echo "selected=\"selected\""; ?>><?=$behaviour;?></option>
<?php endforeach; ?>
</select>
<?php endif; ?>
<?php if($l7rule->GetRStructure() == "queue"): ?>
<?php foreach($avail_behaviours_altq as $behaviour): ?>
- <option value="<?=$behaviour ?>" <?php if ($behaviour == $l7rule->GetRBehaviour()) echo "selected"; ?>><?=$behaviour;?></option>
+ <option value="<?=$behaviour ?>" <?php if ($behaviour == $l7rule->GetRBehaviour()) echo "selected=\"selected\""; ?>><?=$behaviour;?></option>
<?php endforeach; ?>
</select>
<?php endif; ?>
<?php if($l7rule->GetRStructure() == "limiter"): ?>
<?php foreach($avail_behaviours_limiter as $behaviour): ?>
- <option value="<?=$behaviour ?>" <?php if ($behaviour == $l7rule->GetRBehaviour()) echo "selected"; ?>><?=$behaviour;?></option>
+ <option value="<?=$behaviour ?>" <?php if ($behaviour == $l7rule->GetRBehaviour()) echo "selected=\"selected\""; ?>><?=$behaviour;?></option>
<?php endforeach; ?>
</select>
<?php endif; ?>
</td>
<td>
- <a onclick="removeRow('maintable',this.parentNode.parentNode); return false;" href="#"><img border="0" src="/themes/<?=$g['theme'];?>/images/icons/icon_x.gif" /></a>
+ <a onclick="removeRow('maintable',this.parentNode.parentNode); return false;" href="#"><img border="0" src="/themes/<?=$g['theme'];?>/images/icons/icon_x.gif" alt="x" /></a>
</td>
</tr>
@@ -548,38 +548,35 @@ include("fbegin.inc");
} //end if
?>
</tbody>
-
- <tfoot>
- </tfoot>
</table>
- <a onclick = "javascript:addRow('maintable'); return false;" href="#"> <img border = "0"
- src = "/themes/<?=$g['theme']; ?>/images/icons/icon_plus.gif"
- alt = "" title = "<?=gettext("add another entry"); ?>" /> </a>
+ <a onclick="javascript:addRow('maintable'); return false;" href="#"> <img border="0"
+ src="/themes/<?=$g['theme']; ?>/images/icons/icon_plus.gif"
+ alt="" title="<?=gettext("add another entry"); ?>" /> </a>
</td>
</tr>
<tr>
- <td width = "22%" valign = "top">
+ <td width="22%" valign="top">
&nbsp;
</td>
- <td width = "78%">
- <input id = "submit"
- name = "submit" type = "submit" class = "formbtn" value = "<?=gettext("Save"); ?>" />
+ <td width="78%">
+ <input id="submit" name="submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>" />
- <a href= "firewall_shaper_layer7.php">
- <input id = "cancelbutton"
- name = "cancelbutton" type = "button" class = "formbtn" value = "<?=gettext("Cancel"); ?>" /></a>
+ <a href="firewall_shaper_layer7.php">
+ <input id="cancelbutton" name="cancelbutton" type="button" class="formbtn" value="<?=gettext("Cancel"); ?>" />
<?php if($container): ?>
- <input id = "delete" type="submit" class="formbtn" name="delete" value="<?=gettext("Delete"); ?>"></a>
+ <input id="delete" type="submit" class="formbtn" name="delete" value="<?=gettext("Delete"); ?>" />
<?php endif ?>
+ </a>
</td>
</tr>
<?php endif; ?>
<!-- End of layer7 rules form -->
</table>
+ </div><!-- end of div:shape area -->
</td></tr>
</table>
@@ -589,7 +586,6 @@ include("fbegin.inc");
</table>
</form>
-<?php include("fend.inc");
-?>
+<?php include("fend.inc"); ?>
</body>
</html>
diff --git a/usr/local/www/firewall_shaper_queues.php b/usr/local/www/firewall_shaper_queues.php
index 7eadc7b..c21d7e3 100755
--- a/usr/local/www/firewall_shaper_queues.php
+++ b/usr/local/www/firewall_shaper_queues.php
@@ -59,7 +59,7 @@ if (!is_array($qlist))
$tree = "<ul class=\"tree\" >";
foreach ($qlist as $queue => $qkey) {
- $tree .= "<li><a href=\"firewall_shaper_queues.php?queue={$queue}&action=show\" >";
+ $tree .= "<li><a href=\"firewall_shaper_queues.php?queue={$queue}&amp;action=show\" >";
if (isset($shaperIFlist[$queue]))
$tree .= $shaperIFlist[$queue] . "</a></li>";
else
@@ -171,11 +171,12 @@ if ($_POST['apply']) {
$pgtitle = gettext("Firewall: Shaper: By Queues View");
$shortcut_section = "trafficshaper";
-
+$closehead = false;
include("head.inc");
?>
<link rel="stylesheet" type="text/css" media="all" href="./tree/tree.css" />
<script type="text/javascript" src="./tree/tree.js"></script>
+</head>
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc"); ?>
@@ -184,9 +185,9 @@ include("head.inc");
<form action="firewall_shaper_queues.php" method="post" name="iform" id="iform">
<?php if ($savemsg) print_info_box($savemsg); ?>
<?php if (is_subsystem_dirty('shaper')): ?><p>
-<?php print_info_box_np(gettext("The traffic shaper configuration has been changed") . ".<br>" . gettext("You must apply the changes in order for them to take effect."));?><br>
+<?php print_info_box_np(gettext("The traffic shaper configuration has been changed") . ".<br/>" . gettext("You must apply the changes in order for them to take effect."));?><br/></p>
<?php endif; ?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="traffic shaper queues">
<tr><td>
<?php
$tab_array = array();
@@ -201,29 +202,28 @@ include("head.inc");
<tr>
<td valign="top">
<div id="mainarea">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="main area">
<tr>
- <td width="30%" valign="top" algin="left">
- <? echo $tree; ?>
+ <td width="30%" valign="top" align="left">
+ <?php echo $tree; ?>
</td>
<td width="70%" valign="top" align="center">
- <?
+ <?php
if ($qname)
- echo "<pr class=\"pgtitle\">" . $qname . "</pr><br />";
- echo "<table align=\"center\" class=\"tabcont\" width=\"80%\" border=\"0\" cellpadding=\"4\" cellspacing=\"0\">";
+ echo "<p class=\"pgtitle\">" . $qname . "</p><br />";
+ echo "<table align=\"center\" class=\"tabcont\" width=\"80%\" border=\"0\" cellpadding=\"4\" cellspacing=\"0\" summary=\"output form\">";
echo $output;
+ echo "<tr><td>&nbsp;</td></tr>";
echo "</table>";
?>
</td></tr>
- </table>
+ </table><!-- table:main area -->
- </td></tr>
- </div>
+ </div><!-- div:main area -->
</td>
</tr>
</table>
</form>
-<?php include("fend.inc");
-?>
+<?php include("fend.inc"); ?>
</body>
</html>
diff --git a/usr/local/www/firewall_shaper_vinterface.php b/usr/local/www/firewall_shaper_vinterface.php
index 9893de1..7757505 100644
--- a/usr/local/www/firewall_shaper_vinterface.php
+++ b/usr/local/www/firewall_shaper_vinterface.php
@@ -112,7 +112,7 @@ if ($_GET) {
$output_form .= $queue->build_form();
} else {
$input_errors[] = sprintf(gettext("No queue with name %s was found!"),$qname);
- $output_form .= "<p class=\"pgtitle\">" . $dn_default_shaper_msg."</p>";
+ $output_form .= $dn_default_shaper_msg;
$dontshow = true;
}
break;
@@ -152,7 +152,7 @@ if ($_GET) {
$q = new dnqueue_class();
$q->SetPipe($pipe);
$output_form .= "<input type=\"hidden\" name=\"parentqueue\" id=\"parentqueue\"";
- $output_form .= " value=\"".$pipe."\">";
+ $output_form .= " value=\"".$pipe."\" />";
} else if ($addnewpipe) {
$q = new dnpipe_class();
$q->SetQname($pipe);
@@ -193,7 +193,7 @@ if ($_GET) {
$input_errors[] = gettext("Queue not found!");
break;
default:
- $output_form .= "<p class=\"pgtitle\">" . $dn_default_shaper_msg."</p>";
+ $output_form .= $dn_default_shaper_msg;
$dontshow = true;
break;
}
@@ -283,11 +283,11 @@ if ($_GET) {
read_dummynet_config();
$output_form .= $queue->build_form();
} else {
- $output_form .= "<p class=\"pgtitle\">" . $dn_default_shaper_msg."</p>";
+ $output_form .= $dn_default_shaper_msg;
$dontshow = true;
}
} else {
- $output_form .= "<p class=\"pgtitle\">" . $dn_default_shaper_msg."</p>";
+ $output_form .= $dn_default_shaper_msg;
$dontshow = true;
}
@@ -321,40 +321,39 @@ if ($can_add || $addnewaltq) {
$output_form .= "<a href=\"firewall_shaper_vinterface.php?pipe=";
$output_form .= $pipe;
if ($queue) {
- $output_form .= "&queue=" . $queue->GetQname();
+ $output_form .= "&amp;queue=" . $queue->GetQname();
}
- $output_form .= "&action=add\">";
- $output_form .= "<input type=\"button\" class=\"formbtn\" name=\"add\" value=\"" . gettext("Add new queue") ."\">";
+ $output_form .= "&amp;action=add\">";
+ $output_form .= "<input type=\"button\" class=\"formbtn\" name=\"add\" value=\"" . gettext("Add new queue") ."\" />";
$output_form .= "</a>";
}
$output_form .= "<a href=\"firewall_shaper_vinterface.php?pipe=";
$output_form .= $pipe;
if ($queue) {
- $output_form .= "&queue=" . $queue->GetQname();
+ $output_form .= "&amp;queue=" . $queue->GetQname();
}
-$output_form .= "&action=delete\">";
+$output_form .= "&amp;action=delete\">";
$output_form .= "<input type=\"button\" class=\"formbtn\" name=\"delete\"";
if ($queue)
- $output_form .= " value=\"" . gettext("Delete this queue") ."\">";
+ $output_form .= " value=\"" . gettext("Delete this queue") ."\" />";
else
- $output_form .= " value=\"" . gettext("Delete virtual interface") ."\">";
+ $output_form .= " value=\"" . gettext("Delete virtual interface") ."\" />";
$output_form .= "</a>";
$output_form .= "</td></tr>";
-$output_form .= "</div>";
+$output_form .= "</table>";
}
else
- $output_form .= "</div>";
+ $output_form .= "</table>";
-$output = "<div id=\"shaperarea\" style=\"position:relative\">";
+$output = "<table summary=\"output form\">";
$output .= $output_form;
-
+$closehead = false;
include("head.inc");
?>
-
-<body link="#0000CC" vlink="#0000CC" alink="#0000CC" >
<link rel="stylesheet" type="text/css" media="all" href="./tree/tree.css" />
<script type="text/javascript" src="./tree/tree.js"></script>
<script type="text/javascript">
+//<![CDATA[
function show_source_port_range() {
document.getElementById("sprtable").style.display = '';
document.getElementById("sprtable1").style.display = '';
@@ -363,7 +362,11 @@ function show_source_port_range() {
document.getElementById("sprtable4").style.display = 'none';
document.getElementById("showadvancedboxspr").innerHTML='';
}
+//]]>
</script>
+</head>
+
+<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php
if ($queue)
@@ -380,9 +383,9 @@ include("fbegin.inc");
<?php if ($savemsg) print_info_box($savemsg); ?>
<?php if (is_subsystem_dirty('shaper')): ?><p>
-<?php print_info_box_np(gettext("The traffic shaper configuration has been changed.")."<br>".gettext("You must apply the changes in order for them to take effect."));?><br>
+<?php print_info_box_np(gettext("The traffic shaper configuration has been changed.")."<br/>".gettext("You must apply the changes in order for them to take effect."));?><br/></p>
<?php endif; ?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="traffic shaper limiter">
<tr><td>
<?php
$tab_array = array();
@@ -397,27 +400,27 @@ include("fbegin.inc");
<tr>
<td>
<div id="mainarea">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="main area">
<?php if (count($dummynet_pipe_list) > 0): ?>
<tr class="tabcont"><td width="25%" align="left">
</td><td width="75%"> </td></tr>
<?php endif; ?>
<tr>
- <td width="25%" valign="top" algin="left">
+ <td width="25%" valign="top" align="left">
<?php
echo $tree;
?>
<br/><br/>
- <a href="firewall_shaper_vinterface.php?pipe=new&action=add">
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("Create new limiter");?>" width="17" height="17" border="0"><?=gettext("Create new limiter");?>
+ <a href="firewall_shaper_vinterface.php?pipe=new&amp;action=add">
+ <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("Create new limiter");?>" width="17" height="17" border="0" alt="add" />&nbsp;<?=gettext("Create new limiter");?>
</a><br/>
</td>
<td width="75%" valign="top" align="center">
- <table>
- <?
+ <div id="shaperarea" style="position:relative">
+ <?php
echo $output;
?>
- </table>
+ </div>
</td></tr>
</table>
@@ -427,12 +430,14 @@ include("fbegin.inc");
</table>
</form>
<script type='text/javascript'>
+//<![CDATA[
<?php
$totalrows = 0;
if (is_array($config['dnshaper']) && is_array($config['dnshaper']['queue']))
$totalrows = count($config['dnshaper']['queue']);
echo "totalrows = {$totalrows}";
?>
+//]]>
</script>
<?php include("fend.inc"); ?>
</body>
diff --git a/usr/local/www/firewall_shaper_wizards.php b/usr/local/www/firewall_shaper_wizards.php
index 1db1add..455b932 100755
--- a/usr/local/www/firewall_shaper_wizards.php
+++ b/usr/local/www/firewall_shaper_wizards.php
@@ -79,23 +79,24 @@ $wizards = array(gettext("Single Lan multi Wan") => "traffic_shaper_wizard.xml",
gettext("Dedicated Links") => "traffic_shaper_wizard_dedicated.xml",
);
+$closehead = false;
include("head.inc");
?>
+<link rel="stylesheet" type="text/css" media="all" href="./tree/tree.css" />
+</head>
<body link="#0000CC" vlink="#0000CC" alink="#0000CC" >
-<link rel="stylesheet" type="text/css" media="all" href="./tree/tree.css" />
-<?php
-include("fbegin.inc");
-?>
+
+<?php include("fbegin.inc"); ?>
<?php if ($input_errors) print_input_errors($input_errors); ?>
<form action="firewall_shaper_wizards.php" method="post" id="iform" name="iform">
<?php if ($savemsg) print_info_box($savemsg); ?>
<?php if (is_subsystem_dirty('shaper')): ?><p>
-<?php print_info_box_np(gettext("The traffic shaper configuration has been changed.")."<br>".gettext("You must apply the changes in order for them to take effect."));?><br>
+<?php print_info_box_np(gettext("The traffic shaper configuration has been changed.")."<br/>".gettext("You must apply the changes in order for them to take effect."));?><br/></p>
<?php endif; ?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="traffic shaper wizard">
<tr><td>
<?php
$tab_array = array();
@@ -110,10 +111,10 @@ include("fbegin.inc");
<tr>
<td>
<div id="mainarea">
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="main area">
<tr>
- <td class="listhdrr" width="25%" align="center" ><?=gettext("Wizard function");?></td>
- <td class="listhdrr" width="75%" align="center"><?=gettext("Wizard Link");?></td>
+ <td class="listhdrr" width="25%" align="center" ><?=gettext("Wizard function");?></td>
+ <td class="listhdrr" width="75%" align="center"><?=gettext("Wizard Link");?></td>
</tr>
<?php foreach ($wizards as $key => $wizard): ?>
<tr class="tabcont"><td class="listlr" style="background-color: #e0e0e0" width="25%" align="center">
@@ -128,7 +129,6 @@ include("fbegin.inc");
</tr>
</table>
</form>
-<?php include("fend.inc");
-?>
+<?php include("fend.inc"); ?>
</body>
</html>
diff --git a/usr/local/www/firewall_virtual_ip.php b/usr/local/www/firewall_virtual_ip.php
index e4aee0d..5d0dacd 100755
--- a/usr/local/www/firewall_virtual_ip.php
+++ b/usr/local/www/firewall_virtual_ip.php
@@ -108,12 +108,23 @@ if ($_GET['act'] == "del") {
}
if ($a_vip[$_GET['id']]['mode'] == "ipalias") {
+ $found_carp = false;
+ $found_other_alias = false;
+
$vipiface = $a_vip[$_GET['id']]['interface'];
- foreach ($a_vip as $vip) {
- if ($vip['interface'] == $vipiface && $vip['mode'] == "carp")
- if (ip_in_subnet($vip['subnet'], gen_subnet($a_vip[$_GET['id']]['subnet'], $a_vip[$_GET['id']]['subnet_bits']) . "/" . $a_vip[$_GET['id']]['subnet_bits']))
- $input_errors[] = gettext("This entry cannot be deleted because it is still referenced by a CARP IP with the description") . " {$vip['descr']}.";
+ foreach ($a_vip as $vip_id => $vip) {
+ if ($vip_id == $_GET['id'])
+ continue;
+
+ if ($vip['interface'] == $vipiface && ip_in_subnet($vip['subnet'], gen_subnet($a_vip[$_GET['id']]['subnet'], $a_vip[$_GET['id']]['subnet_bits']) . "/" . $a_vip[$_GET['id']]['subnet_bits']))
+ if ($vip['mode'] == "carp")
+ $found_carp = true;
+ else if ($vip['mode'] == "ipalias")
+ $found_other_alias = true;
}
+
+ if ($found_carp === true && $found_other_alias === false)
+ $input_errors[] = gettext("This entry cannot be deleted because it is still referenced by a CARP IP with the description") . " {$vip['descr']}.";
} else if ($a_vip[$_GET['id']]['mode'] == "carp") {
$vipiface = "{$a_vip[$_GET['id']]['interface']}_vip{$a_vip[$_GET['id']]['vhid']}";
foreach ($a_vip as $vip) {
@@ -124,11 +135,14 @@ if ($_GET['act'] == "del") {
if (!$input_errors) {
+ if (!session_id())
+ session_start();
$user = getUserEntry($_SESSION['Username']);
if (is_array($user) && userHasPrivilege($user, "user-config-readonly")) {
header("Location: firewall_virtual_ip.php");
exit;
}
+ session_commit();
// Special case since every proxyarp vip is handled by the same daemon.
if ($a_vip[$_GET['id']]['mode'] == "proxyarp") {
@@ -164,10 +178,10 @@ include("head.inc");
print_info_box($savemsg);
else
if (is_subsystem_dirty('vip'))
- print_info_box_np(gettext("The VIP configuration has been changed.")."<br>".gettext("You must apply the changes in order for them to take effect."));
+ print_info_box_np(gettext("The VIP configuration has been changed.")."<br/>".gettext("You must apply the changes in order for them to take effect."));
?>
-<br>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<br/>
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="virtual ip">
<tr><td class="tabnavtbl">
<?php
/* active tabs */
@@ -178,26 +192,32 @@ include("head.inc");
?>
</td></tr>
<tr>
- <td><input type="hidden" id="id" name="id" value="<? echo $id; ?>"></td>
+ <td><input type="hidden" id="id" name="id" value="<?php echo $id; ?>" /></td>
</tr>
<tr>
<td>
<div id="mainarea">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="main area">
<tr>
<td width="30%" class="listhdrr"><?=gettext("Virtual IP address");?></td>
<td width="10%" class="listhdrr"><?=gettext("Interface");?></td>
<td width="10%" class="listhdrr"><?=gettext("Type");?></td>
<td width="40%" class="listhdr"><?=gettext("Description");?></td>
<td width="10%" class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ <table border="0" cellspacing="0" cellpadding="1" summary="edit">
<tr>
<td width="17"></td>
- <td valign="middle"><a href="firewall_virtual_ip_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
+ <td valign="middle"><a href="firewall_virtual_ip_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="edit" /></a></td>
</tr>
</table>
</td>
</tr>
+ <?php
+ $interfaces = get_configured_interface_with_descr(false, true);
+ $carplist = get_configured_carp_interface_list();
+ foreach ($carplist as $cif => $carpip)
+ $interfaces[$cif] = $carpip." (".get_vip_descr($carpip).")";
+ ?>
<?php $i = 0; foreach ($a_vip as $vipent): ?>
<?php if($vipent['subnet'] <> "" or $vipent['range'] <> "" or
$vipent['subnet_bits'] <> "" or (isset($vipent['range']['from']) && $vipent['range']['from'] <> "")): ?>
@@ -212,19 +232,19 @@ include("head.inc");
<?php if($vipent['mode'] == "carp") echo " (vhid {$vipent['vhid']})"; ?>
</td>
<td class="listr" ondblclick="document.location='firewall_virtual_ip_edit.php?id=<?=$i;?>';">
- <?=htmlspecialchars(strtoupper($config['interfaces'][$vipent['interface']]['descr']));?>&nbsp;
+ <?=htmlspecialchars($interfaces[$vipent['interface']]);?>&nbsp;
</td>
<td class="listr" align="center" ondblclick="document.location='firewall_virtual_ip_edit.php?id=<?=$i;?>';">
- <? if($vipent['mode'] == "proxyarp") echo "<img src='./themes/".$g['theme']."/images/icons/icon_parp.gif' title='Proxy ARP'>"; elseif($vipent['mode'] == "carp") echo "<img src='./themes/".$g['theme']."/images/icons/icon_carp.gif' title='CARP'>"; elseif($vipent['mode'] == "other") echo "<img src='./themes/".$g['theme']."/images/icons/icon_other.gif' title='Other'>"; elseif($vipent['mode'] == "ipalias") echo "<img src='./themes/".$g['theme']."/images/icons/icon_ifalias.gif' title='IP Alias'>";?>
+ <?php if($vipent['mode'] == "proxyarp") echo "<img src='./themes/".$g['theme']."/images/icons/icon_parp.gif' title='Proxy ARP' alt='proxy arp' />"; elseif($vipent['mode'] == "carp") echo "<img src='./themes/".$g['theme']."/images/icons/icon_carp.gif' title='CARP' alt='carp' />"; elseif($vipent['mode'] == "other") echo "<img src='./themes/".$g['theme']."/images/icons/icon_other.gif' title='Other' alt='other' />"; elseif($vipent['mode'] == "ipalias") echo "<img src='./themes/".$g['theme']."/images/icons/icon_ifalias.gif' title='IP Alias' alt='ip alias' />";?>
</td>
<td class="listbg" ondblclick="document.location='firewall_virtual_ip_edit.php?id=<?=$i;?>';">
<?=htmlspecialchars($vipent['descr']);?>&nbsp;
</td>
- <td class="list" nowrap>
- <table border="0" cellspacing="0" cellpadding="1">
+ <td class="list nowrap">
+ <table border="0" cellspacing="0" cellpadding="1" summary="icons">
<tr>
- <td valign="middle"><a href="firewall_virtual_ip_edit.php?id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0"></a></td>
- <td valign="middle"><a href="firewall_virtual_ip.php?act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext('Do you really want to delete this entry?');?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0"></a></td>
+ <td valign="middle"><a href="firewall_virtual_ip_edit.php?id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0" alt="edit" /></a></td>
+ <td valign="middle"><a href="firewall_virtual_ip.php?act=del&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext('Do you really want to delete this entry?');?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" alt="delete" /></a></td>
</tr>
</table>
</td>
@@ -234,23 +254,24 @@ include("head.inc");
<tr>
<td class="list" colspan="4"></td>
<td class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ <table border="0" cellspacing="0" cellpadding="1" summary="edit">
<tr>
<td width="17"></td>
- <td valign="middle"><a href="firewall_virtual_ip_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
+ <td valign="middle"><a href="firewall_virtual_ip_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="edit" /></a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="5">
- <p><span class="vexpl"><span class="red"><strong><?=gettext("Note:");?><br>
- </strong></span><?=gettext("The virtual IP addresses defined on this page may be used in");?><a href="firewall_nat.php"> <?=gettext("NAT"); ?> </a><?=gettext("mappings.");?><br>
+ <p><span class="vexpl"><span class="red"><strong><?=gettext("Note:");?><br/>
+ </strong></span><?=gettext("The virtual IP addresses defined on this page may be used in");?><a href="firewall_nat.php"> <?=gettext("NAT"); ?> </a><?=gettext("mappings.");?><br/>
<?=gettext("You can check the status of your CARP Virtual IPs and interfaces ");?><a href="carp_status.php"><?=gettext("here");?></a>.</span></p>
</td>
</tr>
</table>
- </div>
+ </div><!-- div:mainarea -->
+ </td></tr>
</table>
</form>
<?php include("fend.inc"); ?>
diff --git a/usr/local/www/firewall_virtual_ip_edit.php b/usr/local/www/firewall_virtual_ip_edit.php
index d208dd3..c906b4c 100755
--- a/usr/local/www/firewall_virtual_ip_edit.php
+++ b/usr/local/www/firewall_virtual_ip_edit.php
@@ -105,20 +105,22 @@ if ($_POST) {
$reqdfields = explode(" ", "mode");
$reqdfieldsn = array(gettext("Type"));
- do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
+ do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors);
if ($_POST['subnet'])
$_POST['subnet'] = trim($_POST['subnet']);
- if (($_POST['subnet'] && !is_ipaddr($_POST['subnet'])))
- $input_errors[] = gettext("A valid IP address must be specified.");
+ if ($_POST['subnet']) {
+ if (!is_ipaddr($_POST['subnet']))
+ $input_errors[] = gettext("A valid IP address must be specified.");
+ else if (is_ipaddr_configured($_POST['subnet'], "vip_" . $id))
+ $input_errors[] = gettext("This IP address is being used by another interface or VIP.");
+ }
$natiflist = get_configured_interface_with_descr();
foreach ($natiflist as $natif => $natdescr) {
if ($_POST['interface'] == $natif && (empty($config['interfaces'][$natif]['ipaddr']) && empty($config['interfaces'][$natif]['ipaddrv6'])))
$input_errors[] = gettext("The interface chosen for the VIP has no IPv4 or IPv6 address configured so it cannot be used as a parent for the VIP.");
- if ($_POST['subnet'] == get_interface_ip($natif))
- $input_errors[] = sprintf(gettext("The %s IP address may not be used in a virtual entry."),$natdescr);
}
if(is_ipaddrv4($_POST['subnet'])) {
@@ -129,15 +131,21 @@ if ($_POST) {
if(($_POST['subnet_bits'] == "127" or $_POST['subnet_bits'] == "128") and $_POST['mode'] == "carp")
$input_errors[] = gettext("The /127 and /128 subnet mask are invalid for CARP IPs.");
}
- /* check for overlaps with other virtual IP */
- foreach ($a_vip as $vipent) {
- if (isset($id) && ($a_vip[$id]) && ($a_vip[$id] === $vipent))
- continue;
-
- if (isset($_POST['subnet']) && $_POST['subnet'] == $vipent['subnet']) {
- $input_errors[] = gettext("There is already a virtual IP entry for the specified IP address.");
- break;
+
+ /* ipalias and carp should not use network or broadcast address */
+ if ($_POST['mode'] == "ipalias" || $_POST['mode'] == "carp") {
+ if (is_ipaddrv4($_POST['subnet']) && $_POST['subnet_bits'] != "32") {
+ $network_addr = gen_subnet($_POST['subnet'], $_POST['subnet_bits']);
+ $broadcast_addr = gen_subnet_max($_POST['subnet'], $_POST['subnet_bits']);
+ } else if (is_ipaddrv6($_POST['subnet']) && $_POST['subnet_bits'] != "128" ) {
+ $network_addr = gen_subnetv6($_POST['subnet'], $_POST['subnet_bits']);
+ $broadcast_addr = gen_subnetv6_max($_POST['subnet'], $_POST['subnet_bits']);
}
+
+ if (isset($network_addr) && $_POST['subnet'] == $network_addr)
+ $input_errors[] = gettext("You cannot use the network address for this VIP");
+ else if (isset($broadcast_addr) && $_POST['subnet'] == $broadcast_addr)
+ $input_errors[] = gettext("You cannot use the broadcast address for this VIP");
}
/* make sure new ip is within the subnet of a valid ip
@@ -155,31 +163,36 @@ if ($_POST) {
if (empty($_POST['password']))
$input_errors[] = gettext("You must specify a CARP password that is shared between the two VHID members.");
- if(is_ipaddrv4($_POST['subnet'])) {
+ if (is_ipaddrv4($_POST['subnet'])) {
$parent_ip = get_interface_ip($_POST['interface']);
$parent_sn = get_interface_subnet($_POST['interface']);
- if (!ip_in_subnet($_POST['subnet'], gen_subnet($parent_ip, $parent_sn) . "/" . $parent_sn) && !ip_in_interface_alias_subnet($_POST['interface'], $_POST['subnet'])) {
- $cannot_find = $_POST['subnet'] . "/" . $_POST['subnet_bits'] ;
- $input_errors[] = sprintf(gettext("Sorry, we could not locate an interface with a matching subnet for %s. Please add an IP alias in this subnet on this interface."),$cannot_find);
- }
- }
- if(is_ipaddrv6($_POST['subnet'])) {
+ $subnet = gen_subnet($parent_ip, $parent_sn);
+ } else if (is_ipaddrv6($_POST['subnet'])) {
$parent_ip = get_interface_ipv6($_POST['interface']);
$parent_sn = get_interface_subnetv6($_POST['interface']);
$subnet = gen_subnetv6($parent_ip, $parent_sn);
- if (!ip_in_subnet($_POST['subnet'], gen_subnetv6($parent_ip, $parent_sn) . "/" . $parent_sn) && !ip_in_interface_alias_subnet($_POST['interface'], $_POST['subnet'])) {
- $cannot_find = $_POST['subnet'] . "/" . $_POST['subnet_bits'] ;
- $input_errors[] = sprintf(gettext("Sorry, we could not locate an interface with a matching subnet for %s. Please add an IP alias in this subnet on this interface."),$cannot_find);
- }
}
+
+ if (isset($parent_ip) && !ip_in_subnet($_POST['subnet'], "{$subnet}/{$parent_sn}") && !ip_in_interface_alias_subnet($_POST['interface'], $_POST['subnet'])) {
+ $cannot_find = $_POST['subnet'] . "/" . $_POST['subnet_bits'] ;
+ $input_errors[] = sprintf(gettext("Sorry, we could not locate an interface with a matching subnet for %s. Please add an IP alias in this subnet on this interface."),$cannot_find);
+ }
+
if (strstr($_POST['interface'], "_vip"))
$input_errors[] = gettext("For this type of vip a carp parent is not allowed.");
break;
case "ipalias":
if (strstr($_POST['interface'], "_vip")) {
- $parent_ip = get_interface_ip($_POST['interface']);
- $parent_sn = get_interface_subnet($_POST['interface']);
- if (!ip_in_subnet($_POST['subnet'], gen_subnet($parent_ip, $parent_sn) . "/" . $parent_sn) && !ip_in_interface_alias_subnet($_POST['interface'], $_POST['subnet'])) {
+ if (is_ipaddrv4($_POST['subnet'])) {
+ $parent_ip = get_interface_ip($_POST['interface']);
+ $parent_sn = get_interface_subnet($_POST['interface']);
+ $subnet = gen_subnet($parent_ip, $parent_sn);
+ } else if (is_ipaddrv6($_POST['subnet'])) {
+ $parent_ip = get_interface_ipv6($_POST['interface']);
+ $parent_sn = get_interface_subnetv6($_POST['interface']);
+ $subnet = gen_subnetv6($parent_ip, $parent_sn);
+ }
+ if (isset($parent_ip) && !ip_in_subnet($_POST['subnet'], "{$subnet}/{$parent_sn}") && !ip_in_interface_alias_subnet($_POST['interface'], $_POST['subnet'])) {
$cannot_find = $_POST['subnet'] . "/" . $_POST['subnet_bits'] ;
$input_errors[] = sprintf(gettext("Sorry, we could not locate an interface with a matching subnet for %s. Please add an IP alias in this subnet on this interface."),$cannot_find);
}
@@ -191,7 +204,6 @@ if ($_POST) {
break;
}
-
if (!$input_errors) {
$vipent = array();
@@ -266,8 +278,8 @@ include("head.inc");
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<script type="text/javascript" src="/javascript/jquery.ipv4v6ify.js"></script>
<?php include("fbegin.inc"); ?>
-<script language="JavaScript">
-<!--
+<script type="text/javascript">
+//<![CDATA[
function get_radio_value(obj)
{
for (i = 0; i < obj.length; i++) {
@@ -342,12 +354,12 @@ function typesel_change() {
break;
}
}
-//-->
+//]]>
</script>
<?php if ($input_errors) print_input_errors($input_errors); ?>
<form action="firewall_virtual_ip_edit.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="virtual IP edit">
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Edit Virtual IP");?></td>
</tr>
@@ -355,13 +367,13 @@ function typesel_change() {
<td width="22%" valign="top" class="vncellreq"><?=gettext("Type");?></td>
<td width="78%" class="vtable">
<input name="mode" type="radio" onclick="enable_change()" value="ipalias"
- <?php if ($pconfig['mode'] == "ipalias") echo "checked";?>> <?=gettext("IP Alias");?>
+ <?php if ($pconfig['mode'] == "ipalias") echo "checked=\"checked\"";?> /> <?=gettext("IP Alias");?>
<input name="mode" type="radio" onclick="enable_change()" value="carp"
- <?php if ($pconfig['mode'] == "carp") echo "checked";?>> <?=gettext("CARP"); ?>
+ <?php if ($pconfig['mode'] == "carp") echo "checked=\"checked\"";?> /> <?=gettext("CARP"); ?>
<input name="mode" type="radio" onclick="enable_change()" value="proxyarp"
- <?php if ($pconfig['mode'] == "proxyarp") echo "checked";?>> <?=gettext("Proxy ARP"); ?>
+ <?php if ($pconfig['mode'] == "proxyarp") echo "checked=\"checked\"";?> /> <?=gettext("Proxy ARP"); ?>
<input name="mode" type="radio" onclick="enable_change()" value="other"
- <?php if ($pconfig['mode'] == "other") echo "checked";?>> <?=gettext("Other");?>
+ <?php if ($pconfig['mode'] == "other") echo "checked=\"checked\"";?> /> <?=gettext("Other");?>
</td>
</tr>
<tr>
@@ -374,7 +386,7 @@ function typesel_change() {
foreach ($carplist as $cif => $carpip)
$interfaces[$cif] = $carpip." (".get_vip_descr($carpip).")";
foreach ($interfaces as $iface => $ifacename): ?>
- <option value="<?=$iface;?>" <?php if ($iface == $pconfig['interface']) echo "selected"; ?>>
+ <option value="<?=$iface;?>" <?php if ($iface == $pconfig['interface']) echo "selected=\"selected\""; ?>>
<?=htmlspecialchars($ifacename);?>
</option>
<?php endforeach; ?>
@@ -384,24 +396,24 @@ function typesel_change() {
<tr>
<td valign="top" class="vncellreq"><?=gettext("IP Address(es)");?></td>
<td class="vtable">
- <table border="0" cellspacing="0" cellpadding="0">
+ <table border="0" cellspacing="0" cellpadding="0" summary="ip addresses">
<tr>
<td><?=gettext("Type:");?>&nbsp;&nbsp;</td>
- <td><select name="type" class="formselect" onChange="typesel_change()">
- <option value="single" <?php if ((!$pconfig['range'] && $pconfig['subnet_bits'] == 32) || (!isset($pconfig['subnet']))) echo "selected"; ?>>
+ <td><select name="type" class="formselect" onchange="typesel_change()">
+ <option value="single" <?php if ((!$pconfig['range'] && $pconfig['subnet_bits'] == 32) || (!isset($pconfig['subnet']))) echo "selected=\"selected\""; ?>>
<?=gettext("Single address");?></option>
- <option value="network" <?php if (!$pconfig['range'] && $pconfig['subnet_bits'] != 32 && isset($pconfig['subnet'])) echo "selected"; ?>>
+ <option value="network" <?php if (!$pconfig['range'] && $pconfig['subnet_bits'] != 32 && isset($pconfig['subnet'])) echo "selected=\"selected\""; ?>>
<?=gettext("Network");?></option>
- <!-- XXX: Billm, don't let anyone choose this until NAT configuration screens are ready for it <option value="range" <?php if ($pconfig['range']) echo "selected"; ?>>
+ <!-- XXX: Billm, don't let anyone choose this until NAT configuration screens are ready for it <option value="range" <?php if ($pconfig['range']) echo "selected=\"selected\""; ?>>
Range</option> -->
</select></td>
</tr>
<tr>
<td><?=gettext("Address:");?>&nbsp;&nbsp;</td>
- <td><input name="subnet" type="text" class="formfld unknown ipv4v6" id="subnet" size="28" value="<?=htmlspecialchars($pconfig['subnet']);?>">
+ <td><input name="subnet" type="text" class="formfld unknown ipv4v6" id="subnet" size="28" value="<?=htmlspecialchars($pconfig['subnet']);?>" />
/<select name="subnet_bits" class="formselect ipv4v6" id="select">
<?php for ($i = 128; $i >= 1; $i--): ?>
- <option value="<?=$i;?>" <?php if ($i == $pconfig['subnet_bits']) echo "selected"; ?>>
+ <option value="<?=$i;?>" <?php if ($i == $pconfig['subnet_bits']) echo "selected=\"selected\""; ?>>
<?=$i;?>
</option>
<?php endfor; ?>
@@ -410,7 +422,7 @@ function typesel_change() {
</tr>
<tr id="noexpandrow">
<td><?=gettext("Expansion:");?>&nbsp;&nbsp;</td>
- <td><input name="noexpand" type="checkbox" class="formfld unknown" id="noexpand" <?php echo (isset($pconfig['noexpand'])) ? "checked" : "" ; ?>>
+ <td><input name="noexpand" type="checkbox" class="formfld unknown" id="noexpand" <?php echo (isset($pconfig['noexpand'])) ? "checked=\"checked\"" : "" ; ?> />
Disable expansion of this entry into IPs on NAT lists (e.g. 192.168.1.0/24 expands to 256 entries.)
</td>
</tr>
@@ -418,9 +430,9 @@ function typesel_change() {
/*
<tr>
<td>Range:&nbsp;&nbsp;</td>
- <td><input name="range_from" type="text" class="formfld unknown" id="range_from" size="28" value="<?=htmlspecialchars($pconfig['range']['from']);?>">
+ <td><input name="range_from" type="text" class="formfld unknown" id="range_from" size="28" value="<?=htmlspecialchars($pconfig['range']['from']);?>" />
-
- <input name="range_to" type="text" class="formfld unknown" id="range_to" size="28" value="<?=htmlspecialchars($pconfig['range']['to']);?>">
+ <input name="range_to" type="text" class="formfld unknown" id="range_to" size="28" value="<?=htmlspecialchars($pconfig['range']['to']);?>" />
</td>
</tr>
*/
@@ -430,20 +442,20 @@ function typesel_change() {
</tr>
<tr valign="top">
<td width="22%" class="vncellreq"><?=gettext("Virtual IP Password");?></td>
- <td class="vtable"><input type='password' name='password' value="<?=htmlspecialchars($pconfig['password']);?>">
- <br><?=gettext("Enter the VHID group password.");?>
+ <td class="vtable"><input type='password' name='password' value="<?=htmlspecialchars($pconfig['password']);?>" />
+ <br/><?=gettext("Enter the VHID group password.");?>
</td>
</tr>
<tr valign="top">
<td width="22%" class="vncellreq"><?=gettext("VHID Group");?></td>
<td class="vtable"><select id='vhid' name='vhid'>
<?php for ($i = 1; $i <= 255; $i++): ?>
- <option value="<?=$i;?>" <?php if ($i == $pconfig['vhid']) echo "selected"; ?>>
+ <option value="<?=$i;?>" <?php if ($i == $pconfig['vhid']) echo "selected=\"selected\""; ?>>
<?=$i;?>
</option>
<?php endfor; ?>
</select>
- <br><?=gettext("Enter the VHID group that the machines will share");?>
+ <br/><?=gettext("Enter the VHID group that the machines will share");?>
</td>
</tr>
<tr valign="top">
@@ -451,14 +463,14 @@ function typesel_change() {
<td class="vtable">
Base: <select id='advbase' name='advbase'>
<?php for ($i = 1; $i <= 254; $i++): ?>
- <option value="<?=$i;?>" <?php if ($i == $pconfig['advbase']) echo "selected"; ?>>
+ <option value="<?=$i;?>" <?php if ($i == $pconfig['advbase']) echo "selected=\"selected\""; ?>>
<?=$i;?>
</option>
<?php endfor; ?>
</select>
Skew: <select id='advskew' name='advskew'>
<?php for ($i = 0; $i <= 254; $i++): ?>
- <option value="<?=$i;?>" <?php if ($i == $pconfig['advskew']) echo "selected"; ?>>
+ <option value="<?=$i;?>" <?php if ($i == $pconfig['advskew']) echo "selected=\"selected\""; ?>>
<?=$i;?>
</option>
<?php endfor; ?>
@@ -470,38 +482,36 @@ function typesel_change() {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Description");?></td>
<td width="78%" class="vtable">
- <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>">
- <br> <span class="vexpl"><?=gettext("You may enter a description here for your reference (not parsed).");?></span></td>
+ <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>" />
+ <br/> <span class="vexpl"><?=gettext("You may enter a description here for your reference (not parsed).");?></span></td>
</tr>
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
- <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>"> <input type="button" class="formbtn" value="<?=gettext("Cancel"); ?>" onclick="history.back()">
+ <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>" /> <input type="button" class="formbtn" value="<?=gettext("Cancel"); ?>" onclick="history.back()" />
<?php if (isset($id) && $a_vip[$id]): ?>
- <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>">
+ <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>" />
<?php endif; ?>
</td>
</tr>
<tr>
<td colspan="4">
- <p>
<span class="vexpl">
<span class="red">
- <b><?=gettext("Note:");?><br></b>
+ <b><?=gettext("Note:");?><br/></b>
</span>&nbsp;&nbsp;
<?=gettext("Proxy ARP and Other type Virtual IPs cannot be bound to by anything running on the firewall, such as IPsec, OpenVPN, etc. Use a CARP or IP Alias type address for these cases.");?>
- <p>&nbsp;&nbsp;&nbsp;<?=gettext("For more information on CARP and the above values, visit the OpenBSD ");?><a href='http://www.openbsd.org/faq/pf/carp.html'> <?=gettext("CARP FAQ"); ?></A>.
+ <br/><br/>&nbsp;&nbsp;&nbsp;<?=gettext("For more information on CARP and the above values, visit the OpenBSD ");?><a href='http://www.openbsd.org/faq/pf/carp.html'> <?=gettext("CARP FAQ"); ?></a>.
</span>
- </p>
</td>
</tr>
</table>
</form>
-<script language="JavaScript">
-<!--
+<script type="text/javascript">
+//<![CDATA[
enable_change();
-//-->
+//]]>
</script>
<?php include("fend.inc"); ?>
</body>
diff --git a/usr/local/www/guiconfig.inc b/usr/local/www/guiconfig.inc
index de4704e..cb16f96 100755
--- a/usr/local/www/guiconfig.inc
+++ b/usr/local/www/guiconfig.inc
@@ -60,7 +60,7 @@ require_once("functions.inc");
/* Pull in all the gui related display classes) */
foreach (scandir("/usr/local/www/classes/") as $file) {
- if (stristr($file, ".inc") !== false) {
+ if (substr($file, -4) == ".inc") {
require_once("classes/{$file}");
}
}
@@ -95,20 +95,20 @@ if(!$ignorefirmwarelock) {
}
}
-$firewall_rules_dscp_types = array("af11",
- "af12",
- "af13",
- "af21",
- "af22",
- "af23",
- "af31",
- "af32",
- "af33",
- "af41",
- "af42",
- "af43",
- "EF",
- "1-64",
+$firewall_rules_dscp_types = array("af11",
+ "af12",
+ "af13",
+ "af21",
+ "af22",
+ "af23",
+ "af31",
+ "af32",
+ "af33",
+ "af41",
+ "af42",
+ "af43",
+ "EF",
+ "1-64",
"0x10",
"0x04-0xfc");
@@ -162,7 +162,7 @@ $netbios_nodetypes = array(
/* some well knows ports */
$wkports = array(
- 5999 => "CVSup",
+ 5999 => "CVSup",
53 => "DNS",
21 => "FTP",
3000 => "HBCI",
@@ -190,7 +190,7 @@ $wkports = array(
1194 => "OpenVPN",
110 => "POP3",
995 => "POP3/S",
- 1723 => "PPTP",
+ 1723 => "PPTP",
1812 => "RADIUS",
1813 => "RADIUS accounting",
5004 => "RTP",
@@ -248,12 +248,12 @@ function print_input_errors($input_errors) {
global $g;
print <<<EOF
- <div id='inputerrorsdiv' name='inputerrorsdiv'>
+ <div id="inputerrorsdiv">
<p>
- <table border="0" cellspacing="0" cellpadding="4" width="100%">
+ <table border="0" cellspacing="0" cellpadding="4" width="100%" summary="input errors">
<tr>
<td class="inputerrorsleft">
- <img src="/themes/{$g['theme']}/images/icons/icon_error.gif">
+ <img src="/themes/{$g['theme']}/images/icons/icon_error.gif" alt="errors" />
</td>
<td class="inputerrorsright">
<span class="errmsg"><p>
@@ -266,18 +266,17 @@ EOF;
print <<<EOF2
</ul>
- </span>
+ </p></span>
</td></tr>
</table>
</div>
- </p>&nbsp;<br>
+ </p>&nbsp;<br />
EOF2;
-
+
}
function verify_gzip_file($fname) {
-
- $returnvar = mwexec("/usr/bin/gzip -t " . escapeshellarg($fname));
+ $returnvar = mwexec("/usr/bin/gzip -t " . escapeshellarg($fname));
if ($returnvar != 0)
return 0;
else
@@ -296,42 +295,42 @@ function print_info_box_np($msg, $name="apply",$value="", $showapply=false) {
$nifty_background = "#FFF";
if(stristr($msg, gettext("apply")) != false || stristr($msg, gettext("save")) != false || stristr($msg, gettext("create")) != false || $showapply) {
- $savebutton = "<td class='infoboxsave'>";
- $savebutton .= "<input name=\"{$name}\" type=\"submit\" class=\"formbtn\" id=\"${name}\" value=\"{$value}\">";
+ $savebutton = "<td class=\"infoboxsave\">";
+ $savebutton .= "<input name=\"{$name}\" type=\"submit\" class=\"formbtn\" id=\"${name}\" value=\"{$value}\" />";
if($_POST['if'])
- $savebutton .= "<input type='hidden' name='if' value='" . htmlspecialchars($_POST['if']) . "'>";
+ $savebutton .= "<input type=\"hidden\" name=\"if\" value=\"" . htmlspecialchars($_POST['if']) . "\" />";
$savebutton.="</td>";
}
$nifty_redbox = "#990000";
$nifty_blackbox = "#000000";
-
+
$themename = $g['theme'];
-
+
if(file_exists("/usr/local/www/themes/{$themename}/tabcontrols.php")) {
$toeval = file_get_contents("/usr/local/www/themes/{$themename}/tabcontrols.php");
eval($toeval);
}
-
+
if(file_exists("/usr/local/www/themes/{$themename}/infobox.php")) {
$toeval = file_get_contents("/usr/local/www/themes/{$themename}/infobox.php");
eval($toeval);
- }
-
+ }
+
if(!$savebutton) {
- $savebutton = '<td class="infoboxsave"><input value="Close" type="button" onClick="jQuery(\'#redboxtable\').hide();"></td>';
+ $savebutton = "<td class=\"infoboxsave\"><input value=\"Close\" type=\"button\" onclick=\"jQuery('#redboxtable').hide();\" /></td>";
}
echo <<<EOFnp
- <table class='infobox' id='redboxtable'>
+ <table class="infobox" id="redboxtable" summary="red box table">
<tr>
<td>
- <div class='infoboxnp' id='redbox'>
- <table class='infoboxnptable2'>
+ <div class="infoboxnp" id="redbox">
+ <table class="infoboxnptable2" summary="message">
<tr>
- <td class='infoboxnptd'>
- &nbsp;&nbsp;&nbsp;<img class='infoboxnpimg' src="/themes/{$g['theme']}/images/icons/icon_exclam.gif" >
+ <td class="infoboxnptd">
+ &nbsp;&nbsp;&nbsp;<img class="infoboxnpimg" src="/themes/{$g['theme']}/images/icons/icon_exclam.gif" alt="exclamation" />
</td>
- <td class='infoboxnptd2'>
+ <td class="infoboxnptd2">
<b>{$msg}</b>
</td>
{$savebutton}
@@ -339,15 +338,17 @@ function print_info_box_np($msg, $name="apply",$value="", $showapply=false) {
</table>
</div>
<div>
- <p/>
+ <p>&nbsp;</p>
</div>
</td>
</tr>
</table>
<script type="text/javascript">
+ //<![CDATA[
NiftyCheck();
Rounded("div#redbox","all","{$nifty_background}","{$nifty_redbox}","smooth");
Rounded("td#blackbox","all","{$nifty_background}","{$nifty_blackbox}","smooth");
+ //]]>
</script>
EOFnp;
@@ -355,63 +356,65 @@ EOFnp;
function print_info_box_np_undo($msg, $name="apply",$value="Apply changes", $undo) {
global $g;
-
+
if(stristr($msg, "apply") != false || stristr($msg, "save") != false || stristr($msg, "create") != false) {
- $savebutton = "<td class='infoboxsave'><nobr>";
- $savebutton .= " <input type=\"button\" value=\"Undo\" onClick=\"document.location='{$undo}'\">";
- $savebutton .= " <input name=\"{$name}\" type=\"submit\" class=\"formbtn\" id=\"${name}\" value=\"{$value}\">";
- $savebutton.="</nobr></td>";
- if($_POST['if'])
- $savebutton .= "<input type='hidden' name='if' value='" . htmlspecialchars($_POST['if']) . "'>";
+ $savebutton = "<td class=\"infoboxsave nowrap\">";
+ $savebutton .= "<input type=\"button\" value=\"Undo\" onclick=\"document.location='{$undo}'\" />";
+ $savebutton .= "<input name=\"{$name}\" type=\"submit\" class=\"formbtn\" id=\"${name}\" value=\"{$value}\" />";
+ $savebutton .= "</td>";
+ if($_POST['if'])
+ $savebutton .= "<input type=\"hidden\" name=\"if\" value=\"" . htmlspecialchars($_POST['if']) . "\" />";
}
$nifty_redbox = "#990000";
$nifty_blackbox = "#000000";
-
+
$themename = $g['theme'];
-
+
if(file_exists("/usr/local/www/themes/{$themename}/tabcontrols.php")) {
$toeval = file_get_contents("/usr/local/www/themes/{$themename}/tabcontrols.php");
eval($toeval);
}
-
+
if(file_exists("/usr/local/www/themes/{$themename}/infobox.php")) {
$toeval = file_get_contents("/usr/local/www/themes/{$themename}/infobox.php");
eval($toeval);
- }
-
-
+ }
+
+
if(!$savebutton) {
- $savebutton = '<td class="infoboxsave"><input value="Close" type="button" onClick="jQuery(\'#redboxtable\').hide();"></td>';
+ $savebutton = "<td class=\"infoboxsave\"><input value=\"Close\" type=\"button\" onclick=\"jQuery('#redboxtable').hide();\" /></td>";
}
echo <<<EOFnp
- <table class='infobox' id='redboxtable'>
+ <table class="infobox" id="redboxtable" summary="red box table">
<tr>
<td>
- <div class='infoboxnp' id='redbox'>
- <table class='infoboxnptable2'>
+ <div class="infoboxnp" id="redbox">
+ <table class="infoboxnptable2" summary="message">
<tr>
- <td class='infoboxnptd'>
- &nbsp;&nbsp;&nbsp;<img class='infoboxnpimg' src="/themes/{$g['theme']}/images/icons/icon_exclam.gif" >
+ <td class="infoboxnptd">
+ &nbsp;&nbsp;&nbsp;<img class="infoboxnpimg" src="/themes/{$g['theme']}/images/icons/icon_exclam.gif" alt="exclamation" />
</td>
- <td class='infoboxnptd2'>
+ <td class="infoboxnptd2">
<b>{$msg}</b>
</td>
- {$savebutton}
+ {$savebutton}
{$undobutton}
</tr>
</table>
</div>
<div>
- <p/>
+ <p>&nbsp;</p>
</div>
</td>
</tr>
</table>
<script type="text/javascript">
+ //<![CDATA[
NiftyCheck();
Rounded("div#redbox","all","#FFF","{$nifty_redbox}","smooth");
Rounded("td#blackbox","all","#FFF","{$nifty_blackbox}","smooth");
+ //]]>
</script>
EOFnp;
@@ -426,11 +429,11 @@ function get_std_save_message($ok) {
$filter_related = false;
$filter_pages = array("nat", "filter");
$to_return = "The changes have been applied successfully.";
- foreach($filter_pages as $fp)
+ foreach($filter_pages as $fp)
if(stristr($_SERVER['SCRIPT_FILENAME'], $fp))
- $filter_related = true;
+ $filter_related = true;
if($filter_related)
- $to_return .= "<br/>You can also <a href='status_filter_reload.php'>monitor</a> the filter reload progress.";
+ $to_return .= "<br/>You can also <a href=\"status_filter_reload.php\">monitor</a> the filter reload progress.";
return $to_return;
}
@@ -473,45 +476,45 @@ function pprint_port($port) {
}
function firewall_check_for_advanced_options(&$item) {
- $item_set = "";
- if($item['max'])
- $item_set .= "max {$item['max']} ";
- if($item['max-src-nodes'])
- $item_set .= "max-src-nodes {$item['max-src-nodes']} ";
- if($item['max-src-conn'])
- $item_set .= "max-src-conn {$item['max-src-conn']} ";
- if($item['max-src-states'])
- $item_set .= "max-src-states {$item['max-src-states']} ";
- if($item['statetype'] != "keep state" && $item['statetype'] != "")
- $item_set .= "statetype {$item['statetype']} ";
- if($item['statetimeout'])
- $item_set .= "statetimeout {$item['statetimeout']} ";
- if($item['nosync'])
- $item_set .= "nosync ";
- if($item['max-src-conn-rate'])
- $item_set .= "max-src-conn-rate {$item['max-src-conn-rate']} ";
- if($item['max-src-conn-rates'])
- $item_set .= "max-src-conn-rates {$item['max-src-conn-rates']} ";
- if($item['gateway'])
- $item_set .= "gateway {$item['gateway']} ";
- if($item['dnpipe'])
- $item_set .= "limiter {$item['dnpipe']} ";
- if($item['pdnpipe'])
- $item_set .= "limiter {$item['pdnpipe']} ";
- if($item['l7container'])
- $item_set .= "layer7 {$item['l7container']} ";
- if($item['tag'])
- $item_set .= "tag {$item['tag']} ";
- if($item['tagged'])
- $item_set .= "tagged {$item['tagged']} ";
- if(isset($item['allowopts']))
- $item_set .= "allowopts ";
- if(isset($item['disablereplyto']))
- $item_set .= "disable reply-to ";
- if($item['tcpflags_any'] || $item['tcpflags1'] || $item['tcpflags2'])
- $item_set .= "tcpflags set";
-
- return $item_set;
+ $item_set = "";
+ if($item['max'])
+ $item_set .= "max {$item['max']} ";
+ if($item['max-src-nodes'])
+ $item_set .= "max-src-nodes {$item['max-src-nodes']} ";
+ if($item['max-src-conn'])
+ $item_set .= "max-src-conn {$item['max-src-conn']} ";
+ if($item['max-src-states'])
+ $item_set .= "max-src-states {$item['max-src-states']} ";
+ if($item['statetype'] != "keep state" && $item['statetype'] != "")
+ $item_set .= "statetype {$item['statetype']} ";
+ if($item['statetimeout'])
+ $item_set .= "statetimeout {$item['statetimeout']} ";
+ if($item['nosync'])
+ $item_set .= "nosync ";
+ if($item['max-src-conn-rate'])
+ $item_set .= "max-src-conn-rate {$item['max-src-conn-rate']} ";
+ if($item['max-src-conn-rates'])
+ $item_set .= "max-src-conn-rates {$item['max-src-conn-rates']} ";
+ if($item['gateway'])
+ $item_set .= "gateway {$item['gateway']} ";
+ if($item['dnpipe'])
+ $item_set .= "limiter {$item['dnpipe']} ";
+ if($item['pdnpipe'])
+ $item_set .= "limiter {$item['pdnpipe']} ";
+ if($item['l7container'])
+ $item_set .= "layer7 {$item['l7container']} ";
+ if($item['tag'])
+ $item_set .= "tag {$item['tag']} ";
+ if($item['tagged'])
+ $item_set .= "tagged {$item['tagged']} ";
+ if(isset($item['allowopts']))
+ $item_set .= "allowopts ";
+ if(isset($item['disablereplyto']))
+ $item_set .= "disable reply-to ";
+ if($item['tcpflags_any'] || $item['tcpflags1'] || $item['tcpflags2'])
+ $item_set .= "tcpflags set";
+
+ return $item_set;
}
function gentitle($title) {
@@ -523,8 +526,8 @@ function gentitle($title) {
}
function genhtmltitle($title) {
- global $config;
- return gentitle($title);
+ global $config;
+ return gentitle($title);
}
/* update the changedesc and changecount(er) variables */
@@ -543,12 +546,12 @@ function clear_log_file($logfile = "/var/log/system.log") {
unlink($logfile);
touch($logfile);
} else {
- if(isset($config['system']['usefifolog']))
+ if(isset($config['system']['usefifolog']))
exec("/usr/sbin/fifolog_create -s 511488 {$logfile}");
else
exec("/usr/sbin/clog -i -s 511488 {$logfile}");
}
- system_syslogd_start();
+ system_syslogd_start();
}
function dump_clog($logfile, $tail, $withorig = true, $grepfor = "", $grepinvert = "") {
@@ -583,9 +586,10 @@ function dump_clog($logfile, $tail, $withorig = true, $grepfor = "", $grepinvert
$entry_text = htmlspecialchars($logent[5]);
} else {
$entry_date_time = htmlspecialchars(join(" ", array_slice($logent, 0, 3)));
- $entry_text = htmlspecialchars($logent[4] . " " . $logent[5]);
+ $entry_text = ($logent[3] == $config['system']['hostname']) ? "" : $logent[3] . " ";
+ $entry_text .= htmlspecialchars($logent[4] . " " . $logent[5]);
}
- echo "<td class=\"listlr\" nowrap>{$entry_date_time}</td>\n";
+ echo "<td class=\"listlr nowrap\">{$entry_date_time}</td>\n";
echo "<td class=\"listr\">{$entry_text}</td>\n";
} else {
@@ -610,7 +614,7 @@ function return_clog($logfile, $tail, $withorig = true, $grepfor = "", $grepinve
exec("cat {$logfile}{$grepline} | /usr/bin/tail {$sor} -n {$tail}", $logarr);
} else {
if(isset($config['system']['usefifolog'])) {
- exec("/usr/sbin/fifolog_reader {$logfile}{$grepline} | /usr/bin/tail {$sor} -n {$tail}", $logarr);
+ exec("/usr/sbin/fifolog_reader {$logfile}{$grepline} | /usr/bin/tail {$sor} -n {$tail}", $logarr);
} else {
exec("/usr/sbin/clog {$logfile}{$grepline}| grep -v \"CLOG\" | grep -v \"\033\" | /usr/bin/tail {$sor} -n {$tail}", $logarr);
}
@@ -648,77 +652,84 @@ function update_if_changed($varname, & $orig, $new) {
}
function address_to_pconfig($adr, &$padr, &$pmask, &$pnot, &$pbeginport, &$pendport) {
+ if (isset($adr['any']))
+ $padr = "any";
+ else if ($adr['network'])
+ $padr = $adr['network'];
+ else if ($adr['address']) {
+ list($padr, $pmask) = explode("/", $adr['address']);
+ if (!$pmask) {
+ if (is_ipaddrv6($padr))
+ $pmask = 128;
+ else
+ $pmask = 32;
+ }
+ }
+
+ if (isset($adr['not']))
+ $pnot = 1;
+ else
+ $pnot = 0;
- if (isset($adr['any']))
- $padr = "any";
- else if ($adr['network'])
- $padr = $adr['network'];
- else if ($adr['address']) {
- list($padr, $pmask) = explode("/", $adr['address']);
- if (!$pmask)
- $pmask = 32;
- }
-
- if (isset($adr['not']))
- $pnot = 1;
- else
- $pnot = 0;
-
- if ($adr['port']) {
- list($pbeginport, $pendport) = explode("-", $adr['port']);
- if (!$pendport)
- $pendport = $pbeginport;
+ if ($adr['port']) {
+ list($pbeginport, $pendport) = explode("-", $adr['port']);
+ if (!$pendport)
+ $pendport = $pbeginport;
} else if (!is_alias($pbeginport) && !is_alias($pendport)) {
$pbeginport = "any";
$pendport = "any";
- }
+ }
}
function pconfig_to_address(&$adr, $padr, $pmask, $pnot=false, $pbeginport=0, $pendport=0) {
+ $adr = array();
+
+ if ($padr == "any")
+ $adr['any'] = true;
+ else if (is_specialnet($padr))
+ $adr['network'] = $padr;
+ else {
+ $adr['address'] = $padr;
+ if (is_ipaddrv6($padr)) {
+ if ($pmask != 128)
+ $adr['address'] .= "/" . $pmask;
+ } else {
+ if ($pmask != 32)
+ $adr['address'] .= "/" . $pmask;
+ }
+ }
- $adr = array();
-
- if ($padr == "any")
- $adr['any'] = true;
- else if (is_specialnet($padr))
- $adr['network'] = $padr;
- else {
- $adr['address'] = $padr;
- if ($pmask != 32)
- $adr['address'] .= "/" . $pmask;
- }
-
- if ($pnot)
- $adr['not'] = true;
- else
- unset($adr['not']);
-
- if (($pbeginport != 0) && ($pbeginport != "any")) {
- if ($pbeginport != $pendport)
- $adr['port'] = $pbeginport . "-" . $pendport;
- else
- $adr['port'] = $pbeginport;
- }
-
- if(is_alias($pbeginport)) {
- $adr['port'] = $pbeginport;
- }
+ if ($pnot)
+ $adr['not'] = true;
+ else
+ unset($adr['not']);
+
+ if (($pbeginport != 0) && ($pbeginport != "any")) {
+ if ($pbeginport != $pendport)
+ $adr['port'] = $pbeginport . "-" . $pendport;
+ else
+ $adr['port'] = $pbeginport;
+ }
+
+ if(is_alias($pbeginport)) {
+ $adr['port'] = $pbeginport;
+ }
}
function is_specialnet($net) {
- global $specialsrcdst;
+ global $specialsrcdst;
- if(!$net)
+ if(!$net)
+ return false;
+ if (in_array($net, $specialsrcdst))
+ return true;
+ else
return false;
- if (in_array($net, $specialsrcdst))
- return true;
- else
- return false;
}
//function to create widget tabs when called
-function display_widget_tabs(& $tab_array) {
- echo "<div id='tabs'>";
+function display_widget_tabs(& $tab_array) {
+ echo "<div id=\"tabs\">";
$tabscounter = 0;
foreach ($tab_array as $ta) {
$dashpos = strpos($ta[2],'-');
@@ -728,32 +739,34 @@ function display_widget_tabs(& $tab_array) {
if ($ta[1] == true) {
$tabActive = "table-cell";
$tabNonActive = "none";
- }
+ }
else {
$tabActive = "none";
$tabNonActive = "table-cell";
}
- echo "<div id='{$ta[2]}-active' class='{$tabclass}-tabactive' style='display:{$tabActive}; background-color:#EEEEEE; color:black;'>";
- echo "<B>&nbsp;&nbsp;&nbsp;{$ta[0]}";
- echo "&nbsp;&nbsp;&nbsp;</B>";
+ echo "<div id=\"{$ta[2]}-active\" class=\"{$tabclass}-tabactive\" style=\"display:{$tabActive}; background-color:#EEEEEE; color:black;\">";
+ echo "<b>&nbsp;&nbsp;&nbsp;{$ta[0]}";
+ echo "&nbsp;&nbsp;&nbsp;</b>";
echo "</div>";
-
- echo "<div id='{$ta[2]}-deactive' class='{$tabclass}-tabdeactive' style='display:{$tabNonActive}; background-color:#777777; color:white; cursor: pointer;' onClick=\"return changeTabDIV('{$ta[2]}')\">";
- echo "<B>&nbsp;&nbsp;&nbsp;{$ta[0]}";
- echo "&nbsp;&nbsp;&nbsp;</B>";
+
+ echo "<div id=\"{$ta[2]}-deactive\" class=\"{$tabclass}-tabdeactive\" style=\"display:{$tabNonActive}; background-color:#777777; color:white; cursor: pointer;\" onclick=\"return changeTabDIV('{$ta[2]}')\">";
+ echo "<b>&nbsp;&nbsp;&nbsp;{$ta[0]}";
+ echo "&nbsp;&nbsp;&nbsp;</b>";
echo "</div>";
}
-
+
echo "<script type=\"text/javascript\">";
+ echo "\n//<![CDATA[\n";
echo "NiftyCheck();\n";
echo "Rounded(\"div.{$tabclass}-tabactive\",\"top\",\"#CCCCCC\",\"#EEEEEE\",\"smooth\");\n";
echo "Rounded(\"div.{$tabclass}-tabdeactive\",\"top\",\"#CCCCCC\",\"#777777\",\"smooth\");\n";
+ echo "//]]>\n";
echo "</script>";
echo "</div>";
}
-// Return inline javascript file or CSS to minimizie
+// Return inline javascript file or CSS to minimizie
// request count going back to server.
function outputJavaScriptFileInline($javascript) {
if(file_exists($javascript)) {
@@ -847,10 +860,10 @@ function print_rfc2616_select($tag, $current){
if ($current == "")
$current = 200;
- echo "<select id=\"{$tag}\" name=\"{$tag}\">\n";
+ echo "<select id=\"{$tag}\" name=\"{$tag}\">\n";
foreach($rfc2616 as $code => $message) {
if ($code == $current) {
- $sel = " selected";
+ $sel = " selected=\"selected\"";
} else {
$sel = "";
}
@@ -860,29 +873,29 @@ function print_rfc2616_select($tag, $current){
// Useful debugging function, much cleaner than print_r
function echo_array($array,$return_me=false){
- if(is_array($array) == false){
- $return = "The provided variable is not an array.";
- }else{
- foreach($array as $name=>$value){
- if(is_array($value)){
- $return .= "";
- $return .= "['<b>$name</b>'] {<div style='margin-left:10px;'>\n";
- $return .= echo_array($value,true);
- $return .= "</div>}";
- $return .= "\n\n";
- }else{
- if(is_string($value)){
- $value = "\"$value\"";
- }
- $return .= "['<b>$name</b>'] = $value\n\n";
- }
- }
- }
- if($return_me == true){
- return $return;
- }else{
- echo "<pre>".$return."</pre>";
- }
+ if(is_array($array) == false){
+ $return = "The provided variable is not an array.";
+ }else{
+ foreach($array as $name=>$value){
+ if(is_array($value)){
+ $return .= "";
+ $return .= "['<b>$name</b>'] {<div style=\"margin-left:10px;\">\n";
+ $return .= echo_array($value,true);
+ $return .= "</div>}";
+ $return .= "\n\n";
+ }else{
+ if(is_string($value)){
+ $value = "\"$value\"";
+ }
+ $return .= "['<b>$name</b>'] = $value\n\n";
+ }
+ }
+ }
+ if($return_me == true){
+ return $return;
+ }else{
+ echo "<pre>".$return."</pre>";
+ }
}
/****f* pfsense-utils/display_top_tabs
@@ -894,113 +907,115 @@ function echo_array($array,$return_me=false){
* null
******/
function display_top_tabs(& $tab_array, $no_drop_down = false) {
- global $HTTP_SERVER_VARS;
- global $config;
- global $g;
- global $tab_array_indent;
- global $tab_array_space;
- global $tab_array_char_limit;
-
- /* does the user have access to this tab?
- * master user has access to everything.
- * if the user does not have access, simply
- * unset the tab item.
- */
-
- /* empty string code */
- if ($tab_array_indent == '') {
- $tab_array_indent = 0;
- }
+ global $HTTP_SERVER_VARS;
+ global $config;
+ global $g;
+ global $tab_array_indent;
+ global $tab_array_space;
+ global $tab_array_char_limit;
+
+ /* does the user have access to this tab?
+ * master user has access to everything.
+ * if the user does not have access, simply
+ * unset the tab item.
+ */
+
+ /* empty string code */
+ if ($tab_array_indent == '') {
+ $tab_array_indent = 0;
+ }
- if ($tab_array_space == '') {
- $tab_array_space = 1;
- }
+ if ($tab_array_space == '') {
+ $tab_array_space = 1;
+ }
- if ($tab_array_char_limit == '') {
- $tab_array_char_limit = 92;
- }
+ if ($tab_array_char_limit == '') {
+ $tab_array_char_limit = 92;
+ }
- foreach ($tab_array as $tab_id => $ta){
- if(!isAllowedPage($ta[2]))
- unset ($tab_array[$tab_id]);
- }
+ foreach ($tab_array as $tab_id => $ta){
+ if(!isAllowedPage($ta[2]))
+ unset ($tab_array[$tab_id]);
+ }
- $tab_active_bg = "#EEEEEE";
- $tab_inactive_bg = "#777777";
- $nifty_tabs_corners = "#FFF";
- $font_color = "white";
-
- /* if tabcontrols.php exist for a theme, allow it to be overriden */
- $themename = $config['theme'];
- $filename = "/usr/local/www/themes/{$themename}/tabcontrols.php";
- if(file_exists($filename)) {
- $eval_code = file_get_contents($filename);
- eval($eval_code);
- }
-
- $tabcharcount = 0;
- foreach ($tab_array as $ta)
- $tabcharcount = $tabcharcount + strlen($ta[0]);
-
- if($no_drop_down == true) {
- $tabcharcount = 0;
- unset($tab_array_char_limit);
- }
+ $tab_active_bg = "#EEEEEE";
+ $tab_inactive_bg = "#777777";
+ $nifty_tabs_corners = "#FFF";
+ $font_color = "white";
+
+ /* if tabcontrols.php exist for a theme, allow it to be overriden */
+ $themename = $config['theme'];
+ $filename = "/usr/local/www/themes/{$themename}/tabcontrols.php";
+ if(file_exists($filename)) {
+ $eval_code = file_get_contents($filename);
+ eval($eval_code);
+ }
+
+ $tabcharcount = 0;
+ foreach ($tab_array as $ta)
+ $tabcharcount = $tabcharcount + strlen($ta[0]);
- // If the character count of the tab names is > 670
- // then show a select item dropdown menubox.
- if($tabcharcount > $tab_array_char_limit) {
- echo "Currently viewing: ";
- echo "<select name='TabSelect' onchange='tabs_will_go(this)'>\n";
- foreach ($tab_array as $ta) {
- if($ta[1]=="true")
- $selected = " SELECTED";
- else
- $selected = "";
- // Onclick in option will not work in some browser
- // echo "<option onClick=\"document.location='{$ta[2]}';\"{$selected}>{$ta['0']}</option>\n";
- echo "<option value=\"{$ta[2]}\"{$selected}>{$ta['0']}</option>\n";
- }
- echo "</select>\n<p/>";
- echo "<script type=\"text/javascript\">";
- echo " function tabs_will_go(obj){ document.location = obj.value; }";
- echo "</script>";
- } else {
- echo "<div class=\"newtabmenu\" style=\"margin:{$tab_array_space}px {$tab_array_indent}px; width:775px;\">\n";
- echo "<!-- Tabbed bar code-->\n";
- echo "<ul class=\"newtabmenu\">\n";
- $tabscounter = 0;
- foreach ($tab_array as $ta) {
- if ($ta[1] == true) {
- echo " <li class=\"newtabmenu_active\"><a href=\"{$ta[2]}\"><span>{$ta[0]}</span></a></li>\n";
- } else {
- echo " <li><a href=\"{$ta[2]}\"><span>{$ta[0]}</span></a></li>\n";
- }
- $tabscounter++;
- }
- echo "</ul>\n</div>\n";
- }
+ if($no_drop_down == true) {
+ $tabcharcount = 0;
+ unset($tab_array_char_limit);
+ }
+
+ // If the character count of the tab names is > 670
+ // then show a select item dropdown menubox.
+ if($tabcharcount > $tab_array_char_limit) {
+ echo "Currently viewing: ";
+ echo "<select name=\"TabSelect\" onchange=\"tabs_will_go(this)\">\n";
+ foreach ($tab_array as $ta) {
+ if($ta[1]=="true")
+ $selected = " selected=\"selected\"";
+ else
+ $selected = "";
+ // Onclick in option will not work in some browser
+ // echo "<option onclick=\"document.location='{$ta[2]}';\"{$selected}>{$ta['0']}</option>\n";
+ echo "<option value=\"{$ta[2]}\"{$selected}>{$ta['0']}</option>\n";
+ }
+ echo "</select>\n<p>&nbsp;</p>";
+ echo "<script type=\"text/javascript\">";
+ echo "\n//<![CDATA[\n";
+ echo " function tabs_will_go(obj){ document.location = obj.value; }\n";
+ echo "//]]>\n";
+ echo "</script>";
+ } else {
+ echo "<div class=\"newtabmenu\" style=\"margin:{$tab_array_space}px {$tab_array_indent}px; width:775px;\">\n";
+ echo "<!-- Tabbed bar code-->\n";
+ echo "<ul class=\"newtabmenu\">\n";
+ $tabscounter = 0;
+ foreach ($tab_array as $ta) {
+ if ($ta[1] == true) {
+ echo " <li class=\"newtabmenu_active\"><a href=\"{$ta[2]}\"><span>{$ta[0]}</span></a></li>\n";
+ } else {
+ echo " <li><a href=\"{$ta[2]}\"><span>{$ta[0]}</span></a></li>\n";
+ }
+ $tabscounter++;
+ }
+ echo "</ul>\n</div>\n";
+ }
}
function add_package_tabs($tabgroup, & $tab_array) {
- global $config, $g;
-
- if(!is_array($config['installedpackages']))
- return;
- if(!is_array($config['installedpackages']['tab']))
- return;
-
- foreach($config['installedpackages']['tab'] as $tab) {
- if ($tab['group'] !== $group)
- continue;
- $tab_entry = array();
- if($tab['name']) {
- $tab_entry[] = $tab['name'];
- $tab_entry[] = false;
- $tab_entry[] = $tab['url'];
- $tab_array[] = $tab_entry;
- }
- }
+ global $config, $g;
+
+ if(!is_array($config['installedpackages']))
+ return;
+ if(!is_array($config['installedpackages']['tab']))
+ return;
+
+ foreach($config['installedpackages']['tab'] as $tab) {
+ if ($tab['group'] !== $group)
+ continue;
+ $tab_entry = array();
+ if($tab['name']) {
+ $tab_entry[] = $tab['name'];
+ $tab_entry[] = false;
+ $tab_entry[] = $tab['url'];
+ $tab_array[] = $tab_entry;
+ }
+ }
}
function alias_info_popup($alias_id){
@@ -1009,37 +1024,37 @@ function alias_info_popup($alias_id){
$close_title="title='".gettext('move mouse out this alias to hide')."'";
if (is_array($config['aliases']['alias'][$alias_id])){
$alias_name=$config['aliases']['alias'][$alias_id];
- $alias_objects_with_details = "<table width='100%' border='0' cellpadding='2' cellspacing='0'>";
+ $alias_objects_with_details = "<table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"0\" summary=\"alias info popup\">";
if ($alias_name['url']) {
exec("/sbin/pfctl -t {$alias_name['name']} -T show | wc -l", $total_entries);
$counter=preg_replace("/\D/","",$total_entries[0]);
exec("/sbin/pfctl -t {$alias_name['name']} -T show | head -10002", $alias_addresses);
- $alias_objects_with_details .= "<tr><td colspan='3' $close_title class='vncell'>{$alias_name['url']}</td></tr>";
+ $alias_objects_with_details .= "<tr><td colspan=\"3\" $close_title class=\"vncell\">{$alias_name['url']}</td></tr>";
$x=0;
foreach ($alias_addresses as $alias_ports_address ) {
switch ($x) {
case 0:
$x++;
- $alias_objects_with_details .= "<tr><td $close_title class='vncell' width='33%' style='background: #FFFFFF;color: #000000;'>{$alias_ports_address}</td>";
+ $alias_objects_with_details .= "<tr><td $close_title class=\"vncell\" width=\"33%\" style=\"background: #FFFFFF;color: #000000;\">{$alias_ports_address}</td>";
break;
case 1:
$x++;
- $alias_objects_with_details .= "<td $close_title class='vncell' width='33%' style='background: #FFFFFF;color: #000000;'>{$alias_ports_address}</td>";
+ $alias_objects_with_details .= "<td $close_title class=\"vncell\" width=\"33%\" style=\"background: #FFFFFF;color: #000000;\">{$alias_ports_address}</td>";
break;
default:
$x=0;
- $alias_objects_with_details .= "<td $close_title class='vncell' width='33%' style='background: #FFFFFF;color: #000000;'>{$alias_ports_address}</td><tr>";
+ $alias_objects_with_details .= "<td $close_title class=\"vncell\" width=\"33%\" style=\"background: #FFFFFF;color: #000000;\">{$alias_ports_address}</td><tr>";
break;
}
}
for ($y = $x; $y <= $x; $y++) {
- $alias_objects_with_details .= "<td $close_title class='vncell' width='33%'>&nbsp;</td>";
+ $alias_objects_with_details .= "<td $close_title class=\"vncell\" width=\"33%\">&nbsp;</td>";
}
if ($x > 0) {
$alias_objects_with_details .= "</tr>";
}
if ($counter > 10002) {
- $alias_objects_with_details .= "<tr><td colspan='3'> listing only first 10k items</td><tr>";
+ $alias_objects_with_details .= "<tr><td colspan=\"3\"> listing only first 10k items</td><tr>";
}
}
else{
@@ -1047,12 +1062,12 @@ function alias_info_popup($alias_id){
$alias_details = explode ("||", $alias_name['detail']);
$counter = 0;
foreach ($alias_addresses as $alias_ports_address) {
- $alias_objects_with_details .= "<tr><td $close_title width='5%' class='vncell' style='background: #FFFFFF;color: #000000;'>{$alias_addresses[$counter]}</td>";
+ $alias_objects_with_details .= "<tr><td $close_title width=\"5%\" class=\"vncell\" style=\"background: #FFFFFF;color: #000000;\">{$alias_addresses[$counter]}</td>";
$alias_detail_default = strpos ($alias_details[$counter],"Entry added");
if ($alias_details[$counter] != "" && $alias_detail_default === False)
- $alias_objects_with_details .="<td $close_title width='95%' class='vncell' style='background: #FFFFFF;color: #000000;'>{$alias_details[$counter]}</td>";
+ $alias_objects_with_details .="<td $close_title width=\"95%\" class=\"vncell\" style=\"background: #FFFFFF;color: #000000;\">{$alias_details[$counter]}</td>";
else
- $alias_objects_with_details .="<td $close_title width='95%' class='vncell' style='background: #FFFFFF;color: #000000;'>&nbsp;</td>";
+ $alias_objects_with_details .="<td $close_title width=\"95%\" class=\"vncell\" style=\"background: #FFFFFF;color: #000000;\">&nbsp;</td>";
$alias_objects_with_details .= "</tr>";
$counter++;
}
@@ -1063,7 +1078,7 @@ function alias_info_popup($alias_id){
if ($strlength >= $maxlength)
$alias_descr_substr = substr($alias_descr_substr, 0, $maxlength) . "...";
$item_text = ($counter > 1 ? "items" : "item");
- $alias_caption = "{$alias_descr_substr} - {$counter} {$item_text}<a href='/firewall_aliases_edit.php?id={$alias_id}' title='".gettext('edit this alias')."'>&nbsp;&nbsp;edit </a>";
+ $alias_caption = "{$alias_descr_substr} - {$counter} {$item_text}<a href=\"/firewall_aliases_edit.php?id={$alias_id}\" title=\"".gettext('edit this alias')."\">&nbsp;&nbsp;edit </a>";
$strlength = strlen ($alias_caption);
print "<h1>{$alias_caption}</h1>" . $alias_objects_with_details;
}
@@ -1074,7 +1089,7 @@ function rule_popup($src,$srcport,$dst,$dstport){
if ($config['aliases']['alias'] <> "" and is_array($config['aliases']['alias'])) {
$descriptions = array ();
foreach ($config['aliases']['alias'] as $alias_id=>$alias_name){
- $loading_image="<a><img src=\'/themes/{$g['theme']}/images/misc/loader.gif\'> " .gettext("loading...")."</a>";
+ $loading_image="<a><img src=\'/themes/{$g['theme']}/images/misc/loader.gif\' alt=\'loader\' /> " .gettext("loading...")."</a>";
switch ($alias_name['type']){
case "port":
$width="250";
@@ -1086,7 +1101,7 @@ function rule_popup($src,$srcport,$dst,$dstport){
$width="350";
break;
}
- $span_begin = "<span style=\"cursor: help;\" onmouseover=\"var response_html=domTT_activate(this, event, 'id','ttalias_{$alias_id}','content','{$loading_image}', 'trail', true, 'delay', 300, 'fade', 'both', 'fadeMax', 93, 'styleClass', 'niceTitle','type','velcro','width',{$width});alias_popup('{$alias_id}','{$g["theme"]}','".gettext('loading...')."');\" onmouseout=\"this.style.color = ''; domTT_mouseout(this, event);\"><u>";
+ $span_begin = "<span style=\"cursor: help;\" onmouseover=\"var response_html=domTT_activate(this, event, 'id','ttalias_{$alias_id}','content','{$loading_image}', 'trail', true, 'delay', 300, 'fade', 'both', 'fadeMax', 93, 'styleClass', 'niceTitle','type','velcro','width',{$width});alias_popup('{$alias_id}','{$g['theme']}','".gettext('loading...')."');\" onmouseout=\"this.style.color = ''; domTT_mouseout(this, event);\"><u>";
$span_end = "</u></span>";
if ($alias_name['name'] == $src) {
$descriptions['src'] = $span_begin;
@@ -1106,7 +1121,7 @@ function rule_popup($src,$srcport,$dst,$dstport){
}
}
return $descriptions;
- }
+ }
}
$timezone = $config['system']['timezone'];
diff --git a/usr/local/www/head.inc b/usr/local/www/head.inc
index c8454a6..0bc1d00 100755
--- a/usr/local/www/head.inc
+++ b/usr/local/www/head.inc
@@ -9,37 +9,57 @@ $pagetitle = gentitle( $pgtitle );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html>
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title><?php echo($config['system']['hostname'] . "." . $config['system']['domain'] . " - " . $pagetitle); ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="apple-touch-icon" href="/themes/<?php echo $g['theme']; ?>/apple-touch-icon.png"/>
<?php
if (file_exists("{$g['www_path']}/themes/{$g['theme']}/table.css")):
- echo "<link rel=\"stylesheet\" href=\"/themes/{$g['theme']}/table.css\" />";
+ echo "<link type=\"text/css\" rel=\"stylesheet\" href=\"/themes/{$g['theme']}/table.css\" />";
else:
- echo "<link rel=\"stylesheet\" href=\"/css/table.css\" media=\"all\" />";
+ echo "<link type=\"text/css\" rel=\"stylesheet\" href=\"/css/table.css\" media=\"all\" />";
endif;
?>
-
+
<?php if (strpos($_SERVER["SCRIPT_FILENAME"], "wizard.php") !== false &&
file_exists("{$g['www_path']}/themes/{$g['theme']}/wizard.css")): ?>
- <?php echo "<style type=\"text/css\" src=\"/themes/{$g['theme']}/wizard.css\"></style>"; ?>
+ <?php echo "<link type=\"text/css\" rel=\"stylesheet\" href=\"/themes/{$g['theme']}/wizard.css\" />"; ?>
<?php else: ?>
- <link rel="stylesheet" href="/themes/<?php echo $g['theme']; ?>/all.css" media="all" />
+ <link type="text/css" rel="stylesheet" href="/themes/<?php echo $g['theme']; ?>/all.css" media="all" />
<?php endif; ?>
- <link rel="stylesheet" type="text/css" href="/niftycssCode.css">
- <link rel="stylesheet" type="text/css" href="/niftycssprintCode.css" media="print">
- <link rel="stylesheet" type="text/css" href="/themes/<?=$g['theme']?>/new_tab_menu.css" media="all">
+ <link rel="stylesheet" type="text/css" href="/niftycssCode.css" />
+ <link rel="stylesheet" type="text/css" href="/niftycssprintCode.css" media="print" />
+ <link rel="stylesheet" type="text/css" href="/themes/<?=$g['theme']?>/new_tab_menu.css" media="all" />
<script type="text/javascript" src="/javascript/niftyjsCode.js"></script>
<script type="text/javascript" src="/javascript/jquery.js"></script>
<script type="text/javascript" src="/javascript/jquery/jquery-ui.custom.min.js"></script>
<script type="text/javascript">
+ //<![CDATA[
var theme = "<?php echo $g['theme']; ?>";
jQuery.noConflict();
+ //]]>
</script>
+
+ <script type="text/javascript" src="/javascript/sorttable.js"></script>
+ <script type="text/javascript" src="/javascript/ticker.js"></script>
+ <style type="text/css" id="antiClickjack">
+ /*<![CDATA[*/
+ body{display:none}
+ /*]]>*/
+ </style>
+ <script type="text/javascript">
+ //<![CDATA[
+ if (self === top) {
+ var antiClickjack = document.getElementById("antiClickjack"); antiClickjack.parentNode.removeChild(antiClickjack);
+ } else {
+ top.location = self.location;
+ }
+ //]]>
+ </script>
+
<?php echo "\t<script type=\"text/javascript\" src=\"/themes/{$g['theme']}/loader.js\"></script>\n"; ?>
<?php
if($_GET['enablefirebuglite']) {
diff --git a/usr/local/www/headjs.php b/usr/local/www/headjs.php
index 4cf1ab2..bfea6e9 100644
--- a/usr/local/www/headjs.php
+++ b/usr/local/www/headjs.php
@@ -48,7 +48,10 @@ function getHeadJS() {
var input_errors = '';
jQuery(document).ready(init);
";
+ if (!session_id())
+ session_start();
$_SESSION['NO_AJAX'] == "True" ? $noajax = "var noAjaxOnSubmit = true;" : $noajax = "var noAjaxOnSubmit = false;";
+ session_commit();
$headjs .= "
{$noajax}
@@ -60,7 +63,7 @@ function getHeadJS() {
jQuery(\"#submit\").click(submit_form);
jQuery('#submit').click(function() {return false;});
- var to_insert = \"<div style='visibility:hidden' id='loading' name='loading'><img src='{$loader_gif}' \/><\/div>\";
+ var to_insert = \"<div style='visibility:hidden' id='loading' name='loading'><img src='{$loader_gif}' alt='loader' \/><\/div>\";
jQuery('#submit').before(to_insert);
}
}
@@ -70,7 +73,7 @@ function getHeadJS() {
//alert(Form.serialize($('iform')));
if(jQuery('#inputerrors'))
- jQuery('#inputerrors').html('<center><b><i>Loading...</i></b></center>');
+ jQuery('#inputerrors').html('<center><b><i>Loading...<\/i><\/b><\/center>');
/* dsh: Introduced because pkg_edit tries to set some hidden fields
* if executing submit's onclick event. The click gets deleted
@@ -131,10 +134,10 @@ function getHeadJS() {
return;
}
- message_html = '<table height=\"32\" width=\"100%\"><tr><td>';
+ message_html = '<table height=\"32\" width=\"100%\" summary=\"redbox\"><tr><td>';
message_html += '<div style=\"background-color:#990000\" id=\"redbox\">';
- message_html += '<table width=\"100%\"><tr><td width=\"8%\">';
- message_html += '<img style=\"vertical-align:center\" src=\"/themes/{$g['theme']}/images/icons/icon_exclam.gif\" width=\"28\" height=\"32\" \/>';
+ message_html += '<table width=\"100%\" summary=\"message\"><tr><td width=\"8%\">';
+ message_html += '<img style=\"vertical-align:center\" src=\"/themes/{$g['theme']}/images/icons/icon_exclam.gif\" width=\"28\" height=\"32\" alt=\"exclamation\" \/>';
message_html += '<\/td><td width=\"70%\"><font color=\"white\">';
message_html += '<b>' + message + '<\/b><\/font><\/td>';
diff --git a/usr/local/www/includes/functions.inc.php b/usr/local/www/includes/functions.inc.php
index b6afbff..b209641 100644
--- a/usr/local/www/includes/functions.inc.php
+++ b/usr/local/www/includes/functions.inc.php
@@ -42,19 +42,19 @@ function get_gatewaystats() {
switch(strtolower($gws['status'])) {
case "none":
$online = "Online";
- $bgcolor = "lightgreen";
+ $bgcolor = "#90EE90"; // lightgreen
break;
case "down":
$online = "Offline";
- $bgcolor = "lightcoral";
+ $bgcolor = "#F08080"; // lightcoral
break;
case "delay":
$online = "Latency";
- $bgcolor = "khaki";
+ $bgcolor = "#F0E68C"; // khaki
break;
case "loss":
$online = "Packetloss";
- $bgcolor = "khaki";
+ $bgcolor = "#F0E68C"; // khaki
break;
default:
$online = "Pending";
@@ -65,10 +65,10 @@ function get_gatewaystats() {
$gws['delay'] = "~";
$gws['loss'] = "~";
$online = "Unknown";
- $bgcolor = "lightblue";
+ $bgcolor = "#ADD8E6"; // lightblue
}
$data .= ($online == "Pending") ? "{$online},{$online}," : "{$gws['delay']},{$gws['loss']},";
- $data .= "<table><tr><td bgcolor=\"$bgcolor\" > $online </td></td></tr></table>";
+ $data .= "<table><tr><td bgcolor=\"$bgcolor\">&nbsp;$online&nbsp;</td></td></tr></table>";
}
return $data;
}
@@ -312,4 +312,4 @@ function get_interfacestatus() {
return $data;
}
-?>
+?> \ No newline at end of file
diff --git a/usr/local/www/index.php b/usr/local/www/index.php
index 1287672..7673cb2 100755
--- a/usr/local/www/index.php
+++ b/usr/local/www/index.php
@@ -42,9 +42,6 @@
##|*MATCH=index.php*
##|-PRIV
-// Turn off csrf for the dashboard
-$nocsrf = true;
-
// Turn on buffering to speed up rendering
ini_set('output_buffering','true');
@@ -97,6 +94,9 @@ $widgetlist = array();
while (false !== ($filename = readdir($dirhandle))) {
$periodpos = strpos($filename, ".");
+ /* Ignore files not ending in .php */
+ if (substr($filename, -4, 4) != ".php")
+ continue;
$widgetname = substr($filename, 0, $periodpos);
$widgetnames[] = $widgetname;
if ($widgetname != "system_information")
@@ -158,8 +158,8 @@ if (!is_array($config['widgets'])) {
if(file_exists('/conf/trigger_initial_wizard')) {
echo <<<EOF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html>
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>{$g['product_name']}.localdomain - {$g['product_name']} first time setup</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
@@ -172,13 +172,13 @@ EOF;
echo "<body link=\"#0000CC\" vlink=\"#0000CC\" alink=\"#0000CC\">\n";
if(file_exists("/usr/local/www/themes/{$g['theme']}/wizard.css"))
- echo "<link rel=\"stylesheet\" href=\"/themes/{$g['theme']}/wizard.css\" media=\"all\" />\n";
+ echo "<link type=\"text/css\" rel=\"stylesheet\" href=\"/themes/{$g['theme']}/wizard.css\" media=\"all\" />\n";
else
- echo "<link rel=\"stylesheet\" href=\"/themes/{$g['theme']}/all.css\" media=\"all\" />";
+ echo "<link type=\"text/css\" rel=\"stylesheet\" href=\"/themes/{$g['theme']}/all.css\" media=\"all\" />";
echo "<form>\n";
echo "<center>\n";
- echo "<img src=\"/themes/{$g['theme']}/images/logo.gif\" border=\"0\"><p>\n";
+ echo "<img src=\"/themes/{$g['theme']}/images/logo.gif\" border=\"0\" alt=\"logo\" /><p>\n";
echo "<div \" style=\"width:700px;background-color:#ffffff\" id=\"nifty\">\n";
echo sprintf(gettext("Welcome to %s!\n"),$g['product_name']) . "<p>";
echo gettext("One moment while we start the initial setup wizard.") . "<p>\n";
@@ -187,8 +187,10 @@ EOF;
echo "</div>\n";
echo "<meta http-equiv=\"refresh\" content=\"1;url=wizard.php?xml=setup_wizard.xml\">\n";
echo "<script type=\"text/javascript\">\n";
+ echo "//<![CDATA[\n";
echo "NiftyCheck();\n";
echo "Rounded(\"div#nifty\",\"all\",\"#AAA\",\"#FFFFFF\",\"smooth\");\n";
+ echo "//]]>\n";
echo "</script>\n";
exit;
}
@@ -271,8 +273,8 @@ foreach($phpincludefiles as $includename) {
##begin AJAX
$jscriptstr = <<<EOD
-<script language="javascript" type="text/javascript">
-
+<script type="text/javascript">
+//<![CDATA[
function widgetAjax(widget) {
uri = "widgets/widgets/" + widget + ".widget.php";
@@ -454,10 +456,10 @@ function changeTabDIV(selectedDiv){
}
}
}
-
+//]]>
</script>
EOD;
-$closehead = false;
+
## Set Page Title and Include Header
$pgtitle = array(gettext("Status: Dashboard"));
@@ -467,18 +469,17 @@ include("head.inc");
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
-<script language="javascript" type="text/javascript">
-// <![CDATA[
+<script type="text/javascript">
+//<![CDATA[
columns = ['col1','col2'];
-// ]]>
-
+//]]>
</script>
<?php
include("fbegin.inc");
echo $jscriptstr;
if(!file_exists("/usr/local/www/themes/{$g['theme']}/no_big_logo"))
- echo "<center><img src=\"./themes/".$g['theme']."/images/logobig.jpg\"></center><br>";
+ echo "<center><img src=\"./themes/".$g['theme']."/images/logobig.jpg\" alt=\"big logo\" /></center><br />";
if ($savemsg)
print_info_box($savemsg);
@@ -508,12 +509,12 @@ pfSense_handle_custom_code("/usr/local/pkg/dashboard/pre_dashboard");
//echo widget title
?>
<span style="cursor: pointer;" onclick='return addWidget("<?php echo $widgetname; ?>")'>
- <u><?php echo $$widgettitle; ?></u></span><br>
+ <u><?php echo $$widgettitle; ?></u></span><br />
<?php
}
else {?>
<span style="cursor: pointer;" onclick='return addWidget("<?php echo $widgetname; ?>")'>
- <u><?php echo $nicename; ?></u></span><br><?php
+ <u><?php echo $nicename; ?></u></span><br /><?php
}
}
?>
@@ -523,18 +524,16 @@ pfSense_handle_custom_code("/usr/local/pkg/dashboard/pre_dashboard");
<div id="welcomecontainer" style="display:none">
<div id="welcome-container">
- <h1>
- <div style="float:left;width:80%;padding: 2px">
- <?=gettext("Welcome to the Dashboard page"); ?>!
- </div>
- <div onclick="domTT_close(this);showAllWidgets();" style="float:right;width:8%; cursor:pointer;padding: 5px;" >
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_close.gif" />
- </div>
- <div style="clear:both;"></div>
- </h1>
+ <div style="float:left;width:80%;padding: 2px">
+ <h1><?=gettext("Welcome to the Dashboard page"); ?>!</h1>
+ </div>
+ <div onclick="domTT_close(this);showAllWidgets();" style="float:right;width:8%; cursor:pointer;padding: 5px;" >
+ <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_close.gif" alt="close" />
+ </div>
+ <div style="clear:both;"></div>
<p>
<?=gettext("This page allows you to customize the information you want to be displayed!");?><br/>
- <?=gettext("To get started click the");?> <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif"> <?=gettext("icon to add widgets.");?><br/>
+ <?=gettext("To get started click the");?> <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" alt="plus" /> <?=gettext("icon to add widgets.");?><br/>
<br/>
<?=gettext("You can move any widget around by clicking and dragging the title.");?>
</p>
@@ -542,7 +541,7 @@ pfSense_handle_custom_code("/usr/local/pkg/dashboard/pre_dashboard");
</div>
<form action="index.php" method="post">
-<input type="hidden" value="" name="sequence" id="sequence">
+<input type="hidden" value="" name="sequence" id="sequence" />
<img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" alt="<?=gettext("Click here to add widgets"); ?>" style="cursor: pointer;" onmouseup="domTT_activate(this, event, 'content', document.getElementById('content1'), 'type', 'velcro', 'delay', 0, 'fade', 'both', 'fadeMax', 100, 'styleClass', 'niceTitle');" />
<img src="./themes/<?= $g['theme']; ?>/images/icons/icon_info_pkg.gif" alt="<?=gettext("Click here for help"); ?>" style="cursor: help;" onmouseup="hideAllWidgets();domTT_activate(this, event, 'content', document.getElementById('welcome-container'), 'type', 'sticky', 'closeLink', '','delay', 0, 'fade', 'both', 'fadeMax', 100, 'styleClass', 'niceTitle');" />
@@ -550,7 +549,6 @@ pfSense_handle_custom_code("/usr/local/pkg/dashboard/pre_dashboard");
&nbsp;&nbsp;&nbsp;
<input id="submit" name="submit" type="submit" style="display:none" onclick="return updatePref();" class="formbtn" value="<?=gettext("Save Settings");?>" />
-</p>
</form>
<div id="niftyOutter">
<?php
@@ -659,7 +657,7 @@ pfSense_handle_custom_code("/usr/local/pkg/dashboard/pre_dashboard");
?>
<div style="clear:both;"></div>
<div id="<?php echo $widgetname;?>-container" class="widgetdiv" style="display:<?php echo $divdisplay; ?>;">
- <input type="hidden" value="<?php echo $inputdisplay;?>" id="<?php echo $widgetname;?>-container-input" name="<?php echo $widgetname;?>-container-input">
+ <input type="hidden" value="<?php echo $inputdisplay;?>" id="<?php echo $widgetname;?>-container-input" name="<?php echo $widgetname;?>-container-input" />
<div id="<?php echo $widgetname;?>-topic" class="widgetheader" style="cursor:move">
<div style="float:left;">
<?php
@@ -670,7 +668,7 @@ pfSense_handle_custom_code("/usr/local/pkg/dashboard/pre_dashboard");
{
//only show link if defined
if ($$widgettitlelink != "") {?>
- <u><span onClick="location.href='/<?php echo $$widgettitlelink;?>'" style="cursor:pointer">
+ <u><span onclick="location.href='/<?php echo $$widgettitlelink;?>'" style="cursor:pointer">
<?php }
//echo widget title
echo $$widgettitle;
@@ -680,7 +678,7 @@ pfSense_handle_custom_code("/usr/local/pkg/dashboard/pre_dashboard");
}
else{
if ($$widgettitlelink != "") {?>
- <u><span onClick="location.href='/<?php echo $$widgettitlelink;?>'" style="cursor:pointer">
+ <u><span onclick="location.href='/<?php echo $$widgettitlelink;?>'" style="cursor:pointer">
<?php }
echo $nicename;
if ($$widgettitlelink != "") { ?>
@@ -690,20 +688,18 @@ pfSense_handle_custom_code("/usr/local/pkg/dashboard/pre_dashboard");
?>
</div>
<div align="right" style="float:right;">
- <div id="<?php echo $widgetname;?>-configure" onclick='return configureWidget("<?php echo $widgetname;?>")' style="display:none; cursor:pointer" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_configure.gif" /></div>
- <div id="<?php echo $widgetname;?>-open" onclick='return showWidget("<?php echo $widgetname;?>",true)' style="display:<?php echo $showWidget;?>; cursor:pointer" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_open.gif" /></div>
- <div id="<?php echo $widgetname;?>-min" onclick='return minimizeWidget("<?php echo $widgetname;?>",true)' style="display:<?php echo $mindiv;?>; cursor:pointer" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_minus.gif"/></div>
- <div id="<?php echo $widgetname;?>-close" onclick='return closeWidget("<?php echo $widgetname;?>",true)' style="display:inline; cursor:pointer" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_close.gif" /></div>
+ <div id="<?php echo $widgetname;?>-configure" onclick='return configureWidget("<?php echo $widgetname;?>")' style="display:none; cursor:pointer" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_configure.gif" alt="configure" /></div>
+ <div id="<?php echo $widgetname;?>-open" onclick='return showWidget("<?php echo $widgetname;?>",true)' style="display:<?php echo $showWidget;?>; cursor:pointer" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_open.gif" alt="open" /></div>
+ <div id="<?php echo $widgetname;?>-min" onclick='return minimizeWidget("<?php echo $widgetname;?>",true)' style="display:<?php echo $mindiv;?>; cursor:pointer" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_minus.gif" alt="minimize" /></div>
+ <div id="<?php echo $widgetname;?>-close" onclick='return closeWidget("<?php echo $widgetname;?>",true)' style="display:inline; cursor:pointer" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_close.gif" alt="close" /></div>
</div>
<div style="clear:both;"></div>
</div>
<?php if ($divdisplay != "block") { ?>
- <div id="<?php echo $widgetname;?>-loader" style="display:<?php echo $display; ?>;">
- <br>
- <center>
- <img src="./themes/<?= $g['theme']; ?>/images/misc/widget_loader.gif" width=25 height=25 alt="<?=gettext("Loading selected widget"); ?>...">
- </center>
- <br>
+ <div id="<?php echo $widgetname;?>-loader" style="display:<?php echo $display; ?>;" align="center">
+ <br />
+ <img src="./themes/<?= $g['theme']; ?>/images/misc/widget_loader.gif" width="25" height="25" alt="<?=gettext("Loading selected widget"); ?>..." />
+ <br />
</div> <?php } if ($divdisplay != "block") $display = none; ?>
<div id="<?php echo $widgetname;?>" style="display:<?php echo $display; ?>;">
<?php
@@ -727,6 +723,7 @@ pfSense_handle_custom_code("/usr/local/pkg/dashboard/pre_dashboard");
<?php include("fend.inc"); ?>
<script type="text/javascript">
+//<![CDATA[
jQuery(document).ready(function(in_event)
{
jQuery('#col1').sortable({connectWith: '#col2', dropOnEmpty: true, handle: '.widgetheader', change: showSave});
@@ -737,6 +734,7 @@ pfSense_handle_custom_code("/usr/local/pkg/dashboard/pre_dashboard");
domTT_activate('welcome1', null, 'x', 287, 'y', 107, 'content', document.getElementById('welcome-container'), 'type', 'sticky', 'closeLink', '','delay', 1000, 'fade', 'both', 'fadeMax', 100, 'styleClass', 'niceTitle');
<?php } ?>
});
+//]]>
</script>
<?php
//build list of javascript include files
@@ -753,7 +751,6 @@ pfSense_handle_custom_code("/usr/local/pkg/dashboard/pre_dashboard");
echo "<script src='{$directory}{$jsincludename}' type='text/javascript'></script>\n";
}
?>
-</script>
</body>
</html>
diff --git a/usr/local/www/interfaces.php b/usr/local/www/interfaces.php
index c92b193..17788e3 100755
--- a/usr/local/www/interfaces.php
+++ b/usr/local/www/interfaces.php
@@ -86,13 +86,14 @@ $a_gateways = &$config['gateways']['gateway_item'];
$wancfg = &$config['interfaces'][$if];
$old_wancfg = $wancfg;
+$old_wancfg['realif'] = get_real_interface($if);
+$old_ppps = $a_ppps;
// Populate page descr if it does not exist.
if ($if == "wan" && !$wancfg['descr'])
$wancfg['descr'] = "WAN";
else if ($if == "lan" && !$wancfg['descr'])
$wancfg['descr'] = "LAN";
-
foreach ($a_ppps as $pppid => $ppp) {
if ($wancfg['if'] == $ppp['if'])
break;
@@ -197,7 +198,7 @@ switch($wancfg['ipaddr']) {
$pconfig['type'] = $wancfg['ipaddr'];
break;
default:
- if(is_ipaddr($wancfg['ipaddr'])) {
+ if(is_ipaddrv4($wancfg['ipaddr'])) {
$pconfig['type'] = "staticv4";
$pconfig['ipaddr'] = $wancfg['ipaddr'];
$pconfig['subnet'] = $wancfg['subnet'];
@@ -213,7 +214,7 @@ switch($wancfg['ipaddrv6']) {
break;
case "dhcp6":
$pconfig['dhcp6-duid'] = $wancfg['dhcp6-duid'];
- if($wancfg['dhcp6-ia-pd-len'] == "")
+ if(!isset($wancfg['dhcp6-ia-pd-len']))
$wancfg['dhcp6-ia-pd-len'] = "none";
$pconfig['dhcp6-ia-pd-len'] = $wancfg['dhcp6-ia-pd-len'];
$pconfig['type6'] = "dhcp6";
@@ -240,7 +241,7 @@ switch($wancfg['ipaddrv6']) {
$pconfig['gateway-6rd'] = $wancfg['gateway-6rd'];
break;
default:
- if(is_ipaddr($wancfg['ipaddrv6'])) {
+ if(is_ipaddrv6($wancfg['ipaddrv6'])) {
$pconfig['type6'] = "staticv6";
$pconfig['ipaddrv6'] = $wancfg['ipaddrv6'];
$pconfig['subnetv6'] = $wancfg['subnetv6'];
@@ -272,7 +273,7 @@ if (isset($wancfg['wireless'])) {
$wl_chaninfo = get_wireless_channel_info($if);
$wl_sysctl_prefix = 'dev.' . $wlanbaseif_split[1] . '.' . $wlanbaseif_split[2];
$wl_sysctl = get_sysctl(array("{$wl_sysctl_prefix}.diversity", "{$wl_sysctl_prefix}.txantenna", "{$wl_sysctl_prefix}.rxantenna",
- "{$wl_sysctl_prefix}.slottime", "{$wl_sysctl_prefix}.acktimeout", "{$wl_sysctl_prefix}.ctstimeout"));
+ "{$wl_sysctl_prefix}.slottime", "{$wl_sysctl_prefix}.acktimeout", "{$wl_sysctl_prefix}.ctstimeout"));
$wl_regdomain_xml_attr = array();
$wl_regdomain_xml = parse_xml_regdomain($wl_regdomain_xml_attr);
$wl_regdomains = &$wl_regdomain_xml['regulatory-domains']['rd'];
@@ -354,19 +355,12 @@ if ($_POST['apply']) {
if (file_exists("{$g['tmp_path']}/.interfaces.apply")) {
$toapplylist = unserialize(file_get_contents("{$g['tmp_path']}/.interfaces.apply"));
- foreach ($toapplylist as $ifapply => $values) {
+ foreach ($toapplylist as $ifapply => $ifcfgo) {
if (isset($config['interfaces'][$ifapply]['enable'])) {
- /* check if any old addresses need purging */
- if(is_ipaddrv6($values['ipaddrv6'])) {
- $realif = get_real_interface("$ifapply");
- log_error("removing old v6 address {$values['ipaddrv6']} on {$realif}");
- mwexec("/sbin/ifconfig {$realif} inet6 {$values['ipaddrv6']} -alias");
- }
- interface_reconfigure($ifapply, true);
- } else {
-
- interface_bring_down($ifapply);
- }
+ interface_bring_down($ifapply, false, $ifcfgo);
+ interface_configure($ifapply, true);
+ } else
+ interface_bring_down($ifapply, true, $ifcfgo);
}
}
/* restart snmp so that it binds to correct address */
@@ -375,11 +369,14 @@ if ($_POST['apply']) {
/* sync filter configuration */
setup_gateways_monitor();
- clear_subsystem_dirty('staticroutes');
+ clear_subsystem_dirty('interfaces');
filter_configure();
enable_rrd_graphing();
+
+ if (is_subsystem_dirty('staticroutes') && (system_routing_configure() == 0))
+ clear_subsystem_dirty('staticroutes');
}
@unlink("{$g['tmp_path']}/.interfaces.apply");
header("Location: interfaces.php?if={$if}");
@@ -395,11 +392,9 @@ if ($_POST['apply']) {
} else {
$toapplylist = array();
}
- $toapplylist[$if] = array();
+ $toapplylist[$if]['ifcfg'] = $wancfg;
+ $toapplylist[$if]['ppps'] = $a_ppps;
/* we need to be able remove IP aliases for IPv6 */
- if(($old_wancfg['ipaddrv6'] != $wancfg['ipaddrv6']) && (is_ipaddrv6($old_wancfg['ipaddrv6']))) {
- $toapplylist[$if]['ipaddrv6'] = "{$old_wancfg['ipaddrv6']}";
- }
file_put_contents("{$g['tmp_path']}/.interfaces.apply", serialize($toapplylist));
header("Location: interfaces.php?if={$if}");
exit;
@@ -442,7 +437,7 @@ if ($_POST['apply']) {
/* input validation */
if (isset($config['dhcpd']) && isset($config['dhcpd'][$if]['enable']) && (! preg_match("/^staticv4/", $_POST['type'])))
$input_errors[] = gettext("The DHCP Server is active on this interface and it can be used only with a static IP configuration. Please disable the DHCP Server service on this interface first, then change the interface configuration.");
- if (isset($config['dhcpd6']) && isset($config['dhcpd6'][$if]['enable']) && (! preg_match("/^staticv6/", $_POST['type6'])))
+ if (isset($config['dhcpdv6']) && isset($config['dhcpdv6'][$if]['enable']) && (! preg_match("/^staticv6/", $_POST['type6'])))
$input_errors[] = gettext("The DHCP6 Server is active on this interface and it can be used only with a static IPv6 configuration. Please disable the DHCPv6 Server service on this interface first, then change the interface configuration.");
switch(strtolower($_POST['type'])) {
@@ -517,9 +512,11 @@ if ($_POST['apply']) {
break;
case "6rd":
foreach ($ifdescrs as $ifent => $ifdescr) {
- if ($if != $ifent && (($config[interfaces][$ifent]['ipaddrv6'] == $_POST['type6']) || ($config[interfaces][$ifent]['ipaddrv6'] == "6to4")) ) {
- $input_errors[] = sprintf(gettext("You can only have one interface configured as %s or 6to4."),$_POST['type6']);
- break;
+ if ($if != $ifent && ($config[interfaces][$ifent]['ipaddrv6'] == $_POST['type6'])) {
+ if ($config[interfaces][$ifent]['prefix-6rd'] == $_POST['prefix-6rd']) {
+ $input_errors[] = gettext("You can only have one interface configured in 6rd with same prefix.");
+ break;
+ }
}
}
if (in_array($wancfg['ipaddrv6'], array()))
@@ -527,8 +524,8 @@ if ($_POST['apply']) {
break;
case "6to4":
foreach ($ifdescrs as $ifent => $ifdescr) {
- if ($if != $ifent && (($config[interfaces][$ifent]['ipaddrv6'] == $_POST['type6']) || ($config[interfaces][$ifent]['ipaddrv6'] == "6rd")) ) {
- $input_errors[] = sprintf(gettext("You can only have one interface configured as %s or 6rd."),$_POST['type6']);
+ if ($if != $ifent && ($config[interfaces][$ifent]['ipaddrv6'] == $_POST['type6'])) {
+ $input_errors[] = sprintf(gettext("You can only have one interface configured as 6to4."),$_POST['type6']);
break;
}
}
@@ -551,18 +548,49 @@ if ($_POST['apply']) {
break;
}
-
+
/* normalize MAC addresses - lowercase and convert Windows-ized hyphenated MACs to colon delimited */
+ $staticroutes = get_staticroutes(true);
$_POST['spoofmac'] = strtolower(str_replace("-", ":", $_POST['spoofmac']));
- if (($_POST['ipaddr'] && !is_ipaddr($_POST['ipaddr'])))
- $input_errors[] = gettext("A valid IPv4 address must be specified.");
- if (($_POST['ipaddrv6'] && !is_ipaddr($_POST['ipaddrv6'])))
- $input_errors[] = gettext("A valid IPv6 address must be specified.");
+ if ($_POST['ipaddr']) {
+ if (!is_ipaddrv4($_POST['ipaddr']))
+ $input_errors[] = gettext("A valid IPv4 address must be specified.");
+ else {
+ if (is_ipaddr_configured($_POST['ipaddr'], $if, true))
+ $input_errors[] = gettext("This IPv4 address is being used by another interface or VIP.");
+
+ foreach ($staticroutes as $route_subnet) {
+ list($network, $subnet) = explode("/", $route_subnet);
+ if ($_POST['subnet'] == $subnet && $network == gen_subnet($_POST['ipaddr'], $_POST['subnet'])) {
+ $input_errors[] = gettext("This IPv4 address conflicts with a Static Route.");
+ break;
+ }
+ unset($network, $subnet);
+ }
+ }
+ }
+ if ($_POST['ipaddrv6']) {
+ if (!is_ipaddrv6($_POST['ipaddrv6']))
+ $input_errors[] = gettext("A valid IPv6 address must be specified.");
+ else {
+ if (is_ipaddr_configured($_POST['ipaddrv6'], $if, true))
+ $input_errors[] = gettext("This IPv6 address is being used by another interface or VIP.");
+
+ foreach ($staticroutes as $route_subnet) {
+ list($network, $subnet) = explode("/", $route_subnet);
+ if ($_POST['subnetv6'] == $subnet && $network == gen_subnetv6($_POST['ipaddrv6'], $_POST['subnetv6'])) {
+ $input_errors[] = gettext("This IPv6 address conflicts with a Static Route.");
+ break;
+ }
+ unset($network, $subnet);
+ }
+ }
+ }
if (($_POST['subnet'] && !is_numeric($_POST['subnet'])))
$input_errors[] = gettext("A valid subnet bit count must be specified.");
if (($_POST['subnetv6'] && !is_numeric($_POST['subnetv6'])))
$input_errors[] = gettext("A valid subnet bit count must be specified.");
- if (($_POST['alias-address'] && !is_ipaddr($_POST['alias-address'])))
+ if (($_POST['alias-address'] && !is_ipaddrv4($_POST['alias-address'])))
$input_errors[] = gettext("A valid alias IP address must be specified.");
if (($_POST['alias-subnet'] && !is_numeric($_POST['alias-subnet'])))
$input_errors[] = gettext("A valid alias subnet bit count must be specified.");
@@ -594,18 +622,48 @@ if ($_POST['apply']) {
$input_errors[] = gettext("A valid PPPoE reset minute must be specified (0-59).");
if ($_POST['pppoe_resetdate'] <> "" && !is_numeric(str_replace("/", "", $_POST['pppoe_resetdate'])))
$input_errors[] = gettext("A valid PPPoE reset date must be specified (mm/dd/yyyy).");
- if (($_POST['pptp_local'] && !is_ipaddr($_POST['pptp_local'])))
+ if (($_POST['pptp_local'] && !is_ipaddrv4($_POST['pptp_local'])))
$input_errors[] = gettext("A valid PPTP local IP address must be specified.");
if (($_POST['pptp_subnet'] && !is_numeric($_POST['pptp_subnet'])))
$input_errors[] = gettext("A valid PPTP subnet bit count must be specified.");
- if (($_POST['pptp_remote'] && !is_ipaddr($_POST['pptp_remote']) && !is_hostname($_POST['gateway'][$iface])))
+ if (($_POST['pptp_remote'] && !is_ipaddrv4($_POST['pptp_remote']) && !is_hostname($_POST['gateway'][$iface])))
$input_errors[] = gettext("A valid PPTP remote IP address must be specified.");
if (($_POST['pptp_idletimeout'] != "") && !is_numericint($_POST['pptp_idletimeout']))
$input_errors[] = gettext("The idle timeout value must be an integer.");
if (($_POST['spoofmac'] && !is_macaddr($_POST['spoofmac'])))
$input_errors[] = gettext("A valid MAC address must be specified.");
- if ($_POST['mtu'] && ($_POST['mtu'] < 576))
- $input_errors[] = gettext("The MTU must be greater than 576 bytes.");
+ if ($_POST['mtu']) {
+ if ($_POST['mtu'] < 576 || $_POST['mtu'] > 9000)
+ $input_errors[] = gettext("The MTU must be greater than 576 bytes.");
+
+ if (stristr($wancfg['if'], "_vlan")) {
+ $realhwif_array = get_parent_interface($wancfg['if']);
+ // Need code to handle MLPPP if we ever use $realhwif for MLPPP handling
+ $parent_realhwif = $realhwif_array[0];
+ $parent_if = convert_real_interface_to_friendly_interface_name($parent_realhwif);
+ if (!empty($parent_if) && isset($config['interfaces'][$parent_if]['mtu'])) {
+ $parent_mtu = $config['interfaces'][$parent_if]['mtu'];
+
+ if ($_POST['mtu'] > $parent_mtu)
+ $input_errors[] = gettext("MTU of a vlan should not be bigger than parent interface.");
+ }
+ } else {
+ foreach ($config['interfaces'] as $idx => $ifdata) {
+ if (($idx == $if) || !preg_match('/_vlan[0-9]/', $ifdata['if']))
+ continue;
+
+ $realhwif_array = get_parent_interface($ifdata['if']);
+ // Need code to handle MLPPP if we ever use $realhwif for MLPPP handling
+ $parent_realhwif = $realhwif_array[0];
+
+ if ($parent_realhwif != $wancfg['if'])
+ continue;
+
+ if (isset($ifdata['mtu']) && $ifdata['mtu'] > $_POST['mtu'])
+ $input_errors[] = sprintf(gettext("Interface %s (VLAN) has MTU set to a bigger value"), $ifdata['descr']);
+ }
+ }
+ }
if ($_POST['mss'] && ($_POST['mss'] < 576))
$input_errors[] = gettext("The MSS must be greater than 576 bytes.");
/* Wireless interface? */
@@ -655,9 +713,9 @@ if ($_POST['apply']) {
}
if ($_POST['passphrase']) {
- $passlen = strlen($_POST['passphrase']);
- if ($passlen < 8 || $passlen > 64)
- $input_errors[] = gettext("The length of the passphrase should be between 8 and 63 characters.");
+ $passlen = strlen($_POST['passphrase']);
+ if ($passlen < 8 || $passlen > 64)
+ $input_errors[] = gettext("The length of the passphrase should be between 8 and 63 characters.");
}
}
if (!$input_errors) {
@@ -674,7 +732,7 @@ if ($_POST['apply']) {
if($pid)
posix_kill($pid, SIGTERM);
}
-
+
}
$ppp = array();
if ($wancfg['ipaddr'] != "ppp")
@@ -689,7 +747,7 @@ if ($_POST['apply']) {
unset($wancfg['dhcp6-duid']);
unset($wancfg['dhcp6-ia-pd-len']);
unset($wancfg['track6-interface']);
- unset($wancfg['track6-prefix-id']);
+ unset($wancfg['track6-prefix-id']);
unset($wancfg['prefix-6rd']);
unset($wancfg['prefix-6rd-v4plen']);
unset($wancfg['gateway-6rd']);
@@ -702,7 +760,7 @@ if ($_POST['apply']) {
if (empty($wancfg['pppoe']['pppoe-reset-type']))
unset($wancfg['pppoe']['pppoe-reset-type']);
unset($wancfg['local']);
-
+
unset($wancfg['remote']);
unset($a_ppps[$pppid]['apn']);
unset($a_ppps[$pppid]['phone']);
@@ -764,7 +822,7 @@ if ($_POST['apply']) {
else
$a_ppps[$pppid]['provider'] = true;
$a_ppps[$pppid]['ondemand'] = $_POST['pppoe_dialondemand'] ? true : false;
- if (!empty($_POST['idletimeout']))
+ if (!empty($_POST['pppoe_idletimeout']))
$a_ppps[$pppid]['idletimeout'] = $_POST['pppoe_idletimeout'];
else
unset($a_ppps[$pppid]['idletimeout']);
@@ -795,7 +853,7 @@ if ($_POST['apply']) {
$a_ppps[$pppid]['subnet'] = $_POST['pptp_subnet'];
$a_ppps[$pppid]['gateway'] = $_POST['pptp_remote'];
$a_ppps[$pppid]['ondemand'] = $_POST['pptp_dialondemand'] ? true : false;
- if (!empty($_POST['idletimeout']))
+ if (!empty($_POST['pptp_idletimeout']))
$a_ppps[$pppid]['idletimeout'] = $_POST['pptp_idletimeout'];
else
unset($a_ppps[$pppid]['idletimeout']);
@@ -880,7 +938,7 @@ if ($_POST['apply']) {
unset($wancfg['media']);
unset($wancfg['mediaopt']);
} else {
- $mediaopts = explode(' ', $_POST['mediaopt']);
+ $mediaopts = explode(' ', $_POST['mediaopt']);
if ($mediaopts[0] != ''){ $wancfg['media'] = $mediaopts[0]; }
if ($mediaopts[1] != ''){ $wancfg['mediaopt'] = $mediaopts[1]; }
else { unset($wancfg['mediaopt']); }
@@ -897,12 +955,8 @@ if ($_POST['apply']) {
} else {
$toapplylist = array();
}
- $toapplylist[$if] = array();
- /* we need to be able remove IP aliases for IPv6 */
- if(($old_wancfg['ipaddrv6'] != $wancfg['ipaddrv6']) && (is_ipaddrv6($old_wancfg['ipaddrv6']))) {
- $toapplylist[$if]['ipaddrv6'] = $old_wancfg['ipaddrv6'];
- }
-
+ $toapplylist[$if]['ifcfg'] = $old_wancfg;
+ $toapplylist[$if]['ppps'] = $old_ppps;
file_put_contents("{$g['tmp_path']}/.interfaces.apply", serialize($toapplylist));
mark_subsystem_dirty('interfaces');
@@ -956,9 +1010,13 @@ function handle_wireless_post() {
$wancfg['wireless']['auth_server_addr2'] = $_POST['auth_server_addr2'];
$wancfg['wireless']['auth_server_port2'] = $_POST['auth_server_port2'];
$wancfg['wireless']['auth_server_shared_secret2'] = $_POST['auth_server_shared_secret2'];
-
+
if ($_POST['persistcommonwireless'] == "yes") {
- if (is_array($config['wireless']) && is_array($config['wireless']['interfaces']) && !is_array($config['wireless']['interfaces'][$wlanbaseif]))
+ if (!is_array($config['wireless']))
+ $config['wireless'] = array();
+ if (!is_array($config['wireless']['interfaces']))
+ $config['wireless']['interfaces'] = array();
+ if (!is_array($config['wireless']['interfaces'][$wlanbaseif]))
$config['wireless']['interfaces'][$wlanbaseif] = array();
} else if (isset($config['wireless']['interfaces'][$wlanbaseif]))
unset($config['wireless']['interfaces'][$wlanbaseif]);
@@ -1063,7 +1121,7 @@ function check_wireless_mode() {
$clone_count = 1;
else
$clone_count = 0;
- if (is_array($config['wireless']['clone'])) {
+ if (isset($config['wireless']['clone']) && is_array($config['wireless']['clone'])) {
foreach ($config['wireless']['clone'] as $clone) {
if ($clone['if'] == $wlanbaseif)
$clone_count++;
@@ -1087,9 +1145,9 @@ $intrealname = $config['interfaces'][$if]['if'];
exec("/sbin/ifconfig -m $intrealname | grep \"media \"", $mediaopts);
foreach ($mediaopts as $mediaopt){
preg_match("/media (.*)/", $mediaopt, $matches);
- if (preg_match("/(.*) mediaopt (.*)/", $matches[1], $matches1)){
+ if (preg_match("/(.*) mediaopt (.*)/", $matches[1], $matches1)){
// there is media + mediaopt like "media 1000baseT mediaopt full-duplex"
- array_push($mediaopts_list, $matches1[1] . " " . $matches1[2]);
+ array_push($mediaopts_list, $matches1[1] . " " . $matches1[2]);
}else{
// there is only media like "media 1000baseT"
array_push($mediaopts_list, $matches[1]);
@@ -1106,7 +1164,6 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
?>
-<script type="text/javascript" src="/javascript/jquery.ipv4v6ify.js"></script>
<script type="text/javascript" src="/javascript/numericupdown/js/numericupdown.js"></script>
<link href="/javascript/numericupdown/css/numericupdown.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/javascript/datepicker/js/datepicker.js"></script>
@@ -1394,8 +1451,10 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
<td class="vtable">
<input name="mtu" type="text" class="formfld unknown" id="mtu" size="8" value="<?=htmlspecialchars($pconfig['mtu']);?>">
<br>
- <?=gettext("If you leave this field blank, the adapter's default MTU will " .
- "be used. This is typically 1500 bytes but can vary in some circumstances."); ?>
+ <?php
+ print gettext("If you leave this field blank, the adapter's default MTU will " .
+ "be used. This is typically 1500 bytes but can vary in some circumstances.");
+ ?>
</td>
</tr>
<tr>
@@ -1408,13 +1467,13 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
"header size) will be in effect."); ?>
</td>
</tr>
- <?php
+ <?php
if (count($mediaopts_list) > 0){
$mediaopt_from_config = $config['interfaces'][$if]['media'] . ' ' . $config['interfaces'][$if]['mediaopt'];
echo "<tr>";
echo '<td valign="top" class="vncell">' . gettext("Speed and duplex") . '</td>';
echo '<td class="vtable">';
- echo '<div id="showadvmediabox"';
+ echo '<div id="showadvmediabox"';
if ($mediaopt_from_config != 'autoselect ' && $mediaopt_from_config != ' ') echo " style='display:none'>";
else echo '>';
echo '<input type="button" onClick="show_advanced_media()" value="' . gettext("Advanced") . '"></input> - ' . gettext("Show advanced option");
@@ -1446,6 +1505,7 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
</tr>
<tr style="display:none;" name="staticv4" id="staticv4">
<td colspan="2" style="padding:0px;">
+ <a name="gatewaysection"></a>
<table width="100%" border="0" cellpadding="6" cellspacing="0">
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Static IPv4 configuration"); ?></td>
@@ -1487,7 +1547,7 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
}
?>
</select>
- - or <strong><a OnClick="show_add_gateway();" href="#"><?=gettext("add a new one."); ?></a></strong>
+ - or <strong><a OnClick="show_add_gateway();" href="#gatewaysection"><?=gettext("add a new one."); ?></a></strong>
<br/>
<div id='addgwbox'>
<?=gettext("If this interface is an Internet connection, select an existing Gateway from the list or add one using the link above"); ?>
@@ -1498,15 +1558,15 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
</div>
<div style="display:none" id="addgateway" name="addgateway">
<p>
- <table border="1" style="background:#990000; border-style: none none none none; width:225px;">
+ <table border="1" class="addgatewaybox">
<tr>
<td>
- <table bgcolor="#990000" cellpadding="1" cellspacing="1">
- <tr><td>&nbsp;</td>
+ <table class="addgatewaybox" cellpadding="1" cellspacing="1">
+ <tr><td>&nbsp;</td></tr>
<tr>
<td colspan="2"><center><b><font color="white"><?=gettext("Add new gateway:"); ?></font></b></center></td>
</tr>
- <tr><td>&nbsp;</td>
+ <tr><td>&nbsp;</td></tr>
<?php
if($if == "wan" || $if == "WAN")
$checked = " CHECKED";
@@ -1523,14 +1583,11 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
<tr>
<td align="right"><font color="white"><?=gettext("Description:"); ?></td><td><input id="gatewaydescr" name="gatewaydescr"></td>
</tr>
- <tr><td>&nbsp;</td>
+ <tr><td>&nbsp;</td></tr>
<tr>
- <td>&nbsp;</td>
- <td>
+ <td colspan="2">
<center>
<div id='savebuttondiv'>
-
-
<input id="gwsave" type="Button" value="<?=gettext("Save Gateway"); ?>" onClick='hide_add_gatewaysave();'>
<input id="gwcancel" type="Button" value="<?=gettext("Cancel"); ?>" onClick='hide_add_gateway();'>
</div>
@@ -1546,24 +1603,25 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
</div>
</td>
</tr>
+ <tr>
+ <td colspan="2" valign="top" height="16"></td>
+ </tr>
</table>
</td>
</tr>
<tr style="display:none;" name="staticv6" id="staticv6">
<td colspan="2" style="padding:0px;">
+ <a name="gatewayv6section"></a>
<table width="100%" border="0" cellpadding="6" cellspacing="0">
<tr>
- <td colspan="2" valign="top">&nbsp;</td>
- </tr>
- <tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Static IPv6 configuration"); ?></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("IPv6 address"); ?></td>
<td width="78%" class="vtable">
- <input name="ipaddrv6" type="text" class="formfld unknown ipv4v6" id="ipaddrv6" size="28" value="<?=htmlspecialchars($pconfig['ipaddrv6']);?>">
+ <input name="ipaddrv6" type="text" class="formfld unknown" id="ipaddrv6" size="28" value="<?=htmlspecialchars($pconfig['ipaddrv6']);?>">
/
- <select name="subnetv6" class="formselect ipv4v6" id="subnetv6">
+ <select name="subnetv6" class="formselect" id="subnetv6">
<?php
for ($i = 128; $i > 0; $i--) {
if($i <> 127) {
@@ -1595,7 +1653,7 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
}
?>
</select>
- - or <strong><a OnClick="show_add_gateway_v6();" href="#"><?=gettext("add a new one."); ?></a></strong>
+ - or <strong><a OnClick="show_add_gateway_v6();" href="#gatewayv6section"><?=gettext("add a new one."); ?></a></strong>
<br/>
<div id='addgwboxv6'>
<?=gettext("If this interface is an Internet connection, select an existing Gateway from the list or add a new one using the link above"); ?>
@@ -1606,15 +1664,15 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
</div>
<div style="display:none" id="addgatewayv6" name="addgatewayv6">
<p>
- <table border="1" style="background:#990000; border-style: none none none none; width:225px;">
+ <table border="1" class="addgatewaybox">
<tr>
<td>
- <table bgcolor="#990000" cellpadding="1" cellspacing="1">
- <tr><td>&nbsp;</td>
+ <table class="addgatewaybox" cellpadding="1" cellspacing="1">
+ <tr><td>&nbsp;</td></tr>
<tr>
<td colspan="2"><center><b><font color="white"><?=gettext("Add new v6 gateway:"); ?></font></b></center></td>
</tr>
- <tr><td>&nbsp;</td>
+ <tr><td>&nbsp;</td></tr>
<?php
if($if == "wan" || $if == "WAN")
$checked = " CHECKED";
@@ -1631,10 +1689,9 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
<tr>
<td align="right"><font color="white"><?=gettext("Description:"); ?></td><td><input id="gatewaydescrv6" name="gatewaydescrv6"></td>
</tr>
- <tr><td>&nbsp;</td>
+ <tr><td>&nbsp;</td></tr>
<tr>
- <td>&nbsp;</td>
- <td>
+ <td colspan="2">
<center>
<div id='savebuttondivv6'>
<input id="gwsavev6" type="Button" value="<?=gettext("Save Gateway"); ?>" onClick='hide_add_gatewaysave_v6();'>
@@ -1652,6 +1709,9 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
</div>
</td>
</tr>
+ <tr>
+ <td colspan="2" valign="top" height="16"></td>
+ </tr>
</table>
</td>
</tr>
@@ -1701,6 +1761,9 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
"DHCP client."); ?>
</td>
</tr>
+ <tr>
+ <td colspan="2" valign="top" height="16"></td>
+ </tr>
</table>
</td>
</tr>
@@ -1744,6 +1807,9 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
<?=gettext("The value in this field is the delegated prefix length provided by the DHCPv6 server. Normally specified by the ISP."); ?>
</td>
</tr>
+ <tr>
+ <td colspan="2" valign="top" height="16"></td>
+ </tr>
</table>
</td>
</tr>
@@ -1785,6 +1851,9 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
<?=gettext("The value in this field is the 6RD IPv4 prefix length. Normally specified by the ISP. A value of 0 means we embed the entire IPv4 address in the 6RD prefix."); ?>
</td>
</tr>
+ <tr>
+ <td colspan="2" valign="top" height="16"></td>
+ </tr>
</table>
</td>
</tr>
@@ -1798,7 +1867,7 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
<td width="22%" valign="top" class="vncell"><?=gettext("IPv6 Interface"); ?></td>
<td width="78%" class="vtable">
<select name='track6-interface' class='formselect' >
- <?php
+ <?php
$interfaces = get_configured_interface_with_descr(false, true);
$dynv6ifs = array();
foreach ($interfaces as $iface => $ifacename) {
@@ -1818,7 +1887,7 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
echo " selected";
echo ">" . htmlspecialchars($ifacename) . "</option>";
}
- ?>
+ ?>
</select> <br>
<br>
<?=gettext("This selects the dynamic IPv6 WAN interface to track for configuration") ?><br />
@@ -1843,6 +1912,9 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
</tr>
</td>
</tr>
+ <tr>
+ <td colspan="2" valign="top" height="16"></td>
+ </tr>
</table>
</td>
</tr>
@@ -1940,6 +2012,9 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
</td>
<?php endif; ?>
</tr>
+ <tr>
+ <td colspan="2" valign="top" height="16"></td>
+ </tr>
</table>
</td>
</tr>
@@ -2046,6 +2121,9 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
</td>
<?php endif; ?>
</tr>
+ <tr>
+ <td colspan="2" valign="top" height="16"></td>
+ </tr>
</table>
</td>
</tr>
@@ -2114,6 +2192,9 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
</td>
<?php endif; ?>
</tr>
+ <tr>
+ <td colspan="2" valign="top" height="16"></td>
+ </tr>
</table>
</td>
</tr>
@@ -2122,9 +2203,6 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
if (isset($wancfg['wireless'])):
?>
<tr>
- <td colspan="2" valign="top" height="16"></td>
- </tr>
- <tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Common wireless configuration - Settings apply to all wireless networks on"); ?> <?=$wlanbaseif;?>.</td>
</tr>
<tr>
@@ -2582,14 +2660,14 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
<tr>
<td valign="top" class="vncell">802.1X <?=gettext("Authentication Roaming Preauth"); ?></td>
<td class="vtable">
- <input name="rsn_preauth" id="rsn_preauth" type="checkbox" class="formfld unknown" size="66" value="yes" <? if ($pconfig['rsn_preauth']) echo "checked"; ?>>
+ <input name="rsn_preauth" id="rsn_preauth" type="checkbox" class="formfld unknown" size="66" value="yes" <?php if ($pconfig['rsn_preauth']) echo "checked"; ?>>
<br/>
</td>
</tr>
- <?php endif; ?>
<tr>
<td colspan="2" valign="top" height="16"></td>
</tr>
+ <?php endif; ?>
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Private networks"); ?></td>
</tr>
@@ -2615,6 +2693,8 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
"(but not RFC 1918) or not yet assigned by IANA."); ?>&nbsp;&nbsp;
<?=gettext("Bogons are prefixes that should never appear in the Internet routing table, " .
"and obviously should not appear as the source address in any packets you receive."); ?>
+ <br/><br/>
+ <?=gettext("Note: The update frequency can be changed under System->Advanced Firewall/NAT settings.")?>
</td>
</tr>
</table> <!-- End "allcfg" table -->
@@ -2679,6 +2759,7 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
document.getElementById("cancel").style.display = '';
document.getElementById("gwsave").style.display = '';
document.getElementById("gwcancel").style.display = '';
+ jQuery('#status').html('');
}
function hide_add_gateway_v6() {
document.getElementById("addgatewayv6").style.display = 'none';
@@ -2688,6 +2769,7 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
document.getElementById("cancel").style.display = '';
document.getElementById("gwsave").style.display = '';
document.getElementById("gwcancel").style.display = '';
+ jQuery('#statusv6').html('');
}
function hide_add_gatewaysave() {
document.getElementById("addgateway").style.display = 'none';
@@ -2699,14 +2781,14 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
var defaultgw = jQuery('#defaultgw').val();
var url = "system_gateways_edit.php";
- var pars = 'isAjax=true&defaultgw=' + escape(defaultgw) + '&interface=' + escape(iface) + '&name=' + escape(name) + '&descr=' + escape(descr) + '&gateway=' + escape(gatewayip);
+ var pars = 'isAjax=true&ipprotocol=inet&defaultgw=' + escape(defaultgw) + '&interface=' + escape(iface) + '&name=' + escape(name) + '&descr=' + escape(descr) + '&gateway=' + escape(gatewayip);
jQuery.ajax(
url,
{
type: 'post',
data: pars,
error: report_failure,
- complete: save_callback
+ success: save_callback
});
}
function hide_add_gatewaysave_v6() {
@@ -2718,14 +2800,14 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
gatewayip = jQuery('#gatewayipv6').val();
var defaultgw = jQuery('#defaultgwv6').val();
var url_v6 = "system_gateways_edit.php";
- var pars_v6 = 'isAjax=true&defaultgw=' + escape(defaultgw) + '&interface=' + escape(iface) + '&name=' + escape(name) + '&descr=' + escape(descr) + '&gateway=' + escape(gatewayip);
+ var pars_v6 = 'isAjax=true&ipprotocol=inet6&defaultgw=' + escape(defaultgw) + '&interface=' + escape(iface) + '&name=' + escape(name) + '&descr=' + escape(descr) + '&gateway=' + escape(gatewayip);
jQuery.ajax(
url_v6,
{
type: 'post',
data: pars_v6,
error: report_failure_v6,
- complete: save_callback_v6
+ success: save_callback_v6
});
}
function addOption(selectbox,text,value)
@@ -2762,12 +2844,10 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
}
hide_add_gateway_v6();
}
- function save_callback(transport) {
- var response = transport.responseText;
+ function save_callback(response) {
if(response) {
document.getElementById("addgateway").style.display = 'none';
hide_add_gateway();
- jQuery('#status').html('');
var gwtext = escape(name) + " - " + gatewayip;
addOption(jQuery('#gateway'), gwtext, name);
// Auto submit form?
@@ -2782,12 +2862,10 @@ $types6 = array("none" => gettext("None"), "staticv6" => gettext("Static IPv6"),
aodiv = document.getElementById('showmediaadv');
aodiv.style.display = "block";
}
- function save_callback_v6(transport) {
- var response_v6 = transport.responseText;
+ function save_callback_v6(response_v6) {
if(response_v6) {
document.getElementById("addgatewayv6").style.display = 'none';
hide_add_gateway_v6();
- jQuery('#statusv6').html('');
var gwtext_v6 = escape(name) + " - " + gatewayip;
addOption_v6(jQuery('#gatewayv6'), gwtext_v6, name);
// Auto submit form?
diff --git a/usr/local/www/interfaces_assign.php b/usr/local/www/interfaces_assign.php
index 565dca7..3a1df11 100755
--- a/usr/local/www/interfaces_assign.php
+++ b/usr/local/www/interfaces_assign.php
@@ -1,22 +1,22 @@
-<?php
+<?php
/*
interfaces_assign.php
part of m0n0wall (http://m0n0.ch/wall)
Written by Jim McBeath based on existing m0n0wall files
-
+
Copyright (C) 2003-2005 Manuel Kasper <mk@neon1.net>.
All rights reserved.
-
+
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
-
+
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
-
+
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
-
+
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
@@ -78,53 +78,53 @@ if (is_array($config['vlans']['vlan']) && count($config['vlans']['vlan'])) {
/* add Bridge interfaces */
if (is_array($config['bridges']['bridged']) && count($config['bridges']['bridged'])) {
- foreach ($config['bridges']['bridged'] as $bridge) {
- $portlist[$bridge['bridgeif']] = $bridge;
- $portlist[$bridge['bridgeif']]['isbridge'] = true;
- }
+ foreach ($config['bridges']['bridged'] as $bridge) {
+ $portlist[$bridge['bridgeif']] = $bridge;
+ $portlist[$bridge['bridgeif']]['isbridge'] = true;
+ }
}
/* add GIF interfaces */
if (is_array($config['gifs']['gif']) && count($config['gifs']['gif'])) {
- foreach ($config['gifs']['gif'] as $gif) {
- $portlist[$gif['gifif']] = $gif;
- $portlist[$gif['gifif']]['isgif'] = true;
- }
+ foreach ($config['gifs']['gif'] as $gif) {
+ $portlist[$gif['gifif']] = $gif;
+ $portlist[$gif['gifif']]['isgif'] = true;
+ }
}
/* add GRE interfaces */
if (is_array($config['gres']['gre']) && count($config['gres']['gre'])) {
- foreach ($config['gres']['gre'] as $gre) {
- $portlist[$gre['greif']] = $gre;
- $portlist[$gre['greif']]['isgre'] = true;
- }
+ foreach ($config['gres']['gre'] as $gre) {
+ $portlist[$gre['greif']] = $gre;
+ $portlist[$gre['greif']]['isgre'] = true;
+ }
}
/* add LAGG interfaces */
if (is_array($config['laggs']['lagg']) && count($config['laggs']['lagg'])) {
- foreach ($config['laggs']['lagg'] as $lagg) {
- $portlist[$lagg['laggif']] = $lagg;
- $portlist[$lagg['laggif']]['islagg'] = true;
+ foreach ($config['laggs']['lagg'] as $lagg) {
+ $portlist[$lagg['laggif']] = $lagg;
+ $portlist[$lagg['laggif']]['islagg'] = true;
/* LAGG members cannot be assigned */
$lagifs = explode(',', $lagg['members']);
foreach ($lagifs as $lagif)
if (isset($portlist[$lagif]))
unset($portlist[$lagif]);
- }
+ }
}
/* add QinQ interfaces */
if (is_array($config['qinqs']['qinqentry']) && count($config['qinqs']['qinqentry'])) {
- foreach ($config['qinqs']['qinqentry'] as $qinq) {
- $portlist["vlan{$qinq['tag']}"]['descr'] = "VLAN {$qinq['tag']}";
- $portlist["vlan{$qinq['tag']}"]['isqinq'] = true;
- /* QinQ members */
- $qinqifs = explode(' ', $qinq['members']);
- foreach ($qinqifs as $qinqif) {
- $portlist["vlan{$qinq['tag']}_{$qinqif}"]['descr'] = "QinQ {$qinqif}";
- $portlist["vlan{$qinq['tag']}_{$qinqif}"]['isqinq'] = true;
- }
- }
+ foreach ($config['qinqs']['qinqentry'] as $qinq) {
+ $portlist["vlan{$qinq['tag']}"]['descr'] = "VLAN {$qinq['tag']}";
+ $portlist["vlan{$qinq['tag']}"]['isqinq'] = true;
+ /* QinQ members */
+ $qinqifs = explode(' ', $qinq['members']);
+ foreach ($qinqifs as $qinqif) {
+ $portlist["vlan{$qinq['tag']}_{$qinqif}"]['descr'] = "QinQ {$qinqif}";
+ $portlist["vlan{$qinq['tag']}_{$qinqif}"]['isqinq'] = true;
+ }
+ }
}
/* add PPP interfaces */
@@ -182,7 +182,7 @@ if ($_POST['apply']) {
$portifmap[$portname] = array();
/* Go through the list of ports selected by the user,
- build a list of port-to-interface mappings in portifmap */
+ build a list of port-to-interface mappings in portifmap */
foreach ($_POST as $ifname => $ifport) {
if (($ifname == 'lan') || ($ifname == 'wan') || (substr($ifname, 0, 3) == 'opt'))
$portifmap[$ifport][] = strtoupper($ifname);
@@ -194,11 +194,24 @@ if ($_POST['apply']) {
$errstr = sprintf(gettext('Port %1$s '.
' was assigned to %2$s' .
' interfaces:'), $portname, count($ifnames));
-
+
foreach ($portifmap[$portname] as $ifn)
$errstr .= " " . $ifn;
-
+
$input_errors[] = $errstr;
+ } else if (count($ifnames) == 1 && preg_match('/^bridge[0-9]/', $portname) && is_array($config['bridges']['bridged']) && count($config['bridges']['bridged'])) {
+ foreach ($config['bridges']['bridged'] as $bridge) {
+ if ($bridge['bridgeif'] != $portname)
+ continue;
+
+ $members = explode(",", strtoupper($bridge['members']));
+ foreach ($members as $member) {
+ if ($member == $ifnames[0]) {
+ $input_errors[] = sprintf(gettext("You cannot set port %s to interface %s because this interface is a member of %s."), $portname, $member, $portname);
+ break;
+ }
+ }
+ }
}
}
@@ -212,10 +225,9 @@ if ($_POST['apply']) {
if (!$input_errors) {
/* No errors detected, so update the config */
foreach ($_POST as $ifname => $ifport) {
-
- if (($ifname == 'lan') || ($ifname == 'wan') ||
- (substr($ifname, 0, 3) == 'opt')) {
-
+
+ if (($ifname == 'lan') || ($ifname == 'wan') || (substr($ifname, 0, 3) == 'opt')) {
+
if (!is_array($ifport)) {
$reloadif = false;
if (!empty($config['interfaces'][$ifname]['if']) && $config['interfaces'][$ifname]['if'] <> $ifport) {
@@ -226,7 +238,7 @@ if ($_POST['apply']) {
$config['interfaces'][$ifname]['if'] = $ifport;
if (isset($portlist[$ifport]['isppp']))
$config['interfaces'][$ifname]['ipaddr'] = $portlist[$ifport]['type'];
-
+
/* check for wireless interfaces, set or clear ['wireless'] */
if (preg_match($g['wireless_regex'], $ifport)) {
if (!is_array($config['interfaces'][$ifname]['wireless']))
@@ -234,11 +246,11 @@ if ($_POST['apply']) {
} else {
unset($config['interfaces'][$ifname]['wireless']);
}
-
+
/* make sure there is a descr for all interfaces */
if (!isset($config['interfaces'][$ifname]['descr']))
$config['interfaces'][$ifname]['descr'] = strtoupper($ifname);
-
+
if ($reloadif == true) {
if (preg_match($g['wireless_regex'], $ifport))
interface_sync_wireless_clones($config['interfaces'][$ifname], false);
@@ -248,9 +260,9 @@ if ($_POST['apply']) {
}
}
}
-
+
write_config();
-
+
enable_rrd_graphing();
}
}
@@ -270,7 +282,7 @@ if ($_GET['act'] == "del") {
unset($config['interfaces'][$id]['enable']);
$realid = get_real_interface($id);
interface_bring_down($id); /* down the interface */
-
+
unset($config['interfaces'][$id]); /* delete the specified OPTn or LAN*/
if (is_array($config['dhcpd']) && is_array($config['dhcpd'][$id])) {
@@ -283,32 +295,26 @@ if ($_GET['act'] == "del") {
if($rule['interface'] == $id)
unset($config['filter']['rule'][$x]);
}
- }
- if (is_array($config['nat']['advancedoutbound']) && count($config['nat']['advancedoutbound']['rule']) > 0) {
- foreach ($config['nat']['advancedoutbound']['rule'] as $x => $rule) {
- if($rule['interface'] == $id)
- unset($config['nat']['advancedoutbound']['rule'][$x]['interface']);
- }
}
if (is_array($config['nat']['rule']) && count($config['nat']['rule']) > 0) {
foreach ($config['nat']['rule'] as $x => $rule) {
if($rule['interface'] == $id)
unset($config['nat']['rule'][$x]['interface']);
}
- }
+ }
write_config();
-
+
/* If we are in firewall/routing mode (not single interface)
* then ensure that we are not running DHCP on the wan which
* will make a lot of ISP's unhappy.
*/
if($config['interfaces']['lan'] && $config['dhcpd']['wan']) {
- unset($config['dhcpd']['wan']);
+ unset($config['dhcpd']['wan']);
}
link_interface_to_vlans($realid, "update");
-
+
$savemsg = gettext("Interface has been deleted.");
}
}
@@ -351,9 +357,9 @@ if ($_GET['act'] == "add" && (count($config['interfaces']) < count($portlist)))
break;
}
}
-
- /* XXX: Do not remove this. */
- mwexec("/bin/rm -f /tmp/config.cache");
+
+ /* XXX: Do not remove this. */
+ mwexec("/bin/rm -f /tmp/config.cache");
write_config();
@@ -364,9 +370,9 @@ if ($_GET['act'] == "add" && (count($config['interfaces']) < count($portlist)))
include("head.inc");
-if(file_exists("/var/run/interface_mismatch_reboot_needed"))
+if(file_exists("/var/run/interface_mismatch_reboot_needed"))
if ($_POST) {
- if($rebootingnow)
+ if($rebootingnow)
$savemsg = gettext("The system is now rebooting. Please wait.");
else
$savemsg = gettext("Reboot is needed. Please apply the settings in order to reboot.");
@@ -404,13 +410,13 @@ if(file_exists("/var/run/interface_mismatch_reboot_needed"))
$tab_array[9] = array(gettext("Bridges"), false, "interfaces_bridge.php");
$tab_array[10] = array(gettext("LAGG"), false, "interfaces_lagg.php");
display_top_tabs($tab_array);
-?>
+?>
</td></tr>
- <tr>
+ <tr>
<td>
<div id="mainarea">
<table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
+ <tr>
<td class="listhdrr"><?=gettext("Interface"); ?></td>
<td class="listhdr"><?=gettext("Network port"); ?></td>
<td class="list">&nbsp;</td>
@@ -421,7 +427,7 @@ if(file_exists("/var/run/interface_mismatch_reboot_needed"))
else
$ifdescr = strtoupper($ifname);
?>
- <tr>
+ <tr>
<td class="listlr" valign="middle"><strong><u><span onclick="location.href='/interfaces.php?if=<?=$ifname;?>'" style="cursor: pointer;"><?=$ifdescr;?></span></strong></td>
<td valign="middle" class="listr">
<select onChange="javascript:jQuery('#savediv').show();" name="<?=$ifname;?>" id="<?=$ifname;?>">
@@ -462,7 +468,7 @@ if(file_exists("/var/run/interface_mismatch_reboot_needed"))
} elseif ($portinfo['isqinq']) {
echo htmlspecialchars($portinfo['descr']);
} elseif (substr($portname, 0, 4) == 'ovpn') {
- echo htmlspecialchars($portname . " (" . $ovpn_descrs[substr($portname, 5, 1)] . ")");
+ echo htmlspecialchars($portname . " (" . $ovpn_descrs[substr($portname, 5)] . ")");
} else
echo htmlspecialchars($portname . " (" . $portinfo['mac'] . ")");
?></option>
@@ -471,7 +477,7 @@ if(file_exists("/var/run/interface_mismatch_reboot_needed"))
</td>
<td valign="middle" class="list">
<?php if ($ifname != 'wan'): ?>
- <a href="interfaces_assign.php?act=del&id=<?=$ifname;?>" onclick="return confirm('<?=gettext("Do you really want to delete this interface?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" title=<?=gettext("delete interface"); ?> width="17" height="17" border="0"></a>
+ <a href="interfaces_assign.php?act=del&id=<?=$ifname;?>" onclick="return confirm('<?=gettext("Do you really want to delete this interface?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" title=<?=gettext("delete interface"); ?> width="17" height="17" border="0"></a>
<?php endif; ?>
</td>
</tr>
diff --git a/usr/local/www/interfaces_bridge.php b/usr/local/www/interfaces_bridge.php
index 9dfdd29..986cd27 100644
--- a/usr/local/www/interfaces_bridge.php
+++ b/usr/local/www/interfaces_bridge.php
@@ -59,9 +59,15 @@ function bridge_inuse($num) {
}
if ($_GET['act'] == "del") {
+ if (!isset($_GET['id']))
+ $input_errors[] = getext("Wrong parameters supplied");
+ else if (empty($a_bridges[$_GET['id']]))
+ $input_errors[] = getext("Wrong index supplied");
/* check if still in use */
- if (bridge_inuse($_GET['id'])) {
+ else if (bridge_inuse($_GET['id'])) {
$input_errors[] = gettext("This bridge cannot be deleted because it is assigned as an interface.");
+ } elseif (!does_interface_exist($a_bridges[$_GET['id']]['bridgeif'])) {
+ $input_errors[] = gettext("Invalid bridge interface.");
} else {
mwexec("/sbin/ifconfig " . $a_bridges[$_GET['id']]['bridgeif'] . " destroy");
unset($a_bridges[$_GET['id']]);
@@ -117,7 +123,7 @@ include("head.inc");
<?=htmlspecialchars(strtoupper($bridge['bridgeif']));?>
</td>
<td class="listr">
- <? $members = explode(',', $bridge['members']);
+ <?php $members = explode(',', $bridge['members']);
$j = 0;
foreach ($members as $member) {
if (isset($ifdescrs[$member])) {
diff --git a/usr/local/www/interfaces_bridge_edit.php b/usr/local/www/interfaces_bridge_edit.php
index c579708..01337a9 100644
--- a/usr/local/www/interfaces_bridge_edit.php
+++ b/usr/local/www/interfaces_bridge_edit.php
@@ -73,7 +73,7 @@ if (isset($id) && $a_bridges[$id]) {
$pconfig['hellotime'] = $a_bridges[$id]['hellotime'];
$pconfig['priority'] = $a_bridges[$id]['priority'];
$pconfig['proto'] = $a_bridges[$id]['proto'];
- $pconfig['holdcount'] = $a_bridges[$id]['holdcount'];
+ $pconfig['holdcnt'] = $a_bridges[$id]['holdcnt'];
if (!empty($a_bridges[$id]['ifpriority'])) {
$pconfig['ifpriority'] = explode(",", $a_bridges[$id]['ifpriority']);
$ifpriority = array();
@@ -150,6 +150,8 @@ if ($_POST) {
if (is_array($_POST['members'])) {
foreach($_POST['members'] as $ifmembers) {
+ if (empty($config['interfaces'][$ifmembers]))
+ $input_errors[] = gettext("A member interface passed does not exist in configuration");
if (is_array($config['interfaces'][$ifmembers]['wireless']) &&
$config['interfaces'][$ifmembers]['wireless']['mode'] != "hostap")
$input_errors[] = gettext("Bridging a wireless interface is only possible in hostap mode.");
@@ -176,7 +178,7 @@ if ($_POST) {
$bridge['hellotime'] = $_POST['hellotime'];
$bridge['priority'] = $_POST['priority'];
$bridge['proto'] = $_POST['proto'];
- $bridge['holdcount'] = $_POST['holdcount'];
+ $bridge['holdcnt'] = $_POST['holdcnt'];
$i = 0;
$ifpriority = "";
$ifpathcost = "";
@@ -198,7 +200,7 @@ if ($_POST) {
if ($_POST['span'] != "none")
$bridge['span'] = $_POST['span'];
- else
+ else
unset($bridge['span']);
if (isset($_POST['edge']))
$bridge['edge'] = implode(',', $_POST['edge']);
@@ -210,21 +212,20 @@ if ($_POST) {
$bridge['autoptp'] = implode(',', $_POST['autoptp']);
$bridge['bridgeif'] = $_POST['bridgeif'];
- $bridge['bridgeif'] = interface_bridge_configure($bridge);
- if ($bridge['bridgeif'] == "" || !stristr($bridge['bridgeif'], "bridge"))
- $input_errors[] = gettext("Error occured creating interface, please retry.");
- else {
- if (isset($id) && $a_bridges[$id])
- $a_bridges[$id] = $bridge;
- else
- $a_bridges[] = $bridge;
+ interface_bridge_configure($bridge);
+ if ($bridge['bridgeif'] == "" || !stristr($bridge['bridgeif'], "bridge"))
+ $input_errors[] = gettext("Error occured creating interface, please retry.");
+ else {
+ if (isset($id) && $a_bridges[$id])
+ $a_bridges[$id] = $bridge;
+ else
+ $a_bridges[] = $bridge;
- write_config();
+ write_config();
$confif = convert_real_interface_to_friendly_interface_name($bridge['bridgeif']);
- if ($confif <> "")
- interface_configure($confif);
-
+ if ($confif <> "")
+ interface_configure($confif);
header("Location: interfaces_bridge.php");
exit;
@@ -267,13 +268,13 @@ function show_source_port_range() {
<td width="78%" class="vtable">
<select name="members[]" multiple="true" class="formselect" size="3">
<?php
- foreach ($ifacelist as $ifn => $ifinfo) {
+ foreach ($ifacelist as $ifn => $ifinfo) {
echo "<option value=\"{$ifn}\"";
if (stristr($pconfig['members'], $ifn))
echo "selected";
echo ">{$ifinfo}</option>";
}
- ?>
+ ?>
</select>
<br/>
<span class="vexpl"><?=gettext("Interfaces participating in the bridge."); ?></span>
@@ -283,7 +284,7 @@ function show_source_port_range() {
<td width="22%" valign="top" class="vncell"><?=gettext("Description"); ?></td>
<td width="78%" class="vtable">
<input type="text" name="descr" id="descr" class="formfld unknown" size="50" value="<?=htmlspecialchars($pconfig['descr']);?>">
- </td>
+ </td>
</tr>
<tr id="sprtable" name="sprtable">
<td></td>
@@ -297,11 +298,11 @@ function show_source_port_range() {
<input type="checkbox" name="enablestp" id="enablestp" <?php if ($pconfig['enablestp']) echo "checked";?>>
<span class="vexpl"><strong><?=gettext("Enable spanning tree options for this bridge."); ?> </strong></span>
<br/><br/>
- <table id="stpoptions" name="stpoptions" border="0" cellpadding="6" cellspacing="0">
+ <table id="stpoptions" name="stpoptions" border="0" cellpadding="6" cellspacing="0">
<tr><td valign="top" class="vncell" width="20%"><?=gettext("Protocol"); ?></td>
<td class="vtable" width="80%">
- <select name="proto" id="proto">
- <?php
+ <select name="proto" id="proto">
+ <?php
foreach (array("rstp", "stp") as $proto) {
echo "<option value=\"{$proto}\"";
if ($pconfig['proto'] == $proto)
@@ -315,8 +316,8 @@ function show_source_port_range() {
</td></tr>
<tr> <td valign="top" class="vncell" width="20%"><?=gettext("STP interfaces"); ?></td>
<td class="vtable" width="80%">
- <select name="stp[]" class="formselect" multiple="true" size="3">
- <?php
+ <select name="stp[]" class="formselect" multiple="true" size="3">
+ <?php
foreach ($ifacelist as $ifn => $ifdescr) {
echo "<option value=\"{$ifn}\"";
if (stristr($pconfig['stp'], $ifn))
@@ -349,7 +350,7 @@ function show_source_port_range() {
<br/>
<span class="vexpl">
<?=gettext("Set the time that must pass before an interface begins forwarding " .
- "packets when Spanning Tree is enabled. The default is 15 seconds. The minimum is 4 seconds and the maximum is 30 seconds."); ?>
+ "packets when Spanning Tree is enabled. The default is 15 seconds. The minimum is 4 seconds and the maximum is 30 seconds."); ?>
</span>
</td></tr>
<tr><td valign="top" class="vncell" width="20%"><?=gettext("Hello time"); ?></td>
@@ -358,7 +359,7 @@ function show_source_port_range() {
<br/>
<span class="vexpl">
<?=gettext("Set the time between broadcasting of Spanning Tree Protocol configuration messages. The hello time may only be changed when " .
- "operating in legacy STP mode. The default is 2 seconds. The minimum is 1 second and the maximum is 2 seconds."); ?>
+ "operating in legacy STP mode. The default is 2 seconds. The minimum is 1 second and the maximum is 2 seconds."); ?>
</span>
</td></tr>
<tr><td valign="top" class="vncell" width="20%"><?=gettext("Priority"); ?></td>
@@ -367,7 +368,7 @@ function show_source_port_range() {
<br/>
<span class="vexpl">
<?=gettext("Set the bridge priority for Spanning Tree. The default is 32768. " .
- "The minimum is 0 and the maximum is 61440."); ?>
+ "The minimum is 0 and the maximum is 61440."); ?>
</span>
</td></tr>
<tr><td valign="top" class="vncell" width="20%"><?=gettext("Hold count"); ?></td>
@@ -377,20 +378,20 @@ function show_source_port_range() {
<span class="vexpl">
<?=gettext("Set the transmit hold count for Spanning Tree. This is the num- " .
"ber of packets transmitted before being rate limited. The " .
- "default is 6. The minimum is 1 and the maximum is 10."); ?>
+ "default is 6. The minimum is 1 and the maximum is 10."); ?>
</span>
</td></tr>
<tr><td valign="top" class="vncell" width="20%"><?=gettext("Priority"); ?></td>
<td class="vtable" width="80%">
<table>
- <?php foreach ($ifacelist as $ifn => $ifdescr)
+ <?php foreach ($ifacelist as $ifn => $ifdescr)
echo "<tr><td>{$ifdescr}</td><td><input size=\"5\" name=\"{$ifn}\" type=\"text\" class=\"formfld unkown\" id=\"{$ifn}\" value=\"{$ifpriority[$ifn]}\"></td></tr>";
?>
</table>
<br/>
- <span class="vexpl" >
+ <span class="vexpl" >
<?=gettext("Set the Spanning Tree priority of interface to value. The " .
- "default is 128. The minimum is 0 and the maximum is 240. Increments of 16."); ?>
+ "default is 128. The minimum is 0 and the maximum is 240. Increments of 16."); ?>
</span>
</td></tr>
<tr><td valign="top" class="vncell" width="20%"><?=gettext("Path cost"); ?></td>
@@ -401,10 +402,10 @@ function show_source_port_range() {
?>
</table>
<br/>
- <span class="vexpl" >
+ <span class="vexpl" >
<?=gettext("Set the Spanning Tree path cost of interface to value. The " .
"default is calculated from the link speed. To change a previously selected path cost back to automatic, set the cost to 0. ".
- "The minimum is 1 and the maximum is 200000000."); ?>
+ "The minimum is 1 and the maximum is 200000000."); ?>
</span>
</td></tr>
@@ -414,21 +415,21 @@ function show_source_port_range() {
<td valign="top" class="vncell"><?=gettext("Cache size"); ?></td>
<td class="vtable">
<input name="maxaddr" size="10" type="text" class="formfld unkown" id="maxaddr" value="<?=htmlspecialchars($pconfig['maxaddr']);?>"> <?=gettext("entries"); ?>
- <br/><span class="vexpl">
+ <br/><span class="vexpl">
<?=gettext("Set the size of the bridge address cache to size. The default is " .
".100 entries."); ?>
- </span>
+ </span>
</td>
</tr>
<tr style="display:none" id="sprtable3" name="sprtable3">
<td valign="top" class="vncell"><?=gettext("Cache entry expire time"); ?></td>
<td>
<input name="timeout" type="text" class="formfld unkown" id="timeout" size="10" value="<?=htmlspecialchars($pconfig['timeout']);?>"> <?=gettext("seconds"); ?>
- <br/><span class="vexpl">
+ <br/><span class="vexpl">
<?=gettext("Set the timeout of address cache entries to this number of seconds. If " .
"seconds is zero, then address cache entries will not be expired. " .
"The default is 240 seconds."); ?>
- </span>
+ </span>
</td>
</tr>
<tr style="display:none" id="sprtable4" name="sprtable4">
@@ -436,7 +437,7 @@ function show_source_port_range() {
<td class="vtable">
<select name="span" class="formselect" id="span">
<option value="none" selected><?=gettext("None"); ?></option>
- <?php
+ <?php
foreach ($ifacelist as $ifn => $ifdescr) {
echo "<option value=\"{$ifn}\"";
if ($ifn == $pconfig['span'])
@@ -445,12 +446,12 @@ function show_source_port_range() {
}
?>
</select>
- <br/><span class="vexpl">
+ <br/><span class="vexpl">
<?=gettext("Add the interface named by interface as a span port on the " .
"bridge. Span ports transmit a copy of every frame received by " .
"the bridge. This is most useful for snooping a bridged network " .
"passively on another host connected to one of the span ports of " .
- "the bridge."); ?>
+ "the bridge."); ?>
</span>
<p class="vexpl"><span class="red"><strong>
<?=gettext("Note:"); ?><br>
@@ -462,8 +463,8 @@ function show_source_port_range() {
<tr style="display:none" id="sprtable5" name="sprtable5">
<td valign="top" class="vncell"><?=gettext("Edge ports"); ?></td>
<td class="vtable">
- <select name="edge[]" class="formselect" multiple="true" size="3">
- <?php
+ <select name="edge[]" class="formselect" multiple="true" size="3">
+ <?php
foreach ($ifacelist as $ifn => $ifdescr) {
echo "<option value=\"{$ifn}\"";
if (stristr($pconfig['edge'], $ifn))
@@ -476,14 +477,14 @@ function show_source_port_range() {
<span class="vexpl">
<?=gettext("Set interface as an edge port. An edge port connects directly to " .
"end stations and cannot create bridging loops in the network; this " .
- "allows it to transition straight to forwarding."); ?>
+ "allows it to transition straight to forwarding."); ?>
</span></td>
</tr>
<tr style="display:none" id="sprtable6" name="sprtable6">
<td valign="top" class="vncell"><?=gettext("Auto Edge ports"); ?></td>
<td class="vtable">
- <select name="autoedge[]" class="formselect" multiple="true" size="3">
- <?php
+ <select name="autoedge[]" class="formselect" multiple="true" size="3">
+ <?php
foreach ($ifacelist as $ifn => $ifdescr) {
echo "<option value=\"{$ifn}\"";
if (stristr($pconfig['autoedge'], $ifn))
@@ -505,8 +506,8 @@ function show_source_port_range() {
<tr style="display:none" id="sprtable7" name="sprtable7">
<td valign="top" class="vncell"><?=gettext("PTP ports"); ?></td>
<td class="vtable">
- <select name="ptp[]" class="formselect" multiple="true" size="3">
- <?php
+ <select name="ptp[]" class="formselect" multiple="true" size="3">
+ <?php
foreach ($ifacelist as $ifn => $ifdescr) {
echo "<option value=\"{$ifn}\"";
if (stristr($pconfig['ptp'], $ifn))
@@ -525,8 +526,8 @@ function show_source_port_range() {
<tr style="display:none" id="sprtable8" name="sprtable8">
<td valign="top" class="vncell"><?=gettext("Auto PTP ports"); ?></td>
<td class="vtable">
- <select name="autoptp[]" class="formselect" multiple="true" size="3">
- <?php
+ <select name="autoptp[]" class="formselect" multiple="true" size="3">
+ <?php
foreach ($ifacelist as $ifn => $ifdescr) {
echo "<option value=\"{$ifn}\"";
if (stristr($pconfig['autoptp'], $ifn))
@@ -540,7 +541,7 @@ function show_source_port_range() {
<?=gettext("Automatically detect the point-to-point status on interface by " .
"checking the full duplex link status. This is the default for " .
"interfaces added to the bridge."); ?>
- <p class="vexpl"><span class="red"><strong>
+ <p class="vexpl"><span class="red"><strong>
<?=gettext("Note:"); ?><br>
</strong></span>
<?=gettext("The interfaces selected here will be removed from default autoedge status."); ?>
@@ -549,8 +550,8 @@ function show_source_port_range() {
<tr style="display:none" id="sprtable9" name="sprtable9">
<td valign="top" class="vncell"><?=gettext("Sticky ports"); ?></td>
<td class="vtable">
- <select name="static[]" class="formselect" multiple="true" size="3">
- <?php
+ <select name="static[]" class="formselect" multiple="true" size="3">
+ <?php
foreach ($ifacelist as $ifn => $ifdescr) {
echo "<option value=\"{$ifn}\"";
if (stristr($pconfig['static'], $ifn))
@@ -564,14 +565,14 @@ function show_source_port_range() {
<?=gettext("Mark an interface as a \"sticky\" interface. Dynamically learned " .
"address entries are treated as static once entered into the " .
"cache. Sticky entries are never aged out of the cache or " .
- "replaced, even if the address is seen on a different interface."); ?>
+ "replaced, even if the address is seen on a different interface."); ?>
</span></td>
</tr>
<tr style="display:none" id="sprtable10" name="sprtable10">
<td valign="top" class="vncell"><?=gettext("Private ports"); ?></td>
<td class="vtable">
- <select name="private[]" class="formselect" multiple="true" size="3">
- <?php
+ <select name="private[]" class="formselect" multiple="true" size="3">
+ <?php
foreach ($ifacelist as $ifn => $ifdescr) {
echo "<option value=\"{$ifn}\"";
if (stristr($pconfig['private'], $ifn))
diff --git a/usr/local/www/interfaces_gif.php b/usr/local/www/interfaces_gif.php
index 415c50a..ed6b41b 100644
--- a/usr/local/www/interfaces_gif.php
+++ b/usr/local/www/interfaces_gif.php
@@ -59,8 +59,12 @@ function gif_inuse($num) {
}
if ($_GET['act'] == "del") {
+ if (!isset($_GET['id']))
+ $input_errors[] = getext("Wrong parameters supplied");
+ else if (empty($a_gifs[$_GET['id']]))
+ $input_errors[] = getext("Wrong index supplied");
/* check if still in use */
- if (gif_inuse($_GET['id'])) {
+ else if (gif_inuse($_GET['id'])) {
$input_errors[] = gettext("This gif TUNNEL cannot be deleted because it is still being used as an interface.");
} else {
mwexec("/sbin/ifconfig " . $a_gifs[$_GET['id']]['gifif'] . " destroy");
diff --git a/usr/local/www/interfaces_gif_edit.php b/usr/local/www/interfaces_gif_edit.php
index 7421f8d..216b175 100644
--- a/usr/local/www/interfaces_gif_edit.php
+++ b/usr/local/www/interfaces_gif_edit.php
@@ -52,6 +52,9 @@ if (isset($_POST['id']))
if (isset($id) && $a_gifs[$id]) {
$pconfig['if'] = $a_gifs[$id]['if'];
+ if (!empty($a_gifs[$id]['ipaddr'])) {
+ $pconfig['if'] = $pconfig['if'] . '|' . $a_gifs[$id]['ipaddr'];
+ }
$pconfig['gifif'] = $a_gifs[$id]['gifif'];
$pconfig['remote-addr'] = $a_gifs[$id]['remote-addr'];
$pconfig['tunnel-remote-net'] = $a_gifs[$id]['tunnel-remote-net'];
@@ -78,12 +81,17 @@ if ($_POST) {
$input_errors[] = gettext("The tunnel local and tunnel remote fields must have valid IP addresses.");
}
+ $alias = strstr($_POST['if'],'|');
+ if ((is_ipaddrv4($alias) && !is_ipaddrv4($_POST['remote-addr'])) ||
+ (is_ipaddrv6($alias) && !is_ipaddrv6($_POST['remote-addr'])))
+ $input_errors[] = gettext("The alias IP address family has to match the family of the remote peer address.");
+
foreach ($a_gifs as $gif) {
if (isset($id) && ($a_gifs[$id]) && ($a_gifs[$id] === $gif))
continue;
/* FIXME: needs to perform proper subnet checks in the feature */
- if (($gif['if'] == $_POST['if']) && ($gif['tunnel-remote-addr'] == $_POST['tunnel-remote-addr'])) {
+ if (($gif['if'] == $interface) && ($gif['tunnel-remote-addr'] == $_POST['tunnel-remote-addr'])) {
$input_errors[] = sprintf(gettext("A gif with the network %s is already defined."), $gif['tunnel-remote-addr']);
break;
}
@@ -91,7 +99,7 @@ if ($_POST) {
if (!$input_errors) {
$gif = array();
- $gif['if'] = $_POST['if'];
+ list($gif['if'], $gif['ipaddr']) = explode("|",$_POST['if']);
$gif['tunnel-local-addr'] = $_POST['tunnel-local-addr'];
$gif['tunnel-remote-addr'] = $_POST['tunnel-remote-addr'];
$gif['tunnel-remote-net'] = $_POST['tunnel-remote-net'];
@@ -144,9 +152,12 @@ include("head.inc");
<?php
$portlist = get_configured_interface_with_descr();
$carplist = get_configured_carp_interface_list();
- foreach ($carplist as $cif => $carpip)
- $portlist[$cif] = $carpip." (".get_vip_descr($carpip).")";
- foreach ($portlist as $ifn => $ifinfo) {
+ foreach ($carplist as $cif => $carpip)
+ $portlist[$cif] = $carpip." (".get_vip_descr($carpip).")";
+ $aliaslist = get_configured_ip_aliases_list();
+ foreach ($aliaslist as $aliasip => $aliasif)
+ $portlist[$aliasif.'|'.$aliasip] = $aliasip." (".get_vip_descr($aliasip).")";
+ foreach ($portlist as $ifn => $ifinfo) {
echo "<option value=\"{$ifn}\"";
if ($ifn == $pconfig['if'])
echo "selected";
@@ -196,7 +207,7 @@ include("head.inc");
<span class="vexpl"><?=gettext("Specify if route caching can be enabled. Be careful with these settings on dynamic networks. "); ?></span></td>
</tr>
<tr>
- <td valign="top" class="vncell"><?=gettext("ECN friendly behaviour"); ?></td>
+ <td valign="top" class="vncell"><?=gettext("ECN friendly behavior"); ?></td>
<td class="vtable">
<input name="link1" type="checkbox" id="link1" <?if ($pconfig['link1']) echo "checked";?>>
<br>
diff --git a/usr/local/www/interfaces_gre.php b/usr/local/www/interfaces_gre.php
index 0cb8cd7..e4e3954 100644
--- a/usr/local/www/interfaces_gre.php
+++ b/usr/local/www/interfaces_gre.php
@@ -60,8 +60,12 @@ function gre_inuse($num) {
}
if ($_GET['act'] == "del") {
+ if (!isset($_GET['id']))
+ $input_errors[] = getext("Wrong parameters supplied");
+ else if (empty($a_gres[$_GET['id']]))
+ $input_errors[] = getext("Wrong index supplied");
/* check if still in use */
- if (gre_inuse($_GET['id'])) {
+ else if (gre_inuse($_GET['id'])) {
$input_errors[] = gettext("This GRE tunnel cannot be deleted because it is still being used as an interface.");
} else {
mwexec("/sbin/ifconfig " . $a_gres[$_GET['id']]['greif'] . " destroy");
diff --git a/usr/local/www/interfaces_lagg.php b/usr/local/www/interfaces_lagg.php
index fccb60f..51dbfe0 100644
--- a/usr/local/www/interfaces_lagg.php
+++ b/usr/local/www/interfaces_lagg.php
@@ -65,8 +65,12 @@ function lagg_inuse($num) {
}
if ($_GET['act'] == "del") {
+ if (!isset($_GET['id']))
+ $input_errors[] = getext("Wrong parameters supplied");
+ else if (empty($a_laggs[$_GET['id']]))
+ $input_errors[] = getext("Wrong index supplied");
/* check if still in use */
- if (lagg_inuse($_GET['id'])) {
+ else if (lagg_inuse($_GET['id'])) {
$input_errors[] = gettext("This LAGG interface cannot be deleted because it is still being used.");
} else {
mwexec_bg("/sbin/ifconfig " . $a_laggs[$_GET['id']]['laggif'] . " destroy");
diff --git a/usr/local/www/interfaces_lagg_edit.php b/usr/local/www/interfaces_lagg_edit.php
index 4ddba72..4a5a601 100644
--- a/usr/local/www/interfaces_lagg_edit.php
+++ b/usr/local/www/interfaces_lagg_edit.php
@@ -50,8 +50,8 @@ $portlist = get_interface_list();
$realifchecklist = array();
/* add LAGG interfaces */
if (is_array($config['laggs']['lagg']) && count($config['laggs']['lagg'])) {
- foreach ($config['laggs']['lagg'] as $lagg) {
- unset($portlist[$lagg['laggif']]);
+ foreach ($config['laggs']['lagg'] as $lagg) {
+ unset($portlist[$lagg['laggif']]);
$laggiflist = explode(",", $lagg['members']);
foreach ($laggiflist as $tmpif)
$realifchecklist[get_real_interface($tmpif)] = $tmpif;
@@ -62,6 +62,8 @@ $checklist = get_configured_interface_list(false, true);
foreach ($checklist as $tmpif)
$realifchecklist[get_real_interface($tmpif)] = $tmpif;
+$laggprotos = array("none", "lacp", "failover", "fec", "loadbalance", "roundrobin");
+
$id = $_GET['id'];
if (isset($_POST['id']))
$id = $_POST['id'];
@@ -87,6 +89,17 @@ if ($_POST) {
do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
+ if (is_array($_POST['members'])) {
+ foreach ($_POST['members'] as $member) {
+ if (!does_interface_exist($member))
+ $input_errors[] = gettext("Interface supplied as member is invalid");
+ }
+ } else if (!does_interface_exist($_POST['members']))
+ $input_errors[] = gettext("Interface supplied as member is invalid");
+
+ if (!in_array($_POST['proto'], $laggprotos))
+ $input_errors[] = gettext("Protocol supplied is invalid");
+
if (!$input_errors) {
$lagg = array();
$lagg['members'] = implode(',', $_POST['members']);
@@ -96,20 +109,20 @@ if ($_POST) {
if (isset($id) && $a_laggs[$id])
$lagg['laggif'] = $a_laggs[$id]['laggif'];
- $lagg['laggif'] = interface_lagg_configure($lagg);
- if ($lagg['laggif'] == "" || !stristr($lagg['laggif'], "lagg"))
- $input_errors[] = gettext("Error occured creating interface, please retry.");
- else {
- if (isset($id) && $a_laggs[$id])
- $a_laggs[$id] = $lagg;
- else
- $a_laggs[] = $lagg;
+ $lagg['laggif'] = interface_lagg_configure($lagg);
+ if ($lagg['laggif'] == "" || !stristr($lagg['laggif'], "lagg"))
+ $input_errors[] = gettext("Error occured creating interface, please retry.");
+ else {
+ if (isset($id) && $a_laggs[$id])
+ $a_laggs[$id] = $lagg;
+ else
+ $a_laggs[] = $lagg;
- write_config();
+ write_config();
$confif = convert_real_interface_to_friendly_interface_name($lagg['laggif']);
- if ($confif <> "")
- interface_configure($confif);
+ if ($confif <> "")
+ interface_configure($confif);
header("Location: interfaces_lagg.php");
exit;
@@ -136,7 +149,7 @@ include("head.inc");
<td width="78%" class="vtable">
<select name="members[]" multiple="true" size="4" class="formselect">
<?php
- foreach ($portlist as $ifn => $ifinfo) {
+ foreach ($portlist as $ifn => $ifinfo) {
if (array_key_exists($ifn, $realifchecklist))
continue;
echo "<option value=\"{$ifn}\"";
@@ -144,7 +157,7 @@ include("head.inc");
echo "selected";
echo ">". $ifn ."(".$ifinfo['mac'] .")</option>";
}
- ?>
+ ?>
</select>
<br/>
<span class="vexpl"><?=gettext("Choose the members that will be used for the link aggregation"); ?>.</span></td>
@@ -154,19 +167,19 @@ include("head.inc");
<td class="vtable">
<select name="proto" class="formselect" id="proto">
<?php
- foreach (array("none", "lacp", "failover", "fec", "loadbalance", "roundrobin") as $proto) {
+ foreach ($laggprotos as $proto) {
echo "<option value=\"{$proto}\"";
if ($proto == $pconfig['proto'])
echo "selected";
echo ">".strtoupper($proto)."</option>";
}
?>
- </select>
+ </select>
<br/>
<span class="vexpl">
<ul>
<li>
- <b><?=gettext("failover"); ?></b><br/>
+ <b><?=gettext("failover"); ?></b><br/>
<?=gettext("Sends and receives traffic only through the master port. If " .
"the master port becomes unavailable, the next active port is " .
"used. The first interface added is the master port; any " .
diff --git a/usr/local/www/interfaces_ppps_edit.php b/usr/local/www/interfaces_ppps_edit.php
index 7bcdcf2..2d8e52d 100644
--- a/usr/local/www/interfaces_ppps_edit.php
+++ b/usr/local/www/interfaces_ppps_edit.php
@@ -58,6 +58,12 @@ $iflist = get_configured_interface_with_descr();
$portlist = get_interface_list();
$portlist = array_merge($portlist, $iflist);
+if (is_array($config['vlans']['vlan']) && count($config['vlans']['vlan'])) {
+ foreach ($config['vlans']['vlan'] as $vlan) {
+ $portlist[$vlan['vlanif']] = $vlan;
+ }
+}
+
$id = $_GET['id'];
if (isset($_POST['id']))
$id = $_POST['id'];
diff --git a/usr/local/www/interfaces_qinq.php b/usr/local/www/interfaces_qinq.php
index 003a3f4..dcb6b55 100755
--- a/usr/local/www/interfaces_qinq.php
+++ b/usr/local/www/interfaces_qinq.php
@@ -27,7 +27,7 @@
POSSIBILITY OF SUCH DAMAGE.
*/
/*
- pfSense_BUILDER_BINARIES: /usr/sbin/ngctl
+ pfSense_BUILDER_BINARIES: /usr/sbin/ngctl
pfSense_MODULE: interfaces
*/
@@ -59,18 +59,21 @@ function qinq_inuse($num) {
}
if ($_GET['act'] == "del") {
+ $id = $_GET['id'];
+
/* check if still in use */
- if (qinq_inuse($_GET['id'])) {
+ if (qinq_inuse($id)) {
$input_errors[] = gettext("This QinQ cannot be deleted because it is still being used as an interface.");
+ } elseif (empty($a_qinqs[$id]['vlanif']) || !does_interface_exist($a_qinqs[$id]['vlanif'])) {
+ $input_errors[] = gettext("QinQ interface does not exist");
} else {
- $id = $_GET['id'];
$qinq =& $a_qinqs[$id];
$delmembers = explode(" ", $qinq['members']);
- if (count($delmembers) > 0) {
+ if (count($delmembers) > 0) {
foreach ($delmembers as $tag)
mwexec("/usr/sbin/ngctl shutdown {$qinq['vlanif']}h{$tag}:");
- }
+ }
mwexec("/usr/sbin/ngctl shutdown {$qinq['vlanif']}qinq:");
mwexec("/usr/sbin/ngctl shutdown {$qinq['vlanif']}:");
mwexec("/sbin/ifconfig {$qinq['vlanif']} destroy");
diff --git a/usr/local/www/interfaces_qinq_edit.php b/usr/local/www/interfaces_qinq_edit.php
index cace70c..a27a5d3 100755
--- a/usr/local/www/interfaces_qinq_edit.php
+++ b/usr/local/www/interfaces_qinq_edit.php
@@ -150,22 +150,25 @@ if ($_POST) {
if (isset($id) && $a_qinqs[$id]) {
$omembers = explode(" ", $a_qinqs[$id]['members']);
$delmembers = array_diff($omembers, $nmembers);
- if (count($delmembers) > 0) {
+ $addmembers = array_diff($nmembers, $omembers);
+
+ if ((count($delmembers) > 0) || (count($addmembers) > 0)) {
+ $fd = fopen("{$g['tmp_path']}/netgraphcmd", "w");
foreach ($delmembers as $tag) {
- mwexec("/usr/sbin/ngctl shutdown {$qinqentry['vlanif']}h{$tag}:");
- mwexec("/usr/sbin/ngctl msg {$qinqentry['vlanif']}qinq: delfilter \\\"{$qinqentry['vlanif']}{$tag}\\\"");
+ fwrite($fd, "shutdown {$qinqentry['vlanif']}h{$tag}:\n");
+ fwrite($fd, "msg {$qinqentry['vlanif']}qinq: delfilter \\\"{$qinqentry['vlanif']}{$tag}\\\"\n");
}
- }
- $addmembers = array_diff($nmembers, $omembers);
- if (count($addmembers) > 0) {
+
foreach ($addmembers as $member) {
+ $qinq = array();
+ $qinq['if'] = $qinqentry['vlanif'];
+ $qinq['tag'] = $member;
$macaddr = get_interface_mac($qinqentry['vlanif']);
- mwexec("/usr/sbin/ngctl mkpeer {$$qinqentry['vlanif']}qinq: eiface {$$qinqentry['vlanif']}{$member} ether");
- mwexec("/usr/sbin/ngctl name {$qinqentry['vlanif']}qinq:{$qinqentry['vlanif']}{$tag} {$qinqentry['vlanif']}h{$member}");
- mwexec("/usr/sbin/ngctl msg {$qinqentry['vlanif']}qinq: addfilter '{ vlan={$member} hook=\\\"{$qinqentry['vlanif']}{$member}\\\" }'");
- mwexec("/usr/sbin/ngctl msg {$qinqentry['vlanif']}h{$tag}: setifname \\\"{$qinqentry['vlanif']}_{$member}\\\"");
- mwexec("/usr/sbin/ngctl msg {$qinqentry['vlanif']}h{$member}: set {$macaddr}");
+ interface_qinq2_configure($qinq, $fd, $macaddr);
}
+
+ fclose($fd);
+ mwexec("/usr/sbin/ngctl -f {$g['tmp_path']}/netgraphcmd");
}
$a_qinqs[$id] = $qinqentry;
} else {
@@ -320,17 +323,17 @@ function removeRow(el) {
<td width="78%" class="vtable">
<?php /* ?>
<br/>
- <input type="checkbox" value="yes" name="autoassign" id="autoassign" <? if ($pconfig['autoassign']) echo checked;?>/>
+ <input type="checkbox" value="yes" name="autoassign" id="autoassign" <?php if ($pconfig['autoassign']) echo checked;?>/>
<span class="vexpl"> Auto assign interface so it can be configured with ip etc...</span>
<br/>
- <input type="checkbox" value="yes" name="autoenable" id="autoenable" <? if ($pconfig['autoenable']) echo checked;?>/>
+ <input type="checkbox" value="yes" name="autoenable" id="autoenable" <?php if ($pconfig['autoenable']) echo checked;?>/>
<span class="vexpl"> Auto enable interface so it can be used on filter rules.</span>
<br/>
- <input type="checkbox" value="yes" name="autoadjustmtu" id="autoadjustmtu" <? if ($pconfig['autoadjustmtu']) echo "checked";?>>
+ <input type="checkbox" value="yes" name="autoadjustmtu" id="autoadjustmtu" <?php if ($pconfig['autoadjustmtu']) echo "checked";?>>
<span class="vexpl"> Allows to keep clients mtu unchanged(1500). <br/>NOTE: if you are using jumbo frames this option is not needed and may produce incorrect results!</span>
<?php */ ?>
<br/>
- <input name="autogroup" type="checkbox" value="yes" id="autogroup" <? if ($pconfig['autogroup']) echo "checked";?>>
+ <input name="autogroup" type="checkbox" value="yes" id="autogroup" <?php if ($pconfig['autogroup']) echo "checked";?>>
<span class="vexpl"><?=gettext("Adds interface to QinQ interface groups so you can write filter rules easily.");?></span>
</td>
</tr>
@@ -367,7 +370,7 @@ function removeRow(el) {
?>
<tr>
<td class="vtable">
- <input name="members<?php echo $counter; ?>" class="formselect" id="members<?php echo $counter; ?>" value="<? echo $member;?>">
+ <input name="members<?php echo $counter; ?>" class="formselect" id="members<?php echo $counter; ?>" value="<?php echo $member;?>">
</td>
<td>
<a onclick="removeRow(this); return false;" href="#"><img border="0" src="/themes/<?echo $g['theme'];?>/images/icons/icon_x.gif" /></a>
diff --git a/usr/local/www/interfaces_vlan.php b/usr/local/www/interfaces_vlan.php
index 5333c6c..46f10cc 100755
--- a/usr/local/www/interfaces_vlan.php
+++ b/usr/local/www/interfaces_vlan.php
@@ -60,9 +60,15 @@ function vlan_inuse($num) {
}
if ($_GET['act'] == "del") {
+ if (!isset($_GET['id']))
+ $input_errors[] = getext("Wrong parameters supplied");
+ else if (empty($a_vlans[$_GET['id']]))
+ $input_errors[] = getext("Wrong index supplied");
/* check if still in use */
- if (vlan_inuse($_GET['id'])) {
+ else if (vlan_inuse($_GET['id'])) {
$input_errors[] = gettext("This VLAN cannot be deleted because it is still being used as an interface.");
+ } elseif (!does_interface_exist($a_vlans[$_GET['id']]['vlanif'])) {
+ $input_errors[] = gettext("Invalid VLAN interface.");
} else {
mwexec("/sbin/ifconfig " . $a_vlans[$_GET['id']]['vlanif'] . " destroy");
unset($a_vlans[$_GET['id']]);
diff --git a/usr/local/www/interfaces_vlan_edit.php b/usr/local/www/interfaces_vlan_edit.php
index bed4be8..25b7b56 100755
--- a/usr/local/www/interfaces_vlan_edit.php
+++ b/usr/local/www/interfaces_vlan_edit.php
@@ -80,6 +80,9 @@ if ($_POST) {
$input_errors[] = gettext("The VLAN tag must be an integer between 1 and 4094.");
}
+ if (!does_interface_exist($_POST['if']))
+ $input_errors[] = gettext("Interface supplied as parent is invalid");
+
foreach ($a_vlans as $vlan) {
if (isset($id) && ($a_vlans[$id]) && ($a_vlans[$id] === $vlan))
continue;
diff --git a/usr/local/www/interfaces_wireless.php b/usr/local/www/interfaces_wireless.php
index 6bcab95..a6266ad 100644
--- a/usr/local/www/interfaces_wireless.php
+++ b/usr/local/www/interfaces_wireless.php
@@ -40,6 +40,8 @@
require("guiconfig.inc");
+if (!is_array($config['wireless']))
+ $config['wireless'] = array();
if (!is_array($config['wireless']['clone']))
$config['wireless']['clone'] = array();
diff --git a/usr/local/www/interfaces_wireless_edit.php b/usr/local/www/interfaces_wireless_edit.php
index ae56add..3b1367d 100644
--- a/usr/local/www/interfaces_wireless_edit.php
+++ b/usr/local/www/interfaces_wireless_edit.php
@@ -40,6 +40,8 @@
require("guiconfig.inc");
+if (!is_array($config['wireless']))
+ $config['wireless'] = array();
if (!is_array($config['wireless']['clone']))
$config['wireless']['clone'] = array();
@@ -176,9 +178,9 @@ include("head.inc");
<td valign="top" class="vncellreq"><?=gettext("Mode");?></td>
<td class="vtable">
<select name="mode" class="formselect">
- <option <? if ($pconfig['mode'] == 'bss') echo "selected";?> value="bss"><?=gettext("Infrastructure (BSS)");?></option>
- <option <? if ($pconfig['mode'] == 'adhoc') echo "selected";?> value="adhoc"><?=gettext("Ad-hoc (IBSS)");?></option>
- <option <? if ($pconfig['mode'] == 'hostap') echo "selected";?> value="hostap"><?=gettext("Access Point");?></option>
+ <option <?php if ($pconfig['mode'] == 'bss') echo "selected";?> value="bss"><?=gettext("Infrastructure (BSS)");?></option>
+ <option <?php if ($pconfig['mode'] == 'adhoc') echo "selected";?> value="adhoc"><?=gettext("Ad-hoc (IBSS)");?></option>
+ <option <?php if ($pconfig['mode'] == 'hostap') echo "selected";?> value="hostap"><?=gettext("Access Point");?></option>
</select></td>
</tr>
<tr>
diff --git a/usr/local/www/javascript/diag_backup/diag_backup.js b/usr/local/www/javascript/diag_backup/diag_backup.js
deleted file mode 100644
index d9ca4f6..0000000
--- a/usr/local/www/javascript/diag_backup/diag_backup.js
+++ /dev/null
@@ -1,11 +0,0 @@
-
-function check_upload_status(id) {
-
- if (document.getElementById("restore").value == 'Restore configuration') {
- window.open('progress.php?conffile=' + id,'UploadMeter','width=370,height=115', true);
- return true;
- } else {
- return false;
- }
-
-} \ No newline at end of file
diff --git a/usr/local/www/javascript/filter_log.js b/usr/local/www/javascript/filter_log.js
index 76c21e2..43d7d49 100644
--- a/usr/local/www/javascript/filter_log.js
+++ b/usr/local/www/javascript/filter_log.js
@@ -1,4 +1,3 @@
-
if (typeof getURL == 'undefined') {
getURL = function(url, callback) {
if (!url)
@@ -61,13 +60,27 @@ function fetch_new_rules_callback(callback_data) {
/* loop through rows */
row_split = data_split[x].split("||");
lastsawtime = row_split[6];
- new_data_to_add[new_data_to_add.length] = format_log_line(row_split);
+
+ var tmp = format_log_line(row_split);
+ if ( !(tmp) ) continue;
+
+ new_data_to_add[new_data_to_add.length] = tmp;
}
- update_div_rows(new_data_to_add);
+ update_table_rows(new_data_to_add);
isBusy = false;
}
-function update_div_rows(data) {
+function in_arrayi(needle, haystack) {
+ var i = haystack.length;
+ while (i--) {
+ if (haystack[i].toLowerCase() === needle.toLowerCase()) {
+ return true;
+ }
+ }
+ return false;
+}
+
+function update_table_rows(data) {
if(isPaused)
return;
@@ -85,26 +98,47 @@ function update_div_rows(data) {
}
data = data.slice(startat, data.length);
- var rows = jQuery('.log-entry-mini');
- if (jQuery(rows).length == 0) {
- rows = jQuery('.log-entry');
- }
+ var rows = jQuery('#filter-log-entries>tr');
+
+ // Number of rows to move by
+ var move = rows.length + data.length - nentries;
+ if (move < 0)
+ move = 0;
- for(var x=0; x<data.length; x++) {
- /* if reverse logging is enabled we need to show the
- * records in a reverse order with new items appearing
- * on the top
- */
- if(isReverse == false) {
- for (var i = 1; i < jQuery(rows).length; i++) {
- jQuery(rows[i-1]).html(jQuery(rows[i]).html());
+ if (isReverse == false) {
+ for (var i = move; i < rows.length; i++) {
+ jQuery(rows[i - move]).html(jQuery(rows[i]).html());
+ }
+
+ var tbody = jQuery('#filter-log-entries');
+ for (var i = 0; i < data.length; i++) {
+ var rowIndex = rows.length - move + i;
+ if (rowIndex < rows.length) {
+ jQuery(rows[rowIndex]).html(data[i]);
+ } else {
+ jQuery(tbody).append('<tr>' + data[i] + '</tr>');
}
- } else {
- for (var i = jQuery(rows).length - 1; i > 0; i--) {
- jQuery(rows[i]).html(jQuery(rows[i-1]).html());
+ }
+ } else {
+ for (var i = rows.length - 1; i >= move; i--) {
+ jQuery(rows[i]).html(jQuery(rows[i - move]).html());
+ }
+
+ var tbody = jQuery('#filter-log-entries');
+ for (var i = 0; i < data.length; i++) {
+ var rowIndex = move - 1 - i;
+ if (rowIndex >= 0) {
+ jQuery(rows[rowIndex]).html(data[i]);
+ } else {
+ jQuery(tbody).prepend('<tr>' + data[i] + '</tr>');
}
}
- jQuery('#firstrow').html(data[x]);
+ }
+
+ // Much easier to go through each of the rows once they've all be added.
+ rows = jQuery('#filter-log-entries>tr');
+ for (var i = 0; i < rows.length; i++) {
+ rows[i].className = i % 2 == 0 ? 'listMRodd' : 'listMReven';
}
}
@@ -131,4 +165,4 @@ function toggleListDescriptions(){
}
}
}
-} \ No newline at end of file
+}
diff --git a/usr/local/www/license.php b/usr/local/www/license.php
index 990a31b..82a93a5 100755
--- a/usr/local/www/license.php
+++ b/usr/local/www/license.php
@@ -155,18 +155,18 @@ include("head.inc");
<?php printf(gettext("The author of %s would like to thank the authors of these " .
"software packages for their efforts"),$g['product_name']);?>.</p>
<p>FreeBSD (<a href="http://www.freebsd.org" target="_blank">http://www.freebsd.org</a>)<br>
- <?=gettext("Copyright");?> &copy;<?=gettext(" 1994-2003 FreeBSD, Inc. All rights reserved");?>.<br>
+ <?=gettext("Copyright");?> &copy;<?=gettext("1992-2012 The FreeBSD Project. All rights reserved");?>.<br>
<br>
<?=gettext("This product includes PHP, freely available from");?> <a href="http://www.php.net/" target="_blank">http://www.php.net</a>.<br>
- <?=gettext("Copyright"); ?> &copy; <?=gettext("1999 - 2003 The PHP Group. All rights reserved");?>.<br>
+ <?=gettext("Copyright"); ?> &copy; <?=gettext("1999-2010 The PHP Group. All rights reserved.");?>.<br>
<br>
<?=gettext("LightTPD"); ?> (<a href="http://www.lighttpd.net" target="_blank">http://www.lighttpd.net)</a><br>
- <?=gettext("Copyright"); ?> &copy;<?=gettext(" 2004 by Jan Kneschke ");?><jan@kneschke.de>
+ <?=gettext("Copyright"); ?> &copy;<?=gettext("2004, Jan Knescke, incremental");?><jan@kneschke.de>
<?=gettext("All rights reserved.");?><br>
<br>
<?=gettext("ISC DHCP server ");?>(<a href="http://www.isc.org/products/DHCP/" target="_blank">http://www.isc.org/products/DHCP</a>)<br>
- <?=gettext("Copyright"); ?> &copy; <?=gettext("1996-2003 Internet Software Consortium. All rights ".
- "reserved.");?><br>
+ <?=gettext("Copyright"); ?> &copy; <?=gettext("2004-2012 Internet Software Consortium, Inc.");?><br>
+ <?=gettext("Copyright"); ?> &copy; <?=gettext("1995-2003 Internet Software Consortium");?><br>
<br>
<?=gettext("PF"); ?> (<a href="http://www.openbsd.org/faq/pf" target="_blank">http://www.openbsd.org</a>)<br>
<br>
@@ -178,7 +178,7 @@ include("head.inc");
<?=gettext("Copyright"); ?> &copy; 2001 Jeff Wheelhouse (jdw@wwwi.com)<br>
<br>
<?=gettext("Dnsmasq - a DNS forwarder for NAT firewalls");?> (<a href="http://www.thekelleys.org.uk" target="_blank">http://www.thekelleys.org.uk</a>)<br>
- <?=gettext("Copyright"); ?> &copy; 2000-2003 Simon Kelley.<br>
+ <?=gettext("Copyright"); ?> &copy; 2000-2012 Simon Kelley.<br>
<br>
<?=gettext("Racoon"); ?> (<a href="http://www.kame.net/racoon" target="_blank">http://www.kame.net/racoon</a>)<br>
<?=gettext("Copyright"); ?> &copy; <?=gettext("1995-2002 WIDE Project. All rights reserved.");?><br>
diff --git a/usr/local/www/pkg.php b/usr/local/www/pkg.php
index 79beef2..8b31512 100755
--- a/usr/local/www/pkg.php
+++ b/usr/local/www/pkg.php
@@ -157,7 +157,7 @@ include("fbegin.inc");
?>
<form action="pkg.php" name="pkgform" method="get">
<input type='hidden' name='xml' value='<?=$_REQUEST['xml']?>'>
-<? if($_GET['savemsg'] <> "") $savemsg = htmlspecialchars($_GET['savemsg']); ?>
+<?php if($_GET['savemsg'] <> "") $savemsg = htmlspecialchars($_GET['savemsg']); ?>
<div id="savemsg"></div>
<?php if ($savemsg) print_info_box($savemsg); ?>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
diff --git a/usr/local/www/pkg_edit.php b/usr/local/www/pkg_edit.php
index 2cc8f98..bc4bf18 100755
--- a/usr/local/www/pkg_edit.php
+++ b/usr/local/www/pkg_edit.php
@@ -106,11 +106,11 @@ if($pkg['custom_php_global_functions'] <> "")
eval($pkg['custom_php_global_functions']);
// grab the installedpackages->package_name section.
-if(!is_array($config['installedpackages'][xml_safe_fieldname($pkg['name'])]['config']))
+if($config['installedpackages'] && !is_array($config['installedpackages'][xml_safe_fieldname($pkg['name'])]['config']))
$config['installedpackages'][xml_safe_fieldname($pkg['name'])]['config'] = array();
// If the first entry in the array is an empty <config/> tag, kill it.
-if ((count($config['installedpackages'][xml_safe_fieldname($pkg['name'])]['config']) > 0)
+if ($config['installedpackages'] && (count($config['installedpackages'][xml_safe_fieldname($pkg['name'])]['config']) > 0)
&& ($config['installedpackages'][xml_safe_fieldname($pkg['name'])]['config'][0] == ""))
array_shift($config['installedpackages'][xml_safe_fieldname($pkg['name'])]['config']);
@@ -266,6 +266,10 @@ if ($pkg['custom_php_after_head_command'])
?>
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
+
+<script type="text/javascript" src="/javascript/autosuggest.js"></script>
+<script type="text/javascript" src="/javascript/suggestions.js"></script>
+
<?php if($pkg['fields']['field'] <> "") { ?>
<script type="text/javascript" language="javascript">
//Everything inside it will load as soon as the DOM is loaded and before the page contents are loaded
@@ -633,9 +637,10 @@ if ($pkg['tabs'] <> "") {
case "checkbox":
$checkboxchecked =($value == "on" ? " CHECKED" : "");
+ $onchange = (isset($pkga['onchange']) ? "onchange=\"{$pkga['onchange']}\"" : '');
if (isset($pkga['enablefields']) || isset($pkga['checkenablefields']))
$onclick = ' onclick="javascript:enablechange();"';
- $input = "<input id='{$pkga['fieldname']}' type='checkbox' name='{$pkga['fieldname']}' {$checkboxchecked} {$onclick}>\n";
+ $input = "<input id='{$pkga['fieldname']}' type='checkbox' name='{$pkga['fieldname']}' {$checkboxchecked} {$onclick} {$onchange}>\n";
$input .= "<br>" . fixup_string($pkga['description']) . "\n";
if(isset($pkga['advancedfield']) && isset($adv_filed_count)) {
@@ -665,6 +670,45 @@ if ($pkg['tabs'] <> "") {
else
echo $input;
break;
+
+ case "aliases":
+ // Use xml tag <typealiases> to filter type aliases
+ $size = ($pkga['size'] ? "size=\"{$pkga['size']}\"" : '');
+ $fieldname = $pkga['fieldname'];
+ $a_aliases = &$config['aliases']['alias'];
+ $addrisfirst = 0;
+ $aliasesaddr = "";
+ $value = "value='{$value}'";
+
+ if(isset($a_aliases)) {
+ if(!empty($pkga['typealiases'])) {
+ foreach($a_aliases as $alias)
+ if($alias['type'] == $pkga['typealiases']) {
+ if($addrisfirst == 1) $aliasesaddr .= ",";
+ $aliasesaddr .= "'" . $alias['name'] . "'";
+ $addrisfirst = 1;
+ }
+ } else {
+ foreach($a_aliases as $alias) {
+ if($addrisfirst == 1) $aliasesaddr .= ",";
+ $aliasesaddr .= "'" . $alias['name'] . "'";
+ $addrisfirst = 1;
+ }
+ }
+ }
+
+ $input = "<input name='{$fieldname}' type='text' class='formfldalias' id='{$fieldname}' {$size} {$value}>\n<br />";
+ $input .= fixup_string($pkga['description']) . "\n";
+
+ $script = "<script type='text/javascript'>\n";
+ $script .= "var aliasarray = new Array({$aliasesaddr})\n";
+ $script .= "var oTextbox1 = new AutoSuggestControl(document.getElementById('{$fieldname}'), new StateSuggestions(aliasarray))\n";
+ $script .= "</script>";
+
+ echo $input;
+ echo $script;
+ break;
+
case "interfaces_selection":
$ips=array();
$interface_regex=(isset($pkga['hideinterfaceregex']) ? $pkga['hideinterfaceregex'] : "nointerfacestohide");
@@ -1065,4 +1109,4 @@ function display_advanced_field($fieldname) {
return $div;
}
-?> \ No newline at end of file
+?>
diff --git a/usr/local/www/pkg_mgr.php b/usr/local/www/pkg_mgr.php
index 708e7e8..bfb6d46 100755
--- a/usr/local/www/pkg_mgr.php
+++ b/usr/local/www/pkg_mgr.php
@@ -90,6 +90,7 @@ if (! empty($_GET))
if (isset($_GET['ver']))
$requested_version = htmlspecialchars($_GET['ver']);
+$closehead = false;
$pgtitle = array(gettext("System"),gettext("Package Manager"));
include("head.inc");
@@ -99,13 +100,15 @@ include("head.inc");
<script type="text/javascript" src="javascript/domTT/behaviour.js"></script>
<script type="text/javascript" src="javascript/domTT/fadomatic.js"></script>
<script type="text/javascript" language="javascript" src="/javascript/row_helper_dynamic.js"></script>
+</head>
+
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php
include("fbegin.inc");
if ($savemsg)
print_info_box($savemsg);
?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="package manager">
<tr>
<td>
<?php
@@ -124,13 +127,13 @@ include("head.inc");
<tr>
<td>
<div id="mainarea">
- <table class="tabcont sortable" width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table class="tabcont sortable" width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<tr>
<td width="12%" class="listhdrr"><?=gettext("Name"); ?></td>
<td width="18%" class="listhdrr"><?=gettext("Category"); ?></td>
<td width="15%" class="listhdrr"><?=gettext("Status"); ?></td>
<td width="53%" class="listhdr"><?=gettext("Description"); ?></td>
- <td width="17">&nbsp</td>
+ <td width="17">&nbsp;</td>
</tr>
<?php
if(!$pkg_info) {
@@ -178,7 +181,7 @@ include("head.inc");
continue;
/* get history/changelog git dir */
$commit_dir=explode("/",$index['config_file']);
- $changeloglink ="https://github.com/bsdperimeter/pfsense-packages/commits/master/config/".$commit_dir[(count($commit_dir)-2)];
+ $changeloglink ="https://github.com/pfsense/pfsense-packages/commits/master/config/".$commit_dir[(count($commit_dir)-2)];
/* Check package info link */
if($index['pkginfolink']){
$pkginfolink = $index['pkginfolink'];
@@ -191,7 +194,7 @@ include("head.inc");
?>
<tr valign="top">
<td class="listlr" <?=domTT_title(gettext("Click on package name to access its website."))?>>
- <A target="_blank" href="<?= $index['website'] ?>"><?= $index['name'] ?></a>
+ <a target="_blank" href="<?= $index['website'] ?>"><?= $index['name'] ?></a>
</td>
<td class="listr">
<?= $index['category'] ?>
@@ -222,7 +225,7 @@ include("head.inc");
if ($g['disablepackagehistory'])
echo"<a>{$index['version']}</a>";
else
- echo "<a target='_new' href='{$changeloglink}'>{$index['version']}</a>";
+ echo "<a target='_blank' href='{$changeloglink}'>{$index['version']}</a>";
?>
<br/>
<?=gettext("platform") .": ". $index['required_version'] ?>
@@ -232,18 +235,18 @@ include("head.inc");
<td class="listbg" style="overflow:hidden; text-align:justify;" <?=domTT_title(gettext("Click package info for more details about ".ucfirst($index['name'])." package."))?>>
<?= $index['descr'] ?>
<?php if (! $g['disablepackageinfo']): ?>
- <br><br>
- <a target='_new' href='<?=$pkginfolink?>' style='align:center;color:#ffffff; filter:Glow(color=#ff0000, strength=12);'><?=$pkginfo?></a>
+ <br/><br/>
+ <a target='_blank' href='<?=$pkginfolink?>' style='align:center;color:#ffffff; filter:Glow(color=#ff0000, strength=12);'><?=$pkginfo?></a>
<?php endif; ?>
</td>
- <td valign="middle" class="list" nowrap width="17">
- <a onclick="return confirm('<?=gettext("Do you really want to install ".ucfirst($index['name'])." package?"); ?>')" href="pkg_mgr_install.php?id=<?=$index['name'];?>"><img <?=domTT_title(gettext("Install ".ucfirst($index['name'])." package."))?> src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a>
+ <td valign="middle" class="list nowrap" width="17">
+ <a onclick="return confirm('<?=gettext("Do you really want to install ".ucfirst($index['name'])." package?"); ?>')" href="pkg_mgr_install.php?id=<?=$index['name'];?>"><img <?=domTT_title(gettext("Install ".ucfirst($index['name'])." package."))?> src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="add" /></a>
</td>
</tr>
<?php
}
} else {
- echo "<tr><td colspan='5'><center>" . gettext("There are currently no packages available for installation.") . "</center></td></tr>";
+ echo "<tr><td colspan='5' align='center'>" . gettext("There are currently no packages available for installation.") . "</td></tr>";
}
}
?>
diff --git a/usr/local/www/pkg_mgr_install.php b/usr/local/www/pkg_mgr_install.php
index 4f93408..45d5f42 100755
--- a/usr/local/www/pkg_mgr_install.php
+++ b/usr/local/www/pkg_mgr_install.php
@@ -1,32 +1,32 @@
<?php
/* $Id$ */
/*
- pkg_mgr_install.php
- part of pfSense (http://www.pfSense.com)
- Copyright (C) 2004-2010 Scott Ullrich <sullrich@gmail.com>
+ pkg_mgr_install.php
+ part of pfSense (http://www.pfSense.com)
+ Copyright (C) 2004-2010 Scott Ullrich <sullrich@gmail.com>
Copyright (C) 2005 Colin Smith
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
*/
/*
pfSense_BUILDER_BINARIES: /bin/rm
@@ -52,8 +52,6 @@ $static_output = "";
$static_status = "";
$sendto = "output";
-$todo = array();
-
$pgtitle = array(gettext("System"),gettext("Package Manager"),gettext("Install Package"));
include("head.inc");
@@ -63,7 +61,7 @@ include("head.inc");
<?php include("fbegin.inc"); ?>
<form action="pkg_mgr_install.php" method="post">
<div id="mainareapkg">
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="package manager install">
<tr>
<td>
<?php
@@ -79,29 +77,26 @@ include("head.inc");
</td>
</tr>
<tr>
- <td class="tabcont">
- <center>
- <table height='15' width='420' border='0' colspacing='0' cellpadding='0' cellspacing='0'>
- <tr>
- <td background="./themes/<?= $g['theme']; ?>/images/misc/bar_left.gif" height='15' width='5'>
- </td>
- <td>
- <table id="progholder" name="progholder" height='15' width='410' border='0' colspacing='0' cellpadding='0' cellspacing='0'>
- <td background="./themes/<?= $g['theme']; ?>/images/misc/bar_gray.gif" valign="top" align="left">
- <img src='./themes/<?= $g['theme']; ?>/images/misc/bar_blue.gif' width='0' height='15' name='progressbar' id='progressbar'>
- </td>
- </table>
- </td>
- <td background="./themes/<?= $g['theme']; ?>/images/misc/bar_right.gif" height='15' width='5'>
- </td>
- </tr>
- </table>
- <br>
- <!-- status box -->
- <textarea cols="80" rows="1" name="status" id="status" wrap="hard"><?=gettext("Beginning package installation.");?></textarea>
- <!-- command output box -->
- <textarea cols="80" rows="35" name="output" id="output" wrap="hard"></textarea>
- </center>
+ <td class="tabcont" align="center">
+ <table style="height:15;colspacing:0" width="420" border="0" cellpadding="0" cellspacing="0" summary="images">
+ <tr>
+ <td style="background:url('./themes/the_wall/images/misc/bar_left.gif')" height="15" width="5"></td>
+ <td>
+ <table id="progholder" style="height:15;colspacing:0" width="410" border="0" cellpadding="0" cellspacing="0" summary="progress bar">
+ <tr><td style="background:url('./themes/the_wall/images/misc/bar_gray.gif')" valign="top" align="left">
+ <img src='./themes/<?= $g['theme']; ?>/images/misc/bar_blue.gif' width="0" height="15" name="progressbar" id="progressbar" alt="progress bar" />
+ </td></tr>
+ </table>
+ </td>
+ <td style="background:url('./themes/the_wall/images/misc/bar_right.gif')" height="15" width="5">
+ </td>
+ </tr>
+ </table>
+ <br/>
+ <!-- status box -->
+ <textarea cols="80" rows="1" name="status" id="status" wrap="hard"><?=gettext("Beginning package installation.");?></textarea>
+ <!-- command output box -->
+ <textarea cols="80" rows="35" name="output" id="output" wrap="hard"></textarea>
</td>
</tr>
</table>
@@ -109,12 +104,11 @@ include("head.inc");
</form>
<?php include("fend.inc"); ?>
<script type="text/javascript">
+//<![CDATA[
NiftyCheck();
Rounded("div#mainareapkg","bl br","#FFF","#eeeeee","smooth");
+//]]>
</script>
-</body>
-</html>
-
<?php
@@ -175,23 +169,24 @@ switch($_GET['mode']) {
update_output_window(sprintf(gettext("Could not find %s."), htmlspecialchars($_GET['pkg'])));
break;
case "reinstallall":
- if (is_array($config['installedpackages']['package']))
+ if (is_array($config['installedpackages']['package'])) {
+ $todo = array();
foreach($config['installedpackages']['package'] as $package)
$todo[] = array('name' => $package['name'], 'version' => $package['version']);
- $pkg_id = 0;
- foreach($todo as $pkgtodo) {
- $static_output = "";
- if($pkgtodo['name']) {
- update_output_window($static_output);
- uninstall_package($pkgtodo['name']);
- install_package($pkgtodo['name']);
- $pkg_id++;
+ foreach($todo as $pkgtodo) {
+ $static_output = "";
+ if($pkgtodo['name']) {
+ update_output_window($static_output);
+ uninstall_package($pkgtodo['name']);
+ install_package($pkgtodo['name']);
+ }
}
- }
- update_status(gettext("All packages reinstalled."));
- $static_output .= "\n" . gettext("All packages reinstalled.");
- update_output_window($static_output);
- filter_configure();
+ update_status(gettext("All packages reinstalled."));
+ $static_output .= "\n" . gettext("All packages reinstalled.");
+ update_output_window($static_output);
+ filter_configure();
+ } else
+ update_output_window(gettext("No packages are installed."));
break;
default:
$pkgid = htmlspecialchars($_GET['id']);
@@ -221,10 +216,13 @@ rmdir_recursive("/var/tmp/instmp*");
// close log
if($fd_log)
- fclose($fd_log);
+ fclose($fd_log);
if($fs_mounted_rw) {
/* Restore to read only fs */
conf_mount_ro();
}
?>
+
+</body>
+</html>
diff --git a/usr/local/www/pkg_mgr_installed.php b/usr/local/www/pkg_mgr_installed.php
index 6b8745e..03d5441 100755
--- a/usr/local/www/pkg_mgr_installed.php
+++ b/usr/local/www/pkg_mgr_installed.php
@@ -76,7 +76,7 @@ if(is_array($config['installedpackages']['package'])) {
}
$currentvers = get_pkg_info($tocheck, array('version', 'xmlver', 'pkginfolink','descr'));
}
-
+$closehead = false;
$pgtitle = array(gettext("System"),gettext("Package Manager"));
include("head.inc");
@@ -86,9 +86,11 @@ include("head.inc");
<script type="text/javascript" src="javascript/domTT/behaviour.js"></script>
<script type="text/javascript" src="javascript/domTT/fadomatic.js"></script>
<script type="text/javascript" language="javascript" src="/javascript/row_helper_dynamic.js"></script>
+</head>
+
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc"); ?>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="packages installed">
<tr>
<td>
<?php
@@ -106,13 +108,13 @@ include("head.inc");
<tr>
<td>
<div id="mainarea">
- <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<tr>
<td width="12%" class="listhdrr"><?=gettext("Name"); ?></td>
<td width="16%" class="listhdrr"><?=gettext("Category"); ?></td>
<td width="15%" class="listhdrr"><?=gettext("Version"); ?></td>
<td width="53%" class="listhdr"><?=gettext("Description"); ?></td>
- <td width="40" >&nbsp</td>
+ <td width="40">&nbsp;</td>
</tr>
<?php
if(is_array($config['installedpackages']['package'])):
@@ -131,7 +133,7 @@ include("head.inc");
// get history/changelog git dir
$commit_dir=explode("/",$pkg['config_file']);
- $changeloglink ="https://github.com/bsdperimeter/pfsense-packages/commits/master/config/".$commit_dir[(count($commit_dir)-2)];
+ $changeloglink ="https://github.com/pfsense/pfsense-packages/commits/master/config/".$commit_dir[(count($commit_dir)-2)];
#check package version
$latest_package = $currentvers[$pkg['name']]['version'];
if ($latest_package) {
@@ -141,17 +143,17 @@ include("head.inc");
if ($g['disablepackagehistory'])
$pkgver = "<a>".gettext("Available") .": ". $latest_package . "<br/>";
else
- $pkgver = "<a target='_new' href='$changeloglink'>".gettext("Available") .": ". $latest_package . "<br/>";
+ $pkgver = "<a target='_blank' href='$changeloglink'>".gettext("Available") .": ". $latest_package . "<br/>";
$pkgver .= gettext("Installed") .": ". $pkg['version']. "</a>";
}
// we're running an older version of the package
if(strcmp($pkg['version'], $latest_package) < 0) {
$tdclass = "listbg";
if ($g['disablepackagehistory'])
- $pkgver = "<a><font color='#ffffff'>" . gettext("Available") .": ". $latest_package . "<br/>";
+ $pkgver = "<a><font color='#ffffff'>" . gettext("Available") .": ". $latest_package . "</font><br/>";
else
- $pkgver = "<a target='_new' href='$changeloglink'><font color='#ffffff'>" . gettext("Available") .": ". $latest_package . "<br/>";
- $pkgver .= gettext("Installed") .": ". $pkg['version']."</a>";
+ $pkgver = "<a target='_blank' href='$changeloglink'><font color='#ffffff'>" . gettext("Available") .": ". $latest_package . "<br/>";
+ $pkgver .= gettext("Installed") .": ". $pkg['version']."</font></a>";
}
// we're running the current version
if(!strcmp($pkg['version'], $latest_package)) {
@@ -159,7 +161,7 @@ include("head.inc");
if ($g['disablepackagehistory'])
$pkgver = "<a>{$pkg['version']}</a>";
else
- $pkgver = "<a target='_new' href='$changeloglink'>{$pkg['version']}</a>";
+ $pkgver = "<a target='_blank' href='$changeloglink'>{$pkg['version']}</a>";
}
} else {
// unknown available package version
@@ -169,7 +171,7 @@ include("head.inc");
if ($g['disablepackagehistory'])
$pkgver = "<a>{$pkg['version']}</a>";
else
- $pkgver = "<a target='_new' href='$changeloglink'>{$pkg['version']}</a>";
+ $pkgver = "<a target='_blank' href='$changeloglink'>{$pkg['version']}</a>";
}
}
/* Check package info link */
@@ -199,20 +201,20 @@ include("head.inc");
<td class="listbg" style="overflow:hidden; text-align:justify;" <?=domTT_title(gettext("Click package info for more details about ".ucfirst($pkg['name'])." package."))?>>
<?=$currentvers[$pkg['name']]['descr'];?>
<?php if (! $g['disablepackageinfo']): ?>
- <br><br>
- <a target='_new' href='<?=$pkginfolink?>' style='align:center;color:#ffffff; filter:Glow(color=#ff0000, strength=12);'><?=$pkginfo?></a>
+ <br/><br/>
+ <a target='_blank' href='<?=$pkginfolink?>' style='align:center;color:#ffffff; filter:Glow(color=#ff0000, strength=12);'><?=$pkginfo?></a>
<?php endif; ?>
</td>
- <td valign="middle" class="list" nowrap>
- <a onclick="return confirm('<?=gettext("Do you really want to remove {$pkg['name']} package?"); ?>')" href="pkg_mgr_install.php?mode=delete&pkg=<?= $pkg['name']; ?>">
- <img <?=domTT_title(gettext("Remove ".ucfirst($pkg['name'])." package."))?> src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0">
+ <td valign="middle" class="list nowrap">
+ <a onclick="return confirm('<?=gettext("Do you really want to remove {$pkg['name']} package?"); ?>')" href="pkg_mgr_install.php?mode=delete&amp;pkg=<?= $pkg['name']; ?>">
+ <img <?=domTT_title(gettext("Remove ".ucfirst($pkg['name'])." package."))?> src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" alt="delete" />
</a>
- <br>
- <a href="pkg_mgr_install.php?mode=reinstallpkg&pkg=<?= $pkg['name']; ?>">
- <img <?=domTT_title(gettext("Reinstall ".ucfirst($pkg['name'])." package."));?> src="./themes/<?= $g['theme']; ?>/images/icons/icon_reinstall_pkg.gif" width="17" height="17" border="0">
+ <br/>
+ <a href="pkg_mgr_install.php?mode=reinstallpkg&amp;pkg=<?= $pkg['name']; ?>">
+ <img <?=domTT_title(gettext("Reinstall ".ucfirst($pkg['name'])." package."));?> src="./themes/<?= $g['theme']; ?>/images/icons/icon_reinstall_pkg.gif" width="17" height="17" border="0" alt="reinstall" />
</a>
- <a href="pkg_mgr_install.php?mode=reinstallxml&pkg=<?= $pkg['name']; ?>">
- <img <?=domTT_title(gettext("Reinstall ".ucfirst($pkg['name'])."'s GUI components."));?> src="./themes/<?= $g['theme']; ?>/images/icons/icon_reinstall_xml.gif" width="17" height="17" border="0">
+ <a href="pkg_mgr_install.php?mode=reinstallxml&amp;pkg=<?= $pkg['name']; ?>">
+ <img <?=domTT_title(gettext("Reinstall ".ucfirst($pkg['name'])."'s GUI components."));?> src="./themes/<?= $g['theme']; ?>/images/icons/icon_reinstall_xml.gif" width="17" height="17" border="0" alt="reinstall" />
</a>
</td>
</tr>
diff --git a/usr/local/www/pkg_mgr_settings.php b/usr/local/www/pkg_mgr_settings.php
index 27c19da..1c0e22b 100644
--- a/usr/local/www/pkg_mgr_settings.php
+++ b/usr/local/www/pkg_mgr_settings.php
@@ -58,13 +58,12 @@ if ($_POST) {
}
$curcfg = $config['system']['altpkgrepo'];
-
+$closehead = false;
$pgtitle = array(gettext("System"),gettext("Package Settings"));
include("head.inc");
?>
-<script language="JavaScript">
-<!--
-
+<script type="text/javascript">
+//<![CDATA[
function enable_altpkgrepourl(enable_over) {
if (document.iform.alturlenable.checked || enable_over) {
@@ -74,16 +73,16 @@ function enable_altpkgrepourl(enable_over) {
}
}
-// -->
+//]]>
</script>
-
+</head>
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc");?>
<?php if ($input_errors) print_input_errors($input_errors); ?>
<form action="pkg_mgr_settings.php" method="post" name="iform" id="iform">
<?php if ($savemsg) print_info_box($savemsg); ?>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="package manager settings">
<tr>
<td>
<?php
@@ -96,28 +95,32 @@ function enable_altpkgrepourl(enable_over) {
?>
</td>
</tr>
- <tr><td><div id=mainarea>
- <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0">
+ <tr><td><div id="mainarea">
+ <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Package Repository URL");?></td>
</tr>
<tr>
<td valign="top" class="vncell"><?=gettext("Package Repository URL");?></td>
<td class="vtable">
- <input name="alturlenable" type="checkbox" id="alturlenable" value="yes" onClick="enable_altpkgrepourl()" <?php if(isset($curcfg['enable'])) echo "checked"; ?>> <?=gettext("Use a different URL server for packages other than");?> <?php echo $g['product_website']; ?><br>
- <table>
- <tr><td><?=gettext("Base URL:");?></td><td><input name="pkgrepourl" type="input" class="formfld url" id="pkgrepourl" size="64" value="<?php if($curcfg['xmlrpcbaseurl']) echo $curcfg['xmlrpcbaseurl']; else echo $g['']; ?>"></td></tr>
+ <input name="alturlenable" type="checkbox" id="alturlenable" value="yes" onclick="enable_altpkgrepourl()" <?php if(isset($curcfg['enable'])) echo "checked=\"checked\""; ?> /> <?=gettext("Use a different URL server for packages other than");?> <?php echo $g['product_website']; ?><br/>
+ <table summary="alternative URL">
+ <tr><td><?=gettext("Base URL:");?></td><td><input name="pkgrepourl" type="text" class="formfld url" id="pkgrepourl" size="64" value="<?php if($curcfg['xmlrpcbaseurl']) echo $curcfg['xmlrpcbaseurl']; else echo $g['']; ?>" /></td></tr>
</table>
<span class="vexpl">
<?php printf(gettext("This is where %s will check for packages when the"),$g['product_name']);?>, <a href="pkg_mgr.php"><?=gettext("System: Packages");?></a> <?=gettext("page is viewed.");?>
</span>
</td>
</tr>
- <script>enable_altpkgrepourl();</script>
+ <script type="text/javascript">
+ //<![CDATA[
+ enable_altpkgrepourl();
+ //]]>
+ </script>
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
- <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save");?>">
+ <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save");?>" />
</td>
</tr>
</table></div></td></tr></table>
diff --git a/usr/local/www/progress.php b/usr/local/www/progress.php
deleted file mode 100755
index f222215..0000000
--- a/usr/local/www/progress.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-/* $Id$ */
-
-include("guiconfig.inc");
-
-$g['theme'] = get_current_theme();
-
-$url = 'progress.php?UPLOAD_IDENTIFIER='. $_GET["UPLOAD_IDENTIFIER"] .'&e=1';
-
-function nice_value($x) {
- if ($x < 100) return $x;
- if ($x < 10000) return sprintf("%.2fKB", $x/1000);
- if ($x < 900000) return sprintf("%dKB", $x/1000);
- return sprintf("%.2fMB", $x/1000/1000);
-}
-
-$X = upload_progress_meter_get_info( $_GET["UPLOAD_IDENTIFIER"] );
-if (!$X) {
-
- if ( array_key_exists( "e", $_GET ) ) {
- echo "<HTML><BODY onLoad='window.close();'>" . gettext("Invalid Meter ID") . "! {$_GET["UPLOAD_IDENTIFIER"]}";
- echo ('</BODY></HTML>');
- }else{
- echo ('<HTML><meta HTTP-EQUIV="Refresh" CONTENT="1; url='. $url .'"><BODY></BODY></HTML>');
- }
- exit;
-
-} else {
-
- $meter = sprintf("%.2f", $X['bytes_uploaded'] / $X['bytes_total'] * 100);
-
- $sp = $X['speed_last'];
- if ($sp < 10000) $speed = sprintf("%.2f", $sp / 1000);
- else $speed = sprintf("%d", $sp / 1000);
-
- $eta = sprintf("%02d:%02d", $X['est_sec'] / 60, $X['est_sec'] % 60 );
-
- $upl = nice_value($X['bytes_uploaded']);
- $total = nice_value($X['bytes_total']);
-
- if ($X['bytes_total'] > 1 && $X['bytes_uploaded'] >= $X['bytes_total'] && $X['est_sec'] == 0) {
- echo ('<HTML><BODY onLoad="window.close()"> ' . gettext("UPLOAD completed") . '!</BODY></HTML>');
- exit;
- }
-}
-
-?>
-
-<HTML>
-<HEAD>
-
-<meta HTTP-EQUIV="Refresh" CONTENT="1; url=<?=$url?>">
-
-<TITLE><?=gettext("Uploading Files... Please wait..."); ?></TITLE>
-
-<style type='text/css'> td {font-size: 10pt }</style>
-
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-
-<table height="100%" width="100%" cellPadding="4" cellSpacing="4" style="border:1px solid #990000;">
-<tr><td>
-
- <font face="arial"><b><center><?=gettext("Uploading files...");?></b></center>
-
- <br>
-
- <table width="100%" height="15" colspacing="0" cellpadding="0" cellspacing="0" border="0" align="top" nowrap>
- <td width="5" height="15" background="./themes/<?= $g['theme']; ?>/images/misc/bar_left.gif" align="top"></td>
- <td>
- <table WIDTH="100%" height="15" colspacing="0" cellpadding="0" cellspacing="0" border="0" align="top" nowrap>
- <td background="./themes/<?= $g['theme']; ?>/images/misc/bar_gray.gif"><?php echo("<img src='./themes/".$g['theme']."/images/misc/bar_blue.gif' height='15' WIDTH='$meter%'>");?></td>
- </table>
-
- </td>
- <td width="5" height="15" background="./themes/<?= $g['theme']; ?>/images/misc/bar_right.gif" align="top"></td>
- </table>
-
- <br>
-
- <TABLE WIDTH="100%">
- <tr>
- <td align="right"><font face="arial"><b><?=gettext("Time Remaining:");?></td><td><font face="arial"><?=$eta?></td>
- <td align="right"><font face="arial"><b><?=gettext("Speed:");?></td><td><font face="arial"><font face="arial"><?=$speed?><?=gettext("KB/sec");?></td>
- </tr>
-
- <tr>
- <td align="right"><font face="arial"><b><?=gettext("Uploaded:");?></td><td><font face="arial"><?=$upl?></td>
- <td align="right"><font face="arial"><b><?=gettext("File Size:");?></td><td><font face="arial"><?=$total?></td>
- </tr>
-
- <tr>
- <td align="right"><font face="arial"><b><?=gettext("Completed:");?></td><td><font face="arial"><?=$meter?>%</td>
- <td align="right"><font face="arial"><b></td><td><font face="arial"></td>
- </tr>
-
-</td></tr>
-</table>
-
-</BODY>
-</HTML>
diff --git a/usr/local/www/services_captiveportal.php b/usr/local/www/services_captiveportal.php
index c421e80..a387ede 100755
--- a/usr/local/www/services_captiveportal.php
+++ b/usr/local/www/services_captiveportal.php
@@ -48,7 +48,7 @@ $cpzone = $_GET['zone'];
if (isset($_POST['zone']))
$cpzone = $_POST['zone'];
-if (empty($cpzone)) {
+if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) {
header("Location: services_captiveportal_zones.php");
exit;
}
@@ -95,8 +95,8 @@ if ($a_cp[$cpzone]) {
$pconfig['freelogins_resettimeout'] = $a_cp[$cpzone]['freelogins_resettimeout'];
$pconfig['freelogins_updatetimeouts'] = isset($a_cp[$cpzone]['freelogins_updatetimeouts']);
$pconfig['enable'] = isset($a_cp[$cpzone]['enable']);
- $pconfig['pms_enabled'] = $a_cp[$cpzone]['pms_enabled'];
$pconfig['auth_method'] = $a_cp[$cpzone]['auth_method'];
+ $pconfig['localauth_priv'] = isset($a_cp[$cpzone]['localauth_priv']);
$pconfig['radacct_enable'] = isset($a_cp[$cpzone]['radacct_enable']);
$pconfig['radmac_enable'] = isset($a_cp[$cpzone]['radmac_enable']);
$pconfig['radmac_secret'] = $a_cp[$cpzone]['radmac_secret'];
@@ -112,7 +112,7 @@ if ($a_cp[$cpzone]) {
$pconfig['bwdefaultup'] = $a_cp[$cpzone]['bwdefaultup'];
$pconfig['nomacfilter'] = isset($a_cp[$cpzone]['nomacfilter']);
$pconfig['noconcurrentlogins'] = isset($a_cp[$cpzone]['noconcurrentlogins']);
- $pconfig['radius_protocol'] = $a_cp[$cpzone]['radius_protocol'];
+ $pconfig['radius_protocol'] = $a_cp[$cpzone]['radius_protocol'];
$pconfig['redirurl'] = $a_cp[$cpzone]['redirurl'];
$pconfig['radiusip'] = $a_cp[$cpzone]['radiusip'];
$pconfig['radiusip2'] = $a_cp[$cpzone]['radiusip2'];
@@ -133,6 +133,8 @@ if ($a_cp[$cpzone]) {
$pconfig['passthrumacadd'] = isset($a_cp[$cpzone]['passthrumacadd']);
$pconfig['passthrumacaddusername'] = isset($a_cp[$cpzone]['passthrumacaddusername']);
$pconfig['radmac_format'] = $a_cp[$cpzone]['radmac_format'];
+ $pconfig['reverseacct'] = isset($a_cp[$cpzone]['reverseacct']);
+ $pconfig['radiusnasid'] = $a_cp[$cpzone]['radiusnasid'];
$pconfig['page'] = array();
if ($a_cp[$cpzone]['page']['htmltext'])
$pconfig['page']['htmltext'] = $a_cp[$cpzone]['page']['htmltext'];
@@ -169,7 +171,7 @@ if ($_POST) {
}
if ($_POST['httpslogin_enable']) {
- if (!$_POST['certref']) {
+ if (!$_POST['certref']) {
$input_errors[] = gettext("Certificate must be specified for HTTPS login.");
}
if (!$_POST['httpsname'] || !is_domain($_POST['httpsname'])) {
@@ -178,8 +180,24 @@ if ($_POST) {
}
}
- if ($_POST['timeout'] && (!is_numeric($_POST['timeout']) || ($_POST['timeout'] < 1))) {
- $input_errors[] = gettext("The timeout must be at least 1 minute.");
+ if ($_POST['timeout']) {
+ if (!is_numeric($_POST['timeout']) || ($_POST['timeout'] < 1))
+ $input_errors[] = gettext("The timeout must be at least 1 minute.");
+ else if (isset($config['dhcpd']) && is_array($config['dhcpd'])) {
+ foreach ($config['dhcpd'] as $dhcpd_if => $dhcpd_data) {
+ if (!isset($dhcpd_data['enable']))
+ continue;
+ if (!is_array($_POST['cinterface']) || !in_array($dhcpd_if, $_POST['cinterface']))
+ continue;
+
+ $deftime = 7200; // Default lease time
+ if (isset($dhcpd_data['defaultleasetime']) && is_numeric($dhcpd_data['defaultleasetime']))
+ $deftime = $dhcpd_data['defaultleasetime'];
+
+ if ($_POST['timeout'] > $deftime)
+ $input_errors[] = gettext("Hard timeout must be less or equal Default lease time set on DHCP Server");
+ }
+ }
}
if ($_POST['idletimeout'] && (!is_numeric($_POST['idletimeout']) || ($_POST['idletimeout'] < 1))) {
$input_errors[] = gettext("The idle timeout must be at least 1 minute.");
@@ -221,6 +239,9 @@ if ($_POST) {
if ($_POST['maxproc'] && (!is_numeric($_POST['maxproc']) || ($_POST['maxproc'] < 4) || ($_POST['maxproc'] > 100))) {
$input_errors[] = gettext("The maximum number of concurrent connections per client IP address may not be larger than the global maximum.");
}
+ if (trim($_POST['radiusnasid']) !== "" && !preg_match("/^[\x21-\x7e]{3,253}$/i", trim($_POST['radiusnasid']))) {
+ $input_errors[] = gettext("The NAS-Identifier must be 3-253 characters long and should only contain ASCII characters.");
+ }
if (!$input_errors) {
$newcp =& $a_cp[$cpzone];
@@ -231,7 +252,7 @@ if ($_POST) {
if ($cp['zoneid'] == $newcp['zoneid'] && $keycpzone != $cpzone)
$newcp['zoneid'] += 2; /* Resreve space for SSL config if needed */
}
- $oldifaces = $newcp['interface'];
+ $oldifaces = explode(",", $newcp['interface']);
if (is_array($_POST['cinterface']))
$newcp['interface'] = implode(",", $_POST['cinterface']);
$newcp['maxproc'] = $_POST['maxproc'];
@@ -245,11 +266,8 @@ if ($_POST) {
$newcp['enable'] = true;
else
unset($newcp['enable']);
- if ($_POST['pms_enabled'])
- $newcp['pms_enabled'] = $_POST['pms_enabled'];
- else
- unset($newcp['pms_enabled']);
$newcp['auth_method'] = $_POST['auth_method'];
+ $newcp['localauth_priv'] = isset($_POST['localauth_priv']);
$newcp['radacct_enable'] = $_POST['radacct_enable'] ? true : false;
$newcp['reauthenticate'] = $_POST['reauthenticate'] ? true : false;
$newcp['radmac_enable'] = $_POST['radmac_enable'] ? true : false;
@@ -268,7 +286,7 @@ if ($_POST) {
$newcp['logoutwin_enable'] = $_POST['logoutwin_enable'] ? true : false;
$newcp['nomacfilter'] = $_POST['nomacfilter'] ? true : false;
$newcp['noconcurrentlogins'] = $_POST['noconcurrentlogins'] ? true : false;
- $newcp['radius_protocol'] = $_POST['radius_protocol'];
+ $newcp['radius_protocol'] = $_POST['radius_protocol'];
$newcp['redirurl'] = $_POST['redirurl'];
if (isset($_POST['radiusip']))
$newcp['radiusip'] = $_POST['radiusip'];
@@ -303,6 +321,8 @@ if ($_POST) {
$newcp['passthrumacadd'] = $_POST['passthrumacadd'] ? true : false;
$newcp['passthrumacaddusername'] = $_POST['passthrumacaddusername'] ? true : false;
$newcp['radmac_format'] = $_POST['radmac_format'] ? $_POST['radmac_format'] : false;
+ $newcp['reverseacct'] = $_POST['reverseacct'] ? true : false;
+ $newcp['radiusnasid'] = trim($_POST['radiusnasid']);
if (!is_array($newcp['page']))
$newcp['page'] = array();
@@ -316,26 +336,20 @@ if ($_POST) {
write_config();
- if (!empty($oldifaces) && $oldifaces != $newcp['interface']) {
- $ocpinterfaces = explode(",", $oldifaces);
- foreach ($ocpinterfaces as $cpifgrp) {
- $listrealif = get_real_interface($cpifgrp);
- if (does_interface_exist($listrealif)) {
- pfSense_interface_flags($listrealif, -IFF_IPFW_FILTER);
- $carpif = link_ip_to_carp_interface(find_interface_ip($listrealif));
- if (!empty($carpif)) {
- $carpsif = explode(" ", $carpif);
- foreach ($carpsif as $cpcarp)
- pfSense_interface_flags($cpcarp, -IFF_IPFW_FILTER);
- }
- }
+ /* 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("/usr/local/sbin/ipfw_context -d {$cpzone} -x {$removeif}");
}
}
-
captiveportal_configure_zone($newcp);
+ unset($newcp, $newifaces, $toremove);
filter_configure();
header("Location: services_captiveportal_zones.php");
- exit;
+ exit;
} else {
if (is_array($_POST['cinterface']))
$pconfig['cinterface'] = implode(",", $_POST['cinterface']);
@@ -348,6 +362,7 @@ include("head.inc");
function enable_change(enable_change) {
var endis, radius_endis;
endis = !(document.iform.enable.checked || enable_change);
+ localauth_endis = !((!endis && document.iform.auth_method[1].checked) || enable_change);
radius_endis = !((!endis && document.iform.auth_method[2].checked) || enable_change);
https_endis = !((!endis && document.iform.httpslogin_enable.checked) || enable_change);
@@ -361,6 +376,7 @@ function enable_change(enable_change) {
document.iform.timeout.disabled = endis;
document.iform.preauthurl.disabled = endis;
document.iform.redirurl.disabled = endis;
+ document.iform.localauth_priv.disabled = localauth_endis;
document.iform.radiusip.disabled = radius_endis;
document.iform.radiusip2.disabled = radius_endis;
document.iform.radiusip3.disabled = radius_endis;
@@ -408,6 +424,8 @@ function enable_change(enable_change) {
document.iform.reauthenticateacct[0].disabled = radacct_dis;
document.iform.reauthenticateacct[1].disabled = radacct_dis;
document.iform.reauthenticateacct[2].disabled = radacct_dis;
+ document.iform.reverseacct.disabled = (radius_endis || !document.iform.radacct_enable.checked) && !enable_change;
+ document.iform.radiusnasid.disabled = radius_endis;
}
//-->
</script>
@@ -423,7 +441,7 @@ function enable_change(enable_change) {
$tab_array[] = array(gettext("Captive portal(s)"), true, "services_captiveportal.php?zone={$cpzone}");
$tab_array[] = array(gettext("Pass-through MAC"), false, "services_captiveportal_mac.php?zone={$cpzone}");
$tab_array[] = array(gettext("Allowed IP addresses"), false, "services_captiveportal_ip.php?zone={$cpzone}");
- $tab_array[] = array(gettext("Allowed Hostnames"), false, "services_captiveportal_hostname.php?zone={$cpzone}");
+ $tab_array[] = array(gettext("Allowed Hostnames"), false, "services_captiveportal_hostname.php?zone={$cpzone}");
$tab_array[] = array(gettext("Vouchers"), false, "services_captiveportal_vouchers.php?zone={$cpzone}");
$tab_array[] = array(gettext("File Manager"), false, "services_captiveportal_filemanager.php?zone={$cpzone}");
display_top_tabs($tab_array, true);
@@ -441,7 +459,7 @@ function enable_change(enable_change) {
<td width="22%" valign="top" class="vncellreq"><?=gettext("Interfaces"); ?></td>
<td width="78%" class="vtable">
<select name="cinterface[]" multiple="true" size="<?php echo count($config['interfaces']); ?>" class="formselect" id="cinterface">
- <?php
+ <?php
$interfaces = get_configured_interface_with_descr();
$cselected = explode(",", $pconfig['cinterface']);
foreach ($interfaces as $iface => $ifacename): ?>
@@ -510,7 +528,7 @@ function enable_change(enable_change) {
<td valign="top" class="vncell"><?=gettext("Pre-authentication redirect URL"); ?> </td>
<td class="vtable">
<input name="preauthurl" type="text" class="formfld url" id="preauthurl" size="60" value="<?=htmlspecialchars($pconfig['preauthurl']);?>"><br>
- <?php printf(gettext("Use this field to set \$PORTAL_REDIRURL\$ variable which can be accessed using your custom captive portal index.php page or error pages."));?>
+ <?php printf(gettext("Use this field to set \$PORTAL_REDIRURL\$ variable which can be accessed using your custom captive portal index.php page or error pages."));?>
</td>
</tr>
<tr>
@@ -542,7 +560,7 @@ function enable_change(enable_change) {
<td class="vtable">
<input name="passthrumacadd" type="checkbox" class="formfld" id="passthrumacadd" value="yes" <?php if ($pconfig['passthrumacadd']) echo "checked"; ?>>
<strong><?=gettext("Enable Pass-through MAC automatic additions"); ?></strong><br>
- <?=gettext("If this option is set, a MAC passthrough entry is automatically added after the user has successfully authenticated. Users of that MAC address will never have to authenticate again."); ?>
+ <?=gettext("If this option is set, a MAC passthrough entry is automatically added after the user has successfully authenticated. Users of that MAC address will never have to authenticate again."); ?>
<?=gettext("To remove the passthrough MAC entry you either have to log in and remove it manually from the"); ?> <a href="services_captiveportal_mac.php"><?=gettext("Pass-through MAC tab"); ?></a> <?=gettext("or send a POST from another system to remove it."); ?>
<?=gettext("If this is enabled, RADIUS MAC authentication cannot be used. Also, the logout window will not be shown."); ?>
<br/><br/>
@@ -570,33 +588,32 @@ function enable_change(enable_change) {
<?=gettext("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."); ?> </td>
</tr>
<tr>
- <td valign="top" class="vncell"><?=gettext("PMS authentication"); ?> </td>
- <td class="vtable">
- <input name="pms_enabled" type="checkbox" class="formfld" id="pms_enabled" value="yes" <?php if ($pconfig['pms_enabled']) echo "checked"; ?>>
- <strong><?=gettext("Enable PMS authentication"); ?></strong><br>
- <?=gettext("If this option is set, users will be authenticated through the PMS backend if they fill the necessary information in the login page.");?>
- </td>
- </tr>
- <tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Authentication"); ?></td>
<td width="78%" class="vtable">
<table cellpadding="0" cellspacing="0">
<tr>
<td colspan="2"><input name="auth_method" type="radio" id="auth_method" value="none" onClick="enable_change(false)" <?php if($pconfig['auth_method']!="local" && $pconfig['auth_method']!="radius") echo "checked"; ?>>
<?=gettext("No Authentication"); ?></td>
- </tr>
+ </tr>
<tr>
<td colspan="2"><input name="auth_method" type="radio" id="auth_method" value="local" onClick="enable_change(false)" <?php if($pconfig['auth_method']=="local") echo "checked"; ?>>
<?=gettext("Local"); ?> <a href="system_usermanager.php"><?=gettext("User Manager"); ?></a> / <?=gettext("Vouchers"); ?></td>
- </tr>
+ </tr>
+ </tr><tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ </tr>
<tr>
+ <td>&nbsp;</td>
+ <td><input name="localauth_priv" type="checkbox" id="localauth_priv" value="yes" onClick="enable_change(false)" <?php if($pconfig['localauth_priv']=="yes") echo "checked"; ?>>
+ <?=gettext("Allow only users/groups with 'Captive portal login' privilege set"); ?></td>
+ </tr><tr>
<td colspan="2"><input name="auth_method" type="radio" id="auth_method" value="radius" onClick="enable_change(false)" <?php if($pconfig['auth_method']=="radius") echo "checked"; ?>>
<?=gettext("RADIUS Authentication"); ?></td>
- </tr><tr>
+ </tr><tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
- </tr>
- <tr>
+ </tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Radius Protocol"); ?></td>
<td width="78%" class="vtable">
<table cellpadding="0" cellspacing="0">
@@ -711,10 +728,7 @@ function enable_change(enable_change) {
<td colspan="2" class="list" height="12"></td>
</tr>
<tr>
- <td colspan="2" valign="top" class="listtopic">&nbsp;</td>
- </tr>
- <tr>
- <td colspan="2" valign="top" class="optsect_t2"><?=gettext("Accounting"); ?></td>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("Accounting"); ?></td>
</tr>
<tr>
<td class="vncell">&nbsp;</td>
@@ -731,16 +745,6 @@ function enable_change(enable_change) {
<td colspan="2" class="list" height="12"></td>
</tr>
<tr>
- <td colspan="2" valign="top" class="optsect_t2"><?=gettext("Reauthentication"); ?></td>
- </tr>
- <tr>
- <td class="vncell">&nbsp;</td>
- <td class="vtable"><input name="reauthenticate" type="checkbox" id="reauthenticate" value="yes" onClick="enable_change(false)" <?php if($pconfig['reauthenticate']) echo "checked"; ?>>
- <strong><?=gettext("Reauthenticate connected users every minute"); ?></strong><br>
- <?=gettext("If reauthentication is enabled, Access-Requests will be sent to the RADIUS server for each user that is " .
- "logged in every minute. If an Access-Reject is received for a user, that user is disconnected from the captive portal immediately."); ?></td>
- </tr>
- <tr>
<td class="vncell" valign="top"><?=gettext("Accounting updates"); ?></td>
<td class="vtable">
<input name="reauthenticateacct" type="radio" value="" <?php if(!$pconfig['reauthenticateacct']) echo "checked"; ?>> <?=gettext("no accounting updates"); ?><br>
@@ -752,29 +756,29 @@ function enable_change(enable_change) {
<td colspan="2" class="list" height="12"></td>
</tr>
<tr>
- <td colspan="2" valign="top" class="optsect_t2"><?=gettext("RADIUS MAC authentication"); ?></td>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("RADIUS options"); ?></td>
</tr>
<tr>
- <td class="vncell">&nbsp;</td>
- <td class="vtable">
+ <td class="vncell"><?=gettext("Reauthentication"); ?></td>
+ <td class="vtable"><input name="reauthenticate" type="checkbox" id="reauthenticate" value="yes" onClick="enable_change(false)" <?php if($pconfig['reauthenticate']) echo "checked"; ?>>
+ <strong><?=gettext("Reauthenticate connected users every minute"); ?></strong><br>
+ <?=gettext("If reauthentication is enabled, Access-Requests will be sent to the RADIUS server for each user that is " .
+ "logged in every minute. If an Access-Reject is received for a user, that user is disconnected from the captive portal immediately."); ?></td>
+ </tr>
+ <tr>
+ <td class=""><?=gettext("RADIUS MAC authentication"); ?></td>
+ <td class="">
<input name="radmac_enable" type="checkbox" id="radmac_enable" value="yes" onClick="enable_change(false)" <?php if ($pconfig['radmac_enable']) echo "checked"; ?>><strong><?=gettext("Enable RADIUS MAC authentication"); ?></strong><br>
<?=gettext("If this option is enabled, the captive portal will try to authenticate users by sending their MAC address as the username and the password " .
"entered below to the RADIUS server."); ?></td>
</tr>
<tr>
- <td class="vncell"><?=gettext("Shared secret"); ?></td>
+ <td class="vncell"><?=gettext("MAC authentication secret"); ?></td>
<td class="vtable"><input name="radmac_secret" type="text" class="formfld unknown" id="radmac_secret" size="16" value="<?=htmlspecialchars($pconfig['radmac_secret']);?>"></td>
</tr>
<tr>
- <td colspan="2" class="list" height="12"></td>
- </tr>
- <tr>
- <td colspan="2" valign="top" class="optsect_t2"><?=gettext("RADIUS options"); ?></td>
- </tr>
-
- <tr>
<td class="vncell" valign="top"><?=gettext("RADIUS NAS IP attribute"); ?></td>
- <td>
+ <td class="vtable">
<select name="radiussrcip_attribute" id="radiussrcip_attribute">
<?php $iflist = get_configured_interface_with_descr();
foreach ($iflist as $ifdesc => $ifdescr) {
@@ -787,18 +791,18 @@ function enable_change(enable_change) {
}
}
if (is_array($config['virtualip']['vip'])) {
- foreach ($config['virtualip']['vip'] as $sn) {
- if ($sn['mode'] == "proxyarp" && $sn['type'] == "network") {
- $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);
- echo "<option value='{$snip}' {$selected}>" . htmlspecialchars("{$sn['descr']} - {$snip}") . "></option>\n";
+ foreach ($config['virtualip']['vip'] as $sn) {
+ if ($sn['mode'] == "proxyarp" && $sn['type'] == "network") {
+ $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);
+ echo "<option value='{$snip}' {$selected}>" . htmlspecialchars("{$sn['descr']} - {$snip}") . "></option>\n";
}
} else
- echo "<option value='{$sn['subnet']}' {$selected}>" . htmlspecialchars("{$sn['descr']} - {$sn['subnet']}") . "></option>\n";
+ echo "<option value='{$sn['subnet']}' {$selected}>" . htmlspecialchars("{$sn['descr']} - {$sn['subnet']}") . "></option>\n";
}
}
?>
@@ -830,43 +834,57 @@ function enable_change(enable_change) {
"the Called-Station-Id to the client's MAC address. Default behavior is Calling-Station-Id = client's MAC address and Called-Station-Id = %s's WAN IP address."),
$g['product_name']);?></td>
</tr>
+
+ <tr>
+ <td class="vncell" valign="top"><?=gettext("Accounting Style"); ?></td>
+ <td class="vtable"><input name="reverseacct" type="checkbox" id="reverseacct" value="yes" <?php if ($pconfig['reverseacct']) echo "checked"; ?>><strong><?=gettext("Invert Acct-Input-Octets and Acct-Output-Octets"); ?></strong><br>
+ <?=gettext("When this is enabled, data counts for RADIUS accounting packets will be taken from the client perspective, not the NAS. Acct-Input-Octets will represent download, and Acct-Output-Octets will represent upload."); ?></td>
+ </tr>
+
+ <tr>
+ <td class="vncell" valign="top"><?=gettext("NAS Identifier"); ?></td>
+ <td class="vtable"><input name="radiusnasid" type="text" maxlength="253" class="formfld unknown" id="radiusnasid" value="<?=htmlspecialchars($pconfig['radiusnasid']);?>"/><br/>
+ <?=gettext("Specify a NAS identifier to override the default value") . " (" . php_uname("n") . ")"; ?></td>
+ </tr>
+ <tr>
+ <td class="vncell" valign="top"><?=gettext("MAC address format"); ?></td>
+ <td class="vtable">
+ <select name="radmac_format" id="radmac_format">
+ <option value="default"><?php echo gettext("default"); ?></option>
+ <?php
+ $macformats = array("singledash","ietf","cisco","unformatted");
+ foreach ($macformats as $macformat) {
+ if ($pconfig['radmac_format'] == $macformat) {
+ echo "<option selected value=\"$macformat\">",gettext($macformat),"</option>\n";
+ } else {
+ echo "<option value=\"$macformat\">",gettext($macformat),"</option>\n";
+ }
+ }
+ ?>
+ </select></br>
+ <?=gettext("This option changes the MAC address format used in the whole RADIUS system. Change this if you also"); ?>
+ <?=gettext("need to change the username format for RADIUS MAC authentication."); ?><br>
+ <?=gettext("default:"); ?> 00:11:22:33:44:55<br>
+ <?=gettext("singledash:"); ?> 001122-334455<br>
+ <?=gettext("ietf:"); ?> 00-11-22-33-44-55<br>
+ <?=gettext("cisco:"); ?> 0011.2233.4455<br>
+ <?=gettext("unformatted:"); ?> 001122334455
+ </td>
+ </tr>
</table>
</tr>
- <tr>
- <td class="vncell" valign="top"><?=gettext("MAC address format"); ?></td>
- <td class="vtable">
- <select name="radmac_format" id="radmac_format">
- <option value="default"><?php echo gettext("default"); ?></option>
- <?php
- $macformats = array("singledash","ietf","cisco","unformatted");
- foreach ($macformats as $macformat) {
- if ($pconfig['radmac_format'] == $macformat)
- echo "<option selected value=\"$macformat\">",gettext($macformat),"</option>\n";
- else
- echo "<option value=\"$macformat\">",gettext($macformat),"</option>\n";
- }
- ?>
- </select></br>
- <?=gettext("This option changes the MAC address format used in the whole RADIUS system. Change this if you also"); ?>
- <?=gettext("need to change the username format for RADIUS MAC authentication."); ?><br>
- <?=gettext("default:"); ?> 00:11:22:33:44:55<br>
- <?=gettext("singledash:"); ?> 001122-334455<br>
- <?=gettext("ietf:"); ?> 00-11-22-33-44-55<br>
- <?=gettext("cisco:"); ?> 0011.2233.4455<br>
- <?=gettext("unformatted:"); ?> 001122334455
- </tr>
<tr>
- <td valign="top" class="vncell"><?=gettext("HTTPS login"); ?></td>
- <td class="vtable">
- <input name="httpslogin_enable" type="checkbox" class="formfld" id="httpslogin_enable" value="yes" onClick="enable_change(false)" <?php if($pconfig['httpslogin_enable']) echo "checked"; ?>>
- <strong><?=gettext("Enable HTTPS login"); ?></strong><br>
- <?=gettext("If enabled, the username and password will be transmitted over an HTTPS connection to protect against eavesdroppers. A server name and certificate must also be specified below."); ?></td>
+ <td valign="top" class="vncell"><?=gettext("HTTPS login"); ?></td>
+ <td class="vtable">
+ <input name="httpslogin_enable" type="checkbox" class="formfld" id="httpslogin_enable" value="yes" onClick="enable_change(false)" <?php if($pconfig['httpslogin_enable']) echo "checked"; ?>>
+ <strong><?=gettext("Enable HTTPS login"); ?></strong><br>
+ <?=gettext("If enabled, the username and password will be transmitted over an HTTPS connection to protect against eavesdroppers. A server name and certificate must also be specified below."); ?></td>
</tr>
<tr>
- <td valign="top" class="vncell"><?=gettext("HTTPS server name"); ?> </td>
- <td class="vtable">
- <input name="httpsname" type="text" class="formfld unknown" id="httpsname" size="30" value="<?=htmlspecialchars($pconfig['httpsname']);?>"><br>
- <?php printf(gettext("This name will be used in the form action for the HTTPS POST and should match the Common Name (CN) in your certificate (otherwise, the client browser will most likely display a security warning). Make sure captive portal clients can resolve this name in DNS and verify on the client that the IP resolves to the correct interface IP on %s."), $g['product_name']);?> </td>
+ <td valign="top" class="vncell"><?=gettext("HTTPS server name"); ?> </td>
+ <td class="vtable">
+ <input name="httpsname" type="text" class="formfld unknown" id="httpsname" size="30" value="<?=htmlspecialchars($pconfig['httpsname']);?>"><br>
+ <?php printf(gettext("This name will be used in the form action for the HTTPS POST and should match the Common Name (CN) in your certificate (otherwise, the client browser will most likely display a security warning). Make sure captive portal clients can resolve this name in DNS and verify on the client that the IP resolves to the correct interface IP on %s."), $g['product_name']);?> </td>
</tr>
<tr id="ssl_opts">
<td width="22%" valign="top" class="vncell"><?=gettext("SSL Certificate"); ?></td>
diff --git a/usr/local/www/services_captiveportal_hostname.php b/usr/local/www/services_captiveportal_hostname.php
index e7e2cd1..dbbb688 100755
--- a/usr/local/www/services_captiveportal_hostname.php
+++ b/usr/local/www/services_captiveportal_hostname.php
@@ -51,9 +51,9 @@ $cpzone = $_GET['zone'];
if (isset($_POST['zone']))
$cpzone = $_POST['zone'];
-if (empty($cpzone)) {
- header("Location: services_captiveportal_zones.php");
- exit;
+if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) {
+ header("Location: services_captiveportal_zones.php");
+ exit;
}
if (!is_array($config['captiveportal']))
@@ -73,20 +73,20 @@ if ($_GET['act'] == "del" && !empty($cpzone)) {
$ipent['ip'] .= "/{$ipent['sn']}";
$ip = gethostbyname($ipent['ip']);
if(is_ipaddr($ip)) {
- captiveportal_ipfw_set_context($zone);
- mwexec("/sbin/ipfw table 3 delete {$ip}");
- mwexec("/sbin/ipfw table 4 delete {$ip}");
- mwexec("/sbin/ipfw table 5 delete {$ip}");
- mwexec("/sbin/ipfw table 6 delete {$ip}");
- mwexec("/sbin/ipfw table 7 delete {$ip}");
- mwexec("/sbin/ipfw table 8 delete {$ip}");
- mwexec("/sbin/ipfw table 9 delete {$ip}");
- mwexec("/sbin/ipfw table 10 delete {$ip}");
+ $ipfw = pfSense_ipfw_getTablestats($cpzone, 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));
+ }
+ pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_DEL, 3, $ip);
+ pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_DEL, 4, $ip);
}
}
unset($a_allowedhostnames[$_GET['id']]);
write_config();
+ captiveportal_allowedhostname_configure();
header("Location: services_captiveportal_hostname.php?zone={$cpzone}");
exit;
}
diff --git a/usr/local/www/services_captiveportal_hostname_edit.php b/usr/local/www/services_captiveportal_hostname_edit.php
index a5c6a14..5fd6168 100755
--- a/usr/local/www/services_captiveportal_hostname_edit.php
+++ b/usr/local/www/services_captiveportal_hostname_edit.php
@@ -63,7 +63,7 @@ $cpzone = $_GET['zone'];
if (isset($_POST['zone']))
$cpzone = $_POST['zone'];
-if (empty($cpzone)) {
+if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) {
header("Location: services_captiveportal_zones.php");
exit;
}
@@ -138,8 +138,10 @@ if ($_POST) {
write_config();
- if (isset($a_cp[$cpzone]['enable']) && is_module_loaded("ipfw.ko"))
- captiveportal_init_rules();
+ $rules = captiveportal_allowedhostname_configure();
+ @file_put_contents("{$g['tmp_path']}/hostname_rules", $rules);
+ mwexec("/sbin/ipfw -x {$cpzone} {$g['tmp_path']}/hostname_rules");
+ unset($rules);
header("Location: services_captiveportal_hostname.php?zone={$cpzone}");
exit;
diff --git a/usr/local/www/services_captiveportal_ip.php b/usr/local/www/services_captiveportal_ip.php
index 573fdc3..410064d 100755
--- a/usr/local/www/services_captiveportal_ip.php
+++ b/usr/local/www/services_captiveportal_ip.php
@@ -49,7 +49,7 @@ $cpzone = $_GET['zone'];
if (isset($_POST['zone']))
$cpzone = $_POST['zone'];
-if (empty($cpzone)) {
+if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) {
header("Location: services_captiveportal_zones.php");
exit;
}
@@ -67,19 +67,19 @@ if ($_GET['act'] == "del") {
$ipent = $a_allowedips[$_GET['id']];
if (isset($config['captiveportal'][$cpzone]['enable'])) {
- if (!empty($ipent['sn']))
- $ipent['ip'] .= "/{$ipent['sn']}";
- captiveportal_ipfw_set_context($cpzone);
- mwexec("/sbin/ipfw table 3 delete " . $ipent['ip']);
- mwexec("/sbin/ipfw table 4 delete " . $ipent['ip']);
- mwexec("/sbin/ipfw table 5 delete " . $ipent['ip']);
- mwexec("/sbin/ipfw table 6 delete " . $ipent['ip']);
- mwexec("/sbin/ipfw table 7 delete " . $ipent['ip']);
- mwexec("/sbin/ipfw table 8 delete " . $ipent['ip']);
- mwexec("/sbin/ipfw table 9 delete " . $ipent['ip']);
- mwexec("/sbin/ipfw table 10 delete " . $ipent['ip']);
- }
+ $mask = (!empty($ipent['sn'])) ? $ipent['sn'] : 32;
+
+ $ipfw = pfSense_ipfw_getTablestats($cpzone, 3, $ipent['ip'], $mask);
+ pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_DEL, 3, $ipent['ip'], $mask);
+ pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_DEL, 4, $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));
+ }
+ }
+
unset($a_allowedips[$_GET['id']]);
write_config();
header("Location: services_captiveportal_ip.php?zone={$cpzone}");
diff --git a/usr/local/www/services_captiveportal_ip_edit.php b/usr/local/www/services_captiveportal_ip_edit.php
index d6d3570..9aadb9e 100755
--- a/usr/local/www/services_captiveportal_ip_edit.php
+++ b/usr/local/www/services_captiveportal_ip_edit.php
@@ -64,7 +64,7 @@ $cpzone = $_GET['zone'];
if (isset($_POST['zone']))
$cpzone = $_POST['zone'];
-if (empty($cpzone)) {
+if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) {
header("Location: services_captiveportal_zones.php");
exit;
}
@@ -84,7 +84,6 @@ $a_allowedips =& $config['captiveportal'][$cpzone]['allowedip'];
if (isset($id) && $a_allowedips[$id]) {
$pconfig['ip'] = $a_allowedips[$id]['ip'];
$pconfig['sn'] = $a_allowedips[$id]['sn'];
- $pconfig['dir'] = $a_allowedips[$id]['dir'];
$pconfig['bw_up'] = $a_allowedips[$id]['bw_up'];
$pconfig['bw_down'] = $a_allowedips[$id]['bw_down'];
$pconfig['descr'] = $a_allowedips[$id]['descr'];
@@ -96,14 +95,17 @@ if ($_POST) {
$pconfig = $_POST;
/* input validation */
- $reqdfields = explode(" ", "ip");
- $reqdfieldsn = array(gettext("Allowed IP address"));
+ $reqdfields = explode(" ", "ip sn");
+ $reqdfieldsn = array(gettext("Allowed IP address"), gettext("Subnet mask"));
do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
- if (($_POST['ip'] && !is_ipaddr($_POST['ip'])))
+ if ($_POST['ip'] && !is_ipaddr($_POST['ip']))
$input_errors[] = sprintf(gettext("A valid IP address must be specified. [%s]"), $_POST['ip']);
+ if ($_POST['sn'] && (!is_numeric($_POST['sn']) || ($_POST['sn'] < 1) || ($_POST['sn'] > 32)))
+ $input_errors[] = gettext("A valid subnet mask must be specified");
+
if ($_POST['bw_up'] && !is_numeric($_POST['bw_up']))
$input_errors[] = gettext("Upload speed needs to be an integer");
@@ -124,7 +126,6 @@ if ($_POST) {
$ip = array();
$ip['ip'] = $_POST['ip'];
$ip['sn'] = $_POST['sn'];
- $ip['dir'] = $_POST['dir'];
$ip['descr'] = $_POST['descr'];
if ($_POST['bw_up'])
$ip['bw_up'] = $_POST['bw_up'];
@@ -133,27 +134,37 @@ if ($_POST) {
if (isset($id) && $a_allowedips[$id]) {
$oldip = $a_allowedips[$id]['ip'];
if (!empty($a_allowedips[$id]['sn']))
- $oldip .= "/{$a_allowedips[$id]['sn']}";
+ $oldmask = $a_allowedips[$id]['sn'];
+ else
+ $oldmask = 32;
$a_allowedips[$id] = $ip;
} else {
- $oldip = $ip['ip'];
- if (!empty($ip['sn']))
- $oldip .= "/{$ip['sn']}";
$a_allowedips[] = $ip;
}
allowedips_sort();
-
+
write_config();
if (isset($a_cp[$cpzone]['enable']) && is_module_loaded("ipfw.ko")) {
$rules = "";
- for ($i = 3; $i < 10; $i++)
- $rules .= "table {$i} delete {$oldip}\n";
+ unset($ipfw);
+ if (isset($oldip) && isset($oldmask)) {
+ $ipfw = pfSense_ipfw_getTablestats($cpzone, 3, $oldip, $oldmask);
+ $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");
+ }
+ }
$rules .= captiveportal_allowedip_configure_entry($ip);
- file_put_contents("{$g['tmp_path']}/{$cpzone}_allowedip_tmp{$id}", $rules);
- captiveportal_ipfw_set_context($cpzone);
- mwexec("/sbin/ipfw -q {$g['tmp_path']}/{$cpzone}_allowedip_tmp{$id}");
- @unlink("{$g['tmp_path']}/{$cpzone}_allowedip_tmp{$id}");
+ if (is_array($ipfw)) {
+ captiveportal_free_dn_ruleno($ipfw['dnpipe']);
+ }
+ $uniqid = uniqid("{$cpzone}_allowed");
+ @file_put_contents("{$g['tmp_path']}/{$uniqid}_tmp", $rules);
+ mwexec("/sbin/ipfw -x {$cpzone} -q {$g['tmp_path']}/{$uniqid}_tmp");
+ @unlink("{$g['tmp_path']}/{$uniqid}_tmp");
}
header("Location: services_captiveportal_ip.php?zone={$cpzone}");
@@ -173,23 +184,6 @@ include("head.inc");
<td colspan="2" valign="top" class="listtopic"><?=gettext("Edit allowed ip rule");?></td>
</tr>
<tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Direction"); ?></td>
- <td width="78%" class="vtable">
- <select name="dir" class="formfld">
- <?php
- $dirs = array(gettext("Both"),gettext("From"),gettext("To")) ;
- foreach ($dirs as $dir):
- ?>
- <option value="<?=strtolower($dir);?>" <?php if (strtolower($dir) == strtolower($pconfig['dir'])) echo "selected";?> >
- <?=htmlspecialchars($dir);?>
- </option>
- <?php endforeach; ?>
- </select>
- <br>
- <span class="vexpl"><?=gettext("Use"); ?> <em><?=gettext("From"); ?></em> <?=gettext("to always allow an IP address through the captive portal (without authentication)"); ?>.
- <?=gettext("Use"); ?> <em><?=gettext("To"); ?></em> <?=gettext("to allow access from all clients (even non-authenticated ones) behind the portal to this IP address"); ?>.</span></td>
- </tr>
- <tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("IP address"); ?></td>
<td width="78%" class="vtable">
<?=$mandfldhtml;?><input name="ip" type="text" class="formfld unknown" id="ip" size="17" value="<?=htmlspecialchars($pconfig['ip']);?>">
diff --git a/usr/local/www/services_captiveportal_mac.php b/usr/local/www/services_captiveportal_mac.php
index a98138a..bb68a36 100755
--- a/usr/local/www/services_captiveportal_mac.php
+++ b/usr/local/www/services_captiveportal_mac.php
@@ -48,7 +48,7 @@ $cpzone = $_GET['zone'];
if (isset($_POST['zone']))
$cpzone = $_POST['zone'];
-if (empty($cpzone)) {
+if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) {
header("Location: services_captiveportal_zones.php");
exit;
}
@@ -104,9 +104,14 @@ if ($_POST) {
if ($found == true) {
$ruleno = captiveportal_get_ipfw_passthru_ruleno($_POST['delmac']);
if ($ruleno) {
- captiveportal_free_ipfw_ruleno($ruleno, true);
- captiveportal_ipfw_set_context($cpzone);
- mwexec("/sbin/ipfw delete {$ruleno}; /sbin/ipfw delete " . ++$ruleno);
+ captiveportal_free_ipfw_ruleno($ruleno);
+ $pipeno = captiveportal_get_dn_passthru_ruleno($_POST['delmac']);
+ if ($pipeno)
+ captiveportal_free_dn_ruleno($pipeno);
+ if (!empty($pipeno))
+ mwexec("/sbin/ipfw -x {$cpzone} -q delete {$ruleno}; /sbin/ipfw -x {$cpzone} -q delete " . ++$ruleno . "; /sbin/ipfw -q pipe delete {$pipeno}; /sbin/ipfw -q pipe delete " . (++$pipeno));
+ else
+ mwexec("/sbin/ipfw -x {$cpzone} -q delete {$ruleno}; /sbin/ipfw -x {$cpzone} -q delete " . ++$ruleno);
}
unset($a_passthrumacs[$idx]);
write_config();
@@ -123,9 +128,14 @@ if ($_GET['act'] == "del") {
if ($a_passthrumacs[$_GET['id']]) {
$ruleno = captiveportal_get_ipfw_passthru_ruleno($a_passthrumacs[$_GET['id']]['mac']);
if ($ruleno) {
- captiveportal_ipfw_set_context($cpzone);
captiveportal_free_ipfw_ruleno($ruleno);
- mwexec("/sbin/ipfw delete {$ruleno}; /sbin/ipfw delete " . ++$ruleno);
+ $pipeno = captiveportal_get_dn_passthru_ruleno($a_passthrumacs[$_GET['id']]['mac']);
+ if ($pipeno)
+ captiveportal_free_dn_ruleno($pipeno);
+ if (!empty($pipeno))
+ mwexec("/sbin/ipfw -x {$cpzone} -q delete {$ruleno}; /sbin/ipfw -x {$cpzone} -q delete " . ++$ruleno . "; /sbin/ipfw -q pipe delete {$pipeno}; /sbin/ipfw -q pipe delete " . (++$pipeno));
+ else
+ mwexec("/sbin/ipfw -x {$cpzone} -q delete {$ruleno}; /sbin/ipfw -x {$cpzone} -q delete " . ++$ruleno);
}
unset($a_passthrumacs[$_GET['id']]);
write_config();
diff --git a/usr/local/www/services_captiveportal_mac_edit.php b/usr/local/www/services_captiveportal_mac_edit.php
index e4bf5a4..d87408e 100755
--- a/usr/local/www/services_captiveportal_mac_edit.php
+++ b/usr/local/www/services_captiveportal_mac_edit.php
@@ -61,7 +61,7 @@ $cpzone = $_GET['zone'];
if (isset($_POST['zone']))
$cpzone = $_POST['zone'];
-if (empty($cpzone)) {
+if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) {
header("Location: services_captiveportal_zones.php");
exit;
}
@@ -144,15 +144,22 @@ if ($_POST) {
$ruleno = captiveportal_get_ipfw_passthru_ruleno($oldmac);
if ($ruleno) {
captiveportal_free_ipfw_ruleno($ruleno);
+ $pipeno = captiveportal_get_dn_passthru_ruleno($oldmac);
+ if ($pipeno) {
+ captiveportal_free_dn_ruleno($pipeno);
+ $rules .= "pipe delete {$pipeno}\n";
+ ++$pipeno;
+ $rules .= "pipe delete {$pipeno}\n";
+ }
$rules = "delete {$ruleno}\n";
$rules .= "delete " . ++$ruleno . "\n";
}
$rules .= captiveportal_passthrumac_configure_entry($mac);
- file_put_contents("{$g['tmp_path']}/{$cpzone}_tmpmacedit{$id}", $rules);
- captiveportal_ipfw_set_context($cpzone);
- mwexec("/sbin/ipfw -q {$g['tmp_path']}/{$cpzone}_tmpmacedit{$id}");
- @unlink("{$g['tmp_path']}/{$cpzone}_tmpmacedit{$id}");
+ $uniqid = uniqid("{$cpzone}_macedit");
+ file_put_contents("{$g['tmp_path']}/{$uniqid}_tmp", $rules);
+ mwexec("/sbin/ipfw -x {$cpzone} -q {$g['tmp_path']}/{$uniqid}_tmp");
+ @unlink("{$g['tmp_path']}/{$uniqid}_tmp");
}
header("Location: services_captiveportal_mac.php?zone={$cpzone}");
@@ -173,6 +180,12 @@ include("head.inc");
<td width="22%" valign="top" class="vncellreq"><?=gettext("MAC address"); ?></td>
<td width="78%" class="vtable">
<?=$mandfldhtml;?><input name="mac" type="text" class="formfld unknown" id="mac" size="17" value="<?=htmlspecialchars($pconfig['mac']);?>">
+ <?php
+ $ip = getenv('REMOTE_ADDR');
+ $mac = `/usr/sbin/arp -an | grep {$ip} | cut -d" " -f4`;
+ $mac = str_replace("\n","",$mac);
+ ?>
+ <a OnClick="document.forms[0].mac.value='<?=$mac?>';" href="#"><?=gettext("Copy my MAC address");?></a>
<br>
<span class="vexpl"><?=gettext("MAC address (6 hex octets separated by colons)"); ?></span></td>
</tr>
diff --git a/usr/local/www/services_captiveportal_vouchers.php b/usr/local/www/services_captiveportal_vouchers.php
index b41a4bc..c2f154f 100644
--- a/usr/local/www/services_captiveportal_vouchers.php
+++ b/usr/local/www/services_captiveportal_vouchers.php
@@ -25,7 +25,7 @@
POSSIBILITY OF SUCH DAMAGE.
*/
/*
- pfSense_BUILDER_BINARIES: /usr/local/bin/voucher
+ pfSense_BUILDER_BINARIES: /usr/local/bin/voucher /usr/local/bin/openssl
pfSense_MODULE: captiveportal
*/
@@ -36,15 +36,6 @@
##|*MATCH=services_captiveportal_vouchers.php*
##|-PRIV
-$cpzone = $_GET['zone'];
-if (isset($_POST['zone']))
- $cpzone = $_POST['zone'];
-
-if (empty($cpzone)) {
- header("Location: services_captiveportal_zones.php");
- exit;
-}
-
if ($_POST['postafterlogin'])
$nocsrf= true;
@@ -55,9 +46,18 @@ require("shaper.inc");
require("captiveportal.inc");
require_once("voucher.inc");
+$cpzone = $_GET['zone'];
+if (isset($_POST['zone']))
+ $cpzone = $_POST['zone'];
+
+if (empty($cpzone)) {
+ header("Location: services_captiveportal_zones.php");
+ exit;
+}
+
if($_REQUEST['generatekey']) {
- exec("openssl genrsa 64 > /tmp/key64.private");
- exec("openssl rsa -pubout < /tmp/key64.private > /tmp/key64.public");
+ exec("/usr/local/bin/openssl genrsa 64 > /tmp/key64.private");
+ exec("/usr/local/bin/openssl rsa -pubout < /tmp/key64.private > /tmp/key64.public");
$privatekey = str_replace("\n", "\\n", file_get_contents("/tmp/key64.private"));
$publickey = str_replace("\n", "\\n", file_get_contents("/tmp/key64.public"));
exec("rm /tmp/key64.private /tmp/key64.public");
@@ -79,6 +79,13 @@ $a_cp =& $config['captiveportal'];
if (!is_array($config['voucher']))
$config['voucher'] = array();
+if (empty($a_cp[$cpzone])) {
+ log_error("Submission on captiveportal page with unknown zone parameter: " . htmlspecialchars($cpzone));
+ header("Location: services_captiveportal_zones.php");
+ exit;
+}
+
+
$pgtitle = array(gettext("Services"), gettext("Captive portal"), gettext("Vouchers"), $a_cp[$cpzone]['zone']);
$shortcut_section = "captiveportal-vouchers";
@@ -135,9 +142,9 @@ if ($_GET['act'] == "del") {
voucher_unlink_db($roll);
unlock($voucherlck);
write_config();
- header("Location: services_captiveportal_vouchers.php?zone={$cpzone}");
- exit;
}
+ header("Location: services_captiveportal_vouchers.php?zone={$cpzone}");
+ exit;
}
/* print all vouchers of the selected roll */
else if ($_GET['act'] == "csv") {
@@ -157,10 +164,12 @@ else if ($_GET['act'] == "csv") {
$count = $a_voucher[$id]['count'];
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=vouchers_{$cpzone}_roll{$number}.csv");
- system("/usr/local/bin/voucher -c {$g['varetc_path']}/voucher_{$cpzone}.cfg -p {$g['varetc_path']}/voucher_{$cpzone}.private $number $count");
- unlink("{$g['varetc_path']}/voucher_{$cpzone}.private");
- exit;
- }
+ if (file_exists("{$g['varetc_path']}/voucher_{$cpzone}.cfg"))
+ system("/usr/local/bin/voucher -c {$g['varetc_path']}/voucher_{$cpzone}.cfg -p {$g['varetc_path']}/voucher_{$cpzone}.private $number $count");
+ @unlink("{$g['varetc_path']}/voucher_{$cpzone}.private");
+ } else
+ header("Location: services_captiveportal_vouchers.php?zone={$cpzone}");
+ exit;
}
} else {
$input_errors[] = gettext("Need private RSA key to print vouchers") . "\n";
diff --git a/usr/local/www/services_captiveportal_vouchers_edit.php b/usr/local/www/services_captiveportal_vouchers_edit.php
index a0ca08b..851d57c 100644
--- a/usr/local/www/services_captiveportal_vouchers_edit.php
+++ b/usr/local/www/services_captiveportal_vouchers_edit.php
@@ -49,7 +49,7 @@ $cpzone = $_GET['zone'];
if (isset($_POST['zone']))
$cpzone = $_POST['zone'];
-if (empty($cpzone)) {
+if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) {
header("Location: services_captiveportal_zones.php");
exit;
}
diff --git a/usr/local/www/services_captiveportal_zones_edit.php b/usr/local/www/services_captiveportal_zones_edit.php
index c3356e3..1e8b861 100644
--- a/usr/local/www/services_captiveportal_zones_edit.php
+++ b/usr/local/www/services_captiveportal_zones_edit.php
@@ -1,19 +1,19 @@
-<?php
+<?php
/*
services_captiveportal_mac_edit.php
Copyright (C) 2011 Ermal Luci
All rights reserved.
-
+
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
-
+
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
-
+
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
-
+
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
@@ -46,7 +46,7 @@ $pgtitle = array(gettext("Services"),gettext("Captive portal"),gettext("Edit Zon
$shortcut_section = "captiveportal";
if (!is_array($config['captiveportal']))
- $config['captiveportal'] = array();
+ $config['captiveportal'] = array();
$a_cp =& $config['captiveportal'];
if ($_POST) {
@@ -57,18 +57,18 @@ if ($_POST) {
/* input validation */
$reqdfields = explode(" ", "zone");
$reqdfieldsn = array(gettext("Zone name"));
-
+
do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
if (preg_match('/[^A-Za-z0-9_]/', $_POST['zone'])) {
$input_errors[] = gettext("The zone name can only contain letters, digits, and underscores (_).");
}
-
+
foreach ($a_cp as $cpkey => $cpent) {
- if ($cpent['zone'] == $_POST['zone']){
+ if ($cpent['zone'] == $_POST['zone']) {
$input_errors[] = sprintf("[%s] %s.", $_POST['zone'], gettext("already exists"));
break;
- }
+ }
}
if (!$input_errors) {
@@ -76,6 +76,7 @@ if ($_POST) {
$a_cp[$cpzone] = array();
$a_cp[$cpzone]['zone'] = str_replace(" ", "", $_POST['zone']);
$a_cp[$cpzone]['descr'] = $_POST['descr'];
+ $a_cp[$cpzone]['localauth_priv'] = true;
write_config();
header("Location: services_captiveportal.php?zone={$cpzone}");
@@ -87,33 +88,35 @@ include("head.inc");
<?php include("fbegin.inc"); ?>
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php if ($input_errors) print_input_errors($input_errors); ?>
- <form action="services_captiveportal_zones_edit.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
- <tr>
- <td colspan="2" valign="top" class="listtopic"><?=gettext("Edit Captiveportal Zones");?></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Zone name"); ?></td>
- <td width="78%" class="vtable">
- <input name="zone" type="text" class="formfld unknown" id="zone" size="64">
- <br>
- <span class="vexpl"><?=gettext("Zone name. Can only contain letters, digits, and underscores (_)."); ?></span></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Description"); ?></td>
- <td width="78%" class="vtable">
- <input name="descr" type="text" class="formfld unknown" id="descr" size="40" >
- <br> <span class="vexpl"><?=gettext("You may enter a description here " .
- "for your reference (not parsed)"); ?>.</span></td>
- </tr>
- <tr>
- <td width="22%" valign="top">&nbsp;</td>
- <td width="78%">
- <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Continue"); ?>">
- </td>
- </tr>
- </table>
-</form>
+ <form action="services_captiveportal_zones_edit.php" method="post" name="iform" id="iform">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <tr>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("Edit Captiveportal Zones");?></td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Zone name"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="zone" type="text" class="formfld unknown" id="zone" size="64">
+ <br>
+ <span class="vexpl"><?=gettext("Zone name. Can only contain letters, digits, and underscores (_)."); ?></span>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Description"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="descr" type="text" class="formfld unknown" id="descr" size="40" >
+ <br>
+ <span class="vexpl"><?=gettext("You may enter a description here for your reference (not parsed)"); ?>.</span>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top">&nbsp;</td>
+ <td width="78%">
+ <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Continue"); ?>">
+ </td>
+ </tr>
+ </table>
+ </form>
<?php include("fend.inc"); ?>
</body>
</html>
diff --git a/usr/local/www/services_dhcp.php b/usr/local/www/services_dhcp.php
index 0d968b5..a1269cf 100755
--- a/usr/local/www/services_dhcp.php
+++ b/usr/local/www/services_dhcp.php
@@ -128,6 +128,7 @@ $act = $_GET['act'];
if (!empty($_POST['act']))
$act = $_POST['act'];
+$a_pools = array();
if (is_array($config['dhcpd'][$if])){
$pool = $_GET['pool'];
@@ -163,6 +164,9 @@ if (is_array($dhcpdconf)) {
if (!is_array($dhcpdconf['staticmap']))
$dhcpdconf['staticmap'] = array();
$a_maps = &$dhcpdconf['staticmap'];
+ } else {
+ // Options that exist only in pools
+ $pconfig['descr'] = $dhcpdconf['descr'];
}
// Options that can be global or per-pool.
@@ -196,29 +200,6 @@ if (is_array($dhcpdconf)) {
$ifcfgip = $config['interfaces'][$if]['ipaddr'];
$ifcfgsn = $config['interfaces'][$if]['subnet'];
-/* set the enabled flag which will tell us if DHCP relay is enabled
- * on any interface. We will use this to disable DHCP server since
- * the two are not compatible with each other.
- */
-
-$dhcrelay_enabled = false;
-$dhcrelaycfg = $config['dhcrelay'];
-
-if(is_array($dhcrelaycfg)) {
- foreach ($dhcrelaycfg as $dhcrelayif => $dhcrelayifconf) {
- if (isset($dhcrelayifconf['enable']) && isset($iflist[$dhcrelayif]) &&
- (!link_interface_to_bridge($dhcrelayif)))
- $dhcrelay_enabled = true;
- }
-}
-
-function is_inrange($test, $start, $end) {
- if ( (ip2ulong($test) < ip2ulong($end)) && (ip2ulong($test) > ip2ulong($start)) )
- return true;
- else
- return false;
-}
-
function validate_partial_mac_list($maclist) {
$macs = explode(',', $maclist);
@@ -253,7 +234,7 @@ if ($_POST) {
$reqdfields = explode(" ", "range_from range_to");
$reqdfieldsn = array(gettext("Range begin"),gettext("Range end"));
- do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
+ do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors);
if (($_POST['range_from'] && !is_ipaddrv4($_POST['range_from'])))
$input_errors[] = gettext("A valid range must be specified.");
@@ -266,14 +247,34 @@ if ($_POST) {
$parent_ip = get_interface_ip($_POST['if']);
if (is_ipaddrv4($parent_ip) && $_POST['gateway']) {
$parent_sn = get_interface_subnet($_POST['if']);
- if(!ip_in_subnet($_POST['gateway'], gen_subnet($parent_ip, $parent_sn) . "/" . $parent_sn) && !ip_in_interface_alias_subnet($_POST['if'], $_POST['gateway']))
+ if(!ip_in_subnet($_POST['gateway'], gen_subnet($parent_ip, $parent_sn) . "/" . $parent_sn) && !ip_in_interface_alias_subnet($_POST['if'], $_POST['gateway']))
$input_errors[] = sprintf(gettext("The gateway address %s does not lie within the chosen interface's subnet."), $_POST['gateway']);
}
if (($_POST['dns1'] && !is_ipaddrv4($_POST['dns1'])) || ($_POST['dns2'] && !is_ipaddrv4($_POST['dns2'])))
$input_errors[] = gettext("A valid IP address must be specified for the primary/secondary DNS servers.");
if ($_POST['deftime'] && (!is_numeric($_POST['deftime']) || ($_POST['deftime'] < 60)))
- $input_errors[] = gettext("The default lease time must be at least 60 seconds.");
+ $input_errors[] = gettext("The default lease time must be at least 60 seconds.");
+
+ if (isset($config['captiveportal']) && is_array($config['captiveportal'])) {
+ $deftime = 7200; // Default value if it's empty
+ if (is_numeric($_POST['deftime']))
+ $deftime = $_POST['deftime'];
+
+ foreach ($config['captiveportal'] as $cpZone => $cpdata) {
+ if (!isset($cpdata['enable']))
+ continue;
+ if (!isset($cpdata['timeout']) || !is_numeric($cpdata['timeout']))
+ continue;
+ $cp_ifs = explode(',', $cpdata['interface']);
+ if (!in_array($if, $cp_ifs))
+ continue;
+ if ($cpdata['timeout'] > $deftime)
+ $input_errors[] = sprintf(gettext(
+ "The Captive Portal zone '%s' has Hard Timeout parameter set to a value bigger than Default lease time (%s)."), $cpZone, $deftime);
+ }
+ }
+
if ($_POST['maxtime'] && (!is_numeric($_POST['maxtime']) || ($_POST['maxtime'] < 60) || ($_POST['maxtime'] <= $_POST['deftime'])))
$input_errors[] = gettext("The maximum lease time must be at least 60 seconds and higher than the default lease time.");
if (($_POST['ddnsdomain'] && !is_domain($_POST['ddnsdomain'])))
@@ -312,7 +313,7 @@ if ($_POST) {
if (is_array($config['virtualip']['vip'])) {
foreach($config['virtualip']['vip'] as $vip) {
if($vip['interface'] == $if)
- if($vip['subnet'] && is_inrange($vip['subnet'], $_POST['range_from'], $_POST['range_to']))
+ if($vip['subnet'] && is_inrange_v4($vip['subnet'], $_POST['range_from'], $_POST['range_to']))
$input_errors[] = sprintf(gettext("The subnet range cannot overlap with virtual IP address %s."),$vip['subnet']);
}
}
@@ -363,12 +364,27 @@ if ($_POST) {
if (ip2ulong($_POST['range_from']) > ip2ulong($_POST['range_to']))
$input_errors[] = gettext("The range is invalid (first element higher than second element).");
- // TODO: Ensure range and pools do not overlap!
- // If we're editing the main range, check pools
- // If we're editing a pool, locate parent range and other pools.
+ if (is_numeric($pool) || ($act == "newpool")) {
+ $rfrom = $config['dhcpd'][$if]['range']['from'];
+ $rto = $config['dhcpd'][$if]['range']['to'];
+
+ if (is_inrange_v4($_POST['range_from'], $rfrom, $rto) || is_inrange_v4($_POST['range_to'], $rfrom, $rto))
+ $input_errors[] = gettext("The specified range must not be within the DHCP range for this interface.");
+ }
+
+ foreach ($a_pools as $id => $p) {
+ if (is_numeric($pool) && ($id == $pool))
+ continue;
+
+ if (is_inrange_v4($_POST['range_from'], $p['range']['from'], $p['range']['to']) ||
+ is_inrange_v4($_POST['range_to'], $p['range']['from'], $p['range']['to'])) {
+ $input_errors[] = gettext("The specified range must not be within the range configured on a DHCP pool for this interface.");
+ break;
+ }
+ }
/* make sure that the DHCP Relay isn't enabled on this interface */
- if (isset($config['dhcrelay'][$if]['enable']))
+ if (isset($config['dhcrelay']['enable']) && (stristr($config['dhcrelay']['interface'], $if) !== false))
$input_errors[] = sprintf(gettext("You must disable the DHCP relay on the %s interface before enabling the DHCP server."),$iflist[$if]);
$dynsubnet_start = ip2ulong($_POST['range_from']);
@@ -417,6 +433,9 @@ if ($_POST) {
mwexec("/bin/rm -rf /var/dhcpd/var/db/*");
$dhcpdconf['failover_peerip'] = $_POST['failover_peerip'];
$dhcpdconf['dhcpleaseinlocaltime'] = $_POST['dhcpleaseinlocaltime'];
+ } else {
+ // Options that exist only in pools
+ $dhcpdconf['descr'] = $_POST['descr'];
}
// Options that can be global or per-pool.
@@ -563,6 +582,9 @@ include("head.inc");
enable_over = true;
<?php endif; ?>
endis = !(document.iform.enable.checked || enable_over);
+ <?php if (is_numeric($pool) || ($act == "newpool")): ?>
+ document.iform.descr.disabled = endis;
+ <?php endif; ?>
document.iform.range_from.disabled = endis;
document.iform.range_to.disabled = endis;
document.iform.wins1.disabled = endis;
@@ -641,7 +663,7 @@ include("head.inc");
<?php if ($input_errors) print_input_errors($input_errors); ?>
<?php if ($savemsg) print_info_box($savemsg); ?>
<?php
- if ($dhcrelay_enabled) {
+ if (isset($config['dhcrelay']['enable'])) {
echo gettext("DHCP Relay is currently enabled. Cannot enable the DHCP Server service while the DHCP Relay is enabled on any interface.");
include("fend.inc");
echo "</body>";
@@ -706,6 +728,14 @@ include("head.inc");
<strong><?=gettext("Deny unknown clients");?></strong><br>
<?=gettext("If this is checked, only the clients defined below will get DHCP leases from this server. ");?></td>
</tr>
+ <?php if (is_numeric($pool) || ($act == "newpool")): ?>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Pool Description");?></td>
+ <td width="78%" class="vtable">
+ <input name="descr" type="text" class="formfld unknown" id="descr" size="20" value="<?=htmlspecialchars($pconfig['descr']);?>">
+ </td>
+ </tr>
+ <?php endif; ?>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Subnet");?></td>
<td width="78%" class="vtable">
@@ -777,8 +807,9 @@ include("head.inc");
<?php echo gettext("If you need additional pools of addresses inside of this subnet outside the above Range, they may be specified here."); ?>
<table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
- <td width="45%" class="listhdrr"><?=gettext("Pool Start");?></td>
- <td width="45%" class="listhdrr"><?=gettext("Pool End");?></td>
+ <td width="35%" class="listhdrr"><?=gettext("Pool Start");?></td>
+ <td width="35%" class="listhdrr"><?=gettext("Pool End");?></td>
+ <td width="20%" class="listhdrr"><?=gettext("Description");?></td>
<td width="10%" class="list">
<table border="0" cellspacing="0" cellpadding="1">
<tr>
@@ -798,6 +829,9 @@ include("head.inc");
<td class="listr" ondblclick="document.location='services_dhcp.php?if=<?=htmlspecialchars($if);?>&pool=<?=$i;?>';">
<?=htmlspecialchars($poolent['range']['to']);?>&nbsp;
</td>
+ <td class="listr" ondblclick="document.location='services_dhcp.php?if=<?=htmlspecialchars($if);?>&pool=<?=$i;?>';">
+ <?=htmlspecialchars($poolent['descr']);?>&nbsp;
+ </td>
<td valign="middle" nowrap class="list">
<table border="0" cellspacing="0" cellpadding="1">
<tr>
@@ -811,7 +845,7 @@ include("head.inc");
<?php $i++; endforeach; ?>
<?php endif; ?>
<tr>
- <td class="list" colspan="2"></td>
+ <td class="list" colspan="3"></td>
<td class="list">
<table border="0" cellspacing="0" cellpadding="1">
<tr>
@@ -844,7 +878,7 @@ include("head.inc");
<td width="22%" valign="top" class="vncell"><?=gettext("Gateway");?></td>
<td width="78%" class="vtable">
<input name="gateway" type="text" class="formfld host" id="gateway" size="20" value="<?=htmlspecialchars($pconfig['gateway']);?>"><br>
- <?=gettext("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 your network.");?>
+ <?=gettext("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 your network.");?>
</td>
</tr>
<tr>
@@ -852,7 +886,7 @@ include("head.inc");
<td width="78%" class="vtable">
<input name="domain" type="text" class="formfld unknown" id="domain" size="20" value="<?=htmlspecialchars($pconfig['domain']);?>"><br>
<?=gettext("The default is to use the domain name of this system as the default domain name provided by DHCP. You may specify an alternate domain name here.");?>
- </td>
+ </td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Domain search list");?></td>
@@ -886,7 +920,7 @@ include("head.inc");
<td width="22%" valign="top" class="vncell"><?=gettext("Failover peer IP:");?></td>
<td width="78%" class="vtable">
<input name="failover_peerip" type="text" class="formfld host" id="failover_peerip" size="20" value="<?=htmlspecialchars($pconfig['failover_peerip']);?>"><br>
- <?=gettext("Leave blank to disable. Enter the interface IP address of the other machine. Machines must be using CARP.");?>
+ <?=gettext("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).");?>
</td>
</tr>
<?php endif; ?>
@@ -929,9 +963,8 @@ include("head.inc");
<tr>
<td>&nbsp;</td>
<td>
- <span class="red"><strong><?=gettext("Note:");?></strong></span> <?=gettext("By default DHCP leases are displayed in UTC time. By checking this
+ <span class="red"><strong><?=gettext("Note:");?></strong></span> <?=gettext("By default DHCP leases are displayed in UTC time. By checking this
box DHCP lease time will be displayed in local time and set to time zone selected. This will be used for all DHCP interfaces lease time."); ?>
-
</td>
</tr>
</table>
@@ -1127,9 +1160,15 @@ include("head.inc");
</td>
</tr>
</table>
+ <?php if (!is_numeric($pool) && !($act == "newpool")): ?>
<table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
- <td width="25%" class="listhdrr"><?=gettext("MAC address");?></td>
+ <td colspan="5" valign="top" class="listtopic"><?=gettext("DHCP Static Mappings for this interface.");?></td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td width="7%" class="listhdrr"><?=gettext("Static ARP");?></td>
+ <td width="18%" class="listhdrr"><?=gettext("MAC address");?></td>
<td width="15%" class="listhdrr"><?=gettext("IP address");?></td>
<td width="20%" class="listhdrr"><?=gettext("Hostname");?></td>
<td width="30%" class="listhdr"><?=gettext("Description");?></td>
@@ -1146,6 +1185,11 @@ include("head.inc");
<?php $i = 0; foreach ($a_maps as $mapent): ?>
<?php if($mapent['mac'] <> "" or $mapent['ipaddr'] <> ""): ?>
<tr>
+ <td align="center" class="listlr" ondblclick="document.location='services_dhcp_edit.php?if=<?=htmlspecialchars($if);?>&id=<?=$i;?>';">
+ <?php if (isset($mapent['arp_table_static_entry'])): ?>
+ <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_alert.gif" alt="ARP Table Static Entry" width="17" height="17" border="0">
+ <?php endif; ?>
+ </td>
<td class="listlr" ondblclick="document.location='services_dhcp_edit.php?if=<?=htmlspecialchars($if);?>&id=<?=$i;?>';">
<?=htmlspecialchars($mapent['mac']);?>
</td>
@@ -1171,7 +1215,7 @@ include("head.inc");
<?php $i++; endforeach; ?>
<?php endif; ?>
<tr>
- <td class="list" colspan="4"></td>
+ <td class="list" colspan="5"></td>
<td class="list">
<table border="0" cellspacing="0" cellpadding="1">
<tr>
@@ -1182,6 +1226,7 @@ include("head.inc");
</td>
</tr>
</table>
+ <?php endif; ?>
</div>
</td>
</tr>
diff --git a/usr/local/www/services_dhcp_edit.php b/usr/local/www/services_dhcp_edit.php
index 23c942f..3a5e945 100755
--- a/usr/local/www/services_dhcp_edit.php
+++ b/usr/local/www/services_dhcp_edit.php
@@ -1,22 +1,22 @@
-<?php
+<?php
/* $Id$ */
/*
services_dhcp_edit.php
part of m0n0wall (http://m0n0.ch/wall)
-
+
Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
All rights reserved.
-
+
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
-
+
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
-
+
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
-
+
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
@@ -41,13 +41,13 @@
##|-PRIV
function staticmapcmp($a, $b) {
- return ipcmp($a['ipaddr'], $b['ipaddr']);
+ return ipcmp($a['ipaddr'], $b['ipaddr']);
}
function staticmaps_sort($ifgui) {
- global $g, $config;
+ global $g, $config;
- usort($config['dhcpd'][$ifgui]['staticmap'], "staticmapcmp");
+ usort($config['dhcpd'][$ifgui]['staticmap'], "staticmapcmp");
}
require_once('globals.inc');
@@ -62,15 +62,22 @@ require("guiconfig.inc");
$if = $_GET['if'];
if ($_POST['if'])
$if = $_POST['if'];
-
+
if (!$if) {
header("Location: services_dhcp.php");
exit;
}
-if (!is_array($config['dhcpd'][$if]['staticmap'])) {
+if (!is_array($config['dhcpd']))
+ $config['dhcpd'] = array();
+if (!is_array($config['dhcpd'][$if]))
+ $config['dhcpd'][$if] = array();
+if (!is_array($config['dhcpd'][$if]['staticmap']))
$config['dhcpd'][$if]['staticmap'] = array();
-}
+
+if (!is_array($config['dhcpd'][$if]['pool']))
+ $config['dhcpd'][$if]['pool'] = array();
+$a_pools = &$config['dhcpd'][$if]['pool'];
$static_arp_enabled=isset($config['dhcpd'][$if]['staticarp']);
$netboot_enabled=isset($config['dhcpd'][$if]['netboot']);
@@ -84,18 +91,45 @@ if (isset($_POST['id']))
$id = $_POST['id'];
if (isset($id) && $a_maps[$id]) {
- $pconfig['mac'] = $a_maps[$id]['mac'];
- $pconfig['hostname'] = $a_maps[$id]['hostname'];
- $pconfig['ipaddr'] = $a_maps[$id]['ipaddr'];
- $pconfig['filename'] = $a_maps[$id]['filename'];
- $pconfig['rootpath'] = $a_maps[$id]['rootpath'];
- $pconfig['descr'] = $a_maps[$id]['descr'];
+ $pconfig['mac'] = $a_maps[$id]['mac'];
+ $pconfig['hostname'] = $a_maps[$id]['hostname'];
+ $pconfig['ipaddr'] = $a_maps[$id]['ipaddr'];
+ $pconfig['filename'] = $a_maps[$id]['filename'];
+ $pconfig['rootpath'] = $a_maps[$id]['rootpath'];
+ $pconfig['descr'] = $a_maps[$id]['descr'];
+ $pconfig['arp_table_static_entry'] = isset($a_maps[$id]['arp_table_static_entry']);
+ $pconfig['deftime'] = $a_maps[$id]['defaultleasetime'];
+ $pconfig['maxtime'] = $a_maps[$id]['maxleasetime'];
+ $pconfig['gateway'] = $a_maps[$id]['gateway'];
+ $pconfig['domain'] = $a_maps[$id]['domain'];
+ $pconfig['domainsearchlist'] = $a_maps[$id]['domainsearchlist'];
+ list($pconfig['wins1'],$pconfig['wins2']) = $a_maps[$id]['winsserver'];
+ list($pconfig['dns1'],$pconfig['dns2']) = $a_maps[$id]['dnsserver'];
+ $pconfig['ddnsdomain'] = $a_maps[$id]['ddnsdomain'];
+ $pconfig['ddnsupdate'] = isset($a_maps[$id]['ddnsupdate']);
+ list($pconfig['ntp1'],$pconfig['ntp2']) = $a_maps[$id]['ntpserver'];
+ $pconfig['tftp'] = $a_maps[$id]['tftp'];
} else {
- $pconfig['mac'] = $_GET['mac'];
- $pconfig['hostname'] = $_GET['hostname'];
- $pconfig['filename'] = $_GET['filename'];
- $pconfig['rootpath'] = $_GET['rootpath'];
- $pconfig['descr'] = $_GET['descr'];
+ $pconfig['mac'] = $_GET['mac'];
+ $pconfig['hostname'] = $_GET['hostname'];
+ $pconfig['filename'] = $_GET['filename'];
+ $pconfig['rootpath'] = $_GET['rootpath'];
+ $pconfig['descr'] = $_GET['descr'];
+ $pconfig['arp_table_static_entry'] = $_GET['arp_table_static_entry'];
+ $pconfig['deftime'] = $_GET['defaultleasetime'];
+ $pconfig['maxtime'] = $_GET['maxleasetime'];
+ $pconfig['gateway'] = $_GET['gateway'];
+ $pconfig['domain'] = $_GET['domain'];
+ $pconfig['domainsearchlist'] = $_GET['domainsearchlist'];
+ $pconfig['wins1'] = $_GET['wins1'];
+ $pconfig['wins2'] = $_GET['wins2'];
+ $pconfig['dns1'] = $_GET['dns1'];
+ $pconfig['dns2'] = $_GET['dns2'];
+ $pconfig['ddnsdomain'] = $_GET['ddnsdomain'];
+ $pconfig['ddnsupdate'] = isset($_GET['ddnsupdate']);
+ $pconfig['ntp1'] = $_GET['ntp1'];
+ $pconfig['ntp2'] = $_GET['ntp2'];
+ $pconfig['tftp'] = $_GET['tftp'];
}
if ($_POST) {
@@ -106,16 +140,16 @@ if ($_POST) {
/* input validation */
$reqdfields = explode(" ", "mac");
$reqdfieldsn = array(gettext("MAC address"));
-
+
do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
/* normalize MAC addresses - lowercase and convert Windows-ized hyphenated MACs to colon delimited */
$_POST['mac'] = strtolower(str_replace("-", ":", $_POST['mac']));
-
+
if ($_POST['hostname']) {
preg_match("/\-\$/", $_POST['hostname'], $matches);
if($matches)
- $input_errors[] = gettext("The hostname cannot end with a hyphen according to RFC952");
+ $input_errors[] = gettext("The hostname cannot end with a hyphen according to RFC952");
if (!is_hostname($_POST['hostname'])) {
$input_errors[] = gettext("The hostname can only contain the characters A-Z, 0-9 and '-'.");
} else {
@@ -133,7 +167,7 @@ if ($_POST) {
if($static_arp_enabled && !$_POST['ipaddr']) {
$input_errors[] = gettext("Static ARP is enabled. You must specify an IP address.");
}
-
+
/* check for overlaps */
foreach ($a_maps as $mapent) {
if (isset($id) && ($a_maps[$id]) && ($a_maps[$id] === $mapent))
@@ -144,7 +178,7 @@ if ($_POST) {
break;
}
}
-
+
/* make sure it's not within the dynamic subnet */
if ($_POST['ipaddr']) {
$dynsubnet_start = ip2ulong($config['dhcpd'][$if]['range']['from']);
@@ -154,6 +188,13 @@ if ($_POST) {
$input_errors[] = sprintf(gettext("The IP address must not be within the DHCP range for this interface."));
}
+ foreach ($a_pools as $id => $p) {
+ if (is_inrange_v4($_POST['ipaddr'], $p['range']['from'], $p['range']['to'])) {
+ $input_errors[] = gettext("The IP address must not be within the range configured on a DHCP pool for this interface.");
+ break;
+ }
+ }
+
$lansubnet_start = ip2ulong(long2ip32(ip2long($ifcfgip) & gen_subnet_mask_long($ifcfgsn)));
$lansubnet_end = ip2ulong(long2ip32(ip2long($ifcfgip) | (~gen_subnet_mask_long($ifcfgsn))));
if ((ip2ulong($_POST['ipaddr']) < $lansubnet_start) ||
@@ -162,26 +203,93 @@ if ($_POST) {
}
}
+ if (($_POST['gateway'] && !is_ipaddrv4($_POST['gateway'])))
+ $input_errors[] = gettext("A valid IP 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.");
+
+ $parent_ip = get_interface_ip($POST['if']);
+ if (is_ipaddrv4($parent_ip) && $_POST['gateway']) {
+ $parent_sn = get_interface_subnet($_POST['if']);
+ if(!ip_in_subnet($_POST['gateway'], gen_subnet($parent_ip, $parent_sn) . "/" . $parent_sn) && !ip_in_interface_alias_subnet($_POST['if'], $_POST['gateway']))
+ $input_errors[] = sprintf(gettext("The gateway address %s does not lie within the chosen interface's subnet."), $_POST['gateway']);
+ }
+ if (($_POST['dns1'] && !is_ipaddrv4($_POST['dns1'])) || ($_POST['dns2'] && !is_ipaddrv4($_POST['dns2'])))
+ $input_errors[] = gettext("A valid IP address must be specified for the primary/secondary DNS servers.");
+
+ if ($_POST['deftime'] && (!is_numeric($_POST['deftime']) || ($_POST['deftime'] < 60)))
+ $input_errors[] = gettext("The default lease time must be at least 60 seconds.");
+ if ($_POST['maxtime'] && (!is_numeric($_POST['maxtime']) || ($_POST['maxtime'] < 60) || ($_POST['maxtime'] <= $_POST['deftime'])))
+ $input_errors[] = gettext("The maximum lease time must be at least 60 seconds and higher than the default lease time.");
+ if (($_POST['ddnsdomain'] && !is_domain($_POST['ddnsdomain'])))
+ $input_errors[] = gettext("A valid domain name must be specified for the dynamic DNS registration.");
+ if ($_POST['domainsearchlist']) {
+ $domain_array=preg_split("/[ ;]+/",$_POST['domainsearchlist']);
+ foreach ($domain_array as $curdomain) {
+ if (!is_domain($curdomain)) {
+ $input_errors[] = gettext("A valid domain search list must be specified.");
+ break;
+ }
+ }
+ }
+
+ 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.");
+ if ($_POST['tftp'] && !is_ipaddrv4($_POST['tftp']) && !is_domain($_POST['tftp']) && !is_URL($_POST['tftp']))
+ $input_errors[] = gettext("A valid IP address or hostname 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.");
+
if (!$input_errors) {
$mapent = array();
$mapent['mac'] = $_POST['mac'];
$mapent['ipaddr'] = $_POST['ipaddr'];
$mapent['hostname'] = $_POST['hostname'];
$mapent['descr'] = $_POST['descr'];
+ $mapent['arp_table_static_entry'] = ($_POST['arp_table_static_entry']) ? true : false;
$mapent['filename'] = $_POST['filename'];
$mapent['rootpath'] = $_POST['rootpath'];
+ $mapent['defaultleasetime'] = $_POST['deftime'];
+ $mapent['maxleasetime'] = $_POST['maxtime'];
+
+ unset($mapent['winsserver']);
+ if ($_POST['wins1'])
+ $mapent['winsserver'][] = $_POST['wins1'];
+ if ($_POST['wins2'])
+ $mapent['winsserver'][] = $_POST['wins2'];
+
+ unset($mapent['dnsserver']);
+ if ($_POST['dns1'])
+ $mapent['dnsserver'][] = $_POST['dns1'];
+ if ($_POST['dns2'])
+ $mapent['dnsserver'][] = $_POST['dns2'];
+
+ $mapent['gateway'] = $_POST['gateway'];
+ $mapent['domain'] = $_POST['domain'];
+ $mapent['domainsearchlist'] = $_POST['domainsearchlist'];
+ $mapent['ddnsdomain'] = $_POST['ddnsdomain'];
+ $mapent['ddnsupdate'] = ($_POST['ddnsupdate']) ? true : false;
+
+ unset($mapent['ntpserver']);
+ if ($_POST['ntp1'])
+ $mapent['ntpserver'][] = $_POST['ntp1'];
+ if ($_POST['ntp2'])
+ $mapent['ntpserver'][] = $_POST['ntp2'];
+
+ $mapent['tftp'] = $_POST['tftp'];
+ $mapent['ldap'] = $_POST['ldap'];
if (isset($id) && $a_maps[$id])
$a_maps[$id] = $mapent;
else
$a_maps[] = $mapent;
staticmaps_sort($if);
-
+
write_config();
if(isset($config['dhcpd'][$if]['enable'])) {
mark_subsystem_dirty('staticmaps');
- if (isset($config['dnsmasq']['regdhcpstatic']))
+ if (isset($config['dnsmasq']['regdhcpstatic']))
mark_subsystem_dirty('hosts');
}
@@ -197,31 +305,51 @@ include("head.inc");
?>
+<script type="text/javascript" language="JavaScript">
+ function show_ddns_config() {
+ document.getElementById("showddnsbox").innerHTML='';
+ aodiv = document.getElementById('showddns');
+ aodiv.style.display = "block";
+ }
+
+ function show_ntp_config() {
+ document.getElementById("showntpbox").innerHTML='';
+ aodiv = document.getElementById('showntp');
+ aodiv.style.display = "block";
+ }
+
+ function show_tftp_config() {
+ document.getElementById("showtftpbox").innerHTML='';
+ aodiv = document.getElementById('showtftp');
+ aodiv.style.display = "block";
+ }
+</script>
+
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc"); ?>
<?php if ($input_errors) print_input_errors($input_errors); ?>
<form action="services_dhcp_edit.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0">
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Static DHCP Mapping");?></td>
- </tr>
- <tr>
+ </tr>
+ <tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("MAC address");?></td>
- <td width="78%" class="vtable">
+ <td width="78%" class="vtable">
<input name="mac" type="text" class="formfld unknown" id="mac" size="30" value="<?=htmlspecialchars($pconfig['mac']);?>">
<?php
$ip = getenv('REMOTE_ADDR');
$mac = `/usr/sbin/arp -an | grep {$ip} | cut -d" " -f4`;
$mac = str_replace("\n","",$mac);
?>
- <a OnClick="document.forms[0].mac.value='<?=$mac?>';" href="#"><?=gettext("Copy my MAC address");?></a>
+ <a OnClick="document.forms[0].mac.value='<?=$mac?>';" href="#"><?=gettext("Copy my MAC address");?></a>
<br>
<span class="vexpl"><?=gettext("Enter a MAC address in the following format: ".
"xx:xx:xx:xx:xx:xx");?></span></td>
</tr>
- <tr>
+ <tr>
<td width="22%" valign="top" class="vncell"><?=gettext("IP address");?></td>
- <td width="78%" class="vtable">
+ <td width="78%" class="vtable">
<input name="ipaddr" type="text" class="formfld unknown" id="ipaddr" size="20" value="<?=htmlspecialchars($pconfig['ipaddr']);?>">
<br>
<?=gettext("If an IPv4 address is entered, the address must be outside of the pool.");?>
@@ -229,12 +357,12 @@ include("head.inc");
<?=gettext("If no IPv4 address is given, one will be dynamically allocated from the pool.");?>
</td>
</tr>
- <tr>
+ <tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Hostname");?></td>
- <td width="78%" class="vtable">
+ <td width="78%" class="vtable">
<input name="hostname" type="text" class="formfld unknown" id="hostname" size="20" value="<?=htmlspecialchars($pconfig['hostname']);?>">
<br> <span class="vexpl"><?=gettext("Name of the host, without domain part.");?></span></td>
- </tr>
+ </tr>
<?php if($netboot_enabled) { ?>
<tr>
<td width="22%" valign="top" class="vncell">Netboot Filename</td>
@@ -249,25 +377,129 @@ include("head.inc");
<br> <span class="vexpl"><?=gettext("Enter the"); ?> <b><?=gettext("root-path"); ?></b>-<?=gettext("string");?>, overrides setting on main page.</span></td>
</tr>
<?php } ?>
- <tr>
+ <tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Description");?></td>
- <td width="78%" class="vtable">
- <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>">
+ <td width="78%" class="vtable">
+ <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>">
<br> <span class="vexpl"><?=gettext("You may enter a description here ".
"for your reference (not parsed).");?></span></td>
</tr>
- <tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("ARP Table Static Entry");?></td>
+ <td width="78%" class="vtable">
+ <input name="arp_table_static_entry" id="arp_table_static_entry" type="checkbox" value="yes" <?php if ($pconfig['arp_table_static_entry']) echo "checked"; ?>>
+ <br> <span class="vexpl"><?=gettext("Create an ARP Table Static Entry for this MAC & IP Address pair. ".
+ "");?></span></td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("WINS servers");?></td>
+ <td width="78%" class="vtable">
+ <input name="wins1" type="text" class="formfld unknown" id="wins1" size="20" value="<?=htmlspecialchars($pconfig['wins1']);?>"><br>
+ <input name="wins2" type="text" class="formfld unknown" id="wins2" size="20" value="<?=htmlspecialchars($pconfig['wins2']);?>">
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("DNS servers");?></td>
+ <td width="78%" class="vtable">
+ <input name="dns1" type="text" class="formfld unknown" id="dns1" size="20" value="<?=htmlspecialchars($pconfig['dns1']);?>"><br>
+ <input name="dns2" type="text" class="formfld unknown" id="dns2" size="20" value="<?=htmlspecialchars($pconfig['dns2']);?>"><br>
+ <?=gettext("NOTE: leave blank to use the system default DNS servers - this interface's IP if DNS forwarder is enabled, otherwise the servers configured on the General page.");?>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Gateway");?></td>
+ <td width="78%" class="vtable">
+ <input name="gateway" type="text" class="formfld host" id="gateway" size="20" value="<?=htmlspecialchars($pconfig['gateway']);?>"><br>
+ <?=gettext("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 your network.");?>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Domain name");?></td>
+ <td width="78%" class="vtable">
+ <input name="domain" type="text" class="formfld unknown" id="domain" size="20" value="<?=htmlspecialchars($pconfig['domain']);?>"><br>
+ <?=gettext("The default is to use the domain name of this system as the default domain name provided by DHCP. You may specify an alternate domain name here.");?>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Domain search list");?></td>
+ <td width="78%" class="vtable">
+ <input name="domainsearchlist" type="text" class="formfld unknown" id="domainsearchlist" size="20" value="<?=htmlspecialchars($pconfig['domainsearchlist']);?>"><br>
+ <?=gettext("The DHCP server can optionally provide a domain search list. Use the semicolon character as seperator ");?>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Default lease time");?></td>
+ <td width="78%" class="vtable">
+ <input name="deftime" type="text" class="formfld unknown" id="deftime" size="10" value="<?=htmlspecialchars($pconfig['deftime']);?>">
+ <?=gettext("seconds");?><br>
+ <?=gettext("This is used for clients that do not ask for a specific " .
+ "expiration time."); ?><br>
+ <?=gettext("The default is 7200 seconds.");?>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Maximum lease time");?></td>
+ <td width="78%" class="vtable">
+ <input name="maxtime" type="text" class="formfld unknown" id="maxtime" size="10" value="<?=htmlspecialchars($pconfig['maxtime']);?>">
+ <?=gettext("seconds");?><br>
+ <?=gettext("This is the maximum lease time for clients that ask".
+ " for a specific expiration time."); ?><br>
+ <?=gettext("The default is 86400 seconds.");?>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Dynamic DNS");?></td>
+ <td width="78%" class="vtable">
+ <div id="showddnsbox">
+ <input type="button" onClick="show_ddns_config()" value="<?=gettext("Advanced");?>"></input> - <?=gettext("Show Dynamic DNS");?></a>
+ </div>
+ <div id="showddns" style="display:none">
+ <input valign="middle" type="checkbox" value="yes" name="ddnsupdate" id="ddnsupdate" <?php if($pconfig['ddnsupdate']) echo " checked"; ?>>&nbsp;
+ <b><?=gettext("Enable registration of DHCP client names in DNS.");?></b><br />
+ <p>
+ <input name="ddnsdomain" type="text" class="formfld unknown" id="ddnsdomain" size="20" value="<?=htmlspecialchars($pconfig['ddnsdomain']);?>"><br />
+ <?=gettext("Note: Leave blank to disable dynamic DNS registration.");?><br />
+ <?=gettext("Enter the dynamic DNS domain which will be used to register client names in the DNS server.");?>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("NTP servers");?></td>
+ <td width="78%" class="vtable">
+ <div id="showntpbox">
+ <input type="button" onClick="show_ntp_config()" value="<?=gettext("Advanced");?>"></input> - <?=gettext("Show NTP configuration");?></a>
+ </div>
+ <div id="showntp" style="display:none">
+ <input name="ntp1" type="text" class="formfld unknown" id="ntp1" size="20" value="<?=htmlspecialchars($pconfig['ntp1']);?>"><br>
+ <input name="ntp2" type="text" class="formfld unknown" id="ntp2" size="20" value="<?=htmlspecialchars($pconfig['ntp2']);?>">
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("TFTP server");?></td>
+ <td width="78%" class="vtable">
+ <div id="showtftpbox">
+ <input type="button" onClick="show_tftp_config()" value="<?=gettext("Advanced");?>"></input> - <?=gettext("Show TFTP configuration");?></a>
+ </div>
+ <div id="showtftp" style="display:none">
+ <input name="tftp" type="text" class="formfld unknown" id="tftp" size="50" value="<?=htmlspecialchars($pconfig['tftp']);?>"><br>
+ <?=gettext("Leave blank to disable. Enter a full hostname or IP for the TFTP server.");?>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <tr>
<td width="22%" valign="top">&nbsp;</td>
- <td width="78%">
+ <td width="78%">
<input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save");?>"> <input class="formbtn" type="button" value="<?=gettext("Cancel");?>" onclick="history.back()">
<?php if (isset($id) && $a_maps[$id]): ?>
<input name="id" type="hidden" value="<?=htmlspecialchars($id);?>">
<?php endif; ?>
- <input name="if" type="hidden" value="<?=htmlspecialchars($if);?>">
+ <input name="if" type="hidden" value="<?=htmlspecialchars($if);?>">
</td>
</tr>
</table>
</form>
<?php include("fend.inc"); ?>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/usr/local/www/services_dhcpv6.php b/usr/local/www/services_dhcpv6.php
index e2f83f0..19f13cb 100644
--- a/usr/local/www/services_dhcpv6.php
+++ b/usr/local/www/services_dhcpv6.php
@@ -75,6 +75,7 @@ if (!$_GET['if'])
"<p><b>" . gettext("Only interfaces configured with a static IP will be shown") . ".</b></p>";
$iflist = get_configured_interface_with_descr();
+$iflist = array_merge($iflist, get_configured_pppoe_server_interfaces());
/* set the starting interface */
if (!$if || !isset($iflist[$if])) {
@@ -143,13 +144,6 @@ if(is_array($dhcrelaycfg)) {
}
}
-function is_inrange($test, $start, $end) {
- if ( (inet_pton($test) < inet_pton($end)) && (inet_pton($test) > inet_pton($start)) )
- return true;
- else
- return false;
-}
-
if ($_POST) {
unset($input_errors);
@@ -217,7 +211,7 @@ if ($_POST) {
if (is_array($config['virtualip']['vip'])) {
foreach($config['virtualip']['vip'] as $vip) {
if($vip['interface'] == $if)
- if($vip['subnetv6'] && is_inrange($vip['subnetv6'], $_POST['range_from'], $_POST['range_to']))
+ if($vip['subnetv6'] && is_inrange_v6($vip['subnetv6'], $_POST['range_from'], $_POST['range_to']))
$input_errors[] = sprintf(gettext("The subnet range cannot overlap with virtual IPv6 address %s."),$vip['subnetv6']);
}
}
@@ -232,11 +226,12 @@ if ($_POST) {
$subnet_start = gen_subnetv6($ifcfgip, $ifcfgsn);
$subnet_end = gen_subnetv6_max($ifcfgip, $ifcfgsn);
- if ((! is_inrange($_POST['range_from'], $subnet_start, $subnet_end)) ||
- (! is_inrange($_POST['range_to'], $subnet_start, $subnet_end))) {
- $input_errors[] = gettext("The specified range lies outside of the current subnet.");
+ if (is_ipaddrv6($ifcfgip)) {
+ if ((! is_inrange_v6($_POST['range_from'], $subnet_start, $subnet_end)) ||
+ (! is_inrange_v6($_POST['range_to'], $subnet_start, $subnet_end))) {
+ $input_errors[] = gettext("The specified range lies outside of the current subnet.");
+ }
}
-
/* "from" cannot be higher than "to" */
if (inet_pton($_POST['range_from']) > inet_pton($_POST['range_to']))
$input_errors[] = gettext("The range is invalid (first element higher than second element).");
@@ -329,7 +324,7 @@ if ($_POST) {
$retvaldhcp = 0;
$retvaldns = 0;
/* Stop DHCPv6 so we can cleanup leases */
- killbyname("dhcpd -6");
+ killbypid("{$g['dhcpd_chroot_path']}{$g['varrun_path']}/dhcpdv6.pid");
// dhcp_clean_leases();
/* dnsmasq_configure calls dhcpd_configure */
/* no need to restart dhcpd twice */
@@ -486,6 +481,22 @@ include("head.inc");
$tab_array[] = array($ifname, $active, "services_dhcpv6.php?if={$ifent}");
$tabscounter++;
}
+ /* tack on PPPoE or PPtP servers here */
+ /* pppoe server */
+ if (is_array($config['pppoes']['pppoe'])) {
+ foreach($config['pppoes']['pppoe'] as $pppoe) {
+ if ($pppoe['mode'] == "server") {
+ $ifent = "poes". $pppoe['pppoeid'];
+ $ifname = strtoupper($ifent);
+ if ($ifent == $if)
+ $active = true;
+ else
+ $active = false;
+ $tab_array[] = array($ifname, $active, "services_dhcpv6.php?if={$ifent}");
+ $tabscounter++;
+ }
+ }
+ }
if ($tabscounter == 0) {
echo "</td></tr></table></form>";
include("fend.inc");
@@ -524,6 +535,10 @@ display_top_tabs($tab_array);
<?=gettext("If this is checked, only the clients defined below will get DHCP leases from this server. ");?></td>
</tr>
<tr>
+ <?php
+ /* the PPPoE Server could well have no IPv6 address and operate fine with just link-local, just hide these */
+ if(is_ipaddrv6($ifcfgip)) {
+ ?>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Subnet");?></td>
<td width="78%" class="vtable">
<?=gen_subnetv6($ifcfgip, $ifcfgsn);?>
@@ -551,6 +566,8 @@ display_top_tabs($tab_array);
?>
</td>
</tr>
+ <?php } ?>
+
<?php if($is_olsr_enabled): ?>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Subnet Mask");?></td>
@@ -581,7 +598,7 @@ display_top_tabs($tab_array);
<td width="78%" class="vtable">
<input name="prefixrange_from" type="text" class="formfld unknown" id="prefixrange_from" size="28" value="<?=htmlspecialchars($pconfig['prefixrange_from']);?>">
&nbsp;<?=gettext("to"); ?>&nbsp; <input name="prefixrange_to" type="text" class="formfld unknown" id="prefixrange_to" size="28" value="<?=htmlspecialchars($pconfig['prefixrange_to']);?>">
- &nbsp;<?=gettext("prefix delegation size"); ?>&nbsp; <select name="prefixrange_length" class="formselect" id="prefixrange_length">
+ &nbsp;<br/><?=gettext("Prefix Delegation Size"); ?>:&nbsp; <select name="prefixrange_length" class="formselect" id="prefixrange_length">
<option value="48" <?php if($pconfig['prefixrange_length'] == 48) echo "selected"; ?>>48</option>
<option value="52" <?php if($pconfig['prefixrange_length'] == 52) echo "selected"; ?>>52</option>
<option value="56" <?php if($pconfig['prefixrange_length'] == 56) echo "selected"; ?>>56</option>
@@ -826,6 +843,10 @@ display_top_tabs($tab_array);
</table>
<table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
+ <td colspan="4" valign="top" class="listtopic"><?=gettext("DHCPv6 Static Mappings for this interface.");?></td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
<td width="25%" class="listhdrr"><?=gettext("DUID");?></td>
<td width="15%" class="listhdrr"><?=gettext("IPv6 address");?></td>
<td width="20%" class="listhdrr"><?=gettext("Hostname");?></td>
diff --git a/usr/local/www/services_dhcpv6_edit.php b/usr/local/www/services_dhcpv6_edit.php
index 2beab36..ded788b 100644
--- a/usr/local/www/services_dhcpv6_edit.php
+++ b/usr/local/www/services_dhcpv6_edit.php
@@ -69,9 +69,12 @@ if (!$if) {
exit;
}
-if (!is_array($config['dhcpdv6'][$if]['staticmap'])) {
+if (!is_array($config['dhcpdv6']))
+ $config['dhcpdv6'] = array();
+if (!is_array($config['dhcpdv6'][$if]))
+ $config['dhcpdv6'][$if] = array();
+if (!is_array($config['dhcpdv6'][$if]['staticmap']))
$config['dhcpdv6'][$if]['staticmap'] = array();
-}
$netboot_enabled=isset($config['dhcpdv6'][$if]['netboot']);
$a_maps = &$config['dhcpdv6'][$if]['staticmap'];
diff --git a/usr/local/www/services_dnsmasq.php b/usr/local/www/services_dnsmasq.php
index 8315b93..1d67b6f 100755
--- a/usr/local/www/services_dnsmasq.php
+++ b/usr/local/www/services_dnsmasq.php
@@ -48,6 +48,9 @@ $pconfig['enable'] = isset($config['dnsmasq']['enable']);
$pconfig['regdhcp'] = isset($config['dnsmasq']['regdhcp']);
$pconfig['regdhcpstatic'] = isset($config['dnsmasq']['regdhcpstatic']);
$pconfig['dhcpfirst'] = isset($config['dnsmasq']['dhcpfirst']);
+$pconfig['strict_order'] = isset($config['dnsmasq']['strict_order']);
+$pconfig['domain_needed'] = isset($config['dnsmasq']['domain_needed']);
+$pconfig['no_private_reverse'] = isset($config['dnsmasq']['no_private_reverse']);
$pconfig['custom_options'] = $config['dnsmasq']['custom_options'];
if (!is_array($config['dnsmasq']['hosts']))
@@ -69,6 +72,9 @@ if ($_POST) {
$config['dnsmasq']['regdhcp'] = ($_POST['regdhcp']) ? true : false;
$config['dnsmasq']['regdhcpstatic'] = ($_POST['regdhcpstatic']) ? true : false;
$config['dnsmasq']['dhcpfirst'] = ($_POST['dhcpfirst']) ? true : false;
+ $config['dnsmasq']['strict_order'] = ($_POST['strict_order']) ? true : false;
+ $config['dnsmasq']['domain_needed'] = ($_POST['domain_needed']) ? true : false;
+ $config['dnsmasq']['no_private_reverse'] = ($_POST['no_private_reverse']) ? true : false;
$config['dnsmasq']['custom_options'] = str_replace("\r\n", "\n", $_POST['custom_options']);
if ($config['dnsmasq']['custom_options']) {
@@ -192,6 +198,38 @@ function show_advanced_dns() {
</td>
</tr>
<tr>
+ <td rowspan="3" width="22%" valign="top" class="vncellreq"><?=gettext("DNS Query Forwarding");?></td>
+ <td width="78%" class="vtable"><p>
+ <input name="strict_order" type="checkbox" id="strict_order" value="yes" <?php if ($pconfig['strict_order'] == "yes") echo "checked";?>>
+ <strong><?=gettext("Query DNS servers sequentially");?><br>
+ </strong><?php printf(gettext("If this option is set, %s DNS Forwarder (dnsmasq) will ".
+ "query the DNS servers sequentially in the order specified (<i>System - General Setup - DNS Servers</i>), ".
+ "rather than all at once in parallel. ".
+ ""), $g['product_name']); ?></p>
+ </td>
+ </tr>
+ <tr>
+ <td width="78%" class="vtable"><p>
+ <input name="domain_needed" type="checkbox" id="domain_needed" value="yes" <?php if ($pconfig['domain_needed'] == "yes") echo "checked";?>>
+ <strong><?=gettext("Require domain");?><br>
+ </strong><?php printf(gettext("If this option is set, %s DNS Forwarder (dnsmasq) will ".
+ "not forward A or AAAA queries for plain names, without dots or domain parts, to upstream name servers. ".
+ "If the name is not known from /etc/hosts or DHCP then a \"not found\" answer is returned. ".
+ ""), $g['product_name']); ?></p>
+ </td>
+ </tr>
+ <tr>
+ <td width="78%" class="vtable"><p>
+ <input name="no_private_reverse" type="checkbox" id="no_private_reverse" value="yes" <?php if ($pconfig['no_private_reverse'] == "yes") echo "checked";?>>
+ <strong><?=gettext("Do not forward private reverse lookups");?><br>
+ </strong><?php printf(gettext("If this option is set, %s DNS Forwarder (dnsmasq) will ".
+ "not forward reverse DNS lookups (PTR) for private addresses (RFC 1918) to upstream name servers. ".
+ "Any entries in the Domain Overrides section forwarding private \"n.n.n.in-addr.arpa\" names to a specific server are still forwarded. ".
+ "If the IP to name is not known from /etc/hosts, DHCP or a specific domain override then a \"not found\" answer is immediately returned. ".
+ ""), $g['product_name']); ?></p>
+ </td>
+ </tr>
+ <tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Advanced");?></td>
<td width="78%" class="vtable"><p>
<div id="showadvbox" <?php if ($pconfig['custom_options']) echo "style='display:none'"; ?>>
diff --git a/usr/local/www/services_dnsmasq_domainoverride_edit.php b/usr/local/www/services_dnsmasq_domainoverride_edit.php
index 74869b4..c228353 100755
--- a/usr/local/www/services_dnsmasq_domainoverride_edit.php
+++ b/usr/local/www/services_dnsmasq_domainoverride_edit.php
@@ -86,8 +86,8 @@ if ($_POST) {
elseif ($_POST['domain'] && !is_domain($_POST['domain'])) {
$input_errors[] = gettext("A valid domain must be specified.");
}
- if ($_POST['ip'] && !is_ipaddr($_POST['ip']) && ($_POST['ip'] != '#')) {
- $input_errors[] = gettext("A valid IP address must be specified, or # for an exclusion.");
+ if ($_POST['ip'] && !is_ipaddr($_POST['ip']) && ($_POST['ip'] != '#') && ($_POST['ip'] != '!')) {
+ $input_errors[] = gettext("A valid IP address must be specified, or # for an exclusion or ! to not forward at all.");
}
if ($_POST['dnssrcip'] && !in_array($_POST['dnssrcip'], get_configured_ip_addresses())) {
$input_errors[] = gettext("An interface IP address must be specified for the DNS query source.");
@@ -131,17 +131,17 @@ include("head.inc");
<td width="78%" class="vtable">
<?=$mandfldhtml;?><input name="domain" type="text" class="formfld unknown" id="domain" size="40" value="<?=htmlspecialchars($pconfig['domain']);?>">
<br> <span class="vexpl"><?=gettext("Domain to override (NOTE: this does not have to be a valid TLD!)"); ?><br>
- <?=gettext("e.g."); ?> <em><?=gettext("test"); ?></em></span></td>
+ <?=gettext("e.g."); ?> <em><?=gettext("test"); ?></em> <?=gettext("or"); ?> <em>mycompany.localdomain</em> <?=gettext("or"); ?> <em>1.168.192.in-addr.arpa</em> </span></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("IP address");?></td>
<td width="78%" class="vtable">
<?=$mandfldhtml;?><input name="ip" type="text" class="formfld unknown" id="ip" size="40" value="<?=htmlspecialchars($pconfig['ip']);?>">
<br> <span class="vexpl"><?=gettext("IP address of the authoritative DNS server for this domain"); ?><br>
- <?=gettext("e.g."); ?> <em>192.168.100.100</em><br/><?=gettext("Or enter # for an exclusion to pass through this host/subdomain to standard nameservers instead of a previous override."); ?></span></td>
+ <?=gettext("e.g."); ?> <em>192.168.100.100</em><br/><?=gettext("Or enter # for an exclusion to pass through this host/subdomain to standard nameservers instead of a previous override."); ?><br/><?=gettext("Or enter ! for lookups for this host/subdomain to NOT be forwarded anywhere."); ?></span></td>
</tr>
<tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Source IP");?></td>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Source IP");?></td>
<td width="78%" class="vtable">
<?=$mandfldhtml;?><input name="dnssrcip" type="text" class="formfld unknown" id="dnssrcip" size="40" value="<?=htmlspecialchars($pconfig['dnssrcip']);?>">
<br> <span class="vexpl"><?=gettext("Source IP address for queries to the DNS server for the override domain."); ?><br>
diff --git a/usr/local/www/services_dyndns.php b/usr/local/www/services_dyndns.php
index b4fdc32..5049d63 100755
--- a/usr/local/www/services_dyndns.php
+++ b/usr/local/www/services_dyndns.php
@@ -1,7 +1,7 @@
<?php
/* $Id$ */
/*
- Copyright (C) 2008 Ermal Luçi
+ Copyright (C) 2008 Ermal Luçi
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -45,41 +45,16 @@ if (!is_array($config['dyndnses']['dyndns']))
$a_dyndns = &$config['dyndnses']['dyndns'];
if ($_GET['act'] == "del") {
- unset($a_dyndns[$_GET['id']]);
- for($i = 0; $i < count($a_dyndns); $i++) {
- $a_dyndns[$i]['id'] = $i;
- }
+ $conf = $a_dyndns[$_GET['id']];
+ @unlink("{$g['conf_path']}/dyndns_{$conf['interface']}{$conf['type']}" . escapeshellarg($conf['host']) . "{$conf['id']}.cache");
+ unset($a_dyndns[$_GET['id']]);
- //FIXME: Instead of rechecking all interfaces and removing the cache files, gracefully move all cache files to the appropriate ID number.
- mwexec("/bin/rm {$g['conf_path']}/dyndns_*.cache");
+ write_config();
+ services_dyndns_configure();
- write_config();
-
- services_dyndns_configure();
-
- header("Location: services_dyndns.php");
- exit;
-}
-
-function dyndnsCheckIP($int) {
-
- $ip_address = get_interface_ip($int);
- if (is_private_ip($ip_address)) {
- $hosttocheck = "checkip.dyndns.org";
- $checkip = gethostbyname($hosttocheck);
- $ip_ch = curl_init("http://{$checkip}");
- curl_setopt($ip_ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ip_ch, CURLOPT_SSL_VERIFYPEER, FALSE);
- curl_setopt($ip_ch, CURLOPT_INTERFACE, $ip_address);
- $ip_result_page = curl_exec($ip_ch);
- curl_close($ip_ch);
- $ip_result_decoded = urldecode($ip_result_page);
- preg_match('=Current IP Address: (.*)</body>=siU', $ip_result_decoded, $matches);
- $ip_address = trim($matches[1]);
- }
-
- return $ip_address;
+ header("Location: services_dyndns.php");
+ exit;
}
$pgtitle = array(gettext("Services"), gettext("Dynamic DNS clients"));
@@ -92,103 +67,124 @@ include("head.inc");
<form action="services_dyndns.php" method="post" name="iform" id="iform">
<?php if ($input_errors) print_input_errors($input_errors); ?>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr><td>
+ <tr>
+ <td>
<?php
$tab_array = array();
$tab_array[] = array(gettext("DynDns"), true, "services_dyndns.php");
$tab_array[] = array(gettext("RFC 2136"), false, "services_rfc2136.php");
display_top_tabs($tab_array);
?>
- </td></tr>
+ </td>
+ </tr>
<tr>
- <td>
- <div id="mainarea">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
+ <td>
+ <div id="mainarea">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr>
<td width="5%" class="listhdrr"><?=gettext("Interface");?></td>
<td width="15%" class="listhdrr"><?=gettext("Service");?></td>
- <td width="20%" class="listhdrr"><?=gettext("Hostname");?></td>
- <td width="20%" class="listhdrr"><?=gettext("Cached IP");?></td>
- <td width="50%" class="listhdr"><?=gettext("Description");?></td>
- <td width="10%" class="list"></td>
+ <td width="20%" class="listhdrr"><?=gettext("Hostname");?></td>
+ <td width="20%" class="listhdrr"><?=gettext("Cached IP");?></td>
+ <td width="50%" class="listhdr"><?=gettext("Description");?></td>
+ <td width="10%" class="list"></td>
</tr>
- <?php $i = 0; foreach ($a_dyndns as $dyndns): ?>
- <tr ondblclick="document.location='services_dyndns_edit.php?id=<?=$i;?>'">
+ <?php $i = 0; foreach ($a_dyndns as $dyndns): ?>
+ <tr ondblclick="document.location='services_dyndns_edit.php?id=<?=$i;?>'">
<td class="listlr">
- <?php $iflist = get_configured_interface_with_descr();
- foreach ($iflist as $if => $ifdesc) {
+ <?php $iflist = get_configured_interface_with_descr();
+ foreach ($iflist as $if => $ifdesc) {
if ($dyndns['interface'] == $if) {
- echo "{$ifdesc}";
- $iface = $if;
+ if (!isset($dyndns['enable']))
+ echo "<span class=\"gray\">{$ifdesc}</span>";
+ else
+ echo "{$ifdesc}";
break;
}
}
$groupslist = return_gateway_groups_array();
- foreach ($groupslist as $if => $group) {
+ foreach ($groupslist as $if => $group) {
if ($dyndns['interface'] == $if) {
- echo "{$if}";
- $iface = $if;
+ if (!isset($dyndns['enable']))
+ echo "<span class=\"gray\">{$if}</span>";
+ else
+ echo "{$if}";
break;
}
}
- ?>
+ ?>
</td>
- <td class="listr">
- <?php
- $types = explode(",", "DNS-O-Matic, DynDNS (dynamic),DynDNS (static),DynDNS (custom),DHS,DyNS,easyDNS,No-IP,ODS.org,ZoneEdit,Loopia,freeDNS, DNSexit, OpenDNS, Namecheap, HE.net, HE.net Tunnelbroker, SelfHost, Route 53, Custom");
- $vals = explode(" ", "dnsomatic dyndns dyndns-static dyndns-custom dhs dyns easydns noip ods zoneedit loopia freedns dnsexit opendns namecheap he-net he-net-tunnelbroker selfhost route53 custom");
- $j = 0; for ($j = 0; $j < count($vals); $j++)
- if ($vals[$j] == $dyndns['type']) {
- echo htmlspecialchars($types[$j]);
- break;
- }
- ?>
- </td>
- <td class="listr">
- <?=htmlspecialchars($dyndns['host']);?>
- </td>
- <td class="listr">
- <?php
- $filename = "{$g['conf_path']}/dyndns_{$iface}{$dyndns['type']}" . escapeshellarg($dyndns['host']) . "{$dyndns['id']}.cache";
- $ipaddr = dyndnsCheckIP($iface);
- if(file_exists($filename)) {
- $cached_ip_s = explode(":", file_get_contents($filename));
- $cached_ip = $cached_ip_s[0];
- if($ipaddr <> $cached_ip)
- echo "<font color='red'>";
- else
- echo "<font color='green'>";
- echo htmlspecialchars($cached_ip);
- echo "</font>";
- } else {
- echo "N/A";
+ <td class="listr">
+ <?php
+ $types = explode(",", DYNDNS_PROVIDER_DESCRIPTIONS);
+ $vals = explode(" ", DYNDNS_PROVIDER_VALUES);
+ for ($j = 0; $j < count($vals); $j++)
+ if ($vals[$j] == $dyndns['type']) {
+ if (!isset($dyndns['enable']))
+ echo "<span class=\"gray\">".htmlspecialchars($types[$j])."</span>";
+ else
+ echo htmlspecialchars($types[$j]);
+ break;
}
- ?>
+ ?>
</td>
- <td class="listbg">
- <?=htmlspecialchars($dyndns['descr']);?>&nbsp;
- </td>
- <td valign="middle" nowrap class="list"> <a href="services_dyndns_edit.php?id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0"></a>
- &nbsp;<a href="services_dyndns.php?act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this entry?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0"></a></td>
- </tr>
- <?php $i++; endforeach; ?>
- <tr>
- <td class="list" colspan="5"></td>
- <td class="list"> <a href="services_dyndns_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
- </tr>
- <tr>
- <td colspan="3" class="list"><p class="vexpl"><span class="red"><strong>
- <?=gettext("Note:");?><br>
- </strong></span>
- <?=gettext("IP addresses appearing in green are up to date with Dynamic DNS provider.");?><br>
- <?=gettext("You can force an update for an IP address on the edit page for that service.");?>
- </td>
- <td class="list">&nbsp;</td>
- </tr>
- </table>
- </div>
+ <td class="listr">
+ <?php
+ if (!isset($dyndns['enable']))
+ echo "<span class=\"gray\">".htmlspecialchars($dyndns['host'])."</span>";
+ else
+ echo htmlspecialchars($dyndns['host']);
+ ?>
+ </td>
+ <td class="listr">
+ <?php
+ $filename = "{$g['conf_path']}/dyndns_{$dyndns['interface']}{$dyndns['type']}" . escapeshellarg($dyndns['host']) . "{$dyndns['id']}.cache";
+ if (file_exists($filename)) {
+ $ipaddr = dyndnsCheckIP($dyndns['interface']);
+ $cached_ip_s = explode(":", file_get_contents($filename));
+ $cached_ip = $cached_ip_s[0];
+ if ($ipaddr <> $cached_ip)
+ echo "<font color='red'>";
+ else
+ echo "<font color='green'>";
+ echo htmlspecialchars($cached_ip);
+ echo "</font>";
+ } else {
+ echo "N/A";
+ }
+ ?>
+ </td>
+ <td class="listbg">
+ <?php
+ if (!isset($dyndns['enable']))
+ echo "<span class=\"gray\">".htmlspecialchars($dyndns['descr'])."</span>";
+ else
+ echo htmlspecialchars($dyndns['descr']);
+ ?>
+ </td>
+ <td valign="middle" nowrap class="list">
+ <a href="services_dyndns_edit.php?id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0"></a>
+ &nbsp;<a href="services_dyndns.php?act=del&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this entry?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0"></a>
+ </td>
+ </tr>
+ <?php $i++; endforeach; ?>
+ <tr>
+ <td class="list" colspan="5"></td>
+ <td class="list"> <a href="services_dyndns_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
+ </tr>
+ <tr>
+ <td colspan="3" class="list"><p class="vexpl"><span class="red"><strong>
+ <?=gettext("Note:");?><br>
+ </strong></span>
+ <?=gettext("IP addresses appearing in green are up to date with Dynamic DNS provider.");?><br>
+ <?=gettext("You can force an update for an IP address on the edit page for that service.");?>
+ </td>
+ <td class="list">&nbsp;</td>
+ </tr>
+ </table>
+ </div>
</td>
- </tr>
+ </tr>
</table>
</form>
<?php include("fend.inc"); ?>
diff --git a/usr/local/www/services_dyndns_edit.php b/usr/local/www/services_dyndns_edit.php
index 93fc744..75dde35 100644
--- a/usr/local/www/services_dyndns_edit.php
+++ b/usr/local/www/services_dyndns_edit.php
@@ -1,7 +1,7 @@
<?php
/* $Id$ */
/*
- Copyright (C) 2008 Ermal Luçi
+ Copyright (C) 2008 Ermal Luçi
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -69,6 +69,7 @@ if (isset($id) && isset($a_dyndns[$id])) {
$pconfig['enable'] = !isset($a_dyndns[$id]['enable']);
$pconfig['interface'] = $a_dyndns[$id]['interface'];
$pconfig['wildcard'] = isset($a_dyndns[$id]['wildcard']);
+ $pconfig['verboselog'] = isset($a_dyndns[$id]['verboselog']);
$pconfig['zoneid'] = $a_dyndns[$id]['zoneid'];
$pconfig['ttl'] = isset($a_dyndns[$id]['ttl']);
$pconfig['updateurl'] = $a_dyndns[$id]['updateurl'];
@@ -117,7 +118,12 @@ if ($_POST) {
$dyndns['host'] = $_POST['host'];
$dyndns['mx'] = $_POST['mx'];
$dyndns['wildcard'] = $_POST['wildcard'] ? true : false;
- $dyndns['enable'] = $_POST['enable'] ? false : true;
+ $dyndns['verboselog'] = $_POST['verboselog'] ? true : false;
+ /* In this place enable means disabled */
+ if ($_POST['enable'])
+ unset($dyndns['enable']);
+ else
+ $dyndns['enable'] = true;
$dyndns['interface'] = $_POST['interface'];
$dyndns['zoneid'] = $_POST['zoneid'];
$dyndns['ttl'] = $_POST['ttl'];
@@ -217,8 +223,8 @@ function _onTypeChange(type){
<td width="78%" class="vtable">
<select name="type" class="formselect" id="type" onchange="_onTypeChange(this.options[this.selectedIndex].value);">
<?php
- $types = explode(",", "DNS-O-Matic, DynDNS (dynamic),DynDNS (static),DynDNS (custom),DHS,DyNS,easyDNS,No-IP,ODS.org,ZoneEdit,Loopia,freeDNS, DNSexit, OpenDNS, Namecheap, HE.net, HE.net Tunnelbroker, SelfHost, Route 53, Custom");
- $vals = explode(" ", "dnsomatic dyndns dyndns-static dyndns-custom dhs dyns easydns noip ods zoneedit loopia freedns dnsexit opendns namecheap he-net he-net-tunnelbroker selfhost route53 custom");
+ $types = explode(",", DYNDNS_PROVIDER_DESCRIPTIONS);
+ $vals = explode(" ", DYNDNS_PROVIDER_VALUES);
$j = 0; for ($j = 0; $j < count($vals); $j++): ?>
<option value="<?=$vals[$j];?>" <?php if ($vals[$j] == $pconfig['type']) echo "selected";?>>
<?=htmlspecialchars($types[$j]);?>
@@ -292,6 +298,12 @@ function _onTypeChange(type){
<input name="wildcard" type="checkbox" id="wildcard" value="yes" <?php if ($pconfig['wildcard']) echo "checked"; ?>>
<?=gettext("Enable ");?><?=gettext("Wildcard"); ?></td>
</tr>
+ <tr id="_verboselogtr">
+ <td width="22%" valign="top" class="vncell"><?=gettext("Verbose logging"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="verboselog" type="checkbox" id="verboselog" value="yes" <?php if ($pconfig['verboselog']) echo "checked"; ?>>
+ <?=gettext("Enable ");?><?=gettext("verbose logging"); ?></td>
+ </tr>
<tr id="_usernametr">
<td width="22%" valign="top" class="vncellreq"><?=gettext("Username");?></td>
<td width="78%" class="vtable">
diff --git a/usr/local/www/services_ntpd.php b/usr/local/www/services_ntpd.php
index 694235e..c68476b 100644
--- a/usr/local/www/services_ntpd.php
+++ b/usr/local/www/services_ntpd.php
@@ -40,7 +40,7 @@
require("guiconfig.inc");
if (empty($config['ntpd']['interface']))
- if (empty($config['installedpackages']['openntpd']['config'][0]['interface'])) {
+ if ($config['installedpackages']['openntpd'] && empty($config['installedpackages']['openntpd']['config'][0]['interface'])) {
$pconfig['interface'] = explode(",", $config['installedpackages']['openntpd']['config'][0]['interface']);
unset($config['installedpackages']['openntpd']);
} else
diff --git a/usr/local/www/services_rfc2136.php b/usr/local/www/services_rfc2136.php
index 563ee26..3763182 100644
--- a/usr/local/www/services_rfc2136.php
+++ b/usr/local/www/services_rfc2136.php
@@ -44,17 +44,16 @@ if (!is_array($config['dnsupdates']['dnsupdate']))
$a_rfc2136 = &$config['dnsupdates']['dnsupdate'];
if ($_GET['act'] == "del") {
- unset($a_rfc2136[$_GET['id']]);
+ unset($a_rfc2136[$_GET['id']]);
- write_config();
+ write_config();
- header("Location: services_rfc2136.php");
- exit;
+ header("Location: services_rfc2136.php");
+ exit;
}
$pgtitle = array(gettext("Services"), gettext("RFC 2136 clients"));
include("head.inc");
-
?>
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
@@ -62,61 +61,80 @@ include("head.inc");
<form action="services_rfc2136.php" method="post" name="iform" id="iform">
<?php if ($input_errors) print_input_errors($input_errors); ?>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr><td>
+ <tr>
+ <td>
<?php
$tab_array = array();
$tab_array[] = array(gettext("DynDns"), false, "services_dyndns.php");
$tab_array[] = array(gettext("RFC 2136"), true, "services_rfc2136.php");
display_top_tabs($tab_array);
?>
- </td></tr>
+ </td>
+ </tr>
<tr>
- <td>
- <div id="mainarea">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td width="5%" class="listhdrr"></td>
- <td width="25%" class="listhdrr"><?=gettext("Hostname");?></td>
- <td width="60%" class="listhdr"><?=gettext("Description");?></td>
- <td width="10%" class="list"></td>
- </tr>
- <?php $i = 0; foreach ($a_rfc2136 as $rfc2136): ?>
- <tr>
- <td class="listlr">
- <?php $iflist = get_configured_interface_with_descr();
- foreach ($iflist as $if => $ifdesc):
- if ($rfc2136['interface'] == $if): ?>
- <?=$ifdesc; break;?>
- <?php endif; endforeach; ?>
- </td>
- <td class="listr">
- <?=htmlspecialchars($rfc2136['host']);?>
- </td>
- <td class="listbg">
- <?=htmlspecialchars($rfc2136['descr']);?>&nbsp;
- </td>
- <td valign="middle" nowrap class="list"> <a href="services_rfc2136_edit.php?id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0"></a>
- &nbsp;<a href="services_rfc2136.php?act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this client?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0"></a></td>
- </tr>
- <?php $i++; endforeach; ?>
- <tr>
- <td class="list" colspan="3">&nbsp;</td>
- <td class="list"> <a href="services_rfc2136_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
- </tr>
- <tr>
- <td colspan="3" class="list"><p class="vexpl"><span class="red"><strong>
- <br>
- </strong></span>
-
- </td>
- <td class="list">&nbsp;</td>
- </tr>
- </table>
- </div>
+ <td>
+ <div id="mainarea">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td width="5%" class="listhdrr"></td>
+ <td width="25%" class="listhdrr"><?=gettext("Hostname");?></td>
+ <td width="60%" class="listhdr"><?=gettext("Description");?></td>
+ <td width="10%" class="list"></td>
+ </tr>
+ <?php $i = 0; foreach ($a_rfc2136 as $rfc2136): ?>
+ <tr>
+ <td class="listlr">
+ <?php
+ $iflist = get_configured_interface_with_descr();
+ foreach ($iflist as $if => $ifdesc) {
+ if ($rfc2136['interface'] == $if) {
+ if (!isset($rfc2136['enable']))
+ echo "<span class=\"gray\">{$ifdesc}</span>";
+ else
+ echo "{$ifdesc}";
+ break;
+ }
+ }
+ ?>
+ </td>
+ <td class="listr">
+ <?php
+ if (!isset($rfc2136['enable']))
+ echo "<span class=\"gray\">".htmlspecialchars($rfc2136['host'])."</span>";
+ else
+ echo htmlspecialchars($rfc2136['host']);
+ ?>
+ </td>
+ <td class="listbg">
+ <?php
+ if (!isset($rfc2136['enable']))
+ echo "<span class=\"gray\">".htmlspecialchars($rfc2136['descr'])."</span>";
+ else
+ echo htmlspecialchars($rfc2136['descr']);
+ ?>
+ </td>
+ <td valign="middle" nowrap class="list">
+ <a href="services_rfc2136_edit.php?id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0"></a>
+ &nbsp;<a href="services_rfc2136.php?act=del&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this client?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0"></a>
+ </td>
+ </tr>
+ <?php $i++; endforeach; ?>
+ <tr>
+ <td class="list" colspan="3">&nbsp;</td>
+ <td class="list"> <a href="services_rfc2136_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
+ </tr>
+ <tr>
+ <td colspan="3" class="list">
+ <p class="vexpl"><span class="red"><strong><br></strong></span></p>
+ </td>
+ <td class="list">&nbsp;</td>
+ </tr>
+ </table>
+ </div>
</td>
</tr>
</table>
</form>
<?php include("fend.inc"); ?>
</body>
-</html>
+</html> \ No newline at end of file
diff --git a/usr/local/www/services_router_advertisements.php b/usr/local/www/services_router_advertisements.php
index 6b8695e..3211986 100644
--- a/usr/local/www/services_router_advertisements.php
+++ b/usr/local/www/services_router_advertisements.php
@@ -63,10 +63,10 @@ if ($_POST['if'])
/* if OLSRD is enabled, allow WAN to house DHCP. */
if($config['installedpackages']['olsrd']) {
foreach($config['installedpackages']['olsrd']['config'] as $olsrd) {
- if($olsrd['enable']) {
- $is_olsr_enabled = true;
- break;
- }
+ if($olsrd['enable']) {
+ $is_olsr_enabled = true;
+ break;
+ }
}
}
@@ -88,7 +88,7 @@ if (!$if || !isset($iflist[$if])) {
}
}
-if (is_array($config['dhcpdv6'][$if])){
+if (is_array($config['dhcpdv6'][$if])) {
/* RA specific */
$pconfig['ramode'] = $config['dhcpdv6'][$if]['ramode'];
$pconfig['rapriority'] = $config['dhcpdv6'][$if]['rapriority'];
@@ -101,9 +101,8 @@ if (is_array($config['dhcpdv6'][$if])){
$pconfig['subnets'] = $config['dhcpdv6'][$if]['subnets']['item'];
}
-if (!is_array($pconfig['subnets'])) {
+if (!is_array($pconfig['subnets']))
$pconfig['subnets'] = array();
-}
$advertise_modes = array("disabled" => "Disabled",
"router" => "Router Only",
@@ -116,12 +115,11 @@ $priority_modes = array("low" => "Low",
$carplist = get_configured_carp_interface_list();
$subnets_help = gettext("Subnets are specified in CIDR format. " .
- "Select the CIDR mask that pertains to each entry. " .
- "/128 specifies a single IPv6 host; /64 specifies a normal IPv6 network; etc. " .
- "If no subnets are specified here, the Router Advertisement (RA) Daemon will advertise to the subnet to which the router's interface is assigned.");
+ "Select the CIDR mask that pertains to each entry. " .
+ "/128 specifies a single IPv6 host; /64 specifies a normal IPv6 network; etc. " .
+ "If no subnets are specified here, the Router Advertisement (RA) Daemon will advertise to the subnet to which the router's interface is assigned.");
if ($_POST) {
-
unset($input_errors);
$pconfig = $_POST;
@@ -131,22 +129,19 @@ if ($_POST) {
$pconfig['subnets'] = array();
for ($x = 0; $x < 5000; $x += 1) {
$address = trim($_POST['subnet_address' . $x]);
- $bits = trim($_POST['subnet_bits' . $x]);
- if ($address === "") {
+ if ($address === "")
continue;
- }
- if (is_ipaddrv6($address)) {
- if ($bits === "") {
- $pconfig['subnets'][] = $address . "/128";
- } else {
- $pconfig['subnets'][] = $address . "/" . $bits;
- }
- }
- else if (is_alias($address)) {
+
+ $bits = trim($_POST['subnet_bits' . $x]);
+ if ($bits === "")
+ $bits = "128";
+
+ if (is_alias($address)) {
$pconfig['subnets'][] = $address;
- }
- else {
- $input_errors[] = sprintf(gettext("An invalid subnet or alias was specified. [%s/%s]"), $address, $bits);
+ } else {
+ $pconfig['subnets'][] = $address . "/" . $bits;
+ if (!is_ipaddrv6($address))
+ $input_errors[] = sprintf(gettext("An invalid subnet or alias was specified. [%s/%s]"), $address, $bits);
}
}
@@ -169,7 +164,7 @@ if ($_POST) {
$config['dhcpdv6'][$if]['ramode'] = $_POST['ramode'];
$config['dhcpdv6'][$if]['rapriority'] = $_POST['rapriority'];
$config['dhcpdv6'][$if]['rainterface'] = $_POST['rainterface'];
-
+
$config['dhcpdv6'][$if]['radomainsearchlist'] = $_POST['radomainsearchlist'];
unset($config['dhcpdv6'][$if]['radnsserver']);
if ($_POST['radns1'])
@@ -359,11 +354,11 @@ display_top_tabs($tab_array);
</div>
</td>
</tr>
-
+
<tr>
<td colspan="2" class="list" height="12">&nbsp;</td>
</tr>
-
+
<tr>
<td colspan="2" valign="top" class="listtopic">DNS</td>
</tr>
diff --git a/usr/local/www/services_unbound.php b/usr/local/www/services_unbound.php
deleted file mode 100644
index 213c2b9..0000000
--- a/usr/local/www/services_unbound.php
+++ /dev/null
@@ -1,399 +0,0 @@
-<?php
-/* $Id$ */
-/*
- services_unbound.php
- part of the pfSense project (http://www.pfsense.com)
- Copyright (C) 2011 Warren Baker (warren@pfsense.org)
- All rights reserved.
-
- Copyright (C) 2003-2004 Bob Zoller <bob@kludgebox.com> and Manuel Kasper <mk@neon1.net>.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-*/
-/*
- pfSense_MODULE: dnscache
-*/
-
-##|+PRIV
-##|*IDENT=page-services-unbound
-##|*NAME=Services: DNS Resolver page
-##|*DESCR=Allow access to the 'Services: DNS Resolver' page.
-##|*MATCH=services_unbound.php*
-##|-PRIV
-
-require_once("guiconfig.inc");
-require_once("unbound.inc");
-
-$pconfig['enable'] = isset($config['unbound']['enable']);
-$pconfig['active_interface'] = $config['unbound']['active_interface'];
-$pconfig['outgoing_interface'] = $config['unbound']['outgoing_interface'];
-$pconfig['dnssec'] = isset($config['unbound']['dnssec']);
-$pconfig['dnssec'] = isset($config['unbound']['dnssec']);
-$pconfig['forwarding'] = isset($config['unbound']['forwarding']);
-$pconfig['regdhcp'] = isset($config['unbound']['regdhcp']);
-$pconfig['regdhcpstatic'] = isset($config['unbound']['regdhcpstatic']);
-$pconfig['dhcpfirst'] = isset($config['unbound']['dhcpfirst']);
-
-if(!is_array($config['unbound']))
- $config['unbound'] = array();
-$a_unboundcfg =& $config['unbound'];
-
-if (!is_array($config['unbound']['hosts']))
- $config['unbound']['hosts'] = array();
-$a_hosts =& $config['unbound']['hosts'];
-
-if (!is_array($config['unbound']['domainoverrides']))
- $config['unbound']['domainoverrides'] = array();
-$a_domainOverrides = &$config['unbound']['domainoverrides'];
-
-if ($_POST) {
-
- unset($input_errors);
-
- if($_POST['enable'] == "yes" && isset($config['dnsmasq']['enable']))
- $input_errors[] = "The system dns-forwarder is still active. Disable it before enabling the DNS Resolver.";
-
- if(empty($_POST['active_interface']))
- $input_errors[] = "A single network interface needs to be selected for the DNS Resolver to bind to.";
-
- if (!$input_errors) {
- $a_unboundcfg['enable'] = ($_POST['enable']) ? true : false;
- $a_unboundcfg['dnssec'] = ($_POST['dnssec']) ? true : false;
- $a_unboundcfg['forwarding'] = ($_POST['forwarding']) ? true : false;
- $a_unboundcfg['regdhcp'] = ($_POST['regdhcp']) ? true : false;
- $a_unboundcfg['regdhcpstatic'] = ($_POST['regdhcpstatic']) ? true : false;
- $a_unboundcfg['dhcpfirst'] = ($_POST['dhcpfirst']) ? true : false;
- if (is_array($_POST['active_interface']))
- $a_unboundcfg['active_interface'] = implode(",", $_POST['active_interface']);
- else
- $a_unboundcfg['active_interface'] = $_POST['active_interface'];
- if (is_array($_POST['outgoing_interface']))
- $a_unboundcfg['outgoing_interface'] = implode(",", $_POST['outgoing_interface']);
- else
- $a_unboundcfg['outgoing_interface'] = $_POST['outgoing_interface'];
-
- write_config("DNS Resolver configured.");
- $retval = 0;
- $retval = services_unbound_configure();
- $savemsg = get_std_save_message($retval);
- }
-}
-
-$pgtitle = array(gettext("Services"),gettext("DNS Resolver"));
-include_once("head.inc");
-
-?>
-
-<script language="JavaScript">
-<!--
-function enable_change(enable_over) {
- var endis;
- endis = !(document.iform.enable.checked || enable_over);
- document.iform.active_interface.disabled = endis;
- document.iform.outgoing_interface.disabled = endis;
- document.iform.dnssec.disabled = endis;
- document.iform.forwarding.disabled = endis;
- document.iform.regdhcp.disabled = endis;
- document.iform.regdhcpstatic.disabled = endis;
- document.iform.dhcpfirst.disabled = endis;
-}
-//-->
-</script>
-
-<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
-<?php include("fbegin.inc"); ?>
-<form action="services_unbound.php" method="post" name="iform" id="iform">
-<?php if ($input_errors) print_input_errors($input_errors); ?>
-<?php if ($savemsg) print_info_box($savemsg); ?>
-<?php if (is_subsystem_dirty('hosts')): ?><p>
-<?php print_info_box_np(gettext("The configuration for the DNS Resolver, has been changed") . ".<br>" . gettext("You must apply the changes in order for them to take effect."));?><br>
-<?php endif; ?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td class="tabnavtbl">
- <?php
- $tab_array = array();
- $tab_array[] = array(gettext("General settings"), true, "services_unbound.php");
- $tab_array[] = array(gettext("Advanced settings"), false, "services_unbound_advanced.php");
- $tab_array[] = array(gettext("Access Lists"), false, "/services_unbound_acls.php");
- display_top_tabs($tab_array, true);
- ?>
- </td>
- </tr>
- <tr>
- <td class="tabcont">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
- <tr>
- <td colspan="2" valign="top" class="listtopic"><?=gettext("General DNS Resolver Options");?></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Enable");?></td>
- <td width="78%" class="vtable"><p>
- <input name="enable" type="checkbox" id="enable" value="yes" <?php if ($pconfig['enable'] === true) echo "checked";?> onClick="enable_change(false)">
- <strong><?=gettext("Enable DNS Resolver");?><br>
- </strong></p></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Network interfaces");?></td>
- <td width="78%" class="vtable">
- <select name="active_interface[]" id="active_interface" multiple="true" size="3">
- <?php $iflist = get_configured_interface_with_descr();
- $active_iface = explode(",", $pconfig['active_interface']);
- $iflist['localhost'] = "Localhost";
- foreach ($iflist as $iface => $ifdescr) {
- echo "<option value='{$iface}' ";
- if (in_array($iface, $active_iface))
- echo "selected";
- echo ">{$ifdescr}</option>\n";
- }
- ?>
- </select>
- <br/><span class="vexpl">
- <?=gettext("The DNS Resolver Server will listen on the selected interfaces. To add an interface click inside the interface box and select the interface from the drop down.");?> <br/>
- </span>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Outgoing interfaces");?></td>
- <td width="78%" class="vtable">
- <select name="outgoing_interface[]" id="outgoing_interface" multiple="true" size="3">
- <?php $iflist = get_configured_interface_with_descr();
- $outgoing_iface = explode(",", $pconfig['outgoing_interface']);
- $iflist['localhost'] = "Localhost";
- foreach ($iflist as $iface => $ifdescr) {
- echo "<option value='{$iface}' ";
- if (in_array($iface, $outgoing_iface))
- echo "selected";
- echo ">{$ifdescr}</option>\n";
- }
- ?>
- </select>
- <br/><span class="vexpl">
- <?=gettext("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.");?> <br/>
- </span>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("DNSSEC");?></td>
- <td width="78%" class="vtable"><p>
- <input name="dnssec" type="checkbox" id="dnssec" value="yes" <?php if ($pconfig['dnssec'] === true) echo "checked";?>/>
- <strong><?=gettext("Enable DNSSEC Support");?><br>
- </strong></p></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Forwarding");?></td>
- <td width="78%" class="vtable"><p>
- <input name="forwarding" type="checkbox" id="forwarding" value="yes" <?php if ($pconfig['forwarding'] === true) echo "checked";?>/>
- <strong><?=gettext("Enable Forwarding Mode");?><br>
- </strong></p></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("DHCP Registration");?></td>
- <td width="78%" class="vtable"><p>
- <input name="regdhcp" type="checkbox" id="regdhcp" value="yes" <?php if ($pconfig['regdhcp'] === true) echo "checked";?>>
- <strong><?=gettext("Register DHCP leases in the DNS Resolver");?><br>
- </strong><?php printf(gettext("If this option is set, then machines that specify".
- " their hostname when requesting a DHCP lease will be registered".
- " in the DNS Resolver, so that their name can be resolved.".
- " You should also set the domain in %sSystem:".
- " General setup%s to the proper value."),'<a href="system.php">','</a>')?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Static DHCP");?></td>
- <td width="78%" class="vtable"><p>
- <input name="regdhcpstatic" type="checkbox" id="regdhcpstatic" value="yes" <?php if ($pconfig['regdhcpstatic'] === true) echo "checked";?>>
- <strong><?=gettext("Register DHCP static mappings in the DNS Resolver");?><br>
- </strong><?php printf(gettext("If this option is set, then DHCP static mappings will ".
- "be registered in the DNS Resolver, so that their name can be ".
- "resolved. You should also set the domain in %s".
- "System: General setup%s to the proper value."),'<a href="system.php">','</a>');?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Prefer DHCP");?></td>
- <td width="78%" class="vtable"><p>
- <input name="dhcpfirst" type="checkbox" id="dhcpfirst" value="yes" <?php if ($pconfig['dhcpfirst'] === true) echo "checked";?>>
- <strong><?=gettext("Resolve DHCP mappings first");?><br>
- </strong><?php printf(gettext("If this option is set, then DHCP mappings will ".
- "be resolved before the manual list of names below. This only ".
- "affects the name given for a reverse lookup (PTR)."));?></p>
- </td>
- </tr>
- <tr>
- <td colspan="2">
- <input name="submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>" onclick="enable_change(true)"/>
- </td>
- </tr>
- </table>
- </td>
- </tr>
-</table>
-
-<p><span class="vexpl"><span class="red"><strong><?=gettext("Note:");?><br>
-</strong></span><?php printf(gettext("If the DNS Resolver is enabled, the DHCP".
-" service (if enabled) will automatically serve the LAN IP".
-" address as a DNS server to DHCP clients so they will use".
-" the DNS Resolver. If Forwarding, is enabled, the DNS Resolver will use the DNS servers".
-" entered in %sSystem: General setup%s".
-" or those obtained via DHCP or PPP on WAN if the &quot;Allow".
-" DNS server list to be overridden by DHCP/PPP on WAN&quot;".
-" is checked."),'<a href="system.php">','</a>');?><br>
-</span></p>
-
-&nbsp;<br>
-<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tabcont">
-<tr>
- <td colspan="5" valign="top" class="listtopic"><?=gettext("Host Overrides");?></td>
-</tr>
-<tr>
- <td><br/>
- <?=gettext("Entries in this section override individual results from the forwarders.");?>
- <?=gettext("Use these for changing DNS results or for adding custom DNS records.");?>
- </td>
-</tr>
-</table>
-<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tabcont sortable">
- <thead>
- <tr>
- <td width="20%" class="listhdrr"><?=gettext("Host");?></td>
- <td width="25%" class="listhdrr"><?=gettext("Domain");?></td>
- <td width="20%" class="listhdrr"><?=gettext("IP");?></td>
- <td width="25%" class="listhdr"><?=gettext("Description");?></td>
- <td width="10%" class="list">
- <table border="0" cellspacing="0" cellpadding="1">
- <tr>
- <td width="17"></td>
- <td valign="middle"><a href="services_unbound_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
- </tr>
- </table>
- </td>
- </tr>
- </thead>
- <tbody>
- <?php $i = 0; foreach ($a_hosts as $hostent): ?>
- <tr>
- <td class="listlr" ondblclick="document.location='services_unbound_edit.php?id=<?=$i;?>';">
- <?=strtolower($hostent['host']);?>&nbsp;
- </td>
- <td class="listr" ondblclick="document.location='services_unbound_edit.php?id=<?=$i;?>';">
- <?=strtolower($hostent['domain']);?>&nbsp;
- </td>
- <td class="listr" ondblclick="document.location='services_unbound_edit.php?id=<?=$i;?>';">
- <?=$hostent['ip'];?>&nbsp;
- </td>
- <td class="listbg" ondblclick="document.location='services_unbound_edit.php?id=<?=$i;?>';">
- <?=htmlspecialchars($hostent['descr']);?>&nbsp;
- </td>
- <td valign="middle" nowrap class="list">
- <table border="0" cellspacing="0" cellpadding="1">
- <tr>
- <td valign="middle"><a href="services_unbound_edit.php?id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0"></a></td>
- <td><a href="services_unbound.php?type=host&act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this host?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0"></a></td>
- </tr>
- </table>
- </tr>
- <?php $i++; endforeach; ?>
- </tbody>
- <tfoot>
- <tr>
- <td class="list" colspan="4"></td>
- <td class="list">
- <table border="0" cellspacing="0" cellpadding="1">
- <tr>
- <td width="17"></td>
- <td valign="middle"><a href="services_unbound_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
- </tr>
- </table>
- </td>
- </tr>
- </tfoot>
-</table>
-<br/>
-<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tabcont">
-<tr>
- <td colspan="5" valign="top" class="listtopic"><?=gettext("Domain Overrides");?></td>
-</tr>
-<tr>
- <tr>
- <td><p><?=gettext("Entries in this area override an entire domain by specifying an".
- " authoritative DNS server to be queried for that domain.");?></p></td>
- </tr>
-</tr>
-</table>
-<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tabcont sortable">
- <thead>
- <tr>
- <td width="35%" class="listhdrr"><?=gettext("Domain");?></td>
- <td width="20%" class="listhdrr"><?=gettext("IP");?></td>
- <td width="35%" class="listhdr"><?=gettext("Description");?></td>
- <td width="10%" class="list">
- <table border="0" cellspacing="0" cellpadding="1">
- <tr>
- <td width="17" heigth="17"></td>
- <td><a href="services_unbound_domainoverride_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
- </tr>
- </table>
- </td>
- </tr>
- </thead>
- <tbody>
- <?php $i = 0; foreach ($a_domainOverrides as $doment): ?>
- <tr>
- <td class="listlr">
- <?=strtolower($doment['domain']);?>&nbsp;
- </td>
- <td class="listr">
- <?=$doment['ip'];?>&nbsp;
- </td>
- <td class="listbg">
- <?=htmlspecialchars($doment['descr']);?>&nbsp;
- </td>
- <td valign="middle" nowrap class="list"> <a href="services_unbound_domainoverride_edit.php?id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0"></a>
- &nbsp;<a href="services_unbound.php?act=del&type=doverride&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this domain override?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0"></a></td>
- </tr>
- <?php $i++; endforeach; ?>
- </tbody>
- <tfoot>
- <tr>
- <td class="list" colspan="3"></td>
- <td class="list">
- <table border="0" cellspacing="0" cellpadding="1">
- <tr>
- <td width="17" heigth="17"></td>
- <td><a href="services_unbound_domainoverride_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
- </tr>
- </table>
- </td>
- </tr>
- </tfoot>
-</table>
-</form>
-<script language="JavaScript">
-<!--
-enable_change(false);
-//-->
-</script>
-<?php include("fend.inc"); ?>
-</body>
-</html> \ No newline at end of file
diff --git a/usr/local/www/services_unbound_acls.php b/usr/local/www/services_unbound_acls.php
deleted file mode 100644
index 85ed71b..0000000
--- a/usr/local/www/services_unbound_acls.php
+++ /dev/null
@@ -1,377 +0,0 @@
-<?php
-/* $Id$ */
-/*
- services_unbound_acls.php
- part of pfSense (http://www.pfsense.com/)
-
- Copyright (C) 2011 Warren Baker <warren@decoy.co.za>
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-*/
-
-require("guiconfig.inc");
-require("unbound.inc");
-
-if (!is_array($config['unbound']['acls']))
- $config['unbound']['acls'] = array();
-
-$a_acls = &$config['unbound']['acls'];
-
-$id = $_GET['id'];
-if (isset($_POST['aclid']))
- $id = $_POST['aclid'];
-
-$act = $_GET['act'];
-if (isset($_POST['act']))
- $act = $_POST['act'];
-
-if ($act == "del") {
- if (!$a_acls[$id]) {
- pfSenseHeader("services_unbound_acls.php");
- exit;
- }
-
- unset($a_acls[$id]);
- write_config();
- unbound_reconfigure();
- $savemsg = gettext("Access List successfully deleted")."<br/>";
-}
-
-if ($act == "new") {
- $id = unbound_get_next_id();
-}
-
-if ($act == "edit") {
- if (isset($id) && $a_acls[$id]) {
- $pconfig = $a_acls[$id];
- $networkacl = $a_acls[$id]['row'];
- }
-}
-
-if ($_POST) {
-
- unset($input_errors);
- $pconfig = $_POST;
-
- /* input validation - only allow 50 entries in a single ACL*/
- for($x=0; $x<50; $x++) {
- if(isset($pconfig["acl_network{$x}"])) {
- $networkacl[$x] = array();
- $networkacl[$x]['acl_network'] = $pconfig["acl_network{$x}"];
- $networkacl[$x]['mask'] = $pconfig["mask{$x}"];
- $networkacl[$x]['description'] = $pconfig["description{$x}"];
- if (!is_ipaddr($networkacl[$x]['acl_network']))
- $input_errors[] = gettext("You must enter a valid network IP address for {$networkacl[$x]['acl_network']}.");
-
- if (is_ipaddr($networkacl[$x]['acl_network'])) {
- if (!is_subnet($networkacl[$x]['acl_network']."/".$networkacl[$x]['mask']))
- $input_errors[] = gettext("You must enter a valid IPv4 netmask for {$networkacl[$x]['acl_network']}/{$networkacl[$x]['mask']}.");
- } else if (function_exists("is_ipaddrv6")) {
- if (!is_ipaddrv6($networkacl[$x]['acl_network']))
- $input_errors[] = gettext("You must enter a valid IPv6 address for {$networkacl[$x]['acl_network']}.");
- else if (!is_subnetv6($networkacl[$x]['acl_network']."/".$networkacl[$x]['mask']))
- $input_errors[] = gettext("You must enter a valid IPv6 netmask for {$networkacl[$x]['acl_network']}/{$networkacl[$x]['mask']}.");
- } else
- $input_errors[] = gettext("You must enter a valid IPv4 address for {$networkacl[$x]['acl_network']}.");
- }
- }
-
- if (!$input_errors) {
-
- if ($pconfig['Submit'] == gettext("Save")) {
- if(!$a_acls[$id])
- $a_acls[$id]['aclid'] = $id;
-
- if (isset($id) && $a_acls[$id]) {
- $a_acls[$id]['aclid'] = $pconfig['aclid'];
- $a_acls[$id]['aclname'] = $pconfig['aclname'];
- $a_acls[$id]['aclaction'] = $pconfig['aclaction'];
- $a_acls[$id]['description'] = $pconfig['description'];
- $a_acls[$id]['row'] = array();
- foreach ($networkacl as $acl)
- $a_acls[$id]['row'][] = $acl;
- write_config();
- mark_subsystem_dirty("unbound");
- //unbound_reconfigure();
- }
- pfSenseHeader("/services_unbound_acls.php");
- exit;
- }
-
- if ($pconfig['apply']) {
- clear_subsystem_dirty("unbound");
- $retval = 0;
- $retval = unbound_reconfigure();
- $savemsg = get_std_save_message($retval);
- }
- }
-}
-
-
-$pgtitle = "Services: DNS Resolver: Access Lists";
-include("head.inc");
-
-?>
-
-<script type="text/javascript" src="/javascript/row_helper.js">
-</script>
-
-<script type="text/javascript">
- function mask_field(fieldname, fieldsize, n) {
- return '<select name="' + fieldname + n + '" class="formselect" id="' + fieldname + n + '"><?php
- for ($i = 128; $i >= 0; $i--) {
- echo "<option value=\"$i\">$i</option>";
- }
- ?></select>';
- }
-
- rowtype[0] = "textbox";
- rowname[0] = "acl_network";
- rowsize[0] = "30";
- rowname[1] = "mask";
- rowtype[1] = mask_field;
- rowtype[2] = "textbox";
- rowname[2] = "description";
- rowsize[2] = "40";
-</script>
-
-<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
-
-<?php include("fbegin.inc"); ?>
-<form action="services_unbound_acls.php" method="post" name="iform" id="iform">
-<?php
-if (!$savemsg)
- $savemsg = "";
-
-if ($input_errors)
- print_input_errors($input_errors);
-
-if ($savemsg)
- print_info_box($savemsg);
-
-if (is_subsystem_dirty("unbound"))
- print_info_box_np(gettext("The settings for the DNS Resolver have changed. You must apply the configuration to take affect."));
-?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td class="tabnavtbl">
- <ul id="tabnav">
- <?php
- $tab_array = array();
- $tab_array[] = array(gettext("General Settings"), false, "/services_unbound.php");
- $tab_array[] = array(gettext("Advanced settings"), false, "services_unbound_advanced.php");
- $tab_array[] = array(gettext("Access Lists"), true, "/services_unbound_acls.php");
- display_top_tabs($tab_array, true);
- ?>
- </ul>
- </td>
- </tr>
- <tr>
- <td class="tabcont">
-
- <?php if($act=="new" || $act=="edit"): ?>
-
-
- <input name="aclid" type="hidden" value="<?=$id;?>">
- <input name="act" type="hidden" value="<?=$act;?>">
-
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
- <tr>
- <td colspan="2" valign="top" class="listtopic"><?=ucwords(sprintf(gettext("%s Access List"),$act));?></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Access List name");?></td>
- <td width="78%" class="vtable">
- <input name="aclname" type="text" class="formfld" id="aclname" size="30" maxlength="30" value="<?=htmlspecialchars($pconfig['aclname']);?>">
- <br />
- <span class="vexpl"><?=gettext("Provide an Access List name.");?></span>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Action");?></td>
- <td width="78%" class="vtable">
- <select name="aclaction" class="formselect">
- <?php $types = explode(",", "Allow,Deny,Refuse,Allow Snoop"); foreach ($types as $type): ?>
- <option value="<?=strtolower($type);?>" <?php if (strtolower($type) == strtolower($pconfig['aclaction'])) echo "selected"; ?>>
- <?=htmlspecialchars($type);?>
- </option>
- <?php endforeach; ?>
- </select>
- <br/>
- <span class="vexpl">
- <?=gettext("Choose what to do with DNS requests that match the criteria specified below.");?> <br/>
- <?=gettext("<b>Deny:</b> This action stops queries from hosts within the netblock defined below.");?> <br/>
- <?=gettext("<b>Refuse:</b> This action also stops queries from hosts within the netblock defined below, but sends a DNS rcode REFUSED error message back to the client.");?> <br/>
- <?=gettext("<b>Allow:</b> This action allows queries from hosts within the netblock defined below.");?> <br/>
- <?=gettext("<b>Allow Snoop:</b> This action allows recursive and nonrecursive access from hosts within the netblock defined below. Used for cache snooping and ideally should only be configured for your administrative host.");?> <br/>
- </span>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Networks");?></td>
- <td width="78%" class="vtable">
- <table id="maintable">
- <tbody>
- <tr>
- <td><div id="onecolumn"><?=gettext("Network");?></div></td>
- <td><div id="twocolumn"><?=gettext("CIDR");?></div></td>
- <td><div id="threecolumn"><?=gettext("Description");?></div></td>
- </tr>
- <?php $counter = 0; ?>
- <?php
- if($networkacl)
- foreach($networkacl as $item):
- ?>
- <?php
- $network = $item['acl_network'];
- $cidr = $item['mask'];
- $description = $item['description'];
- ?>
- <tr>
- <td>
- <input autocomplete="off" name="acl_network<?=$counter;?>" type="text" class="formfld unknown" id="acl_network<?=$counter;?>" size="40" value="<?=htmlspecialchars($network);?>" />
- </td>
- <td>
- <select name="mask<?=$counter;?>" class="formselect" id="mask<?=$counter;?>">
- <?php
- for ($i = 128; $i > 0; $i--) {
- echo "<option value=\"$i\" ";
- if ($i == $cidr) echo "selected";
- echo ">" . $i . "</option>";
- }
- ?>
- </select>
- </td>
- <td>
- <input autocomplete="off" name="description<?=$counter;?>" type="text" class="listbg" id="description<?=$counter;?>" size="40" value="<?=htmlspecialchars($description);?>" />
- </td>
- <td>
- <a onclick="removeRow(this); return false;" href="#"><img border="0" src="/themes/<?=$g['theme'];?>/images/icons/icon_x.gif" /></a>
- </td>
- </tr>
- <?php $counter++; ?>
- <?php endforeach; ?>
- </tbody>
- <tfoot>
- </tfoot>
- </table>
- <a onclick="javascript:addRowTo('maintable', 'formfldalias'); return false;" href="#">
- <img border="0" src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" alt="" title="<?=gettext("add another entry");?>" />
- </a>
- <script type="text/javascript">
- field_counter_js = 3;
- rows = 1;
- totalrows = <?php echo $counter; ?>;
- loaded = <?php echo $counter; ?>;
- </script>
-
- </td>
- </tr>
-
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Description");?></td>
- <td width="78%" class="vtable">
- <input name="description" type="text" class="formfld unknown" id="description" size="52" maxlength="52" value="<?=htmlspecialchars($pconfig['description']);?>">
- <br />
- <span class="vexpl"><?=gettext("You may enter a description here for your reference.");?></span>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- </tr>
- <tr>
- <td width="22%" valign="top">&nbsp;</td>
- <td width="78%">
- &nbsp;<br>&nbsp;
- <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>"> <input type="button" class="formbtn" value="<?=gettext("Cancel"); ?>" onclick="history.back()">
- </td>
- </tr>
- </table>
- </form>
-
- <?php else: ?>
-
- <table class="sortable" width="100%" border="0" cellpadding="0" cellspacing="0">
- <thead>
- <tr>
- <td width="25%" class="listhdrr"><?=gettext("Access List Name"); ?></td>
- <td width="25%" class="listhdrr"><?=gettext("Action"); ?></td>
- <td width="40%" class="listhdrr"><?=gettext("Description"); ?></td>
- <td width="10%" class="list"></td>
- </tr>
- </thead>
- <tbody>
- <?php
- $i = 0;
- foreach($a_acls as $acl):
- ?>
- <tr ondblclick="document.location='services_unbound_acls.php?act=edit&id=<?=$i;?>'">
- <td class="listlr">
- <?=$acl['aclname'];?>
- </td>
- <td class="listr">
- <?=htmlspecialchars($acl['aclaction']);?>
- </td>
- <td class="listbg">
- <?=htmlspecialchars($acl['description']);?>
- </td>
- <td valign="middle" nowrap class="list">
- <a href="services_unbound_acls.php?act=edit&id=<?=$i;?>">
- <img src="./themes/<?=$g['theme'];?>/images/icons/icon_e.gif" title="<?=gettext("edit access list"); ?>" width="17" height="17" border="0">
- </a>
- &nbsp;
- <a href="services_unbound_acls.php?act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this access list?"); ?>')">
- <img src="/themes/<?=$g['theme'];?>/images/icons/icon_x.gif" title="<?=gettext("delete access list"); ?>" width="17" height="17" border="0">
- </a>
- </td>
- </tr>
- <?php
- $i++;
- endforeach;
- ?>
- </tbody>
- <tfoot>
- <tr>
- <td class="list" colspan="4"></td>
- <td class="list">
- <a href="services_unbound_acls.php?act=new"><img src="./themes/<?=$g['theme'];?>/images/icons/icon_plus.gif" title="<?=gettext("Add new Access List"); ?>" width="17" height="17" border="0">
- </a>
- </td>
- </tr>
- <tr>
- <td colspan="4">
- <p>
- <?=gettext("Access Lists to control access to the DNS Resolver can be defined here.");?>
- </p>
- </td>
- </tr>
- </tfoot>
- </table>
-
- <?php endif; ?>
-
- </td>
- </tr>
-</table>
-</body>
-<?php include("fend.inc"); ?> \ No newline at end of file
diff --git a/usr/local/www/services_unbound_advanced.php b/usr/local/www/services_unbound_advanced.php
deleted file mode 100644
index 8341930..0000000
--- a/usr/local/www/services_unbound_advanced.php
+++ /dev/null
@@ -1,354 +0,0 @@
-<?php
-/* $Id$ */
-/*
- services_unbound_advanced.php
- part of the pfSense project (http://www.pfsense.com)
- Copyright (C) 2011 Warren Baker (warren@pfsense.org)
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-*/
-/*
- pfSense_MODULE: dnscache
-*/
-
-##|+PRIV
-##|*IDENT=page-services-unbound
-##|*NAME=Services: DNS Resolver Advanced page
-##|*DESCR=Allow access to the 'Services: DNS Resolver Advanced' page.
-##|*MATCH=services_unbound.php*
-##|-PRIV
-
-require_once("guiconfig.inc");
-require_once("unbound.inc");
-
-if(!is_array($config['unbound']))
- $config['unbound'] = array();
-$a_unboundcfg =& $config['unbound'];
-
-$pconfig['hideidentity'] = isset($config['unbound']['hideidentity']);
-$pconfig['hideversion'] = isset($config['unbound']['hideversion']);
-$pconfig['prefetch'] = isset($config['unbound']['prefetch']);
-$pconfig['prefetchkey'] = isset($config['unbound']['prefetchkey']);
-$pconfig['hardenglue'] = isset($config['unbound']['hardenglue']);
-$pconfig['dnssecstripped'] = isset($config['unbound']['dnssecstripped']);
-$pconfig['msgcachesize'] = $config['unbound']['msgcachesize'];
-$pconfig['outgoing_num_tcp'] = $config['unbound']['outgoing_num_tcp'];
-$pconfig['incoming_num_tcp'] = $config['unbound']['incoming_num_tcp'];
-$pconfig['edns_buffer_size'] = $config['unbound']['edns_buffer_size'];
-$pconfig['num_queries_per_thread'] = $config['unbound']['num_queries_per_thread'];
-$pconfig['jostle_timeout'] = $config['unbound']['jostle_timeout'];
-$pconfig['cache_max_ttl'] = $config['unbound']['cache_max_ttl'];
-$pconfig['cache_min_ttl'] = $config['unbound']['cache_min_ttl'];
-$pconfig['infra_host_ttl'] = $config['unbound']['infra_host_ttl'];
-$pconfig['infra_lame_ttl'] = $config['unbound']['infra_lame_ttl'];
-$pconfig['infra_cache_numhosts'] = $config['unbound']['infra_cache_numhosts'];
-$pconfig['unwanted_reply_threshold'] = $config['unbound']['unwanted_reply_threshold'];
-$pconfig['log_verbosity'] = $config['unbound']['log_verbosity'];
-
-if ($_POST) {
-
- unset($input_errors);
-
- if (!$input_errors) {
- $a_unboundcfg['hideidentity'] = ($_POST['hideidentity']) ? true : false;
- $a_unboundcfg['hideversion'] = ($_POST['hideversion']) ? true : false;
- $a_unboundcfg['prefetch'] = ($_POST['prefetch']) ? true : false;
- $a_unboundcfg['prefetchkey'] = ($_POST['prefetchkey']) ? true : false;
- $a_unboundcfg['hardenglue'] = ($_POST['hardenglue']) ? true : false;
- $a_unboundcfg['dnssecstripped'] = ($_POST['dnssecstripped']) ? true : false;
- $a_unboundcfg['custom_options'] = str_replace("\r\n", "\n", $_POST['custom_options']);
- write_config("DNS Resolver configured.");
-
- $retval = 0;
- $retval = services_unbound_configure();
- $savemsg = get_std_save_message($retval);
- }
-}
-
-$pgtitle = array(gettext("Services"),gettext("DNS Resolver"),gettext("Advanced"));
-include_once("head.inc");
-
-?>
-
-<script language="JavaScript">
-<!--
-function enable_change(enable_over) {
- var endis;
- endis = !(document.iform.enable.checked || enable_over);
- document.iform.regdhcp.disabled = endis;
- document.iform.regdhcpstatic.disabled = endis;
- document.iform.dhcpfirst.disabled = endis;
-}
-function show_advanced_dns() {
- document.getElementById("showadvbox").innerHTML='';
- aodiv = document.getElementById('showadv');
- aodiv.style.display = "block";
-}
-//-->
-</script>
-
-<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
-<?php include("fbegin.inc"); ?>
-<form action="services_unbound_advanced.php" method="post" name="iform" id="iform">
-<?php if ($input_errors) print_input_errors($input_errors); ?>
-<?php if ($savemsg) print_info_box($savemsg); ?>
-<?php if (is_subsystem_dirty('hosts')): ?><p>
-<?php print_info_box_np(gettext("The configuration of the DNS Resolver, has been changed") . ".<br>" . gettext("You must apply the changes in order for them to take effect."));?><br>
-<?php endif; ?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td class="tabnavtbl">
-<?php
- $tab_array = array();
- $tab_array[] = array(gettext("General settings"), false, "services_unbound.php");
- $tab_array[] = array(gettext("Advanced settings"), true, "services_unbound_advanced.php");
- $tab_array[] = array(gettext("Access Lists"), false, "/services_unbound_acls.php");
- display_top_tabs($tab_array, true);
-?>
- </td>
- </tr>
- <tr>
- <td class="tabcont">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
- <tr>
- <td colspan="2" valign="top" class="listtopic"><?=gettext("Advanced Resolver Options");?></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Hide Identity");?></td>
- <td width="78%" class="vtable">
- <p><input name="hideidentity" type="checkbox" id="hideidentity" value="yes" <?php if ($pconfig['hideidentity'] === true) echo "checked";?> onClick="enable_change(false)"><br/>
- <?=gettext("If enabled, id.server and hostname.bind queries are refused.");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Hide Version");?></td>
- <td width="78%" class="vtable">
- <p><input name="enable" type="checkbox" id="hideversion" value="yes" <?php if ($pconfig['hideversion'] == "yes") echo "checked";?> onClick="enable_change(false)"><br/>
- <?=gettext("If enabled, version.server and version.bind queries are refused.");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Prefetch Support");?></td>
- <td width="78%" class="vtable">
- <p><input name="enable" type="checkbox" id="prefetch" value="yes" <?php if ($pconfig['prefetch'] == "yes") echo "checked";?> onClick="enable_change(false)"><br/>
- <?=gettext("Message cache elements are prefetched before they expire to help keep the cache up to date. When enabled, this option can cause an increase of around 10% more DNS traffic and load on the server, but frequently requested items will not expire from the cache.");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Prefetch DNS Key Support");?></td>
- <td width="78%" class="vtable">
- <p><input name="enable" type="checkbox" id="prefetchkey" value="yes" <?php if ($pconfig['prefetchkey'] == "yes") echo "checked";?> onClick="enable_change(false)"><br/>
- <?=sprintf(gettext("DNSKEY's are fetched earlier in the validation process when a %sDelegation signer%s is encountered. This helps lower the latency of requests but does utilize a little more CPU."), "<a href='http://en.wikipedia.org/wiki/List_of_DNS_record_types'>", "</a>");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Harden Glue");?></td>
- <td width="78%" class="vtable">
- <p><input name="enable" type="checkbox" id="hardenglue" value="yes" <?php if ($pconfig['hardenglue'] == "yes") echo "checked";?> onClick="enable_change(false)"><br/>
- <?=gettext("Only trust glue if it is within the servers authority.");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Harden DNSSEC data");?></td>
- <td width="78%" class="vtable">
- <p><input name="enable" type="checkbox" id="dnssecstripped" value="yes" <?php if ($pconfig['dnssecstripped'] == "yes") echo "checked";?> onClick="enable_change(false)"><br/>
- <?=gettext("DNSSEC data is required for trust-anchored zones. If such data is absent, the zone becomes bogus. If this is disabled and no DNSSEC data is received, then the zone is made insecure.");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Message Cache Size");?></td>
- <td width="78%" class="vtable"><p>
- <select id="msgcachesize" name="msgcachesize">
- <option value="4">4MB</option>
- <option value="10">10MB</option>
- <option value="20">20MB</option>
- <option value="50">50MB</option>
- <option value="100">100MB</option>
- <option value="250">250MB</option>
- <option value="512">512MB</option>
- </select><br/>
- <?=gettext("Size of the message cache. The message cache stores DNS rcodes and validation statuses. The RRSet cache will automatically be set to twice this amount. The RRSet cache contains the actual RR data. The default is 4 megabytes.");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Outgoing TCP Buffers");?></td>
- <td width="78%" class="vtable"><p>
- <select id="outgoing_num_tcp" name="outgoing_num_tcp">
- <option value="0">0</option>
- <option value="10">10</option>
- <option value="20">20</option>
- <option value="30">30</option>
- <option value="40">40</option>
- <option value="50">50</option>
- </select><br/>
- <?=gettext("The number of outgoing TCP buffers to allocate per thread. The default value is 10. If 0 is selected then no TCP queries, to authoritative servers, are done.");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Incoming TCP Buffers");?></td>
- <td width="78%" class="vtable"><p>
- <select id="incoming_num_tcp" name="incoming_num_tcp">
- <option value="0">0</option>
- <option value="10">10</option>
- <option value="20">20</option>
- <option value="30">30</option>
- <option value="40">40</option>
- <option value="50">50</option>
- </select><br/>
- <?=gettext("The number of incoming TCP buffers to allocate per thread. The default value is 10. If 0 is selected then no TCP queries, from clients, are accepted.");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("EDNS Buffer Size");?></td>
- <td width="78%" class="vtable"><p>
- <select id="edns_buffer_size" name="edns_buffer_size">
- <option value="512">512</option>
- <option value="1480">1480</option>
- <option value="4096">4096</option>
- </select><br/>
- <?=gettext("Number of bytes size to advertise as the EDNS reassembly buffer size. This is the value that is used in UDP datagrams sent to peers. RFC recommendation is 4096 (which is the default). If you have fragmentation reassemble problems, usually seen as timeouts, then a value of 1480 should help. The 512 value bypasses most MTU path problems, but it can generate an excessive amount of TCP fallback.");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Number of queries per thread");?></td>
- <td width="78%" class="vtable"><p>
- <select id="num_queries_per_thread" name="num_queries_per_thread">
- <option value="512">512</option>
- <option value="1024">1024</option>
- <option value="2048">2048</option>
- </select><br/>
- <?=gettext("The number of queries that every thread will service simultaneously. If more queries arrive that need to be serviced, and no queries can be jostled, then these queries are dropped.");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Jostle Timeout");?></td>
- <td width="78%" class="vtable"><p>
- <select id="jostle_timeout" name="jostle_timeout">
- <option value="100">100</option>
- <option value="200">200</option>
- <option value="500">500</option>
- <option value="1000">1000</option>
- </select><br/>
- <?=gettext("This timeout is used for when the server is very busy. This protects against denial of service by slow queries or high query rates. The default value is 200 milliseconds.");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Maximum TTL for RRsets and messages");?></td>
- <td width="78%" class="vtable"><p>
- <input type="text" id="cache_max_ttl" name="cache_max_ttl" size=5><br/>
- <?=gettext("Configure a maximum Time to live for RRsets and messages in the cache. The default is 86400 seconds (1 day). When the internal TTL expires the cache item is expired. This can be configured to force the resolver to query for data more often and not trust (very large) TTL values.");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Minimum TTL for RRsets and messages");?></td>
- <td width="78%" class="vtable"><p>
- <input type="text" id="cache_min_ttl" name="cache_min_ttl" size=5><br/>
- <?=gettext("Configure a minimum Time to live for RRsets and messages in the cache. The default is 0 seconds. If the minimum value kicks in, the data is cached for longer than the domain owner intended, and thus less queries are made to look up the data. The 0 value ensures the data in the cache is as the domain owner intended. High values can lead to trouble as the data in the cache might not match up with the actual data anymore.");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("TTL for Host cache entries");?></td>
- <td width="78%" class="vtable"><p>
- <select id="infra_host_ttl" name="infra_host_ttl">
- <option value="60">1 minute</option>
- <option value="120">2 minutes</option>
- <option value="300">5 minutes</option>
- <option value="600">10 minutes</option>
- <option value="900">15 minutes</option>
- </select><br/>
- <?=gettext("Time to live for entries in the host cache. The host cache contains roundtrip timing and EDNS support information. The default is 15 minutes.");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("TTL for lame delegation");?></td>
- <td width="78%" class="vtable"><p>
- <select id="infra_lame_ttl" name="infra_lame_ttl">
- <option value="60">1 minute</option>
- <option value="120">2 minutes</option>
- <option value="300">5 minutes</option>
- <option value="600">10 minutes</option>
- <option value="900">15 minutes</option>
- </select><br/>
- <?=gettext("Time to live for when a delegation is considered to be lame. The default is 15 minutes.");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Number of Hosts to cache");?></td>
- <td width="78%" class="vtable"><p>
- <select id="infra_cache_numhosts" name="infra_cache_numhosts">
- <option value="1000">1000</option>
- <option value="5000">5000</option>
- <option value="10000">10 000</option>
- <option value="20000">20 000</option>
- <option value="50000">50 000</option>
- </select><br/>
- <?=gettext("Number of hosts for which information is cached. The default is 10,000.");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Unwanted Reply Threshold");?></td>
- <td width="78%" class="vtable"><p>
- <select id="unwanted_reply_threshold" name="unwanted_reply_threshold">
- <option value="disabled">disabled</option>
- <option value="5000000">5 million</option>
- <option value="10000000">10 million</option>
- <option value="20000000">20 million</option>
- <option value="40000000">40 million</option>
- <option value="50000000">50 million</option>
- </select><br/>
- <?=gettext("If enabled, a total number of unwanted replies is kept track of in every thread. When it reaches the threshold, a defensive action is taken and a warning is printed to the log file. This defensive action is to clear the RRSet and message caches, hopefully flushing away any poison. The default is disabled, but if enabled a a value of 10 million is suggested.");?></p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Log level verbosity");?></td>
- <td width="78%" class="vtable"><p>
- <select id="log_verbosity" name="log_verbosity">
- <option value="0">Level 0</option>
- <option value="1">Level 1</option>
- <option value="2">Level 2</option>
- <option value="3">Level 3</option>
- <option value="4">Level 4</option>
- <option value="5">Level 5</option>
- </select><br/>
- <?=gettext("Select the log verbosity.");?></p>
- </p>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- </tr>
- <tr>
- <td width="22%"></td>
- <td width="78%">
- <input type="submit" name="Save" class="formbtn" id="save" value="Save" />
- </td>
- </tr>
- </table>
- </div>
- </td>
- </tr>
-</table>
-</form>
-<?php include("fend.inc"); ?>
-</body>
-</html> \ No newline at end of file
diff --git a/usr/local/www/shortcuts.inc b/usr/local/www/shortcuts.inc
index 830b258..c02d18c 100644
--- a/usr/local/www/shortcuts.inc
+++ b/usr/local/www/shortcuts.inc
@@ -93,7 +93,7 @@ function get_shortcut_main_link($shortcut_section, $addspace = true, $service =
break;
}
if(!empty($link) && ($_SERVER['REQUEST_URI'] != "/{$link}"))
- return "{$space}<a href=\"{$link}\" title=\"" . gettext("Main page for this section") . "\"><img style=\"vertical-align:middle\" src=\"/themes/{$g['theme']}/images/icons/icon_plus.gif\" border=\"0\"></a>";
+ return "{$space}<a href=\"{$link}\" title=\"" . gettext("Main page for this section") . "\"><img style=\"vertical-align:middle\" src=\"/themes/{$g['theme']}/images/icons/icon_plus.gif\" border=\"0\" alt=\"plus\" /></a>";
}
function get_shortcut_status_link($shortcut_section, $addspace = true, $service = array()) {
@@ -117,14 +117,14 @@ function get_shortcut_status_link($shortcut_section, $addspace = true, $service
break;
}
if(!empty($link))
- return "{$space}<a href=\"{$link}\" title=\"" . gettext("Status of items on this page") . "\"><img style=\"vertical-align:middle\" src=\"/themes/{$g['theme']}/images/icons/icon_service_status.gif\" border=\"0\"></a>";
+ return "{$space}<a href=\"{$link}\" title=\"" . gettext("Status of items on this page") . "\"><img style=\"vertical-align:middle\" src=\"/themes/{$g['theme']}/images/icons/icon_service_status.gif\" border=\"0\" alt=\"status\" /></a>";
}
function get_shortcut_log_link($shortcut_section, $addspace = true) {
global $g, $shortcuts;
$space = ($addspace) ? "&nbsp;" : "" ;
if(!empty($shortcut_section) && !empty($shortcuts[$shortcut_section]['log'])) {
- return "{$space}<a href=\"{$shortcuts[$shortcut_section]['log']}\" title=\"" . gettext("Log entries for items on this page") . "\"><img style=\"vertical-align:middle\" src=\"/themes/{$g['theme']}/images/icons/icon_logs.gif\" border=\"0\"></a>";
+ return "{$space}<a href=\"{$shortcuts[$shortcut_section]['log']}\" title=\"" . gettext("Log entries for items on this page") . "\"><img style=\"vertical-align:middle\" src=\"/themes/{$g['theme']}/images/icons/icon_logs.gif\" border=\"0\" alt=\"logs\" /></a>";
}
}
diff --git a/usr/local/www/shortcuts/pkg_routed.inc b/usr/local/www/shortcuts/pkg_routed.inc
deleted file mode 100644
index 3449c60..0000000
--- a/usr/local/www/shortcuts/pkg_routed.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-global $shortcuts;
-
-$shortcuts['routed'] = array();
-$shortcuts['routed']['main'] = "pkg_edit.php?xml=routed.xml&id=0";
-$shortcuts['routed']['service'] = "routed";
-
-?> \ No newline at end of file
diff --git a/usr/local/www/status.php b/usr/local/www/status.php
index f01b5bf..a4906cf 100755
--- a/usr/local/www/status.php
+++ b/usr/local/www/status.php
@@ -7,26 +7,26 @@
* (modified for pfSense by Scott Ullrich geekgod@pfsense.com)
*/
/*
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
*/
/*
pfSense_BUILDER_BINARIES: /usr/bin/vmstat /usr/bin/netstat /sbin/dmesg /sbin/mount /usr/local/sbin/setkey /usr/local/sbin/pftop
@@ -50,11 +50,11 @@ require_once("guiconfig.inc");
require_once("functions.inc");
function doCmdT($title, $command) {
- echo "<p>\n";
- echo "<a name=\"" . $title . "\">\n";
- echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
- echo "<tr><td class=\"listtopic\">" . $title . "</td></tr>\n";
- echo "<tr><td class=\"listlr\"><pre>"; /* no newline after pre */
+ $rubbish = array('|', '-', '/', '.', ' '); /* fixes the <a> tag to be W3C compliant */
+ echo "\n<a name=\"" . str_replace($rubbish,'',$title) . "\" id=\"" . str_replace($rubbish,'',$title) . "\"></a>\n";
+ echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" summary=\"" . $title . "\">\n";
+ echo "\t<tr><td class=\"listtopic\">" . $title . "</td></tr>\n";
+ echo "\t<tr>\n\t\t<td class=\"listlr\">\n\t\t\t<pre>"; /* no newline after pre */
if ($command == "dumpconfigxml") {
$fd = @fopen("/conf/config.xml", "r");
@@ -81,49 +81,50 @@ function doCmdT($title, $command) {
echo htmlspecialchars($execOutput[$i],ENT_NOQUOTES);
}
}
- echo "</pre></tr>\n";
+ echo "\n\t\t\t</pre>\n\t\t</td>\n\t</tr>\n";
echo "</table>\n";
}
/* Execute a command, giving it a title which is the same as the command. */
function doCmd($command) {
- doCmdT($command,$command);
+ doCmdT($command,$command);
}
/* Define a command, with a title, to be executed later. */
function defCmdT($title, $command) {
- global $commands;
- $title = htmlspecialchars($title,ENT_NOQUOTES);
- $commands[] = array($title, $command);
+ global $commands;
+ $title = htmlspecialchars($title,ENT_NOQUOTES);
+ $commands[] = array($title, $command);
}
/* Define a command, with a title which is the same as the command,
* to be executed later.
*/
function defCmd($command) {
- defCmdT($command,$command);
+ defCmdT($command,$command);
}
/* List all of the commands as an index. */
function listCmds() {
- global $commands;
- echo "<p>" . gettext("This status page includes the following information") . ":\n";
- echo "<ul width=\"700\">\n";
- for ($i = 0; isset($commands[$i]); $i++ ) {
- echo "<li><strong><a href=\"#" . $commands[$i][0] . "\">" . $commands[$i][0] . "</a></strong>\n";
- }
- echo "</ul>\n";
+ global $commands;
+ $rubbish = array('|', '-', '/', '.', ' '); /* fixes the <a> tag to be W3C compliant */
+ echo "\n<p>" . gettext("This status page includes the following information") . ":\n";
+ echo "<ul>\n";
+ for ($i = 0; isset($commands[$i]); $i++ ) {
+ echo "\t<li><strong><a href=\"#" . str_replace($rubbish,'',$commands[$i][0]) . "\">" . $commands[$i][0] . "</a></strong></li>\n";
+ }
+ echo "</ul>\n";
}
/* Execute all of the commands which were defined by a call to defCmd. */
function execCmds() {
- global $commands;
- for ($i = 0; isset($commands[$i]); $i++ ) {
- doCmdT($commands[$i][0], $commands[$i][1]);
- }
+ global $commands;
+ for ($i = 0; isset($commands[$i]); $i++ ) {
+ doCmdT($commands[$i][0], $commands[$i][1]);
+ }
}
-global $g;
+global $g, $config;
/* Set up all of the commands we want to execute. */
defCmdT("System uptime","uptime");
@@ -137,7 +138,11 @@ defCmdT("top | head -n5", "/usr/bin/top | /usr/bin/head -n5");
defCmdT("sysctl hw.physmem","/sbin/sysctl hw.physmem");
-defCmdT("ipfw show", "/sbin/ipfw show");
+if (isset($config['captiveportal']) && is_array($config['captiveportal']))
+ foreach ($config['captiveportal'] as $cpZone => $cpdata)
+ if (isset($cpdata['enable']))
+ defCmdT("ipfw -x {$cpZone} show", "/sbin/ipfw -x {$cpZone} show");
+
defCmdT("pfctl -sn", "/sbin/pfctl -sn");
defCmdT("pfctl -sr", "/sbin/pfctl -sr");
defCmdT("pfctl -ss", "/sbin/pfctl -ss");
@@ -209,14 +214,14 @@ include("head.inc");
?>
<style type="text/css">
-<!--
+/*<![CDATA[*/
pre {
- margin: 0px;
- font-family: courier new, courier;
- font-weight: normal;
- font-size: 9pt;
+ margin: 0px;
+ font-family: courier new, courier;
+ font-weight: normal;
+ font-size: 9pt;
}
--->
+/*]]>*/
</style>
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
@@ -224,7 +229,7 @@ pre {
<strong><?=$currentDate;?></strong>
<p><span class="red"><strong><?=gettext("Note: make sure to remove any sensitive information " .
"(passwords, maybe also IP addresses) before posting " .
-"information from this page in public places (like mailing lists)"); ?>!</strong></span><br>
+"information from this page in public places (like mailing lists)"); ?>!</strong></span><br />
<?=gettext("Passwords in config.xml have been automatically removed"); ?>.
<div id="cmdspace" style="width:700px">
diff --git a/usr/local/www/status_captiveportal.php b/usr/local/www/status_captiveportal.php
index 0963a61..2e303b6 100755
--- a/usr/local/www/status_captiveportal.php
+++ b/usr/local/www/status_captiveportal.php
@@ -78,23 +78,8 @@ function clientcmp($a, $b) {
}
if (!empty($cpzone)) {
- $cpdb = array();
- if (file_exists("{$g['vardb_path']}/captiveportal_{$cpzone}.db")) {
- $captiveportallck = lock("captiveportaldb{$cpzone}");
- $cpcontents = file("/var/db/captiveportal_{$cpzone}.db", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
- unlock($captiveportallck);
- } else
- $cpcontents = array();
-
- $concurrent = count($cpcontents);
-
- foreach ($cpcontents as $cpcontent) {
- $cpent = explode(",", $cpcontent);
- $sessionid = $cpent[5];
- if ($_GET['showact'])
- $cpent[5] = captiveportal_get_last_activity($cpent[2]);
- $cpdb[$sessionid] = $cpent;
- }
+ $cpdb = captiveportal_read_db();
+
if ($_GET['order']) {
if ($_GET['order'] == "ip")
$order = 2;
@@ -122,6 +107,7 @@ if (!empty($cpzone)) {
$tab_array[] = array(gettext("Active Vouchers"), false, "status_captiveportal_vouchers.php?zone={$cpzone}");
$tab_array[] = array(gettext("Voucher Rolls"), false, "status_captiveportal_voucher_rolls.php?zone={$cpzone}");
$tab_array[] = array(gettext("Test Vouchers"), false, "status_captiveportal_test.php?zone={$cpzone}");
+ $tab_array[] = array(gettext("Expire Vouchers"), false, "status_captiveportal_expire.php?zone={$cpzone}");
display_top_tabs($tab_array);
?>
</td></tr>
@@ -168,17 +154,18 @@ if (!empty($cpzone)) {
<?php endif; ?>
<td class="list sort_ignore"></td>
</tr>
-<?php foreach ($cpdb as $sid => $cpent): ?>
+<?php foreach ($cpdb as $cpent): ?>
<tr>
<td class="listlr"><?=$cpent[2];?></td>
<td class="listr"><?=$cpent[3];?>&nbsp;</td>
<td class="listr"><?=$cpent[4];?>&nbsp;</td>
<td class="listr"><?=htmlspecialchars(date("m/d/Y H:i:s", $cpent[0]));?></td>
- <?php if ($_GET['showact']): ?>
- <td class="listr"><?php if ($cpent[5]) echo htmlspecialchars(date("m/d/Y H:i:s", $cpent[5]));?></td>
+ <?php if ($_GET['showact']):
+ $last_act = captiveportal_get_last_activity($cpent[2]); ?>
+ <td class="listr"><?php if ($last_act != 0) echo htmlspecialchars(date("m/d/Y H:i:s", $last_act));?></td>
<?php endif; ?>
<td valign="middle" class="list" nowrap>
- <a href="?zone=<?=$cpzone;?>&order=<?=$_GET['order'];?>&showact=<?=htmlspecialchars($_GET['showact']);?>&act=del&id=<?=$sid;?>" onclick="return confirm('<?=gettext("Do you really want to disconnect this client?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" title="<?=gettext("Disconnect");?>"></a></td>
+ <a href="?zone=<?=$cpzone;?>&order=<?=$_GET['order'];?>&showact=<?=htmlspecialchars($_GET['showact']);?>&act=del&id=<?=$cpent[5];?>" onclick="return confirm('<?=gettext("Do you really want to disconnect this client?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" title="<?=gettext("Disconnect");?>"></a></td>
</tr>
<?php endforeach; endif; ?>
</table>
diff --git a/usr/local/www/status_captiveportal_expire.php b/usr/local/www/status_captiveportal_expire.php
new file mode 100644
index 0000000..5b54db7
--- /dev/null
+++ b/usr/local/www/status_captiveportal_expire.php
@@ -0,0 +1,117 @@
+<?php
+/*
+ Copyright (C) 2007 Marcel Wiget <mwiget@mac.com>.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+*/
+/*
+ pfSense_MODULE: captiveportal
+*/
+
+##|+PRIV
+##|*IDENT=page-status-captiveportal-expire
+##|*NAME=Status: Captive portal Expire Vouchers page
+##|*DESCR=Allow access to the 'Status: Captive portal Expire Vouchers' page.
+##|*MATCH=status_captiveportal_expire.php*
+##|-PRIV
+
+require("guiconfig.inc");
+require("functions.inc");
+require("filter.inc");
+require("shaper.inc");
+require("captiveportal.inc");
+require_once("voucher.inc");
+
+$cpzone = $_GET['zone'];
+if (isset($_POST['zone']))
+ $cpzone = $_POST['zone'];
+
+if (empty($cpzone)) {
+ header("Location: services_captiveportal_zones.php");
+ exit;
+}
+
+if (!is_array($config['captiveportal']))
+ $config['captiveportal'] = array();
+$a_cp =& $config['captiveportal'];
+
+$pgtitle = array(gettext("Status"), gettext("Captive portal"), gettext("Expire Vouchers"), $a_cp[$cpzone]['zone']);
+
+include("head.inc");
+include("fbegin.inc");
+?>
+
+<form action="status_captiveportal_expire.php" method="post" enctype="multipart/form-data" name="iform" id="iform">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="tab pane">
+<tr><td class="tabnavtbl">
+<?php
+ $tab_array = array();
+ $tab_array[] = array(gettext("Active Users"), false, "status_captiveportal.php?zone={$cpzone}");
+ $tab_array[] = array(gettext("Active Vouchers"), false, "status_captiveportal_vouchers.php?zone={$cpzone}");
+ $tab_array[] = array(gettext("Voucher Rolls"), false, "status_captiveportal_voucher_rolls.php?zone={$cpzone}");
+ $tab_array[] = array(gettext("Test Vouchers"), false, "status_captiveportal_test.php?zone={$cpzone}");
+ $tab_array[] = array(gettext("Expire Vouchers"), true, "status_captiveportal_expire.php?zone={$cpzone}");
+ display_top_tabs($tab_array);
+?>
+</td></tr>
+<tr>
+<td class="tabcont">
+
+<table width="100%" border="0" cellpadding="6" cellspacing="0" summary="content pane">
+ <tr>
+ <td valign="top" class="vncellreq"><?=gettext("Voucher(s)"); ?></td>
+ <td class="vtable">
+ <textarea name="vouchers" cols="65" rows="3" type="text" id="vouchers" class="formpre"><?=htmlspecialchars($_POST['vouchers']);?></textarea>
+ <br>
+<?=gettext("Enter multiple vouchers separated by space or newline. All valid vouchers will be marked as expired"); ?>.</td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top">&nbsp;</td>
+ <td width="78%">
+ <input name="zone" type="hidden" value="<?=$cpzone;?>">
+ <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Submit"); ?>">
+ </td>
+ </tr>
+</table>
+</td></tr></table>
+</form>
+<p>
+<?php
+if ($_POST) {
+ if ($_POST['vouchers']) {
+ $result = voucher_expire($_POST['vouchers']);
+ echo "<p><table border=\"0\" cellspacing=\"0\" cellpadding=\"4\" width=\"100%\">\n";
+ if ( $result) {
+ echo "<tr><td bgcolor=\"#D9DEE8\"><img src=\"/themes/{$g['theme']}/images/icons/icon_pass.gif\"></td>";
+ echo "<td bgcolor=\"#D9DEE8\">Success</td></tr>";
+ } else {
+ echo "<tr><td bgcolor=\"#FFD9D1\"><img src=\"/themes/{$g['theme']}/images/icons/icon_block.gif\"></td>";
+ echo "<td bgcolor=\"#FFD9D1\">Error</td></tr>";
+ }
+ echo "</table></p>";
+ }
+}
+
+include("fend.inc");
+?>
+
diff --git a/usr/local/www/status_captiveportal_test.php b/usr/local/www/status_captiveportal_test.php
index c53227e..1a80446 100644
--- a/usr/local/www/status_captiveportal_test.php
+++ b/usr/local/www/status_captiveportal_test.php
@@ -72,6 +72,7 @@ include("fbegin.inc");
$tab_array[] = array(gettext("Active Vouchers"), false, "status_captiveportal_vouchers.php?zone={$cpzone}");
$tab_array[] = array(gettext("Voucher Rolls"), false, "status_captiveportal_voucher_rolls.php?zone={$cpzone}");
$tab_array[] = array(gettext("Test Vouchers"), true, "status_captiveportal_test.php?zone={$cpzone}");
+ $tab_array[] = array(gettext("Expire Vouchers"), false, "status_captiveportal_expire.php?zone={$cpzone}");
display_top_tabs($tab_array);
?>
</td></tr>
diff --git a/usr/local/www/status_captiveportal_voucher_rolls.php b/usr/local/www/status_captiveportal_voucher_rolls.php
index 33eae70..742964d 100644
--- a/usr/local/www/status_captiveportal_voucher_rolls.php
+++ b/usr/local/www/status_captiveportal_voucher_rolls.php
@@ -1,30 +1,30 @@
-<?php
+<?php
/*
- Copyright (C) 2007 Marcel Wiget <mwiget@mac.com>.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
+ Copyright (C) 2007 Marcel Wiget <mwiget@mac.com>.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
*/
-/*
+/*
pfSense_MODULE: captiveportal
*/
@@ -44,21 +44,21 @@ require_once("voucher.inc");
$cpzone = $_GET['zone'];
if (isset($_POST['zone']))
- $cpzone = $_POST['zone'];
+ $cpzone = $_POST['zone'];
if (empty($cpzone)) {
- header("Location: services_captiveportal_zones.php");
- exit;
+ header("Location: services_captiveportal_zones.php");
+ exit;
}
if (!is_array($config['captiveportal']))
- $config['captiveportal'] = array();
+ $config['captiveportal'] = array();
$a_cp =& $config['captiveportal'];
$pgtitle = array(gettext("Status"), gettext("Captive portal"), gettext("Voucher Rolls"), $a_cp[$cpzone]['zone']);
$shortcut_section = "captiveportal-vouchers";
if (!is_array($config['voucher'][$cpzone]['roll'])) {
- $config['voucher'][$cpzone]['roll'] = array();
+ $config['voucher'][$cpzone]['roll'] = array();
}
$a_roll = &$config['voucher'][$cpzone]['roll'];
@@ -68,63 +68,67 @@ include("fbegin.inc");
<form action="status_captiveportal_voucher_rolls.php" method="post" enctype="multipart/form-data" name="iform" id="iform">
<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="tab pane">
-<tr><td class="tabnavtbl">
-<?php
- $tab_array = array();
- $tab_array[] = array(gettext("Active Users"), false, "status_captiveportal.php?zone={$cpzone}");
- $tab_array[] = array(gettext("Active Vouchers"), false, "status_captiveportal_vouchers.php?zone={$cpzone}");
- $tab_array[] = array(gettext("Voucher Rolls"), true, "status_captiveportal_voucher_rolls.php?zone={$cpzone}");
- $tab_array[] = array(gettext("Test Vouchers"), false, "status_captiveportal_test.php?zone={$cpzone}");
- display_top_tabs($tab_array);
-?>
-</td></tr>
-<tr>
-<td class="tabcont">
-
-<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="content pane">
- <tr>
- <td class="listhdrr"><?=gettext("Roll#"); ?></td>
- <td class="listhdrr"><?=gettext("Minutes/Ticket"); ?></td>
- <td class="listhdrr"><?=gettext("# of Tickets"); ?></td>
- <td class="listhdrr"><?=gettext("Comment"); ?></td>
- <td class="listhdrr"><?=gettext("used"); ?></td>
- <td class="listhdrr"><?=gettext("active"); ?></td>
- <td class="listhdr"><?=gettext("ready"); ?></td>
- </tr>
-<?php
- $voucherlck = lock("vouche{$cpzone}r");
- $i = 0; foreach($a_roll as $rollent):
- $used = voucher_used_count($rollent['number']);
- $active = count(voucher_read_active_db($rollent['number']),$rollent['minutes']);
- $ready = $rollent['count'] - $used;
-?>
- <tr>
- <td class="listlr">
- <?=htmlspecialchars($rollent['number']); ?>&nbsp;
- </td>
- <td class="listr">
- <?=htmlspecialchars($rollent['minutes']);?>&nbsp;
- </td>
- <td class="listr">
- <?=htmlspecialchars($rollent['count']);?>&nbsp;
- </td>
- <td class="listr">
- <?=htmlspecialchars($rollent['comment']); ?>&nbsp;
- </td>
- <td class="listr">
- <?=htmlspecialchars($used); ?>&nbsp;
- </td>
- <td class="listr">
- <?=htmlspecialchars($active); ?>&nbsp;
- </td>
- <td class="listr">
- <?=htmlspecialchars($ready); ?>&nbsp;
- </td>
- </tr>
- <?php $i++; endforeach; unlock($voucherlck); ?>
-</table>
-</td>
-</tr>
-</table>
+ <tr>
+ <td class="tabnavtbl">
+ <?php
+ $tab_array = array();
+ $tab_array[] = array(gettext("Active Users"), false, "status_captiveportal.php?zone={$cpzone}");
+ $tab_array[] = array(gettext("Active Vouchers"), false, "status_captiveportal_vouchers.php?zone={$cpzone}");
+ $tab_array[] = array(gettext("Voucher Rolls"), true, "status_captiveportal_voucher_rolls.php?zone={$cpzone}");
+ $tab_array[] = array(gettext("Test Vouchers"), false, "status_captiveportal_test.php?zone={$cpzone}");
+ $tab_array[] = array(gettext("Expire Vouchers"), false, "status_captiveportal_expire.php?zone={$cpzone}");
+ display_top_tabs($tab_array);
+ ?>
+ </td>
+ </tr>
+ <tr>
+ <td class="tabcont">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="content pane">
+ <tr>
+ <td class="listhdrr"><?=gettext("Roll#"); ?></td>
+ <td class="listhdrr"><?=gettext("Minutes/Ticket"); ?></td>
+ <td class="listhdrr"><?=gettext("# of Tickets"); ?></td>
+ <td class="listhdrr"><?=gettext("Comment"); ?></td>
+ <td class="listhdrr"><?=gettext("used"); ?></td>
+ <td class="listhdrr"><?=gettext("active"); ?></td>
+ <td class="listhdr"><?=gettext("ready"); ?></td>
+ </tr>
+ <?php
+ $voucherlck = lock("vouche{$cpzone}r");
+ $i = 0; foreach($a_roll as $rollent):
+ $used = voucher_used_count($rollent['number']);
+ $active = count(voucher_read_active_db($rollent['number']),$rollent['minutes']);
+ $ready = $rollent['count'] - $used;
+ /* used also count active vouchers, remove them */
+ $used = $used - $active;
+ ?>
+ <tr>
+ <td class="listlr">
+ <?=htmlspecialchars($rollent['number']); ?>&nbsp;
+ </td>
+ <td class="listr">
+ <?=htmlspecialchars($rollent['minutes']);?>&nbsp;
+ </td>
+ <td class="listr">
+ <?=htmlspecialchars($rollent['count']);?>&nbsp;
+ </td>
+ <td class="listr">
+ <?=htmlspecialchars($rollent['comment']); ?>&nbsp;
+ </td>
+ <td class="listr">
+ <?=htmlspecialchars($used); ?>&nbsp;
+ </td>
+ <td class="listr">
+ <?=htmlspecialchars($active); ?>&nbsp;
+ </td>
+ <td class="listr">
+ <?=htmlspecialchars($ready); ?>&nbsp;
+ </td>
+ </tr>
+ <?php $i++; endforeach; unlock($voucherlck); ?>
+ </table>
+ </td>
+ </tr>
+</table>
</form>
<?php include("fend.inc"); ?>
diff --git a/usr/local/www/status_captiveportal_vouchers.php b/usr/local/www/status_captiveportal_vouchers.php
index 82daedf..3bee04d 100644
--- a/usr/local/www/status_captiveportal_vouchers.php
+++ b/usr/local/www/status_captiveportal_vouchers.php
@@ -2,17 +2,17 @@
/*
Copyright (C) 2007 Marcel Wiget <mwiget@mac.com>.
All rights reserved.
-
+
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
-
+
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
-
+
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
-
+
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
@@ -24,7 +24,7 @@
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
*/
-/*
+/*
pfSense_MODULE: captiveportal
*/
@@ -44,52 +44,56 @@ require_once("voucher.inc");
$cpzone = $_GET['zone'];
if (isset($_POST['zone']))
- $cpzone = $_POST['zone'];
+ $cpzone = $_POST['zone'];
if (empty($cpzone)) {
- header("Location: services_captiveportal_zones.php");
- exit;
+ header("Location: services_captiveportal_zones.php");
+ exit;
}
if (!is_array($config['captiveportal']))
- $config['captiveportal'] = array();
+ $config['captiveportal'] = array();
$a_cp =& $config['captiveportal'];
$pgtitle = array(gettext("Status"), gettext("Captive portal"), gettext("Vouchers"), $a_cp[$cpzone]['zone']);
$shortcut_section = "captiveportal-vouchers";
function clientcmp($a, $b) {
- global $order;
- return strcmp($a[$order], $b[$order]);
+ global $order;
+ return strcmp($a[$order], $b[$order]);
}
if (!is_array($config['voucher'][$cpzone]['roll'])) {
- $config['voucher'][$cpzone]['roll'] = array();
+ $config['voucher'][$cpzone]['roll'] = array();
}
$a_roll = $config['voucher'][$cpzone]['roll'];
$db = array();
foreach($a_roll as $rollent) {
- $roll = $rollent['number'];
- $minutes = $rollent['minutes'];
- $active_vouchers = file("{$g['vardb_path']}/voucher_{$cpzone}_active_$roll.db", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
- foreach($active_vouchers as $voucher => $line) {
- list($voucher,$timestamp, $minutes) = explode(",", $line);
- $remaining = (($timestamp + 60*$minutes) - time());
- if ($remaining > 0) {
- $dbent[0] = $voucher;
- $dbent[1] = $roll;
- $dbent[2] = $timestamp;
- $dbent[3] = intval($remaining/60);
- $dbent[4] = $timestamp + 60*$minutes; // expires at
- $db[] = $dbent;
- }
- }
+ $roll = $rollent['number'];
+ $minutes = $rollent['minutes'];
+
+ if (!file_exists("{$g['vardb_path']}/voucher_{$cpzone}_active_$roll.db"))
+ continue;
+
+ $active_vouchers = file("{$g['vardb_path']}/voucher_{$cpzone}_active_$roll.db", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
+ foreach($active_vouchers as $voucher => $line) {
+ list($voucher,$timestamp, $minutes) = explode(",", $line);
+ $remaining = (($timestamp + 60*$minutes) - time());
+ if ($remaining > 0) {
+ $dbent[0] = $voucher;
+ $dbent[1] = $roll;
+ $dbent[2] = $timestamp;
+ $dbent[3] = intval($remaining/60);
+ $dbent[4] = $timestamp + 60*$minutes; // expires at
+ $db[] = $dbent;
+ }
+ }
}
-if ($_GET['order']) {
- $order = $_GET['order'];
- usort($db, "clientcmp");
+if ($_GET['order']) {
+ $order = $_GET['order'];
+ usort($db, "clientcmp");
}
include("head.inc");
@@ -99,14 +103,15 @@ include("fbegin.inc");
<form action="status_captiveportal_vouchers.php" method="post" enctype="multipart/form-data" name="iform" id="iform">
<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="tab pane">
<tr><td class="tabnavtbl">
-<?php
+<?php
$tab_array = array();
- $tab_array[] = array(gettext("Active Users"), false, "status_captiveportal.php?zone={$cpzone}");
- $tab_array[] = array(gettext("Active Vouchers"), true, "status_captiveportal_vouchers.php?zone={$cpzone}");
- $tab_array[] = array(gettext("Voucher Rolls"), false, "status_captiveportal_voucher_rolls.php?zone={$cpzone}");
- $tab_array[] = array(gettext("Test Vouchers"), false, "status_captiveportal_test.php?zone={$cpzone}");
- display_top_tabs($tab_array);
-?>
+ $tab_array[] = array(gettext("Active Users"), false, "status_captiveportal.php?zone={$cpzone}");
+ $tab_array[] = array(gettext("Active Vouchers"), true, "status_captiveportal_vouchers.php?zone={$cpzone}");
+ $tab_array[] = array(gettext("Voucher Rolls"), false, "status_captiveportal_voucher_rolls.php?zone={$cpzone}");
+ $tab_array[] = array(gettext("Test Vouchers"), false, "status_captiveportal_test.php?zone={$cpzone}");
+ $tab_array[] = array(gettext("Expire Vouchers"), false, "status_captiveportal_expire.php?zone={$cpzone}");
+ display_top_tabs($tab_array);
+?>
</td></tr>
<tr>
<td class="tabcont">
diff --git a/usr/local/www/status_dhcp_leases.php b/usr/local/www/status_dhcp_leases.php
index 45687b8..ab0e45a 100755
--- a/usr/local/www/status_dhcp_leases.php
+++ b/usr/local/www/status_dhcp_leases.php
@@ -433,7 +433,7 @@ foreach ($leases as $data) {
?>
</table>
<p>
-<form action="status_dhcp_leases.php" method="GET">
+<form action="status_dhcp_leases.php" method="get">
<input type="hidden" name="order" value="<?=htmlspecialchars($_GET['order']);?>">
<?php if ($_GET['all']): ?>
<input type="hidden" name="all" value="0">
diff --git a/usr/local/www/status_dhcpv6_leases.php b/usr/local/www/status_dhcpv6_leases.php
index ca14830..d3f310b 100644
--- a/usr/local/www/status_dhcpv6_leases.php
+++ b/usr/local/www/status_dhcpv6_leases.php
@@ -62,7 +62,10 @@ if (($_GET['deleteip']) && (is_ipaddr($_GET['deleteip']))) {
$i=0;
while ($i < count($leases_contents)) {
/* Find the lease(s) we want to delete */
- if ($leases_contents[$i] == "lease {$_GET['deleteip']} {") {
+ if ($leases_contents[$i] == " iaaddr {$_GET['deleteip']} {") {
+ /* The iaaddr line is two lines down from the start of the lease, so remove those two lines. */
+ array_pop($newleases_contents);
+ array_pop($newleases_contents);
/* Skip to the end of the lease declaration */
do {
$i++;
diff --git a/usr/local/www/status_filter_reload.php b/usr/local/www/status_filter_reload.php
index 7b4d2f1..dcb4aeb 100644
--- a/usr/local/www/status_filter_reload.php
+++ b/usr/local/www/status_filter_reload.php
@@ -69,12 +69,12 @@ include("head.inc");
<?php include("fbegin.inc"); ?>
<br/>
-<form action="status_filter_reload.php" method="POST" name="filter">
+<form action="status_filter_reload.php" method="post" name="filter">
<input type="submit" value="Reload Filter" name="reloadfilter" id="reloadfilter">
<?php if ($config['hasync'] && $config['hasync']["synchronizetoip"] != ""): ?>
&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" value="Force Config Sync" name="syncfilter" id="syncfilter">
-<? endif; ?>
+<?php endif; ?>
</form>
<br/><br/><br/>
<div id="status" name="status" style="padding:5px; border:1px dashed #990000; background-color: #ffffff; color: #000000;">
diff --git a/usr/local/www/status_gateway_groups.php b/usr/local/www/status_gateway_groups.php
index 6365ef3..a270f61 100755
--- a/usr/local/www/status_gateway_groups.php
+++ b/usr/local/www/status_gateway_groups.php
@@ -122,21 +122,21 @@ include("head.inc");
$status = $gateways_status[$monitor]['status'];
if (stristr($status, "down")) {
$online = gettext("Offline");
- $bgcolor = "lightcoral";
+ $bgcolor = "#F08080"; // lightcoral
} elseif (stristr($status, "loss")) {
$online = gettext("Warning, Packetloss");
- $bgcolor = "khaki";
+ $bgcolor = "#F0E68C"; // khaki
} elseif (stristr($status, "delay")) {
$online = gettext("Warning, Latency");
- $bgcolor = "khaki";
+ $bgcolor = "#F0E68C"; // khaki
} elseif ($status == "none") {
$online = gettext("Online");
- $bgcolor = "lightgreen";
+ $bgcolor = "#90EE90"; // lightgreen
} else {
$online = gettext("Gathering data");
- $bgcolor = "lightblue";
+ $bgcolor = "#ADD8E6"; // lightblue
}
- echo "<td bgcolor='$bgcolor'>". htmlspecialchars($member) .", $online</td>";
+ echo "<td bgcolor='$bgcolor'>&nbsp;". htmlspecialchars($member) .", $online&nbsp;</td>";
} else {
echo "<td>&nbsp;</td>";
}
diff --git a/usr/local/www/status_gateways.php b/usr/local/www/status_gateways.php
index 0219c95..e7154a8 100755
--- a/usr/local/www/status_gateways.php
+++ b/usr/local/www/status_gateways.php
@@ -117,25 +117,25 @@ include("head.inc");
$status = $gateways_status[$gname];
if (stristr($status['status'], "down")) {
$online = gettext("Offline");
- $bgcolor = "lightcoral";
+ $bgcolor = "#F08080"; // lightcoral
} elseif (stristr($status['status'], "loss")) {
$online = gettext("Warning, Packetloss").': '.$status['loss'];
- $bgcolor = "khaki";
+ $bgcolor = "#F0E68C"; // khaki
} elseif (stristr($status['status'], "delay")) {
$online = gettext("Warning, Latency").': '.$status['delay'];
- $bgcolor = "khaki";
+ $bgcolor = "#F0E68C"; // khaki
} elseif ($status['status'] == "none") {
$online = gettext("Online");
- $bgcolor = "lightgreen";
+ $bgcolor = "#90EE90"; // lightgreen
}
} else if (isset($gateway['monitor_disable'])) {
$online = gettext("Online");
- $bgcolor = "lightgreen";
+ $bgcolor = "#90EE90"; // lightgreen
} else {
$online = gettext("Pending");
- $bgcolor = "lightgray";
+ $bgcolor = "#D3D3D3"; // lightgray
}
- echo "<tr><td><table width='100%'><tr><td bgcolor=\"$bgcolor\" > $online </td></tr><tr><td>";
+ echo "<tr><td><table width='100%'><tr><td bgcolor=\"$bgcolor\">&nbsp;$online&nbsp;</td></tr><tr><td>";
$lastchange = $gateways_status[$gname]['lastcheck'];
if(!empty($lastchange)) {
echo gettext("Last check:") . '<br/>' . $lastchange;
diff --git a/usr/local/www/status_graph.php b/usr/local/www/status_graph.php
index 7f59cb3..2342700 100755
--- a/usr/local/www/status_graph.php
+++ b/usr/local/www/status_graph.php
@@ -72,20 +72,41 @@ foreach (array('server', 'client') as $mode) {
if ($_GET['if']) {
$curif = $_GET['if'];
$found = false;
- foreach($ifdescrs as $descr => $ifdescr)
- if($descr == $curif) $found = true;
- if(!$found) {
+ foreach($ifdescrs as $descr => $ifdescr) {
+ if ($descr == $curif) {
+ $found = true;
+ break;
+ }
+ }
+ if ($found === false) {
Header("Location: status_graph.php");
exit;
}
} else {
- $curif = "wan";
+ if (empty($ifdescrs["wan"])) {
+ /* Handle the case when WAN has been disabled. Use the first key in ifdescrs. */
+ reset($ifdescrs);
+ $curif = key($ifdescrs);
+ }
+ else {
+ $curif = "wan";
+ }
}
if ($_GET['sort']) {
$cursort = $_GET['sort'];
} else {
$cursort = "";
}
+if ($_GET['filter']) {
+ $curfilter = $_GET['filter'];
+} else {
+ $curfilter = "";
+}
+if ($_GET['hostipformat']) {
+ $curhostipformat = $_GET['hostipformat'];
+} else {
+ $curhostipformat = "";
+}
$pgtitle = array(gettext("Status"),gettext("Traffic Graph"));
@@ -98,23 +119,27 @@ include("head.inc");
<script language="javascript" type="text/javascript">
function updateBandwidth(){
- var hostinterface = "<?php echo htmlspecialchars($curif); ?>";
- var sorting = "<?php echo htmlspecialchars($cursort); ?>";
- bandwidthAjax(hostinterface, sorting);
+ var hostinterface = jQuery("#if").val();
+ var sorting = jQuery("#sort").val();
+ var filter = jQuery("#filter").val();
+ var hostipformat = jQuery("#hostipformat").val();
+ bandwidthAjax(hostinterface, sorting, filter, hostipformat);
}
-function bandwidthAjax(hostinterface, sorting) {
- uri = "bandwidth_by_ip.php?if=" + hostinterface + "&sort=" + sorting;
+function bandwidthAjax(hostinterface, sorting, filter, hostipformat) {
+ uri = "bandwidth_by_ip.php?if=" + hostinterface + "&sort=" + sorting + "&filter=" + filter + "&hostipformat=" + hostipformat;
var opt = {
// Use GET
type: 'get',
error: function(req) {
- // Handle 404
+ /* XXX: Leave this for debugging purposes: Handle 404
if(req.status == 404)
alert('Error 404: location "' + uri + '" was not found.');
- // Handle other errors
+ */
+ /* Handle other errors
else
- alert('Error ' + req.status + ' -- ' + req.statusText);
+ alert('Error ' + req.status + ' -- ' + req.statusText + ' -- ' + uri);
+ */
},
success: function(data) {
updateBandwidthHosts(data);
@@ -128,32 +153,30 @@ function updateBandwidthHosts(data){
d = document;
//parse top ten bandwidth abuser hosts
for (var y=0; y<10; y++){
- if (hosts_split[y] != "" && hosts_split[y] != "no info"){
- if (hosts_split[y]) {
- hostinfo = hosts_split[y].split(";");
+ if ((y < hosts_split.length) && (hosts_split[y] != "") && (hosts_split[y] != "no info")) {
+ hostinfo = hosts_split[y].split(";");
- //update host ip info
- var HostIpID = "hostip" + y;
- var hostip = d.getElementById(HostIpID);
- hostip.innerHTML = hostinfo[0];
+ //update host ip info
+ var HostIpID = "hostip" + y;
+ var hostip = d.getElementById(HostIpID);
+ hostip.innerHTML = hostinfo[0];
- //update bandwidth inbound to host
- var hostbandwidthInID = "bandwidthin" + y;
- var hostbandwidthin = d.getElementById(hostbandwidthInID);
- hostbandwidthin.innerHTML = hostinfo[1] + " Bits/sec";
+ //update bandwidth inbound to host
+ var hostbandwidthInID = "bandwidthin" + y;
+ var hostbandwidthin = d.getElementById(hostbandwidthInID);
+ hostbandwidthin.innerHTML = hostinfo[1] + " Bits/sec";
- //update bandwidth outbound from host
- var hostbandwidthOutID = "bandwidthout" + y;
- var hostbandwidthOut = d.getElementById(hostbandwidthOutID);
- hostbandwidthOut.innerHTML = hostinfo[2] + " Bits/sec";
+ //update bandwidth outbound from host
+ var hostbandwidthOutID = "bandwidthout" + y;
+ var hostbandwidthOut = d.getElementById(hostbandwidthOutID);
+ hostbandwidthOut.innerHTML = hostinfo[2] + " Bits/sec";
- //make the row appear if hidden
- var rowid = "#host" + y;
- if (jQuery(rowid).css('display') == "none"){
- //hide rows that contain no data
- jQuery(rowid).show(1000);
- }
- }
+ //make the row appear if hidden
+ var rowid = "#host" + y;
+ if (jQuery(rowid).css('display') == "none"){
+ //hide rows that contain no data
+ jQuery(rowid).show(1000);
+ }
}
else
{
@@ -181,7 +204,7 @@ if (isset($config['ipsec']['enable']) || isset($config['ipsec']['client']['enabl
?>
<form name="form1" action="status_graph.php" method="get" style="padding-bottom: 10px; margin-bottom: 14px; border-bottom: 1px solid #999999">
<?=gettext("Interface"); ?>:
-<select name="if" class="formselect" style="z-index: -10;" onchange="document.form1.submit()">
+<select id="if" name="if" class="formselect" style="z-index: -10;" onchange="document.form1.submit()">
<?php
foreach ($ifdescrs as $ifn => $ifd) {
echo "<option value=\"$ifn\"";
@@ -191,12 +214,22 @@ foreach ($ifdescrs as $ifn => $ifd) {
?>
</select>
, Sort by:
-<select name="sort" class="formselect" style="z-index: -10;" onchange="document.form1.submit()">
- <option value="">Bandwidth In</option>
- <option value="out"<?php if ($cursort == "out") echo " selected";?>>Bandwidth Out</option>
+<select id="sort" name="sort" class="formselect" style="z-index: -10;" onchange="document.form1.submit()">
+ <option value="">Bw In</option>
+ <option value="out"<?php if ($cursort == "out") echo " selected";?>>Bw Out</option>
+</select>
+, Filter:
+<select id="filter" name="filter" class="formselect" style="z-index: -10;" onchange="document.form1.submit()">
+ <option value="">All</option>
+ <option value="local"<?php if ($curfilter == "local") echo " selected";?>>Local</option>
+ <option value="remote"<?php if ($curfilter == "remote") echo " selected";?>>Remote</option>
+</select>
+, Display:
+<select id="hostipformat" name="hostipformat" class="formselect" style="z-index: -10;" onchange="document.form1.submit()">
+ <option value="">IP Address</option>
+ <option value="hostname"<?php if ($curhostipformat == "hostname") echo " selected";?>>Host Name</option>
+ <option value="fqdn"<?php if ($curhostipformat == "fqdn") echo " selected";?>>FQDN</option>
</select>
-</form>
-<p><form method="post" action="status_graph.php">
</form>
<p>
<div id="niftyOutter">
@@ -206,7 +239,7 @@ foreach ($ifdescrs as $ifn => $ifd) {
<div id="col2" style="float: right; width: 48%; padding: 5px; position: relative;">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
- <td class="listtopic" valign="top"><?=gettext("Host IP"); ?></td>
+ <td class="listtopic" valign="top"><?=(($curhostipformat=="") ? gettext("Host IP") : gettext("Host Name or IP")); ?></td>
<td class="listtopic" valign="top"><?=gettext("Bandwidth In"); ?></td>
<td class="listtopic" valign="top"><?=gettext("Bandwidth Out"); ?></td>
</tr>
@@ -299,11 +332,7 @@ foreach ($ifdescrs as $ifn => $ifd) {
<?php include("fend.inc"); ?>
<script type="text/javascript">
-window.onload = function(in_event)
- {
- updateBandwidth();
- }
-
+jQuery(document).ready(updateBandwidth);
</script>
</body>
</html>
diff --git a/usr/local/www/status_interfaces.php b/usr/local/www/status_interfaces.php
index 3e6d793..0ab83b1 100755
--- a/usr/local/www/status_interfaces.php
+++ b/usr/local/www/status_interfaces.php
@@ -65,7 +65,7 @@ include("head.inc");
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc"); ?>
-<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<table width="100%" border="0" cellspacing="0" cellpadding="0" summary="status interfaces">
<?php
$i = 0;
$ifdescrs = get_configured_interface_with_descr(false, true);
@@ -98,11 +98,11 @@ include("head.inc");
<td width="78%" class="listr">
<?=htmlspecialchars($ifinfo['dhcplink']);?>&nbsp;&nbsp;
<?php if ($ifinfo['dhcplink'] == "up"): ?>
- <a href="status_interfaces.php?action=Release&if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Release");?>" class="formbtns">
+ <a href="status_interfaces.php?action=Release&amp;if=<?php echo $ifdescr; ?>">
+ <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Release");?>" class="formbtns" />
<?php else: ?>
- <a href="status_interfaces.php?action=Renew&if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Renew");?>" class="formbtns">
+ <a href="status_interfaces.php?action=Renew&amp;if=<?php echo $ifdescr; ?>">
+ <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Renew");?>" class="formbtns" />
<?php endif; ?>
</a>
</td>
@@ -116,11 +116,11 @@ include("head.inc");
<td width="78%" class="listr">
<?=htmlspecialchars($ifinfo['dhcp6link']);?>&nbsp;&nbsp;
<?php if ($ifinfo['dhcp6link'] == "up"): ?>
- <a href="status_interfaces.php?action=Release&if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Release");?>" class="formbtns">
+ <a href="status_interfaces.php?action=Release&amp;if=<?php echo $ifdescr; ?>">
+ <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Release");?>" class="formbtns" />
<?php else: ?>
- <a href="status_interfaces.php?action=Renew&if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Renew");?>" class="formbtns">
+ <a href="status_interfaces.php?action=Renew&amp;if=<?php echo $ifdescr; ?>">
+ <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Renew");?>" class="formbtns" />
<?php endif; ?>
</a>
</td>
@@ -131,11 +131,11 @@ include("head.inc");
<td width="78%" class="listr">
<?=htmlspecialchars($ifinfo['pppoelink']);?>&nbsp;&nbsp;
<?php if ($ifinfo['pppoelink'] == "up"): ?>
- <a href="status_interfaces.php?action=Disconnect&if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Disconnect");?>" class="formbtns">
+ <a href="status_interfaces.php?action=Disconnect&amp;if=<?php echo $ifdescr; ?>">
+ <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Disconnect");?>" class="formbtns" />
<?php else: ?>
- <a href="status_interfaces.php?action=Connect&if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Connect");?>" class="formbtns">
+ <a href="status_interfaces.php?action=Connect&amp;if=<?php echo $ifdescr; ?>">
+ <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Connect");?>" class="formbtns" />
<?php endif; ?>
</a>
</td>
@@ -146,11 +146,11 @@ include("head.inc");
<td width="78%" class="listr">
<?=htmlspecialchars($ifinfo['pptplink']);?>&nbsp;&nbsp;
<?php if ($ifinfo['pptplink'] == "up"): ?>
- <a href="status_interfaces.php?action=Disconnect&if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Disconnect");?>" class="formbtns">
+ <a href="status_interfaces.php?action=Disconnect&amp;if=<?php echo $ifdescr; ?>">
+ <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Disconnect");?>" class="formbtns" />
<?php else: ?>
- <a href="status_interfaces.php?action=Connect&if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Connect");?>" class="formbtns">
+ <a href="status_interfaces.php?action=Connect&amp;if=<?php echo $ifdescr; ?>">
+ <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Connect");?>" class="formbtns" />
<?php endif; ?>
</a>
</td>
@@ -161,11 +161,11 @@ include("head.inc");
<td width="78%" class="listr">
<?=htmlspecialchars($ifinfo['l2tplink']);?>&nbsp;&nbsp;
<?php if ($ifinfo['l2tplink'] == "up"): ?>
- <a href="status_interfaces.php?action=Disconnect&if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Disconnect");?>" class="formbtns">
+ <a href="status_interfaces.php?action=Disconnect&amp;if=<?php echo $ifdescr; ?>">
+ <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Disconnect");?>" class="formbtns" />
<?php else: ?>
- <a href="status_interfaces.php?action=Connect&if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Connect");?>" class="formbtns">
+ <a href="status_interfaces.php?action=Connect&amp;if=<?php echo $ifdescr; ?>">
+ <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Connect");?>" class="formbtns" />
<?php endif; ?>
</a>
</td>
@@ -176,12 +176,12 @@ include("head.inc");
<td width="78%" class="listr">
<?=htmlspecialchars($ifinfo['pppinfo']);?>
<?php if ($ifinfo['ppplink'] == "up"): ?>
- <a href="status_interfaces.php?action=Disconnect&if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Disconnect");?>" class="formbtns">
+ <a href="status_interfaces.php?action=Disconnect&amp;if=<?php echo $ifdescr; ?>">
+ <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Disconnect");?>" class="formbtns" />
<?php else: ?>
<?php if (!$ifinfo['nodevice']): ?>
- <a href="status_interfaces.php?action=Connect&if=<?php echo $ifdescr; ?>">
- <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Connect");?>" class="formbtns">
+ <a href="status_interfaces.php?action=Connect&amp;if=<?php echo $ifdescr; ?>">
+ <input type="button" name="<?php echo $ifdescr; ?>" value="<?=gettext("Connect");?>" class="formbtns" />
<?php endif; ?>
<?php endif; ?>
</a>
@@ -325,7 +325,7 @@ include("head.inc");
<?php
$dns_servers = get_dns_servers();
foreach($dns_servers as $dns) {
- echo "{$dns}<br>";
+ echo "{$dns}<br/>";
}
?>
</td>
@@ -473,10 +473,12 @@ include("head.inc");
<br/>
-</strong><?php printf(gettext("Using dial-on-demand will bring the connection up again if any packet ".
+<?php printf(gettext("Using dial-on-demand will bring the connection up again if any packet ".
"triggers it. To substantiate this point: disconnecting manually ".
"will %snot%s prevent dial-on-demand from making connections ".
"to the outside! Don't use dial-on-demand if you want to make sure that the line ".
"is kept disconnected."),'<strong>','</strong>')?>
<?php include("fend.inc"); ?>
+</body>
+</html>
diff --git a/usr/local/www/status_lb_pool.php b/usr/local/www/status_lb_pool.php
index 83d21b4..ce00625 100755
--- a/usr/local/www/status_lb_pool.php
+++ b/usr/local/www/status_lb_pool.php
@@ -108,7 +108,7 @@ if ($_POST) {
?>
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc"); ?>
-<form action="status_lb_pool.php" method="POST">
+<form action="status_lb_pool.php" method="post">
<?php if (is_subsystem_dirty('loadbalancer')): ?><p>
<?php print_info_box_np(sprintf(gettext("The load balancer configuration has been changed%sYou must apply the changes in order for them to take effect."), "<br>"));?><br>
<?php endif; ?>
@@ -174,7 +174,7 @@ if ($_POST) {
if($server['ip']['addr']!="") {
switch ($server['ip']['state']) {
case 'up':
- $bgcolor = "lightgreen";
+ $bgcolor = "#90EE90"; // lightgreen
$checked = "checked";
break;
case 'disabled':
@@ -182,7 +182,7 @@ if ($_POST) {
$checked = "";
break;
default:
- $bgcolor = "lightcoral";
+ $bgcolor = "#F08080"; // lightcoral
$checked = "checked";
}
echo "<tr>";
@@ -194,11 +194,11 @@ if ($_POST) {
echo "<td><input type='radio' name='{$pool['name']}' value='{$server['ip']['addr']}' {$checked}></td>\n";
break;
}
- echo "<td bgcolor={$bgcolor}> {$server['ip']['addr']}:{$pool['port']} </td><td bgcolor={$bgcolor}>";
-# echo "<td bgcolor={$bgcolor}> {$server['ip']['addr']}:{$pool['port']} ";
+ echo "<td bgcolor={$bgcolor}>&nbsp;{$server['ip']['addr']}:{$pool['port']}&nbsp;</td><td bgcolor={$bgcolor}>&nbsp;";
+# echo "<td bgcolor={$bgcolor}>&nbsp;{$server['ip']['addr']}:{$pool['port']} ";
if($server['ip']['avail'])
echo " ({$server['ip']['avail']}) ";
- echo "</td></tr>";
+ echo "&nbsp;</td></tr>";
}
}
?>
diff --git a/usr/local/www/status_lb_vs.php b/usr/local/www/status_lb_vs.php
index 0e3b9d8..cb1ce0d 100755
--- a/usr/local/www/status_lb_vs.php
+++ b/usr/local/www/status_lb_vs.php
@@ -105,16 +105,16 @@ include("head.inc");
<?php
switch (trim($rdr_a[$vsent['name']]['status'])) {
case 'active':
- $bgcolor = "lightgreen";
- $rdr_a[$vsent['name']]['status'] = "Active";
+ $bgcolor = "#90EE90"; // lightgreen
+ $rdr_a[$vsent['name']]['status'] = "Active";
break;
case 'down':
- $bgcolor = "lightcoral";
- $rdr_a[$vsent['name']]['status'] = "Down";
- break;
- default:
- $bgcolor = "lightgray";
- $rdr_a[$vsent['name']]['status'] = 'Unknown - relayd not running?';
+ $bgcolor = "#F08080"; // lightcoral
+ $rdr_a[$vsent['name']]['status'] = "Down";
+ break;
+ default:
+ $bgcolor = "#D3D3D3"; // lightgray
+ $rdr_a[$vsent['name']]['status'] = 'Unknown - relayd not running?';
}
?>
<td class="listr" nowrap>
diff --git a/usr/local/www/status_ntpd.php b/usr/local/www/status_ntpd.php
index 2b9ac72..30cf18e 100644
--- a/usr/local/www/status_ntpd.php
+++ b/usr/local/www/status_ntpd.php
@@ -100,8 +100,14 @@ foreach ($ntpq_clockvar_output as $line) {
if (substr($tmp, 0, 6) == '$GPRMC') {
$gps_vars = explode(",", $tmp);
$gps_ok = ($gps_vars[2] == "A");
- $gps_lat = $gps_vars[3] / 100.0 . $gps_vars[4];
- $gps_lon = $gps_vars[5] / 100.0 . $gps_vars[6];
+ $gps_lat_deg = substr($gps_vars[3], 0, 2);
+ $gps_lat_min = substr($gps_vars[3], 2) / 60.0;
+ $gps_lon_deg = substr($gps_vars[5], 0, 3);
+ $gps_lon_min = substr($gps_vars[5], 3) / 60.0;
+ $gps_lat = $gps_lat_deg + $gps_lat_min;
+ $gps_lat = $gps_lat * (($gps_vars[4] == "N") ? 1 : -1);
+ $gps_lon = $gps_lon_deg + $gps_lon_min;
+ $gps_lon = $gps_lon * (($gps_vars[6] == "E") ? 1 : -1);
}
}
}
@@ -188,8 +194,8 @@ include("head.inc");
</thead>
<tbody>
<tr>
- <td class="listlr" align="center"><?php echo $gps_lat; ?></td>
- <td class="listlr" align="center"><?php echo $gps_lon; ?></td>
+ <td class="listlr" align="center"><?php echo sprintf("%.5f", $gps_lat); ?> (<?php echo sprintf("%d", $gps_lat_deg); ?>&deg; <?php echo sprintf("%.5f", $gps_lat_min*60); ?><?php echo $gps_vars[4]; ?>)</td>
+ <td class="listlr" align="center"><?php echo sprintf("%.5f", $gps_lon); ?> (<?php echo sprintf("%d", $gps_lon_deg); ?>&deg; <?php echo sprintf("%.5f", $gps_lon_min*60); ?><?php echo $gps_vars[6]; ?>)</td>
</tr>
<tr>
<td class="listlr" colspan="2" align="center"><a href="http://maps.google.com/?q=<?php echo $gps_lat; ?>,<?php echo $gps_lon; ?>">Google Maps Link</a></td>
diff --git a/usr/local/www/status_openvpn.php b/usr/local/www/status_openvpn.php
index 330333d..1e5f806 100644
--- a/usr/local/www/status_openvpn.php
+++ b/usr/local/www/status_openvpn.php
@@ -48,6 +48,7 @@ $shortcut_section = "openvpn";
require("guiconfig.inc");
require_once("openvpn.inc");
+require_once("shortcuts.inc");
/* Handle AJAX */
if($_GET['action']) {
@@ -137,7 +138,7 @@ include("head.inc"); ?>
);
}
</script>
-
+<?php $i = 0; ?>
<?php foreach ($servers as $server): ?>
<table style="padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px" width="100%" border="0" cellpadding="0" cellspacing="0">
@@ -189,17 +190,74 @@ include("head.inc"); ?>
<?php endforeach; ?>
<tfoot>
<tr>
- <td colspan="6" class="list" height="12"></td>
+ <td colspan="2" class="list" height="12">
+ <table>
+ <tr>
+ <?php $ssvc = find_service_by_openvpn_vpnid($server['vpnid']); ?>
+ <?= get_service_status_icon($ssvc, true, true); ?>
+ <td><?= get_service_control_links($ssvc, true); ?></td>
+ </tr>
+ </table>
+ </td>
+ <td colspan="4" class="list" height="12">&nbsp;</td>
</tr>
</tfoot>
-
</table>
</td>
</tr>
</table>
+<?php if (is_array($server['routes']) && count($server['routes'])): ?>
+<div id="shroutebut-<?= $i ?>">
+<input type="button" onClick="show_routes('tabroute-<?= $i ?>','shroutebut-<?= $i ?>')" value="<?php echo gettext("Show Routing Table"); ?>"></input> - <?= gettext("Display OpenVPN's internal routing table for this server.") ?></a>
+<br/><br/>
+</div>
+<table style="display: none; padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px" width="100%" border="0" cellpadding="0" cellspacing="0" id="tabroute-<?= $i ?>">
+ <tr>
+ <td colspan="6" class="listtopic">
+ <?=$server['name'];?> <?=gettext("Routing Table"); ?>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table style="padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px" class="tabcont sortable" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td class="listhdrr"><?=gettext("Common Name"); ?></td>
+ <td class="listhdrr"><?=gettext("Real Address"); ?></td>
+ <td class="listhdrr"><?=gettext("Target Network"); ?></td>
+ <td class="listhdrr"><?=gettext("Last Used"); ?></td>
+ </tr>
+
+ <?php foreach ($server['routes'] as $conn): ?>
+ <tr name='<?php echo "r:{$server['mgmt']}:{$conn['remote_host']}"; ?>'>
+ <td class="listlr">
+ <?=$conn['common_name'];?>
+ </td>
+ <td class="listr">
+ <?=$conn['remote_host'];?>
+ </td>
+ <td class="listr">
+ <?=$conn['virtual_addr'];?>
+ </td>
+ <td class="listr">
+ <?=$conn['last_time'];?>
+ </td>
+ </tr>
+ <?php endforeach; ?>
+ <tfoot>
+ <tr>
+ <td colspan="6" class="list" height="12"><?= gettext("An IP address followed by C indicates a host currently connected through the VPN.") ?></td>
+ </tr>
+ </tfoot>
+ </table>
+ </td>
+ </tr>
+</table>
+<?php endif; ?>
+<br/>
+<?php $i++; ?>
<?php endforeach; ?>
-<br>
+<br/>
<?php if (!empty($sk_servers)) { ?>
<table style="padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px" width="100%" border="0" cellpadding="0" cellspacing="0">
@@ -217,7 +275,8 @@ include("head.inc"); ?>
<td class="listhdrr"><?=gettext("Virtual Addr"); ?></td>
<td class="listhdrr"><?=gettext("Remote Host"); ?></td>
<td class="listhdrr"><?=gettext("Bytes Sent"); ?></td>
- <td class="listhdrr"><?=gettext("Bytes Received"); ?></td>
+ <td class="listhdrr"><?=gettext("Bytes Rcvd"); ?></td>
+ <td class="listhdrr"><?=gettext("Service"); ?></td>
</tr>
<?php foreach ($sk_servers as $sk_server): ?>
@@ -243,6 +302,15 @@ include("head.inc"); ?>
<td class="listr">
<?=$sk_server['bytes_recv'];?>
</td>
+ <td class="listr">
+ <table>
+ <tr>
+ <?php $ssvc = find_service_by_openvpn_vpnid($sk_server['vpnid']); ?>
+ <?= get_service_status_icon($ssvc, false, true); ?>
+ <td><?= get_service_control_links($ssvc, true); ?></td>
+ </tr>
+ </table>
+ </td>
</tr>
<?php endforeach; ?>
</table>
@@ -268,7 +336,8 @@ include("head.inc"); ?>
<td class="listhdrr"><?=gettext("Virtual Addr"); ?></td>
<td class="listhdrr"><?=gettext("Remote Host"); ?></td>
<td class="listhdrr"><?=gettext("Bytes Sent"); ?></td>
- <td class="listhdrr"><?=gettext("Bytes Received"); ?></td>
+ <td class="listhdrr"><?=gettext("Bytes Rcvd"); ?></td>
+ <td class="listhdrr"><?=gettext("Service"); ?></td>
</tr>
<?php foreach ($clients as $client): ?>
@@ -294,6 +363,15 @@ include("head.inc"); ?>
<td class="listr">
<?=$client['bytes_recv'];?>
</td>
+ <td class="listr" height="12">
+ <table>
+ <tr>
+ <?php $ssvc = find_service_by_openvpn_vpnid($client['vpnid']); ?>
+ <?= get_service_status_icon($ssvc, false, true); ?>
+ <td><?= get_service_control_links($ssvc, true); ?></td>
+ </tr>
+ </table>
+ </td>
</tr>
<?php endforeach; ?>
</table>
@@ -304,7 +382,7 @@ include("head.inc"); ?>
}
if ($DisplayNote) {
- echo "<br/><b>" . gettext("NOTE") . ":</b> " . gettext("You need to bind each OpenVPN client to enable its management daemon: use 'Local port' setting in the OpenVPN client screen");
+ echo "<br/><b>" . gettext("NOTE") . ":</b> " . gettext("If you have 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.");
}
if ((empty($clients)) && (empty($servers)) && (empty($sk_servers))) {
@@ -314,3 +392,10 @@ if ((empty($clients)) && (empty($servers)) && (empty($sk_servers))) {
<?php include("fend.inc"); ?>
+<script type="text/javascript">
+function show_routes(id, buttonid) {
+ document.getElementById(buttonid).innerHTML='';
+ aodiv = document.getElementById(id);
+ aodiv.style.display = "block";
+}
+</script>
diff --git a/usr/local/www/status_queues.php b/usr/local/www/status_queues.php
index 21908ef..fb2930a 100755
--- a/usr/local/www/status_queues.php
+++ b/usr/local/www/status_queues.php
@@ -5,7 +5,7 @@
status_queues.php
Part of the pfSense project
Copyright (C) 2004, 2005 Scott Ullrich
- Copyright (C) 2009 Ermal Luçi
+ Copyright (C) 2009 Ermal Luçi
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -48,16 +48,23 @@ header("Cache-Control: post-check=0, pre-check=0", FALSE );
header("Pragma: no-cache"); // HTTP/1.0
require("guiconfig.inc");
-
+class QueueStats {
+ public $queuename;
+ public $queuelength;
+ public $pps;
+ public $bandwidth;
+ public $borrows;
+ public $suspends;
+ public $drops;
+}
if (!file_exists("{$g['varrun_path']}/qstats.pid") || !isvalidpid("{$g['varrun_path']}/qstats.pid")) {
- /* Start in the background so we don't hang up the GUI */
+ /* Start in the background so we don't hang up the GUI */
mwexec_bg("/usr/local/sbin/qstats -p {$g['varrun_path']}/qstats.pid");
/* Give it a moment to start up */
sleep(1);
}
-
$fd = @fsockopen("unix://{$g['varrun_path']}/qstats");
-if (!$fd) {
+ if (!$fd) {
$error = "Something wrong happened during comunication with stat gathering";
} else {
$stats = "";
@@ -69,119 +76,199 @@ if (!$fd) {
if ($altqstats == -1)
$error = "No queue statistics could be read.";
}
-if ($_REQUEST['getactivity']) {
- /* calculate total packets being moved through all queues. */
- $total_packets_s = 0;
- foreach($altqstats['queue'] as $q) {
- if (strstr($q['name'], "root_"))
- continue;
- $total_packets_s = $total_packets_s + intval($q['pkts']);
- }
-
+if ($_REQUEST['getactivity']) {
+ $statistics = array();
+ $bigger_packets = 0;
+ /* build the queue stats. */
+ foreach($altqstats['queue'] as $q) {
+ statsQueues($q);
+ }
+ /* calculate the bigger amount of packets being moved through all queues. */
+ foreach($statistics as $q) {
+ if ($bigger_packets < $q->pps)
+ $bigger_packets = $q->pps;
+ }
$finscript = "";
- foreach($altqstats['queue'] as $q) {
- if (strstr($q['name'], "root_"))
- continue;
-
- $packet_s = round(400 * (1 - $q['pkts']/ $total_packets_s), 0);
-
- $finscript .= "jQuery('#queue{$q['name']}{$q['interface']}widthb').width('{$packet_s}');";
- $finscript .= "jQuery('#queue{$q['name']}{$q['interface']}widtha').width('" . (400 - $packet_s) . "');";
- $finscript .= "jQuery('#queue{$q['name']}{$q['interface']}pps').val('{$q['measured']}/pps');";
- $finscript .= "jQuery('#queue{$q['name']}{$q['interface']}bps').val('{$q['measuredspeed']}');";
- $finscript .= "jQuery('#queue{$q['name']}{$q['interface']}borrows').val('{$q['borrows']} borrows');";
- $finscript .= "jQuery('#queue{$q['name']}{$q['interface']}suspends').val('{$q['suspends']} suspends');";
- $finscript .= "jQuery('#queue{$q['name']}{$q['interface']}drops').val('{$q['droppedpkts']} drops');";
- }
+ foreach($statistics as $q) {
+ $packet_s = round(150 * (1 - $q->pps / $bigger_packets), 0);
+ if ($packet_s < 0) {$packet_s = 0;}
+ $finscript .= "jQuery('#queue{$q->queuename}widthb').width('{$packet_s}');";
+ $finscript .= "jQuery('#queue{$q->queuename}widtha').width('" . (150 - $packet_s) . "');";
+ $finscript .= "jQuery('#queue{$q->queuename}pps').val('" . number_format($q->pps,1) . "');";
+ $finscript .= "jQuery('#queue{$q->queuename}bps').val('" . format_bits($q->bandwidth) . "');";
+ $finscript .= "jQuery('#queue{$q->queuename}borrows').val('{$q->borrows}');";
+ $finscript .= "jQuery('#queue{$q->queuename}suspends').val('{$q->suspends}');";
+ $finscript .= "jQuery('#queue{$q->queuename}drops').val('{$q->drops}');";
+ $finscript .= "jQuery('#queue{$q->queuename}length').val('{$q->queuelength}');";
+ }
+ unset($statistics, $altqstats);
header("Content-type: text/javascript");
echo $finscript;
exit;
}
-
$pgtitle = array(gettext("Status"),gettext("Traffic shaper"),gettext("Queues"));
$shortcut_section = "trafficshaper";
include("head.inc");
-
?>
-
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc"); ?>
<?php
if(!is_array($config['shaper']['queue']) || count($config['shaper']['queue']) < 1) {
echo gettext("Traffic shaping is not configured.");
include("fend.inc");
- exit;
-}
+ exit;}
?>
<?php if (!$error): ?>
<form action="status_queues.php" method="post">
<script type="text/javascript">
- function getqueueactivity() {
- var url = "/status_queues.php";
- var pars = 'getactivity=yes';
- jQuery.ajax(
- url,
- {
- type: 'post',
- data: pars,
- complete: activitycallback
- });
- }
- function activitycallback(transport) {
- setTimeout('getqueueactivity()', 5100);
- }
- jQuery(document).ready(function(){
- setTimeout('getqueueactivity()', 150);
- });
+ function getqueueactivity() {
+ var url = "/status_queues.php";
+ var pars = 'getactivity=yes';
+ jQuery.ajax(
+ url,
+ {
+ type: 'post',
+ data: pars,
+ complete: activitycallback
+ });
+ }
+ function activitycallback(transport) {
+ setTimeout('getqueueactivity()', 5100);
+ }
+ jQuery(document).ready(function(){
+ setTimeout('getqueueactivity()', 150);
+ });
</script>
<?php endif; ?>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="1" cellpadding="0" cellspacing="0">
<?php if ($error): ?>
- <tr><td><?php echo $error; ?></td></tr>
+ <tr><td><?php echo $error; ?></td></tr>
<?php else: ?>
- <tr>
- <td class="listhdr" colspan="1"><?=gettext("Queue"); ?></td>
- <td class="listhdr" colspan="6"><?=gettext("Statistics"); ?></td>
- </tr>
- <?php $i = 0; foreach ($altqstats['queue'] as $q):
- if (strstr($q['name'], "root_"))
- continue;
- ?>
- <tr><td bgcolor="#DDDDDD" colspan="7">&nbsp;</td></tr>
- <tr valign="top">
- <td bgcolor="#DDDDDD">
- <font color="#000000">&nbsp;&nbsp;&nbsp;<?echo "<a href=\"firewall_shaper.php?id={$q['name']}\">" . htmlspecialchars($q['name'] . " on " . convert_real_interface_to_friendly_descr($q['interface'])) . "</a>";?>&nbsp;&nbsp;&nbsp;</td>
- <td bgcolor="#DDDDDD">
- <nobr>
-<?php
- $cpuUsage = 0;
- echo "<img src='./themes/".$g['theme']."/images/misc/bar_left.gif' height='10' width='4' border='0' align='absmiddle'>";
- echo "<img src='./themes/".$g['theme']."/images/misc/bar_blue.gif' height='10' name='queue{$q['name']}{$q['interface']}widtha' id='queue{$q['name']}{$q['interface']}widtha' width='" . $cpuUsage . "' border='0' align='absmiddle'>";
- echo "<img src='./themes/".$g['theme']."/images/misc/bar_gray.gif' height='10' name='queue{$q['name']}{$q['interface']}widthb' id='queue{$q['name']}{$q['interface']}widthb' width='" . (400 - $cpuUsage) . "' border='0' align='absmiddle'>";
- echo "<nobr><img src='./themes/".$g['theme']."/images/misc/bar_right.gif' height='10' width='5' border='0' align='absmiddle'> ";
- echo "</nobr></td></tr>";
- echo "<tr><td bgcolor=\"#DDDDDD\" colspan=\"7\">";
- echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
- echo "<nobr>";
- echo "<input style='border: 0px solid white; background-color:#DDDDDD; color:#000000;' size='10' name='queue{$q['name']}{$q['interface']}pps' id='queue{$q['name']}{$q['interface']}pps' value='(" . gettext("Loading") . ")' align='left'>";
- echo "<input style='border: 0px solid white; background-color:#DDDDDD; color:#000000;' size='10' name='queue{$q['name']}{$q['interface']}bps' id='queue{$q['name']}{$q['interface']}bps' value='' align='right'>";
- echo "<input style='border: 0px solid white; background-color:#DDDDDD; color:#000000;' size='10' name='queue{$q['name']}{$q['interface']}borrows' id='queue{$q['name']}{$q['interface']}borrows' value='' align='right'>";
- echo "<input style='border: 0px solid white; background-color:#DDDDDD; color:#000000;' size='10' name='queue{$q['name']}{$q['interface']}suspends' id='queue{$q['name']}{$q['interface']}suspends' value='' align='right'>";
- echo "<input style='border: 0px solid white; background-color:#DDDDDD; color:#000000;' size='10' name='queue{$q['name']}{$q['interface']}drops' id='queue{$q['name']}{$q['interface']}drops' value='' align='right'>";
- echo "</nobr>";
-?>
-
- </td>
- </tr>
- <tr><td class="vncell" bgcolor="#DDDDDD" colspan="7">&nbsp;</td></tr>
- <?php $i++; endforeach; $total_queues = $i; ?>
+ <tr>
+ <td class="listhdr"><?=gettext("Queue"); ?></td>
+ <td class="listhdr"><?=gettext("Statistics"); ?></td>
+ <td class="listhdr" width="1%"><?=gettext("PPS"); ?></td>
+ <td class="listhdr" width="1%"><?=gettext("Bandwidth"); ?></td>
+ <td class="listhdr" width="1%"><?=gettext("Borrows"); ?></td>
+ <td class="listhdr" width="1%"><?=gettext("Suspends"); ?></td>
+ <td class="listhdr" width="1%"><?=gettext("Drops"); ?></td>
+ <td class="listhdr" width="1%"><?=gettext("Length"); ?></td>
+ </tr>
+ <?php
+ $if_queue_list = get_configured_interface_list_by_realif(false, true);
+ processQueues($altqstats, 0, "")?>
<?php endif; ?>
- </table>
- <p>
- <strong><span class="red"><?=gettext("Note"); ?>:</span></strong><strong><br></strong>
- <?=gettext("Queue graphs take 5 seconds to sample data"); ?>.<br>
- <?=gettext("You can configure the Traffic Shaper"); ?> <a href="/firewall_shaper_wizards.php"><?=gettext("here"); ?></a>.
- </p>
+</table>
+<p>
+ <strong><span class="red"><?=gettext("Note"); ?>:</span></strong><br/>
+ <?=gettext("Queue graphs take 5 seconds to sample data"); ?>.<br/>
+ <?=gettext("You can configure the Traffic Shaper"); ?> <a href="/firewall_shaper_wizards.php"><?=gettext("here"); ?></a>.
+</p>
+<script type="text/javascript">
+ function StatsShowHide(classname) {
+ var firstrow = jQuery("." + classname).first();
+ if (firstrow.is(':visible')) {
+ jQuery("." + classname).hide();}
+ else {
+ jQuery("." + classname).show();}
+ }
+</script>
+</form>
<?php include("fend.inc"); ?>
</body>
</html>
+<?php
+function processQueues($altqstats, $level, $parent_name){
+ global $g;
+ global $if_queue_list;
+ $gray_value = 190 + $level * 10;
+ if ($gray_value > 250) $gray_value = 255;
+ $row_background = str_repeat(dechex($gray_value), 3);
+ $parent_name = $parent_name . " queuerow" . $altqstats['name'] . $altqstats['interface'];
+ $prev_if = $altqstats['interface'];
+ foreach ($altqstats['queue'] as $q) {
+ $if_name = "";
+ foreach ($if_queue_list as $oif => $real_name) {
+ if ($oif == $q['interface']) {
+ $if_name = $real_name;
+ break;
+ }
+ }
+ if ($prev_if != $q['interface']) {
+ echo "<tr><td colspan=\"8\" style=\"padding: 2px;\"><b>Interface ". htmlspecialchars(convert_real_interface_to_friendly_descr($q['interface'])) . "</b></td></tr>";
+ $prev_if = $q['interface'];
+ }
+ ?>
+ <tr class="<?php echo $parent_name?>">
+ <td bgcolor="#<?php echo $row_background?>" style="padding-left: <?php echo $level * 20?>px;">
+ <font color="#000000">
+ <?
+ if (strstr($q['name'], "root_"))
+ echo "<a href=\"firewall_shaper.php?interface={$if_name}&amp;queue={$if_name}&amp;action=show\">Root queue</a>";
+ else
+ echo "<a href=\"firewall_shaper.php?interface={$if_name}&amp;queue={$q['name']}&amp;action=show\">" . htmlspecialchars($q['name']) . "</a>";
+ ?>
+ </font>
+ </td>
+ <?php
+ $cpuUsage = 0;
+ echo "<td nowrap=\"nowrap\" width=\"1%\" bgcolor=\"#{$row_background}\">";
+ echo "<img src='./themes/".$g['theme']."/images/misc/bar_left.gif' height='10' width='4' border='0' align='middle' alt='' />";
+ echo "<img src='./themes/".$g['theme']."/images/misc/bar_blue.gif' height='10' name='queue{$q['name']}{$q['interface']}widtha' id='queue{$q['name']}{$q['interface']}widtha' width='" . $cpuUsage . "' border='0' align='middle' alt='" . htmlspecialchars($q['name']) . "' />";
+ echo "<img src='./themes/".$g['theme']."/images/misc/bar_gray.gif' height='10' name='queue{$q['name']}{$q['interface']}widthb' id='queue{$q['name']}{$q['interface']}widthb' width='" . (150 - $cpuUsage) . "' border='0' align='middle' alt='" . htmlspecialchars($q['name']) . "' />";
+ echo "<img src='./themes/".$g['theme']."/images/misc/bar_right.gif' height='10' width='5' border='0' align='middle' alt='' /> ";
+ if (is_array($q['queue'])) {
+ echo "<a href=\"#\" onclick=\"StatsShowHide('queuerow{$q['name']}{$q['interface']}');return false\">+/-</a> ";
+ }
+ echo " </td>";
+ echo "<td width=\"1%\" bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:70px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}pps' id='queue{$q['name']}{$q['interface']}pps' value='(" . gettext("Loading") . ")' align='left' /></td>";
+ echo "<td width=\"1%\" bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:80px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}bps' id='queue{$q['name']}{$q['interface']}bps' value='' align='right' /></td>";
+ echo "<td width=\"1%\" bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:70px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}borrows' id='queue{$q['name']}{$q['interface']}borrows' value='' align='right' /></td>";
+ echo "<td width=\"1%\" bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:70px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}suspends' id='queue{$q['name']}{$q['interface']}suspends' value='' align='right' /></td>";
+ echo "<td width=\"1%\" bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:70px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}drops' id='queue{$q['name']}{$q['interface']}drops' value='' align='right' /></td>";
+ echo "<td width=\"1%\" bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:70px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}length' id='queue{$q['name']}{$q['interface']}length' value='' align='right' /></td>";
+ ?>
+ </tr>
+ <?php
+ if (is_array($q['queue']))
+ processQueues($q, $level + 1, $parent_name);
+ };
+}
+function statsQueues($xml){
+ global $statistics;
+
+ $current = new QueueStats();
+ $child = new QueueStats();
+ $current->queuename = $xml['name'] . $xml['interface'];
+ $current->queuelength = $xml['qlength'];
+ $current->pps = $xml['measured'];
+ $current->bandwidth = $xml['measuredspeedint'];
+ $current->borrows = intval($xml['borrows']);
+ $current->suspends = intval($xml['suspends']);
+ $current->drops = intval($xml['droppedpkts']);
+ if (is_array($xml['queue'])) {
+ foreach($xml['queue'] as $q) {
+ $child = statsQueues($q);
+ $current->pps += $child->pps;
+ $current->bandwidth += $child->bandwidth;
+ $current->borrows += $child->borrows;
+ $current->suspends += $child->suspends;
+ $current->drops += $child->drops;
+ }
+ }
+ unset($child);
+ $statistics[] = $current;
+ return $current;
+}
+function format_bits($bits) {
+ if ($bits >= 1000000000) {
+ return sprintf("%.2f Gbps", $bits/1000000000);
+ } else if ($bits >= 1000000) {
+ return sprintf("%.2f Mbps", $bits/1000000);
+ } else if ($bits >= 1000) {
+ return sprintf("%.2f Kbps", $bits/1000);
+ } else {
+ return sprintf("%d bps", $bits);
+ }
+}
+?>
diff --git a/usr/local/www/status_rrd_graph.php b/usr/local/www/status_rrd_graph.php
index ab3fe9c..2cf22de 100755
--- a/usr/local/www/status_rrd_graph.php
+++ b/usr/local/www/status_rrd_graph.php
@@ -65,6 +65,11 @@ if ($_GET['cat']) {
}
}
+if ($_GET['zone'])
+ $curzone = $_GET['zone'];
+else
+ $curzone = '';
+
if ($_GET['period']) {
$curperiod = $_GET['period'];
} else {
@@ -198,7 +203,6 @@ $dbheader = array("allgraphs-traffic.rrd",
"allgraphs-wireless.rrd",
"allgraphs-cellular.rrd",
"allgraphs-vpnusers.rrd",
- "captiveportal-allgraphs.rrd",
"allgraphs-packets.rrd",
"system-allgraphs.rrd",
"system-throughput.rrd",
@@ -222,7 +226,7 @@ foreach($databases as $database) {
if(stristr($database, "-vpnusers")) {
$vpnusers = true;
}
- if(stristr($database, "captiveportal-") && isset($config['captiveportal']['enable'])) {
+ if(stristr($database, "captiveportal-") && is_array($config['captiveportal'])) {
$captiveportal = true;
}
}
@@ -244,6 +248,27 @@ $graph_length = array(
$pgtitle = array(gettext("Status"),gettext("RRD Graphs"));
$closehead = false;
+
+/* Load all CP zones */
+if ($captiveportal && is_array($config['captiveportal'])) {
+ $cp_zones_tab_array = array();
+ foreach($config['captiveportal'] as $cpkey => $cp) {
+ if (!isset($cp['enable']))
+ continue;
+
+ if ($curzone == '') {
+ $tabactive = true;
+ $curzone = $cpkey;
+ } elseif ($curzone == $cpkey) {
+ $tabactive = true;
+ } else {
+ $tabactive = false;
+ }
+
+ $cp_zones_tab_array[] = array($cp['zone'], $tabactive, "status_rrd_graph.php?cat=captiveportal&zone=$cpkey");
+ }
+}
+
include("head.inc");
?>
@@ -411,6 +436,13 @@ function get_dates($curperiod, $graph) {
?>
</td>
</tr>
+ <?php if ($curcat == "captiveportal") : ?>
+ <tr>
+ <td class="tabnavtbl">
+ <?php display_top_tabs($cp_zones_tab_array); ?>
+ </td>
+ </tr>
+ <?php endif; ?>
<tr>
<td>
<div id="mainarea">
@@ -438,16 +470,19 @@ function get_dates($curperiod, $graph) {
}
}
foreach ($ui_databases as $db => $database) {
- if(! preg_match("/($curcat)/i", $database)) {
+ if(! preg_match("/($curcat)/i", $database))
continue;
- }
+
+ if (($curcat == "captiveportal") && !empty($curzone) && !preg_match("/captiveportal-{$curzone}/i", $database))
+ continue;
+
$optionc = explode("-", $database);
$search = array("-", ".rrd", $optionc);
$replace = array(" :: ", "", $friendly);
switch($curcat) {
case "captiveportal":
- $optionc = str_replace($search, $replace, $optionc[1]);
+ $optionc = str_replace($search, $replace, $optionc[2]);
echo "<option value=\"$optionc\"";
$prettyprint = ucwords(str_replace($search, $replace, $optionc));
break;
@@ -533,9 +568,12 @@ function get_dates($curperiod, $graph) {
foreach($graphs as $graph) {
/* check which databases are valid for our category */
foreach($ui_databases as $curdatabase) {
- if(! preg_match("/($curcat)/i", $curdatabase)) {
+ if(! preg_match("/($curcat)/i", $curdatabase))
continue;
- }
+
+ if (($curcat == "captiveportal") && !empty($curzone) && !preg_match("/captiveportal-{$curzone}/i", $curdatabase))
+ continue;
+
$optionc = explode("-", $curdatabase);
$search = array("-", ".rrd", $optionc);
$replace = array(" :: ", "", $friendly);
diff --git a/usr/local/www/status_rrd_graph_img.php b/usr/local/www/status_rrd_graph_img.php
index fea016b..fa3f43f 100644
--- a/usr/local/www/status_rrd_graph_img.php
+++ b/usr/local/www/status_rrd_graph_img.php
@@ -38,6 +38,8 @@ require_once("filter.inc");
require_once("shaper.inc");
require_once("rrd.inc");
+global $g;
+
$pgtitle = array(gettext("System"),gettext("RRD Graphs"),gettext("Image viewer"));
if ($_GET['database']) {
@@ -173,7 +175,10 @@ if ($altq_list_queues[$curif]) {
break;
}
$upstream = (($altq->GetBandwidth()*$factor)/8);
- $downstream = $upstream; /* XXX: Ugly hack */
+ if ($upstream != 0)
+ $downstream = $upstream; /* XXX: Ugly hack */
+ else
+ $downstream = $upstream = 12500000;
$upif = $curif;
$downif = "lan"; /* XXX should this be set to something else?! */
} else {
@@ -912,7 +917,7 @@ elseif((strstr($curdatabase, "-queues.rrd")) && (file_exists("$rrddbpath$curdata
$graphcmd .= "DEF:\"$name=$rrddbpath$curdatabase:$name:AVERAGE\" ";
$graphcmd .= "CDEF:\"$name-bytes_out=$name,0,$speedlimit,LIMIT,UN,0,$name,IF\" ";
$graphcmd .= "CDEF:\"$name-bits_out=$name-bytes_out,8,*\" ";
- $graphcmd .= "$AREA:\"$name-bits_out#${color}:$name\" ";
+ $graphcmd .= "$AREA:\"$name-bits_out#${color}:$name$stack\" ";
$t++;
if($t > 7) { $t = 0; }
}
@@ -942,7 +947,7 @@ elseif((strstr($curdatabase, "-queuedrops.rrd")) && (file_exists("$rrddbpath$cur
$graphcmd .= "CDEF:\"$name-bytes_out=$name,0,$speedlimit,LIMIT,UN,0,$name,IF\" ";
$graphcmd .= "CDEF:\"$name-bits_out=$name-bytes_out,8,*\" ";
$graphcmd .= "CDEF:\"$name-bits_out_neg=$name-bits_out,$multiplier,*\" ";
- $graphcmd .= "$AREA:\"$name-bits_out_neg#${color}:$name\" ";
+ $graphcmd .= "$AREA:\"$name-bits_out_neg#${color}:$name$stack\" ";
$t++;
if($t > 7) { $t = 0; }
}
diff --git a/usr/local/www/status_rrd_graph_settings.php b/usr/local/www/status_rrd_graph_settings.php
index 551fccb..6a30cc4 100755
--- a/usr/local/www/status_rrd_graph_settings.php
+++ b/usr/local/www/status_rrd_graph_settings.php
@@ -106,7 +106,7 @@ foreach($databases as $database) {
if(stristr($database, "-vpnusers")) {
$vpnusers = true;
}
- if(stristr($database, "captiveportal-") && isset($config['captiveportal']['enable'])) {
+ if(stristr($database, "captiveportal-") && is_array($config['captiveportal'])) {
$captiveportal = true;
}
}
diff --git a/usr/local/www/status_services.php b/usr/local/www/status_services.php
index 0bcb45f..1f1fee5 100755
--- a/usr/local/www/status_services.php
+++ b/usr/local/www/status_services.php
@@ -38,180 +38,21 @@
##|-PRIV
require_once("guiconfig.inc");
-require_once("captiveportal.inc");
require_once("service-utils.inc");
-require_once("ipsec.inc");
-require_once("vpn.inc");
-require_once("vslb.inc");
+require_once("shortcuts.inc");
-if($_GET['mode'] == "restartservice" and !empty($_GET['service'])) {
- switch($_GET['service']) {
- case 'radvd':
- services_radvd_configure();
+if (!empty($_GET['service'])) {
+ switch ($_GET['mode']) {
+ case "restartservice":
+ $savemsg = service_control_restart($_GET['service'], $_GET);
break;
- case 'captiveportal':
- $zone = $_GET['zone'];
- killbypid("{$g['varrun_path']}/lighty-{$zone}-CaptivePortal.pid");
- killbypid("{$g['varrun_path']}/lighty-{$zone}-CaptivePortal-SSL.pid");
- captiveportal_init_webgui_zonename($zone);
+ case "startservice":
+ $savemsg = service_control_start($_GET['service'], $_GET);
break;
- case 'ntpd':
- case 'openntpd':
- system_ntp_configure();
- break;
- case 'bsnmpd':
- services_snmpd_configure();
- break;
- case 'dnsmasq':
- services_dnsmasq_configure();
- break;
- case 'dhcpd':
- services_dhcpd_configure();
- break;
- case 'igmpproxy':
- services_igmpproxy_configure();
- break;
- case 'miniupnpd':
- upnp_action('restart');
- break;
- case 'racoon':
- vpn_ipsec_force_reload();
- break;
- case 'openvpn':
- $vpnmode = $_GET['vpnmode'];
- if ($vpnmode == "server" || $vpnmode == "client") {
- $id = $_GET['id'];
- $configfile = "{$g['varetc_path']}/openvpn/{$vpnmode}{$id}.conf";
- $pidfile = $g['varrun_path'] . "/openvpn_{$vpnmode}{$id}.pid";
- if (file_exists($configfile)) {
- killbypid($pidfile);
- sleep(1);
- mwexec_bg("/usr/local/sbin/openvpn --config {$configfile}");
- }
- }
- break;
- case 'relayd':
- relayd_configure(true);
- break;
- default:
- restart_service($_GET['service']);
+ case "stopservice":
+ $savemsg = service_control_stop($_GET['service'], $_GET);
break;
}
- $savemsg = sprintf(gettext("%s has been restarted."),htmlspecialchars($_GET['service']));
- sleep(5);
-}
-
-if($_GET['mode'] == "startservice" and !empty($_GET['service'])) {
- switch($_GET['service']) {
- case 'radvd':
- services_radvd_configure();
- break;
- case 'captiveportal':
- $zone = $_GET['zone'];
- captiveportal_init_webgui_zonename($zone);
- break;
- case 'ntpd':
- case 'openntpd':
- system_ntp_configure();
- break;
- case 'bsnmpd':
- services_snmpd_configure();
- break;
- case 'dnsmasq':
- services_dnsmasq_configure();
- break;
- case 'dhcpd':
- services_dhcpd_configure();
- break;
- case 'igmpproxy':
- services_igmpproxy_configure();
- break;
- case 'miniupnpd':
- upnp_action('start');
- break;
- case 'racoon':
- vpn_ipsec_force_reload();
- break;
- case 'openvpn':
- $vpnmode = $_GET['vpnmode'];
- if (($vpnmode == "server") || ($vpnmode == "client")) {
- $id = $_GET['id'];
- $configfile = "{$g['varetc_path']}/openvpn/{$vpnmode}{$id}.conf";
- if (file_exists($configfile))
- mwexec_bg("/usr/local/sbin/openvpn --config {$configfile}");
- }
- break;
- case 'relayd':
- relayd_configure();
- break;
- default:
- start_service($_GET['service']);
- break;
- }
- $savemsg = sprintf(gettext("%s has been started."),htmlspecialchars($_GET['service']));
- sleep(5);
-}
-
-/* stop service */
-if($_GET['mode'] == "stopservice" && !empty($_GET['service'])) {
- switch($_GET['service']) {
- case 'radvd':
- killbypid("{$g['varrun_path']}/radvd.pid");
- break;
- case 'captiveportal':
- $zone = $_GET['zone'];
- killbypid("{$g['varrun_path']}/lighty-{$zone}-CaptivePortal.pid");
- killbypid("{$g['varrun_path']}/lighty-{$zone}-CaptivePortal-SSL.pid");
- break;
- case 'ntpd':
- killbyname("ntpd");
- break;
- case 'openntpd':
- killbyname("openntpd");
- break;
- case 'bsnmpd':
- killbypid("{$g['varrun_path']}/snmpd.pid");
- break;
- case 'choparp':
- killbyname("choparp");
- break;
- case 'dhcpd':
- killbyname("dhcpd");
- break;
- case 'dhcrelay':
- killbypid("{$g['varrun_path']}/dhcrelay.pid");
- break;
- case 'dnsmasq':
- killbypid("{$g['varrun_path']}/dnsmasq.pid");
- break;
- case 'igmpproxy':
- killbyname("igmpproxy");
- break;
- case 'miniupnpd':
- upnp_action('stop');
- break;
- case 'sshd':
- killbyname("sshd");
- break;
- case 'racoon':
- exec("killall -9 racoon");
- break;
- case 'openvpn':
- $vpnmode = $_GET['vpnmode'];
- if (($vpnmode == "server") or ($vpnmode == "client")) {
- $id = $_GET['id'];
- $pidfile = "{$g['varrun_path']}/openvpn_{$vpnmode}{$id}.pid";
- killbypid($pidfile);
- }
- break;
- case 'relayd':
- mwexec('pkill relayd');
- break;
- default:
- stop_service($_GET['service']);
- break;
- }
- $savemsg = sprintf(gettext("%s has been stopped."), htmlspecialchars($_GET['service']));
sleep(5);
}
@@ -231,10 +72,8 @@ include("fbegin.inc");
<form action="status_services.php" method="post">
<?php if ($savemsg) print_info_box($savemsg); ?>
-<p>
-
<div id="boxarea">
-<table class="tabcont sortable" width="100%" border="0" cellpadding="0" cellspacing="0">
+<table class="tabcont sortable" width="100%" border="0" cellpadding="0" cellspacing="0" summary="status services">
<thead>
<tr>
<td class="listhdrr" align="center"><?=gettext("Service");?></td>
@@ -257,7 +96,7 @@ if (count($services) > 0) {
echo '<tr><td class="listlr" width="20%">' . $service['name'] . '</td>' . "\n";
echo '<td class="listr" width="55%">' . $service['description'] . '</td>' . "\n";
echo get_service_status_icon($service, true, true);
- echo '<td valign="middle" class="list" nowrap>';
+ echo '<td valign="middle" class="list nowrap">';
echo get_service_control_links($service);
$scut = get_shortcut_by_service_name($service['name']);
if (!empty($scut)) {
@@ -275,7 +114,6 @@ if (count($services) > 0) {
</tbody>
</table>
</div>
-</p>
</form>
<?php include("fend.inc"); ?>
</body>
diff --git a/usr/local/www/status_upnp.php b/usr/local/www/status_upnp.php
index 50386b1..0f0c66b 100644
--- a/usr/local/www/status_upnp.php
+++ b/usr/local/www/status_upnp.php
@@ -63,7 +63,7 @@ include("head.inc");
<?php include("fbegin.inc"); ?>
<?php if ($savemsg) print_info_box($savemsg); ?>
<?php
-if(!$config['installedpackages']['miniupnpd']['config'][0]['iface_array'] ||
+if(!$config['installedpackages'] || !$config['installedpackages']['miniupnpd']['config'][0]['iface_array'] ||
!$config['installedpackages']['miniupnpd']['config'][0]['enable']) {
echo gettext("UPnP is currently disabled.");
include("fend.inc");
diff --git a/usr/local/www/system.php b/usr/local/www/system.php
index 10606c7..aebe82b 100755
--- a/usr/local/www/system.php
+++ b/usr/local/www/system.php
@@ -246,17 +246,17 @@ include("head.inc");
print_info_box($savemsg);
?>
<form action="system.php" method="post">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="general setup">
<tr>
<td id="mainarea">
<div class="tabcont">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("System"); ?></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Hostname"); ?></td>
- <td width="78%" class="vtable"> <input name="hostname" type="text" class="formfld unknown" id="hostname" size="40" value="<?=htmlspecialchars($pconfig['hostname']);?>">
+ <td width="78%" class="vtable"> <input name="hostname" type="text" class="formfld unknown" id="hostname" size="40" value="<?=htmlspecialchars($pconfig['hostname']);?>" />
<br/>
<span class="vexpl">
<?=gettext("Name of the firewall host, without domain part"); ?>
@@ -267,7 +267,7 @@ include("head.inc");
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Domain"); ?></td>
- <td width="78%" class="vtable"> <input name="domain" type="text" class="formfld unknown" id="domain" size="40" value="<?=htmlspecialchars($pconfig['domain']);?>">
+ <td width="78%" class="vtable"> <input name="domain" type="text" class="formfld unknown" id="domain" size="40" value="<?=htmlspecialchars($pconfig['domain']);?>" />
<br/>
<span class="vexpl">
<?=gettext("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."); ?>
@@ -279,8 +279,8 @@ include("head.inc");
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("DNS servers"); ?></td>
<td width="78%" class="vtable">
- <p>
- <table>
+ <br/>
+ <table summary="dns servers and gateways">
<tr>
<td><b><?=gettext("DNS Server"); ?></b></td>
<?php if ($multiwan): ?>
@@ -293,7 +293,7 @@ include("head.inc");
?>
<tr>
<td>
- <input name="dns<?php echo $dnscounter;?>" type="text" class="formfld unknown" id="dns<?php echo $dnscounter;?>" size="28" value="<?php echo $pconfig['dns'.$dnscounter];?>">
+ <input name="dns<?php echo $dnscounter;?>" type="text" class="formfld unknown" id="dns<?php echo $dnscounter;?>" size="28" value="<?php echo $pconfig['dns'.$dnscounter];?>" />
</td>
<td>
<?php if ($multiwan): ?>
@@ -302,13 +302,13 @@ include("head.inc");
$gwname = "none";
$dnsgw = "dns{$dnscounter}gw";
if($pconfig[$dnsgw] == $gwname) {
- $selected = "selected";
+ $selected = "selected=\"selected\"";
} else {
$selected = "";
}
echo "<option value='$gwname' $selected>$gwname</option>\n";
foreach($arr_gateways as $gwname => $gwitem) {
- echo $pconfig[$dnsgw];
+ //echo $pconfig[$dnsgw];
if((is_ipaddrv4(lookup_gateway_ip_by_name($pconfig[$dnsgw])) && (is_ipaddrv6($gwitem['gateway'])))) {
continue;
}
@@ -316,12 +316,11 @@ include("head.inc");
continue;
}
if($pconfig[$dnsgw] == $gwname) {
- $selected = "selected";
+ $selected = "selected=\"selected\"";
} else {
$selected = "";
}
- echo "<option value='$gwname' $selected>$gwname - {$gwitem['friendlyiface']} - {$gwitem['gateway']}
-</option>\n";
+ echo "<option value='$gwname' $selected>$gwname - {$gwitem['friendlyiface']} - {$gwitem['gateway']}</option>\n";
}
?>
</select>
@@ -330,7 +329,7 @@ include("head.inc");
</tr>
<?php endfor; ?>
</table>
- <br>
+ <br />
<span class="vexpl">
<?=gettext("Enter IP addresses to by used by the system for DNS resolution." .
"These are also used for the DHCP service, DNS forwarder and for PPTP VPN clients."); ?>
@@ -342,7 +341,7 @@ include("head.inc");
<br/>
<?php endif; ?>
<br/>
- <input name="dnsallowoverride" type="checkbox" id="dnsallowoverride" value="yes" <?php if ($pconfig['dnsallowoverride']) echo "checked"; ?>>
+ <input name="dnsallowoverride" type="checkbox" id="dnsallowoverride" value="yes" <?php if ($pconfig['dnsallowoverride']) echo "checked=\"checked\""; ?> />
<strong>
<?=gettext("Allow DNS server list to be overridden by DHCP/PPP on WAN"); ?>
</strong>
@@ -354,7 +353,7 @@ include("head.inc");
"VPN clients."), $g['product_name']); ?>
<br />
<br />
- <input name="dnslocalhost" type="checkbox" id="dnslocalhost" value="yes" <?php if ($pconfig['dnslocalhost']) echo "checked"; ?> />
+ <input name="dnslocalhost" type="checkbox" id="dnslocalhost" value="yes" <?php if ($pconfig['dnslocalhost']) echo "checked=\"checked\""; ?> />
<strong>
<?=gettext("Do not use the DNS Forwarder as a DNS server for the firewall"); ?>
</strong>
@@ -362,7 +361,6 @@ include("head.inc");
<?=gettext("By default localhost (127.0.0.1) will be used as the first DNS server where the DNS forwarder is enabled, so system can use the DNS forwarder to perform lookups. ".
"Checking this box omits localhost from the list of DNS servers."); ?>
</span>
- </p>
</td>
</tr>
<tr>
@@ -371,7 +369,7 @@ include("head.inc");
<select name="timezone" id="timezone">
<?php foreach ($timezonelist as $value): ?>
<?php if(strstr($value, "GMT")) continue; ?>
- <option value="<?=htmlspecialchars($value);?>" <?php if ($value == $pconfig['timezone']) echo "selected"; ?>>
+ <option value="<?=htmlspecialchars($value);?>" <?php if ($value == $pconfig['timezone']) echo "selected=\"selected\""; ?>>
<?=htmlspecialchars($value);?>
</option>
<?php endforeach; ?>
@@ -386,7 +384,7 @@ include("head.inc");
<tr>
<td width="22%" valign="top" class="vncell">Time update interval</td>
<td width="78%" class="vtable">
- <input name="timeupdateinterval" type="text" class="formfld unknown" id="timeupdateinterval" size="4" value="<?=htmlspecialchars($pconfig['timeupdateinterval']);?>">
+ <input name="timeupdateinterval" type="text" class="formfld unknown" id="timeupdateinterval" size="4" value="<?=htmlspecialchars($pconfig['timeupdateinterval']);?>" />
<br/>
<span class="vexpl">
Minutes between network time sync. 300 recommended,
@@ -398,7 +396,7 @@ include("head.inc");
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("NTP time server"); ?></td>
<td width="78%" class="vtable">
- <input name="timeservers" type="text" class="formfld unknown" id="timeservers" size="40" value="<?=htmlspecialchars($pconfig['timeservers']);?>">
+ <input name="timeservers" type="text" class="formfld unknown" id="timeservers" size="40" value="<?=htmlspecialchars($pconfig['timeservers']);?>" />
<br/>
<span class="vexpl">
<?=gettext("Use a space to separate multiple hosts (only one " .
@@ -413,7 +411,7 @@ include("head.inc");
<select name="language">
<?php
foreach(get_locale_list() as $lcode => $ldesc) {
- $selected = ' selected';
+ $selected = ' selected="selected"';
if($lcode != $pconfig['language'])
$selected = '';
echo "<option value=\"{$lcode}\"{$selected}>{$ldesc}</option>";
@@ -448,7 +446,7 @@ include("head.inc");
$curtheme = $config['theme'];
$selected = "";
if($f == $curtheme)
- $selected = " SELECTED";
+ $selected = " selected=\"selected\"";
?>
<option <?=$selected;?>><?=$f;?></option>
<?php endforeach; ?>
@@ -466,7 +464,7 @@ include("head.inc");
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
- <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save");?>">
+ <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save");?>" />
</td>
</tr>
</table>
diff --git a/usr/local/www/system_advanced_admin.php b/usr/local/www/system_advanced_admin.php
index 84070fc..3c55a86 100644
--- a/usr/local/www/system_advanced_admin.php
+++ b/usr/local/www/system_advanced_admin.php
@@ -246,8 +246,8 @@ include("head.inc");
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc"); ?>
-<script language="JavaScript">
-<!--
+<script type="text/javascript">
+//<![CDATA[
function prot_change() {
@@ -257,7 +257,7 @@ function prot_change() {
document.getElementById("ssl_opts").style.display="none";
}
-//-->
+//]]>
</script>
<?php
if ($input_errors)
@@ -266,7 +266,7 @@ function prot_change() {
print_info_box($savemsg);
?>
<form action="system_advanced_admin.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="system advanced admin">
<tr>
<td>
<?php
@@ -286,13 +286,13 @@ function prot_change() {
<div class="tabcont">
<span class="vexpl">
<span class="red">
- <strong><?=gettext("NOTE:"); ?>&nbsp</strong>
+ <strong><?=gettext("NOTE:"); ?>&nbsp;</strong>
</span>
<?=gettext("The options on this page are intended for use by advanced users only."); ?>
<br/>
</span>
<br/>
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("webConfigurator"); ?></td>
</tr>
@@ -301,16 +301,16 @@ function prot_change() {
<td width="78%" class="vtable">
<?php
if ($pconfig['webguiproto'] == "http")
- $http_chk = "checked";
+ $http_chk = "checked=\"checked\"";
if ($pconfig['webguiproto'] == "https")
- $https_chk = "checked";
+ $https_chk = "checked=\"checked\"";
if (!$certs_available)
- $https_disabled = "disabled";
+ $https_disabled = "disabled=\"disabled\"";
?>
- <input name="webguiproto" id="http_proto" type="radio" value="http" <?=$http_chk;?> onClick="prot_change()">
+ <input name="webguiproto" id="http_proto" type="radio" value="http" <?=$http_chk;?> onclick="prot_change()" />
<?=gettext("HTTP"); ?>
&nbsp;&nbsp;&nbsp;
- <input name="webguiproto" id="https_proto" type="radio" value="https" <?=$https_chk;?> <?=$https_disabled;?> onClick="prot_change()">
+ <input name="webguiproto" id="https_proto" type="radio" value="https" <?=$https_chk;?> <?=$https_disabled;?> onclick="prot_change()" />
<?=gettext("HTTPS"); ?>
<?php if (!$certs_available): ?>
<br/>
@@ -328,7 +328,7 @@ function prot_change() {
foreach($a_cert as $cert):
$selected = "";
if ($pconfig['ssl-certref'] == $cert['refid'])
- $selected = "selected";
+ $selected = "selected=\"selected\"";
?>
<option value="<?=$cert['refid'];?>"<?=$selected;?>><?=$cert['descr'];?></option>
<?php endforeach; ?>
@@ -338,8 +338,8 @@ function prot_change() {
<tr>
<td valign="top" class="vncell"><?=gettext("TCP port"); ?></td>
<td class="vtable">
- <input name="webguiport" type="text" class="formfld unknown" id="webguiport" "size="5" value="<?=htmlspecialchars($config['system']['webgui']['port']);?>">
- <br>
+ <input name="webguiport" type="text" class="formfld unknown" id="webguiport" size="5" value="<?=htmlspecialchars($config['system']['webgui']['port']);?>" />
+ <br />
<span class="vexpl">
<?=gettext("Enter a custom port number for the webConfigurator " .
"above if you want to override the default (80 for HTTP, 443 " .
@@ -350,8 +350,8 @@ function prot_change() {
<tr>
<td valign="top" class="vncell"><?=gettext("Max Processes"); ?></td>
<td class="vtable">
- <input name="max_procs" type="text" class="formfld unknown" id="max_procs" "size="5" value="<?=htmlspecialchars($pconfig['max_procs']);?>">
- <br>
+ <input name="max_procs" type="text" class="formfld unknown" id="max_procs" size="5" value="<?=htmlspecialchars($pconfig['max_procs']);?>" />
+ <br />
<span class="vexpl">
<?=gettext("Enter the number of webConfigurator processes you " .
"want to run. This defaults to 2. Increasing this will allow more " .
@@ -362,7 +362,7 @@ function prot_change() {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("WebGUI redirect"); ?></td>
<td width="78%" class="vtable">
- <input name="disablehttpredirect" type="checkbox" id="disablehttpredirect" value="yes" <?php if ($pconfig['disablehttpredirect']) echo "checked"; ?> />
+ <input name="disablehttpredirect" type="checkbox" id="disablehttpredirect" value="yes" <?php if ($pconfig['disablehttpredirect']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Disable webConfigurator redirect rule"); ?></strong>
<br/>
<?php echo gettext("When this is unchecked, access to the webConfigurator " .
@@ -374,7 +374,7 @@ function prot_change() {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("WebGUI Login Autocomplete"); ?></td>
<td width="78%" class="vtable">
- <input name="noautocomplete" type="checkbox" id="noautocomplete" value="yes" <?php if ($pconfig['noautocomplete']) echo "checked"; ?> />
+ <input name="noautocomplete" type="checkbox" id="noautocomplete" value="yes" <?php if ($pconfig['noautocomplete']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Disable webConfigurator login autocomplete"); ?></strong>
<br/>
<?php echo gettext("When this is unchecked, login credentials for the webConfigurator " .
@@ -386,7 +386,7 @@ function prot_change() {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("WebGUI login messages"); ?></td>
<td width="78%" class="vtable">
- <input name="quietlogin" type="checkbox" id="quietlogin" value="yes" <?php if ($pconfig['quietlogin']) echo "checked"; ?> />
+ <input name="quietlogin" type="checkbox" id="quietlogin" value="yes" <?php if ($pconfig['quietlogin']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Disable logging of webConfigurator successful logins"); ?></strong>
<br/>
<?php echo gettext("When this is checked, successful logins to the webConfigurator " .
@@ -403,7 +403,7 @@ function prot_change() {
else
$lockout_interface = "WAN";
?>
- <input name="noantilockout" type="checkbox" id="noantilockout" value="yes" <?php if ($pconfig['noantilockout']) echo "checked"; ?> />
+ <input name="noantilockout" type="checkbox" id="noantilockout" value="yes" <?php if ($pconfig['noantilockout']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Disable webConfigurator anti-lockout rule"); ?></strong>
<br/>
<?php printf(gettext("When this is unchecked, access to the webConfigurator " .
@@ -418,7 +418,7 @@ function prot_change() {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("DNS Rebind Check"); ?></td>
<td width="78%" class="vtable">
- <input name="nodnsrebindcheck" type="checkbox" id="nodnsrebindcheck" value="yes" <?php if ($pconfig['nodnsrebindcheck']) echo "checked"; ?> />
+ <input name="nodnsrebindcheck" type="checkbox" id="nodnsrebindcheck" value="yes" <?php if ($pconfig['nodnsrebindcheck']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Disable DNS Rebinding Checks"); ?></strong>
<br/>
<?php echo gettext("When this is unchecked, your system " .
@@ -441,13 +441,13 @@ function prot_change() {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Browser HTTP_REFERER enforcement"); ?></td>
<td width="78%" class="vtable">
- <input name="nohttpreferercheck" type="checkbox" id="nohttpreferercheck" value="yes" <?php if ($pconfig['nohttpreferercheck']) echo "checked"; ?> />
+ <input name="nohttpreferercheck" type="checkbox" id="nohttpreferercheck" value="yes" <?php if ($pconfig['nohttpreferercheck']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Disable HTTP_REFERER enforcement check"); ?></strong>
<br/>
<?php echo gettext("When this is unchecked, access to the webConfigurator " .
"is protected against HTTP_REFERER redirection attempts. " .
"Check this box to disable this protection if you find that it interferes with " .
- "webConfigurator access in certain corner cases such as using external scripts to interact with this system. More information on HTTP_REFERER is available from <a target='_new' href='http://en.wikipedia.org/wiki/HTTP_referrer'>Wikipedia</a>."); ?>
+ "webConfigurator access in certain corner cases such as using external scripts to interact with this system. More information on HTTP_REFERER is available from <a target='_blank' href='http://en.wikipedia.org/wiki/HTTP_referrer'>Wikipedia</a>."); ?>
</td>
</tr>
<tr>
@@ -459,14 +459,14 @@ function prot_change() {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Secure Shell Server"); ?></td>
<td width="78%" class="vtable">
- <input name="enablesshd" type="checkbox" id="enablesshd" value="yes" <?php if (isset($pconfig['enablesshd'])) echo "checked"; ?> />
+ <input name="enablesshd" type="checkbox" id="enablesshd" value="yes" <?php if (isset($pconfig['enablesshd'])) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Enable Secure Shell"); ?></strong>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Authentication Method"); ?></td>
<td width="78%" class="vtable">
- <input name="sshdkeyonly" type="checkbox" id="sshdkeyonly" value="yes" <?php if ($pconfig['sshdkeyonly']) echo "checked"; ?> />
+ <input name="sshdkeyonly" type="checkbox" id="sshdkeyonly" value="yes" <?php if ($pconfig['sshdkeyonly']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Disable password login for Secure Shell (RSA/DSA key only)"); ?></strong>
<br/>
<?=gettext("When enabled, authorized keys need to be configured for each"); ?>
@@ -492,7 +492,7 @@ function prot_change() {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Serial Terminal"); ?></td>
<td width="78%" class="vtable">
- <input name="enableserial" type="checkbox" id="enableserial" value="yes" <?php if (isset($pconfig['enableserial'])) echo "checked"; ?> />
+ <input name="enableserial" type="checkbox" id="enableserial" value="yes" <?php if (isset($pconfig['enableserial'])) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Enables the first serial port with 9600/8/N/1 by default, or another speed selectable below."); ?></strong>
<span class="vexpl"><?=gettext("Note: This will redirect the console output and messages to the serial port. You can still access the console menu from the internal video card/keyboard. A <b>null modem</b> serial cable or adapter is required to use the serial console."); ?></span>
</td>
@@ -502,12 +502,12 @@ function prot_change() {
<td width="22%" valign="top" class="vncell"><?=gettext("Serial Speed")?></td>
<td width="78%" class="vtable">
<select name="serialspeed" id="serialspeed" class="formselect">
- <option value="9600" <?php if ($pconfig['serialspeed'] == "9600") echo "selected";?>>9600</option>
- <option value="14400" <?php if ($pconfig['serialspeed'] == "14400") echo "selected";?>>14400</option>
- <option value="19200" <?php if ($pconfig['serialspeed'] == "19200") echo "selected";?>>19200</option>
- <option value="38400" <?php if ($pconfig['serialspeed'] == "38400") echo "selected";?>>38400</option>
- <option value="57600" <?php if ($pconfig['serialspeed'] == "57600") echo "selected";?>>57600</option>
- <option value="115200" <?php if ($pconfig['serialspeed'] == "115200") echo "selected";?>>115200</option>
+ <option value="9600" <?php if ($pconfig['serialspeed'] == "9600") echo "selected=\"selected\"";?>>9600</option>
+ <option value="14400" <?php if ($pconfig['serialspeed'] == "14400") echo "selected=\"selected\"";?>>14400</option>
+ <option value="19200" <?php if ($pconfig['serialspeed'] == "19200") echo "selected=\"selected\"";?>>19200</option>
+ <option value="38400" <?php if ($pconfig['serialspeed'] == "38400") echo "selected=\"selected\"";?>>38400</option>
+ <option value="57600" <?php if ($pconfig['serialspeed'] == "57600") echo "selected=\"selected\"";?>>57600</option>
+ <option value="115200" <?php if ($pconfig['serialspeed'] == "115200") echo "selected=\"selected\"";?>>115200</option>
</select> bps
<br/><?=gettext("Allows selection of different speeds for the serial console port."); ?>
</td>
@@ -521,7 +521,7 @@ function prot_change() {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Console menu"); ?></td>
<td width="78%" class="vtable">
- <input name="disableconsolemenu" type="checkbox" id="disableconsolemenu" value="yes" <?php if ($pconfig['disableconsolemenu']) echo "checked"; ?> />
+ <input name="disableconsolemenu" type="checkbox" id="disableconsolemenu" value="yes" <?php if ($pconfig['disableconsolemenu']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Password protect the console menu"); ?></strong>
<br/>
<span class="vexpl"><?=gettext("Changes to this option will take effect after a reboot."); ?></span>
@@ -543,16 +543,16 @@ function prot_change() {
</tr>
</table>
</form>
- <script language="JavaScript" type="text/javascript">
- <!--
+ <script type="text/javascript">
+ //<![CDATA[
prot_change();
- //-->
+ //]]>
</script>
<?php include("fend.inc"); ?>
<?php
if ($restart_webgui)
- echo "<meta http-equiv=\"refresh\" content=\"20;url={$url}\">";
+ echo "<meta http-equiv=\"refresh\" content=\"20;url={$url}\" />";
?>
</body>
</html>
diff --git a/usr/local/www/system_advanced_firewall.php b/usr/local/www/system_advanced_firewall.php
index db0aaa4..1872096 100644
--- a/usr/local/www/system_advanced_firewall.php
+++ b/usr/local/www/system_advanced_firewall.php
@@ -54,11 +54,14 @@ $pconfig['scrubnodf'] = $config['system']['scrubnodf'];
$pconfig['scrubrnid'] = $config['system']['scrubrnid'];
$pconfig['tcpidletimeout'] = $config['filter']['tcpidletimeout'];
$pconfig['optimization'] = $config['filter']['optimization'];
+$pconfig['adaptivestart'] = $config['system']['adaptivestart'];
+$pconfig['adaptiveend'] = $config['system']['adaptiveend'];
$pconfig['maximumstates'] = $config['system']['maximumstates'];
$pconfig['maximumtables'] = $config['system']['maximumtables'];
$pconfig['maximumtableentries'] = $config['system']['maximumtableentries'];
$pconfig['disablereplyto'] = isset($config['system']['disablereplyto']);
$pconfig['disablenegate'] = isset($config['system']['disablenegate']);
+$pconfig['bogonsinterval'] = $config['system']['bogons']['interval'];
$pconfig['disablenatreflection'] = $config['system']['disablenatreflection'];
$pconfig['enablebinatreflection'] = $config['system']['enablebinatreflection'];
$pconfig['reflectiontimeout'] = $config['system']['reflectiontimeout'];
@@ -73,6 +76,14 @@ if ($_POST) {
$pconfig = array_merge($pconfig, $_POST);
/* input validation */
+ if ((empty($_POST['adaptivestart']) && !empty($_POST['adaptiveend'])) || (!empty($_POST['adaptivestart']) && empty($_POST['adaptiveend'])))
+ $input_errors[] = gettext("The Firewall Adaptive values must be set together.");
+ if (!empty($_POST['adaptivestart']) && !is_numericint($_POST['adaptivestart'])) {
+ $input_errors[] = gettext("The Firewall Adaptive Start value must be an integer.");
+ }
+ if (!empty($_POST['adaptiveend']) && !is_numericint($_POST['adaptiveend'])) {
+ $input_errors[] = gettext("The Firewall Adaptive End value must be an integer.");
+ }
if ($_POST['maximumstates'] && !is_numericint($_POST['maximumstates'])) {
$input_errors[] = gettext("The Firewall Maximum States value must be an integer.");
}
@@ -118,6 +129,15 @@ if ($_POST) {
else
unset($config['system']['scrubrnid']);
+ if (!empty($_POST['adaptiveend']))
+ $config['system']['adaptiveend'] = $_POST['adaptiveend'];
+ else
+ unset($config['system']['adaptiveend']);
+ if (!empty($_POST['adaptivestart']))
+ $config['system']['adaptivestart'] = $_POST['adaptivestart'];
+ else
+ unset($config['system']['adaptivestart']);
+
$config['system']['optimization'] = $_POST['optimization'];
$config['system']['maximumstates'] = $_POST['maximumstates'];
$config['system']['maximumtables'] = $_POST['maximumtables'];
@@ -170,6 +190,22 @@ if ($_POST) {
$config['system']['tftpinterface'] = implode(",", $_POST['tftpinterface']);
else
unset($config['system']['tftpinterface']);
+
+ if ($_POST['bogonsinterval'] != $config['system']['bogons']['interval']) {
+ switch ($_POST['bogonsinterval']) {
+ case 'daily':
+ install_cron_job("/usr/bin/nice -n20 /etc/rc.update_bogons.sh", true, "1", "3", "*", "*", "*");
+ break;
+ case 'weekly':
+ install_cron_job("/usr/bin/nice -n20 /etc/rc.update_bogons.sh", true, "1", "3", "*", "*", "0");
+ break;
+ case 'monthly':
+ // fall through
+ default:
+ install_cron_job("/usr/bin/nice -n20 /etc/rc.update_bogons.sh", true, "1", "3", "1", "*", "*");
+ }
+ $config['system']['bogons']['interval'] = $_POST['bogonsinterval'];
+ }
write_config();
@@ -190,8 +226,8 @@ include("head.inc");
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc"); ?>
-<script language="JavaScript">
-<!--
+<script type="text/javascript">
+//<![CDATA[
var descs=new Array(5);
descs[0]="<?=gettext("as the name says, it's the normal optimization algorithm");?>";
@@ -204,7 +240,7 @@ function update_description(itemnum) {
}
-//-->
+//]]>
</script>
<?php
@@ -214,7 +250,7 @@ function update_description(itemnum) {
print_info_box($savemsg);
?>
<form action="system_advanced_firewall.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="system advanced firewall/nat">
<tr>
<td class="tabnavtbl">
<?php
@@ -227,7 +263,6 @@ function update_description(itemnum) {
$tab_array[] = array(gettext("Notifications"), false, "system_advanced_notifications.php");
display_top_tabs($tab_array);
?>
- </ul>
</td>
</tr>
<tr>
@@ -235,20 +270,20 @@ function update_description(itemnum) {
<div class="tabcont">
<span class="vexpl">
<span class="red">
- <strong><?=gettext("NOTE:");?>&nbsp</strong>
+ <strong><?=gettext("NOTE:");?>&nbsp;</strong>
</span>
<?=gettext("The options on this page are intended for use by advanced users only.");?>
<br/>
</span>
<br/>
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Firewall Advanced");?></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("IP Do-Not-Fragment compatibility");?></td>
<td width="78%" class="vtable">
- <input name="scrubnodf" type="checkbox" id="scrubnodf" value="yes" <?php if (isset($config['system']['scrubnodf'])) echo "checked"; ?> />
+ <input name="scrubnodf" type="checkbox" id="scrubnodf" value="yes" <?php if (isset($config['system']['scrubnodf'])) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Clear invalid DF bits instead of dropping the packets");?></strong><br/>
<?=gettext("This allows for communications with hosts that generate fragmented " .
"packets with the don't fragment (DF) bit set. Linux NFS is known to " .
@@ -259,7 +294,7 @@ function update_description(itemnum) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("IP Random id generation");?></td>
<td width="78%" class="vtable">
- <input name="scrubrnid" type="checkbox" id="scrubnodf" value="yes" <?php if (isset($config['system']['scrubrnid'])) echo "checked"; ?> />
+ <input name="scrubrnid" type="checkbox" id="scrubrnid" value="yes" <?php if (isset($config['system']['scrubrnid'])) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Insert a stronger id into IP header of packets passing through the filter.");?></strong><br/>
<?=gettext("Replaces the IP identification field of packets with random values to " .
"compensate for operating systems that use predictable values. " .
@@ -270,16 +305,18 @@ function update_description(itemnum) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Firewall Optimization Options");?></td>
<td width="78%" class="vtable">
- <select onChange="update_description(this.selectedIndex);" name="optimization" id="optimization">
- <option value="normal"<?php if($config['system']['optimization']=="normal") echo " selected"; ?>><?=gettext("normal");?></option>
- <option value="high-latency"<?php if($config['system']['optimization']=="high-latency") echo " selected"; ?>><?=gettext("high-latency");?></option>
- <option value="aggressive"<?php if($config['system']['optimization']=="aggressive") echo " selected"; ?>><?=gettext("aggressive");?></option>
- <option value="conservative"<?php if($config['system']['optimization']=="conservative") echo " selected"; ?>><?=gettext("conservative");?></option>
+ <select onchange="update_description(this.selectedIndex);" name="optimization" id="optimization">
+ <option value="normal"<?php if($config['system']['optimization']=="normal") echo " selected=\"selected\""; ?>><?=gettext("normal");?></option>
+ <option value="high-latency"<?php if($config['system']['optimization']=="high-latency") echo " selected=\"selected\""; ?>><?=gettext("high-latency");?></option>
+ <option value="aggressive"<?php if($config['system']['optimization']=="aggressive") echo " selected=\"selected\""; ?>><?=gettext("aggressive");?></option>
+ <option value="conservative"<?php if($config['system']['optimization']=="conservative") echo " selected=\"selected\""; ?>><?=gettext("conservative");?></option>
</select>
<br/>
- <textarea readonly="yes" cols="60" rows="2" id="info" name="info"style="padding:5px; border:1px dashed #990000; background-color: #ffffff; color: #000000; font-size: 8pt;"></textarea>
- <script language="javascript" type="text/javascript">
+ <textarea readonly="readonly" cols="60" rows="2" id="info" name="info"style="padding:5px; border:1px dashed #990000; background-color: #ffffff; color: #000000; font-size: 8pt;"></textarea>
+ <script type="text/javascript">
+ //<![CDATA[
update_description(document.forms[0].optimization.selectedIndex);
+ //]]>
</script>
<br/>
<?=gettext("Select the type of state table optimization to use");?>
@@ -288,10 +325,10 @@ function update_description(itemnum) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Disable Firewall");?></td>
<td width="78%" class="vtable">
- <input name="disablefilter" type="checkbox" id="disablefilter" value="yes" <?php if (isset($config['system']['disablefilter'])) echo "checked"; ?> />
+ <input name="disablefilter" type="checkbox" id="disablefilter" value="yes" <?php if (isset($config['system']['disablefilter'])) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Disable all packet filtering.");?></strong>
<br/>
- <span class="vexpl"><?php printf(gettext("Note: This converts %s into a routing only platform!"), $g['product_name']);?><br>
+ <span class="vexpl"><?php printf(gettext("Note: This converts %s into a routing only platform!"), $g['product_name']);?><br />
<?=gettext("Note: This will also turn off NAT!");?>
<br/><?=gettext("If you only want to disable NAT, and not firewall rules, visit the");?> <a href="firewall_nat_out.php"><?=gettext("Outbound NAT");?></a> <?=gettext("page");?>.
</span>
@@ -300,12 +337,27 @@ function update_description(itemnum) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Disable Firewall Scrub");?></td>
<td width="78%" class="vtable">
- <input name="disablescrub" type="checkbox" id="disablescrub" value="yes" <?php if (isset($config['system']['disablescrub'])) echo "checked"; ?> />
+ <input name="disablescrub" type="checkbox" id="disablescrub" value="yes" <?php if (isset($config['system']['disablescrub'])) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Disables the PF scrubbing option which can sometimes interfere with NFS and PPTP traffic.");?></strong>
<br/>
</td>
</tr>
<tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Firewall Adaptive Timeouts");?></td>
+ <td width="78%" class="vtable">
+ <strong><?=gettext("Timeouts for states can be scaled adaptively as the number of state table entries grows.");?></strong>
+ <br/>
+ <input name="adaptivestart" type="text" id="adaptivestart" value="<?php echo $pconfig['adaptivestart']; ?>" />
+ <br/><?=gettext("When the number of state entries exceeds this value, adaptive scaling begins. All timeout values are scaled linearly with factor (adaptive.end - number of states) / (adaptive.end - adaptive.start).");?>
+
+ <br/>
+ <input name="adaptiveend" type="text" id="adaptiveend" value="<?php echo $pconfig['adaptiveend']; ?>" />
+ <br/><?=gettext("When reaching this number of state entries, all timeout values become zero, effectively purging all state entries immediately. This value is used to define the scale factor, it should not actually be reached (set a lower state limit, see below).");?>
+ <br/>
+ <span class="vexpl"><?=gettext("Note: Leave this blank for the default(0).");?></span>
+ </td>
+ </tr>
+ <tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Firewall Maximum States");?></td>
<td width="78%" class="vtable">
<input name="maximumstates" type="text" id="maximumstates" value="<?php echo $pconfig['maximumstates']; ?>" />
@@ -349,7 +401,7 @@ function update_description(itemnum) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Static route filtering");?></td>
<td width="78%" class="vtable">
- <input name="bypassstaticroutes" type="checkbox" id="bypassstaticroutes" value="yes" <?php if ($pconfig['bypassstaticroutes']) echo "checked"; ?> />
+ <input name="bypassstaticroutes" type="checkbox" id="bypassstaticroutes" value="yes" <?php if ($pconfig['bypassstaticroutes']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Bypass firewall rules for traffic on the same interface");?></strong>
<br/>
<?=gettext("This option only applies if you have defined one or more static routes. If it is enabled, traffic that enters and " .
@@ -361,7 +413,7 @@ function update_description(itemnum) {
<tr>
<td width="22%" valign="top" class="vncell">Disable Auto-added VPN rules</td>
<td width="78%" class="vtable">
- <input name="disablevpnrules" type="checkbox" id="disablevpnrules" value="yes" <?php if (isset($config['system']['disablevpnrules'])) echo "checked"; ?> />
+ <input name="disablevpnrules" type="checkbox" id="disablevpnrules" value="yes" <?php if (isset($config['system']['disablevpnrules'])) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Disable all auto-added VPN rules.");?></strong>
<br />
<span class="vexpl"><?=gettext("Note: This disables automatically added rules for IPsec, PPTP.");?>
@@ -371,7 +423,7 @@ function update_description(itemnum) {
<tr>
<td width="22%" valign="top" class="vncell">Disable reply-to</td>
<td width="78%" class="vtable">
- <input name="disablereplyto" type="checkbox" id="disablereplyto" value="yes" <?php if ($pconfig['disablereplyto']) echo "checked"; ?> />
+ <input name="disablereplyto" type="checkbox" id="disablereplyto" value="yes" <?php if ($pconfig['disablereplyto']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Disable reply-to on WAN rules");?></strong>
<br />
<?=gettext("With Multi-WAN you generally want to ensure traffic leaves the same interface it arrives on, hence reply-to is added automatically by default. " .
@@ -382,7 +434,7 @@ function update_description(itemnum) {
<tr>
<td width="22%" valign="top" class="vncell">Disable Negate rules</td>
<td width="78%" class="vtable">
- <input name="disablenegate" type="checkbox" id="disablenegate" value="yes" <?php if ($pconfig['disablenegate']) echo "checked"; ?> />
+ <input name="disablenegate" type="checkbox" id="disablenegate" value="yes" <?php if ($pconfig['disablenegate']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Disable Negate rule on policy routing rules");?></strong>
<br />
<?=gettext("With Multi-WAN you generally want to ensure traffic reaches directly connected networks and VPN networks when using policy routing. You can disable this for special purposes but it requires manually creating rules for these networks");?>
@@ -392,6 +444,24 @@ function update_description(itemnum) {
<tr>
<td colspan="2" class="list" height="12">&nbsp;</td>
</tr>
+ <tr>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("Bogon Networks");?></td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Update Frequency");?></td>
+ <td width="78%" class="vtable">
+ <select name="bogonsinterval" class="formselect">
+ <option value="monthly" <?php if (empty($pconfig['bogonsinterval']) || $pconfig['bogonsinterval'] == 'monthly') echo "selected=\"selected\""; ?>><?=gettext("Monthly"); ?></option>
+ <option value="weekly" <?php if ($pconfig['bogonsinterval'] == 'weekly') echo "selected=\"selected\""; ?>><?=gettext("Weekly"); ?></option>
+ <option value="daily" <?php if ($pconfig['bogonsinterval'] == 'daily') echo "selected=\"selected\""; ?>><?=gettext("Daily"); ?></option>
+ </select>
+ <br/>
+ <?=gettext("The frequency of updating the lists of IP addresses that are reserved (but not RFC 1918) or not yet assigned by IANA.");?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="list" height="12">&nbsp;</td>
+ </tr>
<?php if(count($config['interfaces']) > 1): ?>
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Network Address Translation");?></td>
@@ -400,9 +470,9 @@ function update_description(itemnum) {
<td width="22%" valign="top" class="vncell"><?=gettext("NAT Reflection mode for port forwards");?></td>
<td width="78%" class="vtable">
<select name="natreflection" class="formselect">
- <option value="disable" <?php if (isset($config['system']['disablenatreflection'])) echo "selected"; ?>><?=gettext("Disable"); ?></option>
- <option value="proxy" <?php if (!isset($config['system']['disablenatreflection']) && !isset($config['system']['enablenatreflectionpurenat'])) echo "selected"; ?>><?=gettext("Enable (NAT + Proxy)"); ?></option>
- <option value="purenat" <?php if (!isset($config['system']['disablenatreflection']) && isset($config['system']['enablenatreflectionpurenat'])) echo "selected"; ?>><?=gettext("Enable (Pure NAT)"); ?></option>
+ <option value="disable" <?php if (isset($config['system']['disablenatreflection'])) echo "selected=\"selected\""; ?>><?=gettext("Disable"); ?></option>
+ <option value="proxy" <?php if (!isset($config['system']['disablenatreflection']) && !isset($config['system']['enablenatreflectionpurenat'])) echo "selected=\"selected\""; ?>><?=gettext("Enable (NAT + Proxy)"); ?></option>
+ <option value="purenat" <?php if (!isset($config['system']['disablenatreflection']) && isset($config['system']['enablenatreflectionpurenat'])) echo "selected=\"selected\""; ?>><?=gettext("Enable (Pure NAT)"); ?></option>
</select>
<br/>
<strong><?=gettext("When enabled, this automatically creates additional NAT redirect rules for access to port forwards on your external IP addresses from within your internal networks.");?></strong>
@@ -419,14 +489,14 @@ function update_description(itemnum) {
<td width="78%" class="vtable">
<input name="reflectiontimeout" id="reflectiontimeout" value="<?php echo $config['system']['reflectiontimeout']; ?>" /><br/>
<strong><?=gettext("Enter value for Reflection timeout in seconds.");?></strong>
- <br/<br/>
+ <br/><br/>
<?=gettext("Note: Only applies to Reflection on port forwards in NAT + proxy mode.");?>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Enable NAT Reflection for 1:1 NAT");?></td>
<td width="78%" class="vtable">
- <input name="enablebinatreflection" type="checkbox" id="enablebinatreflection" value="yes" <?php if (isset($config['system']['enablebinatreflection'])) echo "checked"; ?> />
+ <input name="enablebinatreflection" type="checkbox" id="enablebinatreflection" value="yes" <?php if (isset($config['system']['enablebinatreflection'])) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Enables the automatic creation of additional NAT redirect rules for access to 1:1 mappings of your external IP addresses from within your internal networks.");?></strong>
<br/><br/>
<?=gettext("Note: Reflection on 1:1 mappings is only for the inbound component of the 1:1 mappings. This functions the same as the pure NAT mode for port forwards. For more details, refer to the pure NAT mode description above.");?>
@@ -437,7 +507,7 @@ function update_description(itemnum) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Enable automatic outbound NAT for Reflection");?></td>
<td width="78%" class="vtable">
- <input name="enablenatreflectionhelper" type="checkbox" id="enablenatreflectionhelper" value="yes" <?php if (isset($config['system']['enablenatreflectionhelper'])) echo "checked"; ?> />
+ <input name="enablenatreflectionhelper" type="checkbox" id="enablenatreflectionhelper" value="yes" <?php if (isset($config['system']['enablenatreflectionhelper'])) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Automatically create outbound NAT rules which assist inbound NAT rules that direct traffic back out to the same subnet it originated from.");?></strong>
<br/>
<?=gettext("Required for full functionality of the pure NAT mode of NAT Reflection for port forwards or NAT Reflection for 1:1 NAT.");?>
@@ -448,12 +518,12 @@ function update_description(itemnum) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("TFTP Proxy");?></td>
<td width="78%" class="vtable">
- <select name="tftpinterface[]" multiple="true" class="formselect" size="3">
+ <select name="tftpinterface[]" multiple="multiple" class="formselect" size="3">
<?php
$ifdescs = get_configured_interface_with_descr();
foreach ($ifdescs as $ifent => $ifdesc):
?>
- <option value="<?=$ifent;?>" <?php if (in_array($ifent, $pconfig['tftpinterface'])) echo "selected"; ?>><?=gettext($ifdesc);?></option>
+ <option value="<?=$ifent;?>" <?php if (in_array($ifent, $pconfig['tftpinterface'])) echo "selected=\"selected\""; ?>><?=gettext($ifdesc);?></option>
<?php endforeach; ?>
</select>
<strong><?=gettext("Choose the interfaces where you want TFTP proxy helper to be enabled.");?></strong>
@@ -468,13 +538,12 @@ function update_description(itemnum) {
<td width="78%"><input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save");?>" /></td>
</tr>
</table>
- </td>
- </tr>
- </div>
+ </div>
+ </td>
+ </tr>
</table>
</form>
<?php include("fend.inc"); ?>
</body>
</html>
-
diff --git a/usr/local/www/system_advanced_misc.php b/usr/local/www/system_advanced_misc.php
index d3243bc..7c0266b 100644
--- a/usr/local/www/system_advanced_misc.php
+++ b/usr/local/www/system_advanced_misc.php
@@ -68,11 +68,18 @@ $pconfig['crypto_hardware'] = $config['system']['crypto_hardware'];
$pconfig['thermal_hardware'] = $config['system']['thermal_hardware'];
$pconfig['schedule_states'] = isset($config['system']['schedule_states']);
$pconfig['kill_states'] = isset($config['system']['kill_states']);
+$pconfig['skip_rules_gw_down'] = isset($config['system']['skip_rules_gw_down']);
+$pconfig['use_mfs_tmpvar'] = isset($config['system']['use_mfs_tmpvar']);
+$pconfig['use_mfs_tmp_size'] = $config['system']['use_mfs_tmp_size'];
+$pconfig['use_mfs_var_size'] = $config['system']['use_mfs_var_size'];
-if (!empty($config['system']['powerd_mode']))
- $pconfig['powerd_mode'] = $config['system']['powerd_mode'];
-else
- $pconfig['powerd_mode'] = "hadp";
+$pconfig['powerd_ac_mode'] = "hadp";
+if (!empty($config['system']['powerd_ac_mode']))
+ $pconfig['powerd_ac_mode'] = $config['system']['powerd_ac_mode'];
+
+$pconfig['powerd_battery_mode'] = "hadp";
+if (!empty($config['system']['powerd_battery_mode']))
+ $pconfig['powerd_battery_mode'] = $config['system']['powerd_battery_mode'];
$crypto_modules = array('glxsb' => gettext("AMD Geode LX Security Block"),
'aesni' => gettext("AES-NI CPU-based Acceleration"));
@@ -82,8 +89,8 @@ $thermal_hardware_modules = array( 'coretemp' => gettext("Intel Core* CPU on-die
if ($_POST) {
- unset($input_errors);
- $pconfig = $_POST;
+ unset($input_errors);
+ $pconfig = $_POST;
ob_flush();
flush();
@@ -94,6 +101,12 @@ if ($_POST) {
if (!empty($_POST['thermal_hardware']) && !array_key_exists($_POST['thermal_hardware'], $thermal_hardware_modules))
$input_errors[] = gettext("Please select a valid Thermal Hardware Sensor.");
+ if (!empty($_POST['use_mfs_tmp_size']) && (!is_numeric($_POST['use_mfs_tmp_size']) || ($_POST['use_mfs_tmp_size'] <= 40)))
+ $input_errors[] = gettext("/tmp Size must be numeric and should not be less than 40MB.");
+
+ if (!empty($_POST['use_mfs_var_size']) && (!is_numeric($_POST['use_mfs_var_size']) || ($_POST['use_mfs_var_size'] <= 60)))
+ $input_errors[] = gettext("/var Size must be numeric and should not be less than 60MB.");
+
if (!$input_errors) {
if($_POST['harddiskstandby'] <> "") {
@@ -160,19 +173,20 @@ if ($_POST) {
}
if($_POST['maxmss_enable'] == "yes") {
- $config['system']['maxmss_enable'] = true;
+ $config['system']['maxmss_enable'] = true;
$config['system']['maxmss'] = $_POST['maxmss'];
- } else {
- unset($config['system']['maxmss_enable']);
- unset($config['system']['maxmss']);
+ } else {
+ unset($config['system']['maxmss_enable']);
+ unset($config['system']['maxmss']);
}
if($_POST['powerd_enable'] == "yes")
- $config['system']['powerd_enable'] = true;
- else
- unset($config['system']['powerd_enable']);
+ $config['system']['powerd_enable'] = true;
+ else
+ unset($config['system']['powerd_enable']);
- $config['system']['powerd_mode'] = $_POST['powerd_mode'];
+ $config['system']['powerd_ac_mode'] = $_POST['powerd_ac_mode'];
+ $config['system']['powerd_battery_mode'] = $_POST['powerd_battery_mode'];
if($_POST['crypto_hardware'])
$config['system']['crypto_hardware'] = $_POST['crypto_hardware'];
@@ -185,14 +199,36 @@ if ($_POST) {
unset($config['system']['thermal_hardware']);
if($_POST['schedule_states'] == "yes")
- $config['system']['schedule_states'] = true;
- else
- unset($config['system']['schedule_states']);
+ $config['system']['schedule_states'] = true;
+ else
+ unset($config['system']['schedule_states']);
if($_POST['kill_states'] == "yes")
- $config['system']['kill_states'] = true;
- else
- unset($config['system']['kill_states']);
+ $config['system']['kill_states'] = true;
+ else
+ unset($config['system']['kill_states']);
+
+ if($_POST['skip_rules_gw_down'] == "yes")
+ $config['system']['skip_rules_gw_down'] = true;
+ else
+ unset($config['system']['skip_rules_gw_down']);
+
+ if($_POST['use_mfs_tmpvar'] == "yes")
+ $config['system']['use_mfs_tmpvar'] = true;
+ else
+ unset($config['system']['use_mfs_tmpvar']);
+
+ $config['system']['use_mfs_tmp_size'] = $_POST['use_mfs_tmp_size'];
+ $config['system']['use_mfs_var_size'] = $_POST['use_mfs_var_size'];
+
+ if (isset($_POST['rrdbackup'])) {
+ $config['system']['rrdbackup'] = $_POST['rrdbackup'];
+ install_cron_job("/etc/rc.backup_rrd.sh", ($config['system']['rrdbackup'] > 0), $minute="0", "*/{$config['system']['rrdbackup']}");
+ }
+ if (isset($_POST['dhcpbackup'])) {
+ $config['system']['dhcpbackup'] = $_POST['dhcpbackup'];
+ install_cron_job("/etc/rc.backup_dhcpleases.sh", ($config['system']['dhcpbackup'] > 0), $minute="0", "*/{$config['system']['dhcpbackup']}");
+ }
write_config();
@@ -200,10 +236,10 @@ if ($_POST) {
system_resolvconf_generate(true);
$retval = filter_configure();
if(stristr($retval, "error") <> true)
- $savemsg = get_std_save_message(gettext($retval));
+ $savemsg = get_std_save_message(gettext($retval));
else
- $savemsg = gettext($retval);
-
+ $savemsg = gettext($retval);
+
activate_powerd();
load_crypto();
load_thermal_hardware();
@@ -228,7 +264,8 @@ include("head.inc");
if ($savemsg)
print_info_box($savemsg);
?>
-<script type="text/javascript" >
+<script type="text/javascript">
+//<![CDATA[
function sticky_checked(obj) {
if (obj.checked)
jQuery('#srctrack').attr('disabled',false);
@@ -241,9 +278,23 @@ function maxmss_checked(obj) {
else
jQuery('#maxmss').attr('disabled','true');
}
+function tmpvar_checked(obj) {
+ if (obj.checked) {
+ jQuery('#use_mfs_tmp_size').attr('disabled',false);
+ jQuery('#use_mfs_var_size').attr('disabled',false);
+ jQuery('#rrdbackup').attr('disabled',false);
+ jQuery('#dhcpbackup').attr('disabled',false);
+ } else {
+ jQuery('#use_mfs_tmp_size').attr('disabled','true');
+ jQuery('#use_mfs_var_size').attr('disabled','true');
+ jQuery('#rrdbackup').attr('disabled','true');
+ jQuery('#dhcpbackup').attr('disabled','true');
+ }
+}
+//]]>
</script>
<form action="system_advanced_misc.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="system advanced misc">
<tr>
<td>
<?php
@@ -263,20 +314,20 @@ function maxmss_checked(obj) {
<div class="tabcont">
<span class="vexpl">
<span class="red">
- <strong><?=gettext("NOTE:"); ?>&nbsp</strong>
+ <strong><?=gettext("NOTE:"); ?>&nbsp;</strong>
</span>
<?=gettext("The options on this page are intended for use by advanced users only."); ?>
<br/>
</span>
<br/>
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Proxy support"); ?></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Proxy URL"); ?></td>
<td width="78%" class="vtable">
- <input name="proxyurl" id="proxyurl" value="<?php if ($pconfig['proxyurl'] <> "") echo $pconfig['proxyurl']; ?>" class="formfld unknown">
+ <input name="proxyurl" id="proxyurl" value="<?php if ($pconfig['proxyurl'] <> "") echo $pconfig['proxyurl']; ?>" class="formfld unknown" />
<br />
<?php printf(gettext("Proxy url for allowing %s to use this proxy to connect outside."),$g['product']); ?>
</td>
@@ -284,7 +335,7 @@ function maxmss_checked(obj) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Proxy Port"); ?></td>
<td width="78%" class="vtable">
- <input name="proxyport" id="proxyport" value="<?php if ($pconfig['proxyport'] <> "") echo $pconfig['proxyport']; ?>" class="formfld unknown">
+ <input name="proxyport" id="proxyport" value="<?php if ($pconfig['proxyport'] <> "") echo $pconfig['proxyport']; ?>" class="formfld unknown" />
<br />
<?php printf(gettext("Proxy port to use when %s connects to the proxy URL configured above. Default is 8080 for http protocol or 443 for ssl."),$g['product']); ?>
</td>
@@ -292,7 +343,7 @@ function maxmss_checked(obj) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Proxy Username"); ?></td>
<td width="78%" class="vtable">
- <input name="proxyuser" id="proxyuser" value="<?php if ($pconfig['proxyuser'] <> "") echo $pconfig['proxyuser']; ?>" class="formfld unknown">
+ <input name="proxyuser" id="proxyuser" value="<?php if ($pconfig['proxyuser'] <> "") echo $pconfig['proxyuser']; ?>" class="formfld unknown" />
<br />
<?php printf(gettext("Proxy username for allowing %s to use this proxy to connect outside"),$g['product']); ?>
</td>
@@ -300,7 +351,7 @@ function maxmss_checked(obj) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Proxy Pass"); ?></td>
<td width="78%" class="vtable">
- <input type="password" name="proxypass" id="proxypass" value="<?php if ($pconfig['proxypass'] <> "") echo $pconfig['proxypass']; ?>" class="formfld unknown">
+ <input type="password" name="proxypass" id="proxypass" value="<?php if ($pconfig['proxypass'] <> "") echo $pconfig['proxypass']; ?>" class="formfld unknown" />
<br />
<?php printf(gettext("Proxy password for allowing %s to use this proxy to connect outside"),$g['product']); ?>
</td>
@@ -311,7 +362,7 @@ function maxmss_checked(obj) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Load Balancing"); ?></td>
<td width="78%" class="vtable">
- <input name="lb_use_sticky" type="checkbox" id="lb_use_sticky" value="yes" <?php if ($pconfig['lb_use_sticky']) echo "checked=\"checked\""; ?> onClick="sticky_checked(this)" />
+ <input name="lb_use_sticky" type="checkbox" id="lb_use_sticky" value="yes" <?php if ($pconfig['lb_use_sticky']) echo "checked=\"checked\""; ?> onclick="sticky_checked(this)" />
<strong><?=gettext("Use sticky connections"); ?></strong><br/>
<?=gettext("Successive connections will be redirected to the servers " .
"in a round-robin manner with connections from the same " .
@@ -322,7 +373,7 @@ function maxmss_checked(obj) {
"will be redirected to the next web server in the round " .
"robin. Changing this option will restart the Load Balancing service."); ?>
<br />
- <input name="srctrack" id="srctrack" value="<?php if ($pconfig['srctrack'] <> "") echo $pconfig['srctrack']; else "1400"; ?>" class="formfld unknown" <?php if ($pconfig['lb_use_sticky'] == false) echo "disabled"; ?>>
+ <input name="srctrack" id="srctrack" value="<?php if ($pconfig['srctrack'] <> "") echo $pconfig['srctrack']; else "1400"; ?>" class="formfld unknown" <?php if ($pconfig['lb_use_sticky'] == false) echo "disabled=\"disabled\""; ?> />
<br />
<?=gettext("Set the source tracking timeout for sticky connections. " .
"By default this is 0, so source tracking is removed as soon as the state expires. " .
@@ -347,30 +398,38 @@ function maxmss_checked(obj) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("PowerD"); ?></td>
<td width="78%" class="vtable">
- <input name="powerd_enable" type="checkbox" id="powerd_enable" value="yes" <?php if ($pconfig['powerd_enable']) echo "checked"; ?> />
+ <input name="powerd_enable" type="checkbox" id="powerd_enable" value="yes" <?php if ($pconfig['powerd_enable']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Use PowerD"); ?></strong><br/>
<br/>
- <?=gettext("Mode"); ?>&nbsp;:&nbsp;
- <select name="powerd_mode" id="powerd_mode">
- <option value="hadp"<?php if($pconfig['powerd_mode']=="hadp") echo " selected"; ?>><?=gettext("Hiadaptive");?></option>
- <option value="adp"<?php if($pconfig['powerd_mode']=="adp") echo " selected"; ?>><?=gettext("Adaptive");?></option>
- <option value="min"<?php if($pconfig['powerd_mode']=="min") echo " selected"; ?>><?=gettext("Minimum");?></option>
- <option value="max"<?php if($pconfig['powerd_mode']=="max") echo " selected"; ?>><?=gettext("Maximum");?></option>
+ <?=gettext("On AC Power Mode"); ?>&nbsp;:&nbsp;
+ <select name="powerd_ac_mode" id="powerd_ac_mode">
+ <option value="hadp"<?php if($pconfig['powerd_ac_mode']=="hadp") echo " selected=\"selected\""; ?>><?=gettext("Hiadaptive");?></option>
+ <option value="adp"<?php if($pconfig['powerd_ac_mode']=="adp") echo " selected=\"selected\""; ?>><?=gettext("Adaptive");?></option>
+ <option value="min"<?php if($pconfig['powerd_ac_mode']=="min") echo " selected=\"selected\""; ?>><?=gettext("Minimum");?></option>
+ <option value="max"<?php if($pconfig['powerd_ac_mode']=="max") echo " selected=\"selected\""; ?>><?=gettext("Maximum");?></option>
+ </select>
+ &nbsp;&nbsp;
+ <?=gettext("On Battery Power Mode"); ?>&nbsp;:&nbsp;
+ <select name="powerd_battery_mode" id="powerd_battery_mode">
+ <option value="hadp"<?php if($pconfig['powerd_battery_mode']=="hadp") echo " selected=\"selected\""; ?>><?=gettext("Hiadaptive");?></option>
+ <option value="adp"<?php if($pconfig['powerd_battery_mode']=="adp") echo " selected=\"selected\""; ?>><?=gettext("Adaptive");?></option>
+ <option value="min"<?php if($pconfig['powerd_battery_mode']=="min") echo " selected=\"selected\""; ?>><?=gettext("Minimum");?></option>
+ <option value="max"<?php if($pconfig['powerd_battery_mode']=="max") echo " selected=\"selected\""; ?>><?=gettext("Maximum");?></option>
</select>
<br/><br/>
- <?=gettext("The powerd utility monitors the system state and sets various power control " .
- "options accordingly. It offers four modes (maximum, minimum, adaptive " .
- "and hiadaptive) that can be individually selected while on AC power or batteries. " .
- "The modes maximum, minimum, adaptive and hiadaptive may be abbreviated max, " .
- "min, adp, hadp. Maximum mode chooses the highest performance values. Minimum " .
- "mode selects the lowest performance values to get the most power savings. " .
- "Adaptive mode attempts to strike a balance by degrading performance when " .
- "the system appears idle and increasing it when the system is busy. It " .
- "offers a good balance between a small performance loss for greatly " .
- "increased power savings. Hiadaptive mode is alike adaptive mode, but " .
- "tuned for systems where performance and interactivity are more important" .
- "than power consumption. It rises frequency faster, drops slower and" .
- "keeps twice lower CPU load."); ?>
+ <?=gettext("The powerd utility monitors the system state and sets various power control " .
+ "options accordingly. It offers four modes (maximum, minimum, adaptive " .
+ "and hiadaptive) that can be individually selected while on AC power or batteries. " .
+ "The modes maximum, minimum, adaptive and hiadaptive may be abbreviated max, " .
+ "min, adp, hadp. Maximum mode chooses the highest performance values. Minimum " .
+ "mode selects the lowest performance values to get the most power savings. " .
+ "Adaptive mode attempts to strike a balance by degrading performance when " .
+ "the system appears idle and increasing it when the system is busy. It " .
+ "offers a good balance between a small performance loss for greatly " .
+ "increased power savings. Hiadaptive mode is alike adaptive mode, but " .
+ "tuned for systems where performance and interactivity are more important" .
+ "than power consumption. It rises frequency faster, drops slower and" .
+ "keeps twice lower CPU load."); ?>
</td>
</tr>
<tr>
@@ -385,20 +444,20 @@ function maxmss_checked(obj) {
<select name="crypto_hardware" id="crypto_hardware">
<option value=""><?php echo gettext("None"); ?></option>
<?php foreach ($crypto_modules as $cryptomod_name => $cryptomod_descr): ?>
- <option value="<?php echo $cryptomod_name; ?>" <?php if ($pconfig['crypto_hardware'] == $cryptomod_name) echo " selected"; ?>><?php echo "{$cryptomod_descr} ({$cryptomod_name})"; ?></option>
+ <option value="<?php echo $cryptomod_name; ?>" <?php if ($pconfig['crypto_hardware'] == $cryptomod_name) echo " selected=\"selected\""; ?>><?php echo "{$cryptomod_descr} ({$cryptomod_name})"; ?></option>
<?php endforeach; ?>
</select>
<br />
- <?=gettext("A cryptographic accelerator module will use hardware support to speed up some " .
+ <?=gettext("A cryptographic accelerator module will use hardware support to speed up some " .
"cryptographic functions on systems which have the chip. Do not enable this " .
"option if you have a Hifn cryptographic acceleration card, as this will take " .
"precedence and the Hifn card will not be used. Acceleration should be automatic " .
"for IPsec when using a cipher supported by your chip, such as AES-128. OpenVPN " .
"should be set for AES-128-CBC and have cryptodev enabled for hardware " .
"acceleration."); ?>
- <br/><br/>
- <?=gettext("If you do not have a crypto chip in your system, this option will have no " .
- "effect. To unload the selected module, set this option to 'none' and then reboot."); ?>
+ <br/><br/>
+ <?=gettext("If you do not have a crypto chip in your system, this option will have no " .
+ "effect. To unload the selected module, set this option to 'none' and then reboot."); ?>
</td>
</tr>
<tr>
@@ -413,7 +472,7 @@ function maxmss_checked(obj) {
<select name="thermal_hardware" id="thermal_hardware">
<option value=""><?php echo gettext("None/ACPI"); ?></option>
<?php foreach ($thermal_hardware_modules as $themalmod_name => $themalmod_descr): ?>
- <option value="<?php echo $themalmod_name; ?>" <?php if ($pconfig['thermal_hardware'] == $themalmod_name) echo " selected"; ?>><?php echo "{$themalmod_descr} ({$themalmod_name})"; ?></option>
+ <option value="<?php echo $themalmod_name; ?>" <?php if ($pconfig['thermal_hardware'] == $themalmod_name) echo " selected=\"selected\""; ?>><?php echo "{$themalmod_descr} ({$themalmod_name})"; ?></option>
<?php endforeach; ?>
</select>
<br />
@@ -434,7 +493,7 @@ function maxmss_checked(obj) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Security Associations"); ?></td>
<td width="78%" class="vtable">
- <input name="preferoldsa_enable" type="checkbox" id="preferoldsa_enable" value="yes" <?php if ($pconfig['preferoldsa_enable']) echo "checked"; ?> />
+ <input name="preferoldsa_enable" type="checkbox" id="preferoldsa_enable" value="yes" <?php if ($pconfig['preferoldsa_enable']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Prefer older IPsec SAs"); ?></strong>
<br />
<?=gettext("By default, if several SAs match, the newest one is " .
@@ -445,7 +504,7 @@ function maxmss_checked(obj) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("IPsec Debug"); ?></td>
<td width="78%" class="vtable">
- <input name="racoondebug_enable" type="checkbox" id="racoondebug_enable" value="yes" <?php if ($pconfig['racoondebug_enable']) echo "checked"; ?> />
+ <input name="racoondebug_enable" type="checkbox" id="racoondebug_enable" value="yes" <?php if ($pconfig['racoondebug_enable']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Start racoon in debug mode"); ?></strong>
<br />
<?=gettext("Launches racoon in debug mode so that more verbose logs " .
@@ -456,45 +515,119 @@ function maxmss_checked(obj) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Maximum MSS"); ?></td>
<td width="78%" class="vtable">
- <input name="maxmss_enable" type="checkbox" id="maxmss_enable" value="yes" <?php if ($pconfig['maxmss_enable'] == true) echo "checked"; ?> onClick="maxmss_checked(this)" />
+ <input name="maxmss_enable" type="checkbox" id="maxmss_enable" value="yes" <?php if ($pconfig['maxmss_enable'] == true) echo "checked=\"checked\""; ?> onclick="maxmss_checked(this)" />
<strong><?=gettext("Enable MSS clamping on VPN traffic"); ?></strong>
<br />
- <input name="maxmss" id="maxmss" value="<?php if ($pconfig['maxmss'] <> "") echo $pconfig['maxmss']; else "1400"; ?>" class="formfld unknown" <?php if ($pconfig['maxmss_enable'] == false) echo "disabled"; ?>>
+ <input name="maxmss" id="maxmss" value="<?php if ($pconfig['maxmss'] <> "") echo $pconfig['maxmss']; else "1400"; ?>" class="formfld unknown" <?php if ($pconfig['maxmss_enable'] == false) echo "disabled=\"disabled\""; ?> />
<br />
<?=gettext("Enable MSS clamping on TCP flows over VPN. " .
"This helps overcome problems with PMTUD on IPsec VPN links. If left blank, the default value is 1400 bytes. "); ?>
</td>
</tr>
- <tr>
- <td colspan="2" class="list" height="12">&nbsp;</td>
- </tr>
- <tr>
- <td colspan="2" valign="top" class="listtopic"><?=gettext("Schedules"); ?></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Schedule States"); ?></td>
- <td width="78%" class="vtable">
- <input name="schedule_states" type="checkbox" id="schedule_states" value="yes" <?php if ($pconfig['schedule_states']) echo "checked"; ?> />
- <br />
+ <tr>
+ <td colspan="2" class="list" height="12">&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("Schedules"); ?></td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Schedule States"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="schedule_states" type="checkbox" id="schedule_states" value="yes" <?php if ($pconfig['schedule_states']) echo "checked=\"checked\""; ?> />
+ <br />
<?=gettext("By default schedules clear the states of existing connections when the expiration time has come. ".
"This option overrides that behavior by not clearing states for existing connections."); ?>
- </td>
- </tr>
- <tr>
- <td colspan="2" class="list" height="12">&nbsp;</td>
- </tr>
- <tr>
- <td colspan="2" valign="top" class="listtopic"><?=gettext("Gateway Monitoring"); ?></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("States"); ?></td>
- <td width="78%" class="vtable">
- <input name="kill_states" type="checkbox" id="kill_states" value="yes" <?php if ($pconfig['kill_states']) echo "checked"; ?> />
- <br />
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="list" height="12">&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("Gateway Monitoring"); ?></td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("States"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="kill_states" type="checkbox" id="kill_states" value="yes" <?php if ($pconfig['kill_states']) echo "checked=\"checked\""; ?> />
+ <br />
<?=gettext("By default the monitoring process will flush states for a gateway that goes down. ".
"This option overrides that behavior by not clearing states for existing connections."); ?>
- </td>
- </tr>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Skip rules when gateway is down"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="skip_rules_gw_down" type="checkbox" id="skip_rules_gw_down" value="yes" <?php if ($pconfig['skip_rules_gw_down']) echo "checked=\"checked\""; ?> />
+ <br />
+ <?=gettext("By default, when a rule has a specific gateway set, and this gateway is down, ".
+ "rule is created and traffic is sent to default gateway.This option overrides that behavior ".
+ "and the rule is not created when gateway is down"); ?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("RAM Disk Settings (Reboot to Apply Changes)"); ?></td>
+ </tr>
+ <?php if ($g['platform'] == "pfSense"): ?>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Use RAM Disks"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="use_mfs_tmpvar" type="checkbox" id="use_mfs_tmpvar" value="yes" <?php if ($pconfig['use_mfs_tmpvar']) echo "checked=\"checked\""; ?> onclick="tmpvar_checked(this)" />
+ <strong><?=gettext("Use memory file system for /tmp and /var"); ?></strong><br/>
+ <?=gettext("Set this if you wish 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 at reboot, including log data. RRD and DHCP Leases will be retained."); ?>
+ </td>
+ </tr>
+ <?php endif; ?>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("/tmp RAM Disk Size"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="use_mfs_tmp_size" id="use_mfs_tmp_size" value="<?php if ($pconfig['use_mfs_tmp_size'] <> "") echo $pconfig['use_mfs_tmp_size']; ?>" class="formfld unknown" <?php if (($g['platform'] == "pfSense") && ($pconfig['use_mfs_tmpvar'] == false)) echo "disabled=\"disabled\""; ?> /> MB
+ <br />
+ <?=gettext("Set the size, in MB, for the /tmp RAM disk. " .
+ "Leave blank for 40MB. Do not set lower than 40."); ?>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("/var RAM Disk Size"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="use_mfs_var_size" id="use_mfs_var_size" value="<?php if ($pconfig['use_mfs_var_size'] <> "") echo $pconfig['use_mfs_var_size']; ?>" class="formfld unknown" <?php if (($g['platform'] == "pfSense") && ($pconfig['use_mfs_tmpvar'] == false)) echo "disabled=\"disabled\""; ?> /> MB
+ <br />
+ <?=gettext("Set the size, in MB, for the /var RAM disk. " .
+ "Leave blank for 60MB. Do not set lower than 60."); ?>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Periodic RRD Backup");?></td>
+ <td width="78%" class="vtable">
+ <?=gettext("Frequency:");?>
+ <select name="rrdbackup" id="rrdbackup" <?php if (($g['platform'] == "pfSense") && ($pconfig['use_mfs_tmpvar'] == false)) echo "disabled=\"disabled\""; ?> >
+ <option value='0' <?php if (!isset($config['system']['rrdbackup']) || ($config['system']['rrdbackup'] == 0)) echo "selected='selected'"; ?>><?=gettext("Disable"); ?></option>
+ <?php for ($x=1; $x<=24; $x++) { ?>
+ <option value='<?= $x ?>' <?php if ($config['system']['rrdbackup'] == $x) echo "selected='selected'"; ?>><?= $x ?> <?=gettext("hour"); ?><?php if ($x>1) echo "s"; ?></option>
+ <?php } ?>
+ </select>
+ <br/>
+ <?=gettext("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 your media.");?>
+ <br/>
+ <br/>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Periodic DHCP Leases Backup");?></td>
+ <td width="78%" class="vtable">
+ <?=gettext("Frequency:");?>
+ <select name="dhcpbackup" id="dhcpbackup" <?php if (($g['platform'] == "pfSense") && ($pconfig['use_mfs_tmpvar'] == false)) echo "disabled=\"disabled\""; ?> >
+ <option value='0' <?php if (!isset($config['system']['dhcpbackup']) || ($config['system']['dhcpbackup'] == 0)) echo "selected='selected'"; ?>><?=gettext("Disable"); ?></option>
+ <?php for ($x=1; $x<=24; $x++) { ?>
+ <option value='<?= $x ?>' <?php if ($config['system']['dhcpbackup'] == $x) echo "selected='selected'"; ?>><?= $x ?> <?=gettext("hour"); ?><?php if ($x>1) echo "s"; ?></option>
+ <?php } ?>
+ </select>
+ <br/>
+ <?=gettext("This will periodically backup the DHCP leases 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 your media.");?>
+ <br/>
+ <br/>
+ </td>
+ </tr>
<tr>
<td colspan="2" class="list" height="12">&nbsp;</td>
</tr>
@@ -507,15 +640,15 @@ function maxmss_checked(obj) {
<td width="78%" class="vtable">
<select name="harddiskstandby" class="formselect">
<?php
- ## Values from ATA-2 http://www.t13.org/project/d0948r3-ATA-2.pdf (Page 66)
+ ## Values from ATA-2 http://www.t13.org/project/d0948r3-ATA-2.pdf (Page 66)
$sbvals = explode(" ", "0.5,6 1,12 2,24 3,36 4,48 5,60 7.5,90 10,120 15,180 20,240 30,241 60,242");
?>
- <option value="" <?php if(!$pconfig['harddiskstandby']) echo('selected');?>><?=gettext("Always on"); ?></option>
+ <option value="" <?php if(!$pconfig['harddiskstandby']) echo('selected="selected"');?>><?=gettext("Always on"); ?></option>
<?php
foreach ($sbvals as $sbval):
list($min,$val) = explode(",", $sbval);
?>
- <option value="<?=$val;?>" <?php if($pconfig['harddiskstandby'] == $val) echo('selected');?>><?=$min;?> <?=gettext("minutes"); ?></option>
+ <option value="<?=$val;?>" <?php if($pconfig['harddiskstandby'] == $val) echo('selected="selected"');?>><?=$min;?> <?=gettext("minutes"); ?></option>
<?php endforeach; ?>
</select>
<br/>
@@ -544,4 +677,3 @@ function maxmss_checked(obj) {
<?php include("fend.inc"); ?>
</body>
</html>
-
diff --git a/usr/local/www/system_advanced_network.php b/usr/local/www/system_advanced_network.php
index c8035c9..6e7f99c 100644
--- a/usr/local/www/system_advanced_network.php
+++ b/usr/local/www/system_advanced_network.php
@@ -153,8 +153,8 @@ include("head.inc");
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc"); ?>
-<script language="JavaScript">
-<!--
+<script type="text/javascript">
+//<![CDATA[
function enable_change(enable_over) {
if (document.iform.ipv6nat_enable.checked || enable_over)
@@ -163,7 +163,7 @@ function enable_change(enable_over) {
document.iform.ipv6nat_ipaddr.disabled = 1;
}
-//-->
+//]]>
</script>
@@ -174,7 +174,7 @@ function enable_change(enable_over) {
print_info_box($savemsg);
?>
<form action="system_advanced_network.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="system advanced newtwork">
<tr>
<td>
<?php
@@ -194,29 +194,30 @@ function enable_change(enable_over) {
<div class="tabcont">
<span class="vexpl">
<span class="red">
- <strong><?=gettext("NOTE:"); ?>&nbsp</strong>
+ <strong><?=gettext("NOTE:"); ?>&nbsp;</strong>
</span>
<?=gettext("The options on this page are intended for use by advanced users only."); ?>
<br/>
</span>
<br/>
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("IPv6 Options"); ?></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Allow IPv6"); ?></td>
<td width="78%" class="vtable">
- <input name="ipv6allow" type="checkbox" id="ipv6allow" value="yes" <?php if ($pconfig['ipv6allow']) echo "checked"; ?> onclick="enable_change(false)" />
+ <input name="ipv6allow" type="checkbox" id="ipv6allow" value="yes" <?php if ($pconfig['ipv6allow']) echo "checked=\"checked\""; ?> onclick="enable_change(false)" />
<strong><?=gettext("Allow IPv6"); ?></strong><br/>
- <?=gettext("All IPv6 will be blocked unless this box is checked."); ?><br/>
+ <?=gettext("All IPv6 traffic will be blocked by the firewall unless this box is checked."); ?><br/>
+ <?=gettext("NOTE: This does not disable any IPv6 features on the firewall, it only blocks traffic."); ?><br/>
<br/>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("IPv6 over IPv4 Tunneling"); ?></td>
<td width="78%" class="vtable">
- <input name="ipv6nat_enable" type="checkbox" id="ipv6nat_enable" value="yes" <?php if ($pconfig['ipv6nat_enable']) echo "checked"; ?> onclick="enable_change(false)" />
+ <input name="ipv6nat_enable" type="checkbox" id="ipv6nat_enable" value="yes" <?php if ($pconfig['ipv6nat_enable']) echo "checked=\"checked\""; ?> onclick="enable_change(false)" />
<strong><?=gettext("Enable IPv4 NAT encapsulation of IPv6 packets"); ?></strong><br/>
<?=gettext("This provides an RFC 2893 compatibility mechanism ".
"that can be used to tunneling IPv6 packets over IPv4 ".
@@ -236,41 +237,41 @@ function enable_change(enable_over) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Device polling"); ?></td>
<td width="78%" class="vtable">
- <input name="polling_enable" type="checkbox" id="polling_enable" value="yes" <?php if ($pconfig['polling_enable']) echo "checked"; ?>>
- <strong><?=gettext("Enable device polling"); ?></strong><br>
+ <input name="polling_enable" type="checkbox" id="polling_enable" value="yes" <?php if ($pconfig['polling_enable']) echo "checked=\"checked\""; ?> />
+ <strong><?=gettext("Enable device polling"); ?></strong><br />
<?php printf(gettext("Device polling is a technique that lets the system periodically poll network devices for new data instead of relying on interrupts. This prevents your webConfigurator, SSH, etc. from being inaccessible due to interrupt floods when under extreme load. Generally this is not recommended. Not all NICs support polling; see the %s homepage for a list of supported cards."), $g['product_name']); ?>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Hardware Checksum Offloading"); ?></td>
<td width="78%" class="vtable">
- <input name="disablechecksumoffloading" type="checkbox" id="disablechecksumoffloading" value="yes" <?php if (isset($config['system']['disablechecksumoffloading'])) echo "checked"; ?> />
- <strong><?=gettext("Disable hardware checksum offload"); ?></strong><br>
+ <input name="disablechecksumoffloading" type="checkbox" id="disablechecksumoffloading" value="yes" <?php if (isset($config['system']['disablechecksumoffloading'])) echo "checked=\"checked\""; ?> />
+ <strong><?=gettext("Disable hardware checksum offload"); ?></strong><br />
<?=gettext("Checking this option will disable hardware checksum offloading. Checksum offloading is broken in some hardware, particularly some Realtek cards. Rarely, drivers may have problems with checksum offloading and some specific NICs."); ?>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Hardware TCP Segmentation Offloading"); ?></td>
<td width="78%" class="vtable">
- <input name="disablesegmentationoffloading" type="checkbox" id="disablesegmentationoffloading" value="yes" <?php if (isset($config['system']['disablesegmentationoffloading'])) echo "checked"; ?> />
- <strong><?=gettext("Disable hardware TCP segmentation offload"); ?></strong><br>
+ <input name="disablesegmentationoffloading" type="checkbox" id="disablesegmentationoffloading" value="yes" <?php if (isset($config['system']['disablesegmentationoffloading'])) echo "checked=\"checked\""; ?> />
+ <strong><?=gettext("Disable hardware TCP segmentation offload"); ?></strong><br />
<?=gettext("Checking this option will disable hardware TCP segmentation offloading (TSO, TSO4, TSO6). This offloading is broken in some hardware drivers, and may impact performance with some specific NICs."); ?>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Hardware Large Receive Offloading"); ?></td>
<td width="78%" class="vtable">
- <input name="disablelargereceiveoffloading" type="checkbox" id="disablelargereceiveoffloading" value="yes" <?php if (isset($config['system']['disablelargereceiveoffloading'])) echo "checked"; ?> />
- <strong><?=gettext("Disable hardware large receive offload"); ?></strong><br>
+ <input name="disablelargereceiveoffloading" type="checkbox" id="disablelargereceiveoffloading" value="yes" <?php if (isset($config['system']['disablelargereceiveoffloading'])) echo "checked=\"checked\""; ?> />
+ <strong><?=gettext("Disable hardware large receive offload"); ?></strong><br />
<?=gettext("Checking this option will disable hardware large receive offloading (LRO). This offloading is broken in some hardware drivers, and may impact performance with some specific NICs."); ?>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("ARP Handling"); ?></td>
<td width="78%" class="vtable">
- <input name="sharednet" type="checkbox" id="sharednet" value="yes" <?php if (isset($pconfig['sharednet'])) echo "checked"; ?> />
- <strong><?=gettext("Suppress ARP messages"); ?></strong><br>
- <?=gettext("This option will suppress ARP log messages when multiple interfaces reside on the same broadcast domain"); ?></strong>
+ <input name="sharednet" type="checkbox" id="sharednet" value="yes" <?php if (isset($pconfig['sharednet'])) echo "checked=\"checked\""; ?> />
+ <strong><?=gettext("Suppress ARP messages"); ?></strong><br />
+ <?=gettext("This option will suppress ARP log messages when multiple interfaces reside on the same broadcast domain"); ?>
</td>
</tr>
<?php
@@ -287,8 +288,8 @@ function enable_change(enable_over) {
<tr>
<td width="22%" valign="top" class="vncell">Enable Flowtable</td>
<td width="78%" class="vtable">
- <input name="flowtable" type="checkbox" id="polling_enable" value="yes" <?php if ($pconfig['flowtable']) echo "checked"; ?>>
- <strong>Enable flowtable support</strong><br>
+ <input name="flowtable" type="checkbox" id="polling_enable" value="yes" <?php if ($pconfig['flowtable']) echo "checked=\"checked\""; ?> />
+ <strong>Enable flowtable support</strong><br />
Enables infrastructure for caching flows as a means of accelerating L3 and L2 lookups
as well as providing stateful load balancing when used with RADIX_MPATH.<br/>
</td>
@@ -309,10 +310,10 @@ function enable_change(enable_over) {
</tr>
</table>
</form>
- <script language="JavaScript" type="text/javascript">
- <!--
+ <script type="text/javascript">
+ //<![CDATA[
enable_change(false);
- //-->
+ //]]>
</script>
<?php include("fend.inc"); ?>
diff --git a/usr/local/www/system_advanced_notifications.php b/usr/local/www/system_advanced_notifications.php
index 9983711..50278f9 100644
--- a/usr/local/www/system_advanced_notifications.php
+++ b/usr/local/www/system_advanced_notifications.php
@@ -152,7 +152,7 @@ include("head.inc");
print_info_box($savemsg);
?>
</form>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="system advanced notifications">
<tr>
<td>
<?php
@@ -171,7 +171,7 @@ include("head.inc");
<td id="mainarea">
<div class="tabcont">
<form action="system_advanced_notifications.php" method="post" name="iform">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<!-- GROWL -->
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Growl"); ?></td>
@@ -179,28 +179,28 @@ include("head.inc");
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Registration Name"); ?></td>
<td width="78%" class="vtable">
- <input name='name' value='<?php echo $pconfig['name']; ?>'><br/>
+ <input name='name' value='<?php echo $pconfig['name']; ?>' /><br/>
<?=gettext("Enter the name to register with the Growl server (default: PHP-Growl)."); ?>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Notification Name"); ?></td>
<td width="78%" class="vtable">
- <input name='notification_name' value='<?php echo $pconfig['notification_name']; ?>'><br/>
+ <input name='notification_name' value='<?php echo $pconfig['notification_name']; ?>' /><br/>
<?=sprintf(gettext("Enter a name for the Growl notifications (default: %s growl alert)."), $g['product_name']); ?>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("IP Address"); ?></td>
<td width="78%" class="vtable">
- <input name='ipaddress' value='<?php echo $pconfig['ipaddress']; ?>'><br/>
+ <input name='ipaddress' value='<?php echo $pconfig['ipaddress']; ?>' /><br/>
<?=gettext("This is the IP address that you would like to send growl notifications to."); ?>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Password"); ?></td>
<td width="78%" class="vtable">
- <input name='password' type='password' value='<?php echo $pconfig['password']; ?>'><br/>
+ <input name='password' type='password' value='<?php echo $pconfig['password']; ?>' /><br/>
<?=gettext("Enter the password of the remote growl notification device."); ?>
</td>
</tr>
@@ -214,43 +214,43 @@ include("head.inc");
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("E-Mail server"); ?></td>
<td width="78%" class="vtable">
- <input name='smtpipaddress' value='<?php echo $pconfig['smtpipaddress']; ?>'><br/>
+ <input name='smtpipaddress' value='<?php echo $pconfig['smtpipaddress']; ?>' /><br/>
<?=gettext("This is the FQDN or IP address of the SMTP E-Mail server to which notifications will be sent."); ?>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("SMTP Port of E-Mail server"); ?></td>
<td width="78%" class="vtable">
- <input name='smtpport' value='<?php echo $pconfig['smtpport']; ?>'>
- <input type='checkbox' name='smtpssl' <?php echo $pconfig['smtpssl']; ?>>Enable SSL/TLS Authentication<br/>
+ <input name='smtpport' value='<?php echo $pconfig['smtpport']; ?>' />
+ <input type='checkbox' name='smtpssl' <?php echo $pconfig['smtpssl']; ?> />Enable SSL/TLS Authentication<br/>
<?=gettext("This is the port of the SMTP E-Mail server, typically 25, 587 (submission) or 465 (smtps, tick ssl/tls checkbox)"); ?>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("From e-mail address"); ?></td>
<td width="78%" class="vtable">
- <input name='smtpfromaddress' type='input' value='<?php echo $pconfig['smtpfromaddress']; ?>'><br/>
+ <input name='smtpfromaddress' type='text' value='<?php echo $pconfig['smtpfromaddress']; ?>' /><br/>
<?=gettext("This is the e-mail address that will appear in the from field."); ?>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Notification E-Mail address"); ?></td>
<td width="78%" class="vtable">
- <input name='smtpnotifyemailaddress' type='input' value='<?php echo $pconfig['smtpnotifyemailaddress']; ?>'><br/>
+ <input name='smtpnotifyemailaddress' type='text' value='<?php echo $pconfig['smtpnotifyemailaddress']; ?>' /><br/>
<?=gettext("Enter the e-mail address that you would like email notifications sent to."); ?>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Notification E-Mail auth username (optional)"); ?></td>
<td width="78%" class="vtable">
- <input name='smtpusername' type='input' value='<?php echo $pconfig['smtpusername']; ?>'><br/>
+ <input name='smtpusername' type='text' value='<?php echo $pconfig['smtpusername']; ?>' /><br/>
<?=gettext("Enter the e-mail address username for SMTP authentication."); ?>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Notification E-Mail auth password"); ?></td>
<td width="78%" class="vtable">
- <input name='smtppassword' type='password' value='<?php echo $pconfig['smtppassword']; ?>'><br/>
+ <input name='smtppassword' type='password' value='<?php echo $pconfig['smtppassword']; ?>' /><br/>
<?=gettext("Enter the e-mail address password for SMTP authentication."); ?>
</td>
</tr>
@@ -264,7 +264,7 @@ include("head.inc");
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Startup/Shutdown Sound"); ?></td>
<td width="78%" class="vtable">
- <input name="disablebeep" type="checkbox" id="disablebeep" value="yes" <?php if ($pconfig['disablebeep']) echo "checked"; ?> />
+ <input name="disablebeep" type="checkbox" id="disablebeep" value="yes" <?php if ($pconfig['disablebeep']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Disable the startup/shutdown beep"); ?></strong>
<br/>
<span class="vexpl"><?=gettext("When this is checked, startup and shutdown sounds will no longer play."); ?></span>
@@ -278,10 +278,11 @@ include("head.inc");
&nbsp;
</td>
<td>
- <input type='submit' id='Submit' name='Submit' value='<?=gettext("Save"); ?>'></form>
+ <input type='submit' id='Submit' name='Submit' value='<?=gettext("Save"); ?>' />
</td>
</tr>
</table>
+ </form>
</div>
</td>
</tr>
diff --git a/usr/local/www/system_advanced_sysctl.php b/usr/local/www/system_advanced_sysctl.php
index 469fd96..83c129a 100644
--- a/usr/local/www/system_advanced_sysctl.php
+++ b/usr/local/www/system_advanced_sysctl.php
@@ -139,7 +139,7 @@ include("head.inc");
print_info_box_np(gettext("The firewall tunables have changed. You must apply the configuration to take affect."));
?>
</form>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="system advanced tunables">
<tr>
<td>
<?php
@@ -160,13 +160,13 @@ include("head.inc");
<div class="tabcont">
<span class="vexpl">
<span class="red">
- <strong><?=gettext("NOTE:"); ?>&nbsp</strong>
+ <strong><?=gettext("NOTE:"); ?>&nbsp;</strong>
</span>
<?=gettext("The options on this page are intended for use by advanced users only."); ?>
<br/>
</span>
<br/>
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<tr>
<td width="20%" class="listhdrr"><?=gettext("Tunable Name"); ?></td>
<td width="60%" class="listhdrr"><?=gettext("Description"); ?></td>
@@ -174,24 +174,24 @@ include("head.inc");
</tr>
<?php $i = 0; foreach ($config['sysctl']['item'] as $tunable): ?>
<tr>
- <td class="listlr" ondblclick="document.location='system_advanced_sysctl.php?act=edit&id=<?=$i;?>';">
+ <td class="listlr" ondblclick="document.location='system_advanced_sysctl.php?act=edit&amp;id=<?=$i;?>';">
<?php echo $tunable['tunable']; ?>
</td>
- <td class="listr" align="left" ondblclick="document.location='system_advanced_sysctl.php?act=edit&id=<?=$i;?>';">
+ <td class="listr" align="left" ondblclick="document.location='system_advanced_sysctl.php?act=edit&amp;id=<?=$i;?>';">
<?php echo $tunable['descr']; ?>
</td>
- <td class="listr" align="left" ondblclick="document.location='system_advanced_sysctl.php?act=edit&id=<?=$i;?>';">
+ <td class="listr" align="left" ondblclick="document.location='system_advanced_sysctl.php?act=edit&amp;id=<?=$i;?>';">
<?php echo $tunable['value']; ?>
<?php
if($tunable['value'] == "default")
echo "(" . get_default_sysctl_value($tunable['tunable']) . ")";
?>
</td>
- <td class="list" nowrap>
- <table border="0" cellspacing="0" cellpadding="1">
+ <td class="list nowrap">
+ <table border="0" cellspacing="0" cellpadding="1" summary="edit delete">
<tr>
<td valign="middle">
- <a href="system_advanced_sysctl.php?act=edit&id=<?=$i;?>">
+ <a href="system_advanced_sysctl.php?act=edit&amp;id=<?=$i;?>">
<img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0" alt="" />
</a>
</td>
@@ -209,7 +209,7 @@ include("head.inc");
<td class="list" colspan="3">
</td>
<td class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ <table border="0" cellspacing="0" cellpadding="1" summary="edit">
<tr>
<td valign="middle">
<a href="system_advanced_sysctl.php?act=edit">
@@ -229,14 +229,14 @@ include("head.inc");
<td>
<div id="mainarea">
<form action="system_advanced_sysctl.php" method="post" name="iform" id="iform">
- <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0" summary="edit system tunable">
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Edit system tunable"); ?></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Tunable"); ?></td>
<td width="78%" class="vtable">
- <input size="65" name="tunable" value="<?php echo $pconfig['tunable']; ?>">
+ <input size="65" name="tunable" value="<?php echo $pconfig['tunable']; ?>" />
</td>
</tr>
<tr>
@@ -248,7 +248,7 @@ include("head.inc");
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Value"); ?></td>
<td width="78%" class="vtable">
- <input size="65" name="value" value="<?php echo $pconfig['value']; ?>">
+ <input size="65" name="value" value="<?php echo $pconfig['value']; ?>" />
</td>
</tr>
<tr>
diff --git a/usr/local/www/system_authservers.php b/usr/local/www/system_authservers.php
index 2649d5b..5d2183c 100644
--- a/usr/local/www/system_authservers.php
+++ b/usr/local/www/system_authservers.php
@@ -117,6 +117,7 @@ if ($act == "edit") {
$pconfig['radius_auth_port'] = $a_server[$id]['radius_auth_port'];
$pconfig['radius_acct_port'] = $a_server[$id]['radius_acct_port'];
$pconfig['radius_secret'] = $a_server[$id]['radius_secret'];
+ $pconfig['radius_timeout'] = $a_server[$id]['radius_timeout'];
if ($pconfig['radius_auth_port'] &&
$pconfig['radius_acct_port'] ) {
@@ -212,6 +213,9 @@ if ($_POST) {
if (auth_get_authserver($pconfig['name']) && !isset($id))
$input_errors[] = gettext("An authentication server with the same name already exists.");
+ if (($pconfig['type'] == "radius") && isset($_POST['radius_timeout']) && (!is_numeric($_POST['radius_timeout']) || (is_numeric($_POST['radius_timeout']) && ($_POST['radius_timeout'] <= 0))))
+ $input_errors[] = gettext("RADIUS Timeout value must be numeric and positive.");
+
/* if this is an AJAX caller then handle via JSON */
if (isAjax() && is_array($input_errors)) {
input_errors2Ajax($input_errors);
@@ -260,6 +264,9 @@ if ($_POST) {
if ($pconfig['radius_secret'])
$server['radius_secret'] = $pconfig['radius_secret'];
+ if ($pconfig['radius_timeout'])
+ $server['radius_timeout'] = $pconfig['radius_timeout'];
+
if ($pconfig['radius_srvcs'] == "both") {
$server['radius_auth_port'] = $pconfig['radius_auth_port'];
$server['radius_acct_port'] = $pconfig['radius_acct_port'];
@@ -293,7 +300,7 @@ include("head.inc");
<body link="#000000" vlink="#000000" alink="#000000" onload="<?= $jsevents["body"]["onload"] ?>">
<?php include("fbegin.inc"); ?>
<script type="text/javascript">
-<!--
+//<![CDATA[
function server_typechange(typ) {
@@ -410,7 +417,7 @@ function select_clicked() {
if (oWin==null || typeof(oWin)=="undefined")
alert("<?=gettext('Popup blocker detected. Action aborted.');?>");
}
-//-->
+//]]>
</script>
<?php
if ($input_errors)
@@ -418,7 +425,7 @@ function select_clicked() {
if ($savemsg)
print_info_box($savemsg);
?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="auth servers">
<tr>
<td>
<?php
@@ -438,7 +445,7 @@ function select_clicked() {
<?php if ($act == "new" || $act == "edit" || $input_errors): ?>
<form action="system_authservers.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Descriptive name");?></td>
<td width="78%" class="vtable">
@@ -459,7 +466,7 @@ function select_clicked() {
foreach ($auth_server_types as $typename => $typedesc ):
$selected = "";
if ($pconfig['type'] == $typename)
- $selected = "selected";
+ $selected = "selected=\"selected\"";
?>
<option value="<?=$typename;?>" <?=$selected;?>><?=$typedesc;?></option>
<?php endforeach; ?>
@@ -472,7 +479,7 @@ function select_clicked() {
</tr>
</table>
- <table width="100%" border="0" cellpadding="6" cellspacing="0" id="ldap" style="display:none">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" id="ldap" style="display:none" summary="">
<tr>
<td colspan="2" class="list" height="12"></td>
</tr>
@@ -499,7 +506,7 @@ function select_clicked() {
foreach ($ldap_urltypes as $urltype => $urlport):
$selected = "";
if ($pconfig['ldap_urltype'] == $urltype)
- $selected = "selected";
+ $selected = "selected=\"selected\"";
?>
<option value="<?=$urltype;?>" <?=$selected;?>><?=$urltype;?></option>
<?php endforeach; ?>
@@ -515,7 +522,7 @@ function select_clicked() {
foreach ($a_ca as $ca):
$selected = "";
if ($pconfig['ldap_caref'] == $ca['refid'])
- $selected = "selected";
+ $selected = "selected=\"selected\"";
?>
<option value="<?=$ca['refid'];?>" <?=$selected;?>><?=$ca['descr'];?></option>
<?php endforeach; ?>
@@ -535,7 +542,7 @@ function select_clicked() {
foreach ($ldap_protvers as $version):
$selected = "";
if ($pconfig['ldap_protver'] == $version)
- $selected = "selected";
+ $selected = "selected=\"selected\"";
?>
<option value="<?=$version;?>" <?=$selected;?>><?=$version;?></option>
<?php endforeach; ?>
@@ -545,7 +552,7 @@ function select_clicked() {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Search scope");?></td>
<td width="78%" class="vtable">
- <table border="0" cellspacing="0" cellpadding="2">
+ <table border="0" cellspacing="0" cellpadding="2" summary="search scope">
<tr>
<td><?=gettext("Level:");?> &nbsp;</td>
<td>
@@ -554,7 +561,7 @@ function select_clicked() {
foreach ($ldap_scopes as $scopename => $scopedesc):
$selected = "";
if ($pconfig['ldap_scope'] == $scopename)
- $selected = "selected";
+ $selected = "selected=\"selected\"";
?>
<option value="<?=$scopename;?>" <?=$selected;?>><?=$scopedesc;?></option>
<?php endforeach; ?>
@@ -574,12 +581,12 @@ function select_clicked() {
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Authentication containers");?></td>
<td width="78%" class="vtable">
- <table border="0" cellspacing="0" cellpadding="2">
+ <table border="0" cellspacing="0" cellpadding="2" summary="auth containers">
<tr>
<td><?=gettext("Containers:");?> &nbsp;</td>
<td>
- <input id="ldapauthcontainers" name="ldapauthcontainers" type="text" class="formfld unknown" id="ldapauthcontainers" size="40" value="<?=htmlspecialchars($pconfig['ldap_authcn']);?>"/>
- <input type="button" onClick="select_clicked();" value="<?=gettext("Select");?>">
+ <input name="ldapauthcontainers" type="text" class="formfld unknown" id="ldapauthcontainers" size="40" value="<?=htmlspecialchars($pconfig['ldap_authcn']);?>"/>
+ <input type="button" onclick="select_clicked();" value="<?=gettext("Select");?>" />
<br /><?=gettext("Note: Semi-Colon separated. This will be prepended to the search base dn above or you can specify full container path.");?>
<br /><?=gettext("Example: CN=Users;DC=example");?>
<br /><?=gettext("Example: CN=Users,DC=example,DC=com;OU=OtherUsers,DC=example,DC=com ");?>
@@ -591,10 +598,10 @@ function select_clicked() {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Extended Query");?></td>
<td width="78%" class="vtable">
- <table border="0" cellspacing="0" cellpadding="2">
+ <table border="0" cellspacing="0" cellpadding="2" summary="query">
<tr>
<td>
- <input name="ldap_extended_enabled" type="checkbox" id="ldap_extended_enabled" value="no" <?php if ($pconfig['ldap_extended_enabled']) echo "checked"; ?> >
+ <input name="ldap_extended_enabled" type="checkbox" id="ldap_extended_enabled" value="no" <?php if ($pconfig['ldap_extended_enabled']) echo "checked=\"checked\""; ?> />
</td>
<td>
@@ -608,17 +615,17 @@ function select_clicked() {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Bind credentials");?></td>
<td width="78%" class="vtable">
- <table border="0" cellspacing="0" cellpadding="2">
+ <table border="0" cellspacing="0" cellpadding="2" summary="bind credentials">
<tr>
<td>
- <input name="ldap_anon" type="checkbox" id="ldap_anon" value="yes" <?php if ($pconfig['ldap_anon']) echo "checked"; ?> onClick="ldap_bindchange()">
+ <input name="ldap_anon" type="checkbox" id="ldap_anon" value="yes" <?php if ($pconfig['ldap_anon']) echo "checked=\"checked\""; ?> onclick="ldap_bindchange()" />
</td>
<td>
<?=gettext("Use anonymous binds to resolve distinguished names");?>
</td>
</tr>
</table>
- <table border="0" cellspacing="0" cellpadding="2" id="ldap_bind">
+ <table border="0" cellspacing="0" cellpadding="2" id="ldap_bind" summary="bind">
<tr>
<td colspan="2"></td>
</tr>
@@ -646,7 +653,7 @@ function select_clicked() {
foreach ($ldap_templates as $tmplname => $tmpldata):
$selected = "";
if ($pconfig['ldap_template'] == $tmplname)
- $selected = "selected";
+ $selected = "selected=\"selected\"";
?>
<option value="<?=$tmplname;?>" <?=$selected;?>><?=$tmpldata['desc'];?></option>
<?php endforeach; ?>
@@ -674,7 +681,7 @@ function select_clicked() {
</tr>
</table>
- <table width="100%" border="0" cellpadding="6" cellspacing="0" id="radius" style="display:none">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" id="radius" style="display:none" summary="">
<tr>
<td colspan="2" class="list" height="12"></td>
</tr>
@@ -701,7 +708,7 @@ function select_clicked() {
foreach ($radius_srvcs as $srvcname => $srvcdesc):
$selected = "";
if ($pconfig['radius_srvcs'] == $srvcname)
- $selected = "selected";
+ $selected = "selected=\"selected\"";
?>
<option value="<?=$srvcname;?>" <?=$selected;?>><?=$srvcdesc;?></option>
<?php endforeach; ?>
@@ -720,9 +727,18 @@ function select_clicked() {
<input name="radius_acct_port" type="text" class="formfld unknown" id="radius_acct_port" size="5" value="<?=htmlspecialchars($pconfig['radius_acct_port']);?>"/>
</td>
</tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Authentication Timeout");?></td>
+ <td width="78%" class="vtable">
+ <input name="radius_timeout" type="text" class="formfld unknown" id="radius_timeout" size="20" value="<?=htmlspecialchars($pconfig['radius_timeout']);?>"/>
+ <br /><?= gettext("This value controls how long, in seconds, that the RADIUS server may take to respond to an authentication request.") ?>
+ <br /><?= gettext("If left blank, the default value is 5 seconds.") ?>
+ <br /><br /><?= gettext("NOTE: If you are using an interactive two-factor authentication system, increase this timeout to account for how long it will take the user to receive and enter a token.") ?>
+ </td>
+ </tr>
</table>
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="">
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
@@ -737,7 +753,7 @@ function select_clicked() {
<?php else: ?>
- <table class="sortable" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="sortable" width="100%" border="0" cellpadding="0" cellspacing="0" summary="">
<thead>
<tr>
<th width="25%" class="listhdrr"><?=gettext("Server Name");?></th>
@@ -746,6 +762,23 @@ function select_clicked() {
<th width="10%" class="list"></th>
</tr>
</thead>
+ <tfoot>
+ <tr>
+ <td class="list" colspan="3"></td>
+ <td class="list">
+ <a href="system_authservers.php?act=new">
+ <img src="/themes/<?= $g['theme'];?>/images/icons/icon_plus.gif" title="<?=gettext("add server");?>" alt="<?=gettext("add server");?>" width="17" height="17" border="0" />
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <p>
+ <?=gettext("Additional authentication servers can be added here.");?>
+ </p>
+ </td>
+ </tr>
+ </tfoot>
<tbody>
<?php
$i = 0;
@@ -754,17 +787,17 @@ function select_clicked() {
$type = htmlspecialchars($auth_server_types[$server['type']]);
$host = htmlspecialchars($server['host']);
?>
- <tr <?php if ($i < (count($a_server) - 1)): ?> ondblclick="document.location='system_authservers.php?act=edit&id=<?=$i;?>'" <?php endif; ?>>
+ <tr <?php if ($i < (count($a_server) - 1)): ?> ondblclick="document.location='system_authservers.php?act=edit&amp;id=<?=$i;?>'" <?php endif; ?>>
<td class="listlr"><?=$name?>&nbsp;</td>
<td class="listr"><?=$type;?>&nbsp;</td>
<td class="listr"><?=$host;?>&nbsp;</td>
- <td valign="middle" nowrap class="list">
+ <td valign="middle" class="list nowrap">
<?php if ($i < (count($a_server) - 1)): ?>
- <a href="system_authservers.php?act=edit&id=<?=$i;?>">
+ <a href="system_authservers.php?act=edit&amp;id=<?=$i;?>">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_e.gif" title="<?=gettext("edit server");?>" alt="<?=gettext("edit server");?>" width="17" height="17" border="0" />
</a>
&nbsp;
- <a href="system_authservers.php?act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this Server?");?>')">
+ <a href="system_authservers.php?act=del&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this Server?");?>')">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_x.gif" title="<?=gettext("delete server");?>" alt="<?=gettext("delete server");?>" width="17" height="17" border="0" />
</a>
<?php endif; ?>
@@ -774,23 +807,6 @@ function select_clicked() {
$i++; endforeach;
?>
</tbody>
- <tfoot>
- <tr>
- <td class="list" colspan="3"></td>
- <td class="list">
- <a href="system_authservers.php?act=new">
- <img src="/themes/<?= $g['theme'];?>/images/icons/icon_plus.gif" title="<?=gettext("add server");?>" alt="<?=gettext("add server");?>" width="17" height="17" border="0" />
- </a>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- <p>
- <?=gettext("Additional authentication servers can be added here.");?>
- </p>
- </td>
- </tr>
- </tfoot>
</table>
<?php endif; ?>
@@ -801,7 +817,7 @@ function select_clicked() {
</table>
<?php include("fend.inc"); ?>
<script type="text/javascript">
-<!--
+//<![CDATA[
server_typechange('<?=htmlspecialchars($pconfig['type']);?>');
<?php if (!isset($id) || $pconfig['type'] == "ldap"): ?>
ldap_bindchange();
@@ -814,6 +830,7 @@ ldap_tmplchange();
<?php if (!isset($id) || $pconfig['type'] == "radius"): ?>
radius_srvcschange();
<?php endif; ?>
-//-->
+//]]>
</script>
</body>
+</html>
diff --git a/usr/local/www/system_camanager.php b/usr/local/www/system_camanager.php
index 4d0c961..9b143b6 100644
--- a/usr/local/www/system_camanager.php
+++ b/usr/local/www/system_camanager.php
@@ -46,6 +46,7 @@ $ca_methods = array(
"intermediate" => gettext("Create an intermediate Certificate Authority"));
$ca_keylens = array( "512", "1024", "2048", "4096");
+$openssl_digest_algs = array("sha1", "sha224", "sha256", "sha384", "sha512");
$pgtitle = array(gettext("System"), gettext("Certificate Authority Manager"));
@@ -113,6 +114,7 @@ if ($act == "edit") {
if ($act == "new") {
$pconfig['method'] = $_GET['method'];
$pconfig['keylen'] = "2048";
+ $pconfig['digest_alg'] = "sha256";
$pconfig['lifetime'] = "3650";
$pconfig['dn_commonname'] = "internal-ca";
}
@@ -202,7 +204,7 @@ if ($_POST) {
}
do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
- if ($pconfig['method'] != "existing")
+ if ($pconfig['method'] != "existing") {
/* Make sure we do not have invalid characters in the fields for the certificate */
for ($i = 0; $i < count($reqdfields); $i++) {
if ($reqdfields[$i] == 'dn_email'){
@@ -214,6 +216,11 @@ if ($_POST) {
}else if (preg_match("/[\!\@\#\$\%\^\(\)\~\?\>\<\&\/\\\,\.\"\']/", $_POST["$reqdfields[$i]"]))
array_push($input_errors, "The field '" . $reqdfieldsn[$i] . "' contains invalid characters.");
}
+ if (!in_array($_POST["keylen"], $ca_keylens))
+ array_push($input_errors, gettext("Please select a valid Key Length."));
+ if (!in_array($_POST["digest_alg"], $openssl_digest_algs))
+ array_push($input_errors, gettext("Please select a valid Digest Algorithm."));
+ }
/* if this is an AJAX caller then handle via JSON */
if (isAjax() && is_array($input_errors)) {
@@ -255,7 +262,7 @@ if ($_POST) {
'organizationName' => $pconfig['dn_organization'],
'emailAddress' => $pconfig['dn_email'],
'commonName' => $pconfig['dn_commonname']);
- if (!ca_create($ca, $pconfig['keylen'], $pconfig['lifetime'], $dn)){
+ if (!ca_create($ca, $pconfig['keylen'], $pconfig['lifetime'], $dn, $pconfig['digest_alg'])){
while($ssl_err = openssl_error_string()){
$input_errors = array();
array_push($input_errors, "openssl library returns: " . $ssl_err);
@@ -270,7 +277,7 @@ if ($_POST) {
'organizationName' => $pconfig['dn_organization'],
'emailAddress' => $pconfig['dn_email'],
'commonName' => $pconfig['dn_commonname']);
- if (!ca_inter_create($ca, $pconfig['keylen'], $pconfig['lifetime'], $dn, $pconfig['caref'])){
+ if (!ca_inter_create($ca, $pconfig['keylen'], $pconfig['lifetime'], $dn, $pconfig['caref'], $pconfig['digest_alg'])){
while($ssl_err = openssl_error_string()){
$input_errors = array();
array_push($input_errors, "openssl library returns: " . $ssl_err);
@@ -298,7 +305,7 @@ include("head.inc");
<body link="#000000" vlink="#000000" alink="#000000" onload="<?= $jsevents["body"]["onload"] ?>">
<?php include("fbegin.inc"); ?>
<script type="text/javascript">
-<!--
+//<![CDATA[
function method_change() {
@@ -323,7 +330,7 @@ function method_change() {
}
}
-//-->
+//]]>
</script>
<?php
if ($input_errors)
@@ -340,7 +347,7 @@ function method_change() {
array_push($dn_cc, $matches[1]);
}
?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="CA manager">
<tr>
<td>
<?php
@@ -360,11 +367,11 @@ function method_change() {
<form action="system_camanager.php" method="post" name="iform" id="iform">
<?php if ($act == "edit"): ?>
- <input type="hidden" name="edit" value="edit" id="edit">
- <input type="hidden" name="id" value="<?php echo $id; ?>" id="id">
- <input type="hidden" name="refid" value="<?php echo $pconfig['refid']; ?>" id="refid">
+ <input type="hidden" name="edit" value="edit" id="edit" />
+ <input type="hidden" name="id" value="<?php echo $id; ?>" id="id" />
+ <input type="hidden" name="refid" value="<?php echo $pconfig['refid']; ?>" id="refid" />
<?php endif; ?>
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Descriptive name");?></td>
<td width="78%" class="vtable">
@@ -380,7 +387,7 @@ function method_change() {
foreach($ca_methods as $method => $desc):
$selected = "";
if ($pconfig['method'] == $method)
- $selected = "selected";
+ $selected = " selected=\"selected\"";
?>
<option value="<?=$method;?>"<?=$selected;?>><?=$desc;?></option>
<?php endforeach; ?>
@@ -390,7 +397,7 @@ function method_change() {
<?php endif; ?>
</table>
- <table width="100%" border="0" cellpadding="6" cellspacing="0" id="existing">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" id="existing" summary="existing">
<tr>
<td colspan="2" class="list" height="12"></td>
</tr>
@@ -402,16 +409,16 @@ function method_change() {
<td width="22%" valign="top" class="vncellreq"><?=gettext("Certificate data");?></td>
<td width="78%" class="vtable">
<textarea name="cert" id="cert" cols="65" rows="7" class="formfld_cert"><?=htmlspecialchars($pconfig['cert']);?></textarea>
- <br>
- <?=gettext("Paste a certificate in X.509 PEM format here.");?></td>
+ <br/>
+ <?=gettext("Paste a certificate in X.509 PEM format here.");?>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Certificate Private Key");?><br/><?=gettext("(optional)");?></td>
<td width="78%" class="vtable">
<textarea name="key" id="key" cols="65" rows="7" class="formfld_cert"><?=htmlspecialchars($pconfig['key']);?></textarea>
- <br>
- <?=gettext("Paste the private key for the above certificate here. This is optional in most cases, but required if you need to generate a Certificate Revocation List (CRL).");?></td>
+ <br/>
+ <?=gettext("Paste the private key for the above certificate here. This is optional in most cases, but required if you need to generate a Certificate Revocation List (CRL).");?>
</td>
</tr>
@@ -426,7 +433,7 @@ function method_change() {
<?php endif; ?>
</table>
- <table width="100%" border="0" cellpadding="6" cellspacing="0" id="internal">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" id="internal" summary="internal">
<tr>
<td colspan="2" class="list" height="12"></td>
</tr>
@@ -443,7 +450,7 @@ function method_change() {
continue;
$selected = "";
if ($pconfig['caref'] == $ca['refid'])
- $selected = "selected";
+ $selected = " selected=\"selected\"";
?>
<option value="<?=$ca['refid'];?>"<?=$selected;?>><?=$ca['descr'];?></option>
<?php endforeach; ?>
@@ -458,7 +465,7 @@ function method_change() {
foreach( $ca_keylens as $len):
$selected = "";
if ($pconfig['keylen'] == $len)
- $selected = "selected";
+ $selected = " selected=\"selected\"";
?>
<option value="<?=$len;?>"<?=$selected;?>><?=$len;?></option>
<?php endforeach; ?>
@@ -467,6 +474,22 @@ function method_change() {
</td>
</tr>
<tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Digest Algorithm");?></td>
+ <td width="78%" class="vtable">
+ <select name='digest_alg' id='digest_alg' class="formselect">
+ <?php
+ foreach( $openssl_digest_algs as $digest_alg):
+ $selected = "";
+ if ($pconfig['digest_alg'] == $digest_alg)
+ $selected = " selected=\"selected\"";
+ ?>
+ <option value="<?=$digest_alg;?>"<?=$selected;?>><?=strtoupper($digest_alg);?></option>
+ <?php endforeach; ?>
+ </select>
+ <br/><?= gettext("NOTE: It is recommended to use an algorithm stronger than SHA1 when possible.") ?>
+ </td>
+ </tr>
+ <tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Lifetime");?></td>
<td width="78%" class="vtable">
<input name="lifetime" type="text" class="formfld unknown" id="lifetime" size="5" value="<?=htmlspecialchars($pconfig['lifetime']);?>"/>
@@ -476,7 +499,7 @@ function method_change() {
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Distinguished name");?></td>
<td width="78%" class="vtable">
- <table border="0" cellspacing="0" cellpadding="2">
+ <table border="0" cellspacing="0" cellpadding="2" summary="name">
<tr>
<td align="right"><?=gettext("Country Code");?> : &nbsp;</td>
<td align="left">
@@ -484,8 +507,9 @@ function method_change() {
<?php
foreach( $dn_cc as $cc){
$selected = "";
- if ($pconfig['dn_country'] == $cc) $selected = "selected";
- print "<option value=\"$cc\" $selected>$cc</option>";
+ if ($pconfig['dn_country'] == $cc)
+ $selected = " selected=\"selected\"";
+ print "<option value=\"$cc\"$selected>$cc</option>";
}
?>
</select>
@@ -546,7 +570,7 @@ function method_change() {
</tr>
</table>
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="save">
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
@@ -561,7 +585,7 @@ function method_change() {
<?php else: ?>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="">
<tr>
<td width="20%" class="listhdrr"><?=gettext("Name");?></td>
<td width="10%" class="listhdrr"><?=gettext("Internal");?></td>
@@ -576,6 +600,7 @@ function method_change() {
$name = htmlspecialchars($ca['descr']);
$subj = cert_get_subject($ca['crt']);
$issuer = cert_get_issuer($ca['crt']);
+ list($startdate, $enddate) = cert_get_dates($ca['crt']);
if($subj == $issuer)
$issuer_name = "<em>" . gettext("self-signed") . "</em>";
else
@@ -607,9 +632,9 @@ function method_change() {
?>
<tr>
<td class="listlr">
- <table border="0" cellpadding="0" cellspacing="0">
+ <table border="0" cellpadding="0" cellspacing="0" summary="icon">
<tr>
- <td align="left" valign="center">
+ <td align="left" valign="middle">
<img src="<?=$caimg;?>" alt="CA" title="CA" border="0" height="16" width="16" />
</td>
<td align="left" valign="middle">
@@ -621,20 +646,33 @@ function method_change() {
<td class="listr"><?=$internal;?>&nbsp;</td>
<td class="listr"><?=$issuer_name;?>&nbsp;</td>
<td class="listr"><?=$certcount;?>&nbsp;</td>
- <td class="listr"><?=$subj;?>&nbsp;</td>
+ <td class="listr"><?=$subj;?><br />
+ <table width="100%" style="font-size: 9px" summary="valid">
+ <tr>
+ <td width="10%">&nbsp;</td>
+ <td width="20%"><?=gettext("Valid From")?>:</td>
+ <td width="70%"><?= $startdate ?></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td><?=gettext("Valid Until")?>:</td>
+ <td><?= $enddate ?></td>
+ </tr>
+ </table>
+ </td>
<td valign="middle" nowrap class="list">
- <a href="system_camanager.php?act=edit&id=<?=$i;?>")">
+ <a href="system_camanager.php?act=edit&amp;id=<?=$i;?>">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_e.gif" title="<?=gettext("edit CA");?>" alt="<?=gettext("edit CA");?>" width="17" height="17" border="0" />
</a>
- <a href="system_camanager.php?act=exp&id=<?=$i;?>")">
+ <a href="system_camanager.php?act=exp&amp;id=<?=$i;?>">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_down.gif" title="<?=gettext("export CA cert");?>" alt="<?=gettext("export CA cert");?>" width="17" height="17" border="0" />
</a>
<?php if ($ca['prv']): ?>
- <a href="system_camanager.php?act=expkey&id=<?=$i;?>")">
+ <a href="system_camanager.php?act=expkey&amp;id=<?=$i;?>">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_down.gif" title="<?=gettext("export CA private key");?>" alt="<?=gettext("export CA private key");?>" width="17" height="17" border="0" />
</a>
<?php endif; ?>
- <a href="system_camanager.php?act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this Certificate Authority and its CRLs, and unreference any associated certificates?");?>')">
+ <a href="system_camanager.php?act=del&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this Certificate Authority and its CRLs, and unreference any associated certificates?");?>')">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_x.gif" title="<?=gettext("delete ca");?>" alt="<?=gettext("delete ca"); ?>" width="17" height="17" border="0" />
</a>
</td>
@@ -668,11 +706,12 @@ function method_change() {
</table>
<?php include("fend.inc");?>
<script type="text/javascript">
-<!--
+//<![CDATA[
method_change();
-//-->
+//]]>
</script>
</body>
+</html>
diff --git a/usr/local/www/system_certmanager.php b/usr/local/www/system_certmanager.php
index c9e9826..3fbfc4a 100644
--- a/usr/local/www/system_certmanager.php
+++ b/usr/local/www/system_certmanager.php
@@ -52,6 +52,7 @@ $cert_types = array( "ca" => "Certificate Authority",
"user" => "User Certificate");
$altname_types = array("DNS", "IP", "email", "URI");
+$openssl_digest_algs = array("sha1", "sha224", "sha256", "sha384", "sha512");
$pgtitle = array(gettext("System"), gettext("Certificate Manager"));
@@ -106,6 +107,8 @@ if ($act == "del") {
if ($act == "new") {
$pconfig['method'] = $_GET['method'];
$pconfig['keylen'] = "2048";
+ $pconfig['csr_keylen'] = "2048";
+ $pconfig['digest_alg'] = "sha256";
$pconfig['type'] = "user";
$pconfig['lifetime'] = "3650";
}
@@ -292,6 +295,12 @@ if ($_POST) {
}else if (preg_match("/[\!\@\#\$\%\^\(\)\~\?\>\<\&\/\\\,\.\"\']/", $_POST["$reqdfields[$i]"]))
array_push($input_errors, "The field '" . $reqdfieldsn[$i] . "' contains invalid characters.");
}
+ if (isset($_POST["keylen"]) && !in_array($_POST["keylen"], $cert_keylens))
+ array_push($input_errors, gettext("Please select a valid Key Length."));
+ if (isset($_POST["csr_keylen"]) && !in_array($_POST["csr_keylen"], $cert_keylens))
+ array_push($input_errors, gettext("Please select a valid Key Length."));
+ if (!in_array($_POST["digest_alg"], $openssl_digest_algs))
+ array_push($input_errors, gettext("Please select a valid Digest Algorithm."));
}
/* if this is an AJAX caller then handle via JSON */
@@ -336,7 +345,7 @@ if ($_POST) {
$dn['subjectAltName'] = implode(",", $altnames_tmp);
}
if (!cert_create($cert, $pconfig['caref'], $pconfig['keylen'],
- $pconfig['lifetime'], $dn, $pconfig['type'])){
+ $pconfig['lifetime'], $dn, $pconfig['type'], $pconfig['digest_alg'])){
while($ssl_err = openssl_error_string()){
$input_errors = array();
array_push($input_errors, "openssl library returns: " . $ssl_err);
@@ -359,7 +368,7 @@ if ($_POST) {
}
$dn['subjectAltName'] = implode(",", $altnames_tmp);
}
- if(!csr_generate($cert, $pconfig['csr_keylen'], $dn)){
+ if(!csr_generate($cert, $pconfig['csr_keylen'], $dn, $pconfig['digest_alg'])){
while($ssl_err = openssl_error_string()){
$input_errors = array();
array_push($input_errors, "openssl library returns: " . $ssl_err);
@@ -443,10 +452,10 @@ if ($_POST) {
include("head.inc");
?>
-<body link="#000000" vlink="#000000" alink="#000000" onLoad="<?= $jsevents["body"]["onload"] ?>">
+<body link="#000000" vlink="#000000" alink="#000000" onload="<?= $jsevents["body"]["onload"] ?>">
<?php include("fbegin.inc"); ?>
<script type="text/javascript">
-<!--
+//<![CDATA[
function method_change() {
@@ -520,19 +529,20 @@ function internalca_change() {
}
<?php endif; ?>
-//-->
-</script>
-<script type="text/javascript" src="/javascript/row_helper_dynamic.js">
+//]]>
</script>
+<script type="text/javascript" src="/javascript/row_helper_dynamic.js"></script>
<input type='hidden' name='altname_value_type' value='select' />
<input type='hidden' name='altname_type_type' value='textbox' />
<script type="text/javascript">
+//<![CDATA[
rowname[0] = "altname_type";
rowtype[0] = "textbox";
rowsize[0] = "10";
rowname[1] = "altname_value";
rowtype[1] = "textbox";
rowsize[1] = "30";
+//]]>
</script>
<?php
if ($input_errors)
@@ -549,7 +559,7 @@ function internalca_change() {
array_push($dn_cc, $matches[1]);
}
?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="cert manager">
<tr>
<td class="tabnavtbl">
<?php
@@ -568,7 +578,7 @@ function internalca_change() {
<?php if ($act == "new" || (($_POST['save'] == gettext("Save")) && $input_errors)): ?>
<form action="system_certmanager.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<?php if (!isset($id)): ?>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Method");?></td>
@@ -578,7 +588,7 @@ function internalca_change() {
foreach($cert_methods as $method => $desc):
$selected = "";
if ($pconfig['method'] == $method)
- $selected = "selected";
+ $selected = " selected=\"selected\"";
?>
<option value="<?=$method;?>"<?=$selected;?>><?=$desc;?></option>
<?php endforeach; ?>
@@ -598,7 +608,7 @@ function internalca_change() {
</tr>
</table>
- <table width="100%" border="0" cellpadding="6" cellspacing="0" id="import">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" id="import" summary="import">
<tr>
<td colspan="2" class="list" height="12"></td>
</tr>
@@ -610,21 +620,21 @@ function internalca_change() {
<td width="22%" valign="top" class="vncellreq"><?=gettext("Certificate data");?></td>
<td width="78%" class="vtable">
<textarea name="cert" id="cert" cols="65" rows="7" class="formfld_cert"><?=htmlspecialchars($pconfig['cert']);?></textarea>
- <br>
- <?=gettext("Paste a certificate in X.509 PEM format here.");?></td>
+ <br/>
+ <?=gettext("Paste a certificate in X.509 PEM format here.");?>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Private key data");?></td>
<td width="78%" class="vtable">
<textarea name="key" id="key" cols="65" rows="7" class="formfld_cert"><?=htmlspecialchars($pconfig['key']);?></textarea>
- <br>
- <?=gettext("Paste a private key in X.509 PEM format here.");?></td>
+ <br/>
+ <?=gettext("Paste a private key in X.509 PEM format here.");?>
</td>
</tr>
</table>
- <table width="100%" border="0" cellpadding="6" cellspacing="0" id="internal">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" id="internal" summary="internal">
<tr>
<td colspan="2" class="list" height="12"></td>
</tr>
@@ -637,7 +647,7 @@ function internalca_change() {
<tr>
<td colspan="2" align="center" class="vtable">
<?=gettext("No internal Certificate Authorities have been defined. You must");?>
- <a href="system_camanager.php?act=new&method=internal"><?=gettext("create");?></a>
+ <a href="system_camanager.php?act=new&amp;method=internal"><?=gettext("create");?></a>
<?=gettext("an internal CA before creating an internal certificate.");?>
</td>
</tr>
@@ -647,14 +657,14 @@ function internalca_change() {
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Certificate authority");?></td>
<td width="78%" class="vtable">
- <select name='caref' id='caref' class="formselect" onChange='internalca_change()'>
+ <select name='caref' id='caref' class="formselect" onchange='internalca_change()'>
<?php
foreach( $a_ca as $ca):
if (!$ca['prv'])
continue;
$selected = "";
if ($pconfig['caref'] == $ca['refid'])
- $selected = "selected";
+ $selected = " selected=\"selected\"";
?>
<option value="<?=$ca['refid'];?>"<?=$selected;?>><?=$ca['descr'];?></option>
<?php endforeach; ?>
@@ -669,7 +679,7 @@ function internalca_change() {
foreach( $cert_keylens as $len):
$selected = "";
if ($pconfig['keylen'] == $len)
- $selected = "selected";
+ $selected = " selected=\"selected\"";
?>
<option value="<?=$len;?>"<?=$selected;?>><?=$len;?></option>
<?php endforeach; ?>
@@ -678,6 +688,22 @@ function internalca_change() {
</td>
</tr>
<tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Digest Algorithm");?></td>
+ <td width="78%" class="vtable">
+ <select name='digest_alg' id='digest_alg' class="formselect">
+ <?php
+ foreach( $openssl_digest_algs as $digest_alg):
+ $selected = "";
+ if ($pconfig['digest_alg'] == $digest_alg)
+ $selected = " selected=\"selected\"";
+ ?>
+ <option value="<?=$digest_alg;?>"<?=$selected;?>><?=strtoupper($digest_alg);?></option>
+ <?php endforeach; ?>
+ </select>
+ <br/><?= gettext("NOTE: It is recommended to use an algorithm stronger than SHA1 when possible.") ?>
+ </td>
+ </tr>
+ <tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Certificate Type");?></td>
<td width="78%" class="vtable">
<select name='type' class="formselect">
@@ -685,7 +711,7 @@ function internalca_change() {
foreach( $cert_types as $ct => $ctdesc ):
$selected = "";
if ($pconfig['type'] == $ct)
- $selected = "selected";
+ $selected = " selected=\"selected\"";
?>
<option value="<?=$ct;?>"<?=$selected;?>><?=$ctdesc;?></option>
<?php endforeach; ?>
@@ -704,7 +730,7 @@ function internalca_change() {
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Distinguished name");?></td>
<td width="78%" class="vtable">
- <table border="0" cellspacing="0" cellpadding="2">
+ <table border="0" cellspacing="0" cellpadding="2" summary="name">
<tr>
<td align="right"><?=gettext("Country Code");?> : &nbsp;</td>
<td align="left">
@@ -787,16 +813,19 @@ function internalca_change() {
endforeach;
endif;
?>
+ <tr><td>&nbsp;</td></tr>
</tbody>
</table>
<a onclick="javascript:addRowTo('altNametable', 'formfldalias'); return false;" href="#">
<img border="0" src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" alt="" title="<?=gettext("add another entry");?>" />
</a>
<script type="text/javascript">
+ //<![CDATA[
field_counter_js = 3;
rows = 1;
totalrows = <?php echo $counter; ?>;
loaded = <?php echo $counter; ?>;
+ //]]>
</script>
<br/>NOTE: Type must be one of DNS (FQDN or Hostname), IP (IP address), URI, or email.
</td>
@@ -809,7 +838,7 @@ function internalca_change() {
</table>
- <table width="100%" border="0" cellpadding="6" cellspacing="0" id="external">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" id="external" summary="external">
<tr>
<td colspan="2" class="list" height="12"></td>
</tr>
@@ -821,12 +850,12 @@ function internalca_change() {
<td width="78%" class="vtable">
<select name='csr_keylen' class="formselect">
<?php
- if (!isset($pconfig['keylen']) && isset($pconfig['csr_keylen']))
- $pconfig['keylen'] = $pconfig['csr_keylen'];
+ if (!isset($pconfig['csr_keylen']) && isset($pconfig['csr_keylen']))
+ $pconfig['csr_keylen'] = $pconfig['csr_keylen'];
foreach( $cert_keylens as $len):
$selected = "";
- if ($pconfig['keylen'] == $len)
- $selected = "selected";
+ if ($pconfig['csr_keylen'] == $len)
+ $selected = " selected=\"selected\"";
?>
<option value="<?=$len;?>"<?=$selected;?>><?=$len;?></option>
<?php endforeach; ?>
@@ -835,9 +864,25 @@ function internalca_change() {
</td>
</tr>
<tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Digest Algorithm");?></td>
+ <td width="78%" class="vtable">
+ <select name='digest_alg' id='digest_alg' class="formselect">
+ <?php
+ foreach( $openssl_digest_algs as $digest_alg):
+ $selected = "";
+ if ($pconfig['digest_alg'] == $digest_alg)
+ $selected = " selected=\"selected\"";
+ ?>
+ <option value="<?=$digest_alg;?>"<?=$selected;?>><?=strtoupper($digest_alg);?></option>
+ <?php endforeach; ?>
+ </select>
+ <br/><?= gettext("NOTE: It is recommended to use an algorithm stronger than SHA1 when possible.") ?>
+ </td>
+ </tr>
+ <tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Distinguished name");?></td>
<td width="78%" class="vtable">
- <table border="0" cellspacing="0" cellpadding="2">
+ <table border="0" cellspacing="0" cellpadding="2" summary="name">
<tr>
<td align="right"><?=gettext("Country Code");?> : &nbsp;</td>
<td align="left">
@@ -845,8 +890,9 @@ function internalca_change() {
<?php
foreach( $dn_cc as $cc){
$selected = "";
- if ($pconfig['csr_dn_country'] == $cc) $selected = "selected";
- print "<option value=\"$cc\" $selected>$cc</option>";
+ if ($pconfig['csr_dn_country'] == $cc)
+ $selected = " selected=\"selected\"";
+ print "<option value=\"$cc\"$selected>$cc</option>";
}
?>
</select>
@@ -907,7 +953,7 @@ function internalca_change() {
</tr>
</table>
- <table width="100%" border="0" cellpadding="6" cellspacing="0" id="existing">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" id="existing" summary="existing">
<tr>
<td colspan="2" class="list" height="12"></td>
</tr>
@@ -927,26 +973,26 @@ function internalca_change() {
$caname = "";
$inuse = "";
$revoked = "";
- if (in_array($cert['refid'], $config['system']['user'][$userid]['cert']))
+ if (isset($userid) && in_array($cert['refid'], $config['system']['user'][$userid]['cert']))
continue;
$ca = lookup_ca($cert['caref']);
if ($ca)
$caname = " (CA: {$ca['descr']})";
if ($pconfig['certref'] == $cert['refid'])
- $selected = "selected";
+ $selected = " selected=\"selected\"";
if (cert_in_use($cert['refid']))
$inuse = " *In Use";
if (is_cert_revoked($cert))
$revoked = " *Revoked";
?>
- <option value="<?=$cert['refid'];?>" <?=$selected;?>><?=$cert['descr'] . $caname . $inuse . $revoked;?></option>
+ <option value="<?=$cert['refid'];?>"<?=$selected;?>><?=$cert['descr'] . $caname . $inuse . $revoked;?></option>
<?php endforeach; ?>
</select>
</td>
</tr>
</table>
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="save">
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
@@ -962,7 +1008,7 @@ function internalca_change() {
<?php elseif ($act == "csr" || (($_POST['save'] == gettext("Update")) && $input_errors)):?>
<form action="system_certmanager.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="name">
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Descriptive name");?></td>
<td width="78%" class="vtable">
@@ -977,18 +1023,18 @@ function internalca_change() {
</tr>
<tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Signing Request data");?></td>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Signing request data");?></td>
<td width="78%" class="vtable">
- <textarea name="csr" id="csr" cols="65" rows="7" class="formfld_cert" readonly><?=htmlspecialchars($pconfig['csr']);?></textarea>
- <br>
+ <textarea name="csr" id="csr" cols="65" rows="7" class="formfld_cert" readonly="readonly"><?=htmlspecialchars($pconfig['csr']);?></textarea>
+ <br/>
<?=gettext("Copy the certificate signing data from here and forward it to your certificate authority for signing.");?></td>
</td>
</tr>
<tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Final Certificate data");?></td>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Final certificate data");?></td>
<td width="78%" class="vtable">
<textarea name="cert" id="cert" cols="65" rows="7" class="formfld_cert"><?=htmlspecialchars($pconfig['cert']);?></textarea>
- <br>
+ <br/>
<?=gettext("Paste the certificate received from your certificate authority here.");?></td>
</td>
</tr>
@@ -1015,7 +1061,7 @@ function internalca_change() {
<?php else:?>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="details">
<tr>
<td width="15%" class="listhdrr"><?=gettext("Name");?></td>
<td width="15%" class="listhdrr"><?=gettext("Issuer");?></td>
@@ -1032,6 +1078,7 @@ function internalca_change() {
$subj = cert_get_subject($cert['crt']);
$issuer = cert_get_issuer($cert['crt']);
$purpose = cert_get_purpose($cert['crt']);
+ list($startdate, $enddate) = cert_get_dates($cert['crt']);
if($subj==$issuer)
$caname = "<em>" . gettext("self-signed") . "</em>";
else
@@ -1055,9 +1102,9 @@ function internalca_change() {
?>
<tr>
<td class="listlr">
- <table border="0" cellpadding="0" cellspacing="0">
+ <table border="0" cellpadding="0" cellspacing="0" summary="icon">
<tr>
- <td align="left" valign="center">
+ <td align="left" valign="middle">
<img src="<?=$certimg;?>" alt="CA" title="CA" border="0" height="16" width="16" />
</td>
<td align="left" valign="middle">
@@ -1077,7 +1124,20 @@ function internalca_change() {
</table>
</td>
<td class="listr"><?=$caname;?>&nbsp;</td>
- <td class="listr"><?=$subj;?>&nbsp;</td>
+ <td class="listr"><?=$subj;?>&nbsp;<br />
+ <table width="100%" style="font-size: 9px" summary="valid">
+ <tr>
+ <td width="10%">&nbsp;</td>
+ <td width="20%"><?=gettext("Valid From")?>:</td>
+ <td width="70%"><?= $startdate ?></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td><?=gettext("Valid Until")?>:</td>
+ <td><?= $enddate ?></td>
+ </tr>
+ </table>
+ </td>
<td class="listr">
<?php if (is_cert_revoked($cert)): ?>
<b>Revoked</b><br/>
@@ -1101,24 +1161,24 @@ function internalca_change() {
Captive Portal<br/>
<?php endif; ?>
</td>
- <td valign="middle" nowrap class="list">
- <a href="system_certmanager.php?act=exp&id=<?=$i;?>">
+ <td valign="middle" class="list nowrap">
+ <a href="system_certmanager.php?act=exp&amp;id=<?=$i;?>">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_down.gif" title="<?=gettext("export cert");?>" alt="<?=gettext("export ca");?>" width="17" height="17" border="0" />
</a>
- <a href="system_certmanager.php?act=key&id=<?=$i;?>">
+ <a href="system_certmanager.php?act=key&amp;id=<?=$i;?>">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_down.gif" title="<?=gettext("export key");?>" alt="<?=gettext("export ca");?>" width="17" height="17" border="0" />
</a>
- <a href="system_certmanager.php?act=p12&id=<?=$i;?>">
+ <a href="system_certmanager.php?act=p12&amp;id=<?=$i;?>">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_down.gif" title="<?=gettext("export cert+key in .p12");?>" alt="<?=gettext("export cert+key in .p12");?>" width="17" height="17" border="0" />
</a>
<?php if (!cert_in_use($cert['refid'])): ?>
- <a href="system_certmanager.php?act=del&id=<?=$i;?>" onClick="return confirm('<?=gettext("Do you really want to delete this Certificate?");?>')">
+ <a href="system_certmanager.php?act=del&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this Certificate?");?>')">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_x.gif" title="<?=gettext("delete cert");?>" alt="<?=gettext("delete cert");?>" width="17" height="17" border="0" />
</a>
<?php endif; ?>
<?php if ($cert['csr']): ?>
&nbsp;
- <a href="system_certmanager.php?act=csr&id=<?=$i;?>">
+ <a href="system_certmanager.php?act=csr&amp;id=<?=$i;?>">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_e.gif" title="<?=gettext("update csr");?>" alt="<?=gettext("update csr");?>" width="17" height="17" border="0" />
</a>
<?php endif; ?>
@@ -1150,12 +1210,13 @@ function internalca_change() {
</table>
<?php include("fend.inc");?>
<script type="text/javascript">
-<!--
+//<![CDATA[
method_change();
internalca_change();
-//-->
+//]]>
</script>
</body>
+</html> \ No newline at end of file
diff --git a/usr/local/www/system_crlmanager.php b/usr/local/www/system_crlmanager.php
index c54a283..5d60318 100644
--- a/usr/local/www/system_crlmanager.php
+++ b/usr/local/www/system_crlmanager.php
@@ -250,7 +250,7 @@ include("head.inc");
<body link="#000000" vlink="#000000" alink="#000000" onload="<?= $jsevents["body"]["onload"] ?>">
<?php include("fbegin.inc"); ?>
<script type="text/javascript">
-<!--
+//<![CDATA[
function method_change() {
@@ -268,7 +268,7 @@ function method_change() {
}
}
-//-->
+//]]>
</script>
<?php
if ($input_errors)
@@ -276,7 +276,7 @@ function method_change() {
if ($savemsg)
print_info_box($savemsg);
?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="CRL manager">
<tr>
<td>
<?php
@@ -295,7 +295,7 @@ function method_change() {
<?php if ($act == "new" || $act == gettext("Save") || $input_errors): ?>
<form action="system_crlmanager.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<?php if (!isset($id)): ?>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Method");?></td>
@@ -307,7 +307,7 @@ function method_change() {
continue;
$selected = "";
if ($pconfig['method'] == $method)
- $selected = "selected";
+ $selected = "selected=\"selected\"";
?>
<option value="<?=$method;?>"<?=$selected;?>><?=$desc;?></option>
<?php endforeach; ?>
@@ -329,7 +329,7 @@ function method_change() {
foreach($a_ca as $ca):
$selected = "";
if ($pconfig['caref'] == $ca['refid'])
- $selected = "selected";
+ $selected = "selected=\"selected\"";
?>
<option value="<?=$ca['refid'];?>"<?=$selected;?>><?=$ca['descr'];?></option>
<?php endforeach; ?>
@@ -338,7 +338,7 @@ function method_change() {
</tr>
</table>
- <table width="100%" border="0" cellpadding="6" cellspacing="0" id="existing">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" id="existing" summary="existing">
<tr>
<td colspan="2" class="list" height="12"></td>
</tr>
@@ -350,13 +350,13 @@ function method_change() {
<td width="22%" valign="top" class="vncellreq"><?=gettext("CRL data");?></td>
<td width="78%" class="vtable">
<textarea name="crltext" id="crltext" cols="65" rows="7" class="formfld_crl"><?=$pconfig['crltext'];?></textarea>
- <br>
- <?=gettext("Paste a Certificate Revocation List in X.509 CRL format here.");?></td>
+ <br/>
+ <?=gettext("Paste a Certificate Revocation List in X.509 CRL format here.");?>
</td>
</tr>
</table>
- <table width="100%" border="0" cellpadding="6" cellspacing="0" id="internal">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" id="internal" summary="internal">
<tr>
<td colspan="2" class="list" height="12"></td>
</tr>
@@ -374,14 +374,14 @@ function method_change() {
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Serial");?></td>
<td width="78%" class="vtable">
- <input name="lifetime" type="text" class="formfld unknown" id="lifetime" size="5" value="<?=htmlspecialchars($pconfig['serial']);?>"/>
+ <input name="serial" type="text" class="formfld unknown" id="serial" size="5" value="<?=htmlspecialchars($pconfig['serial']);?>"/>
<br/>
<?=gettext("Default: 0");?>
</td>
</tr>
</table>
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="save">
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
@@ -396,7 +396,7 @@ function method_change() {
<?php elseif ($act == "editimported"): ?>
<?php $crl = $thiscrl; ?>
<form action="system_crlmanager.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="6" cellspacing="0" id="editimported">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" id="editimported" summary="import">
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Edit Imported Certificate Revocation List");?></td>
</tr>
@@ -410,7 +410,7 @@ function method_change() {
<td width="22%" valign="top" class="vncellreq"><?=gettext("CRL data");?></td>
<td width="78%" class="vtable">
<textarea name="crltext" id="crltext" cols="65" rows="7" class="formfld_crl"><?=base64_decode($crl['text']);?></textarea>
- <br>
+ <br/>
<?=gettext("Paste a Certificate Revocation List in X.509 CRL format here.");?></td>
</td>
</tr>
@@ -428,7 +428,7 @@ function method_change() {
<?php elseif ($act == "edit"): ?>
<?php $crl = $thiscrl; ?>
<form action="system_crlmanager.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="revoke">
<thead>
<tr>
<th width="90%" class="listhdrr" colspan="3"><b><?php echo gettext("Currently Revoked Certificates for CRL") . ': ' . $crl['descr']; ?></b></th>
@@ -465,7 +465,7 @@ function method_change() {
<?php echo date("D M j G:i:s T Y", $cert["revoke_time"]); ?>
</td>
<td class="list">
- <a href="system_crlmanager.php?act=delcert&id=<?php echo $crl['refid']; ?>&certref=<?php echo $cert['refid']; ?>" onclick="return confirm('<?=gettext("Do you really want to delete this Certificate from the CRL?");?>')">
+ <a href="system_crlmanager.php?act=delcert&amp;id=<?php echo $crl['refid']; ?>&amp;certref=<?php echo $cert['refid']; ?>" onclick="return confirm('<?=gettext("Do you really want to delete this Certificate from the CRL?");?>')">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_x.gif" title="<?=gettext("Delete this certificate from the CRL ");?>" alt="<?=gettext("Delete this certificate from the CRL ");?>" width="17" height="17" border="0" />
</a>
</td>
@@ -514,7 +514,7 @@ function method_change() {
</form>
<?php else: ?>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="ocpms">
<thead>
<tr>
<td width="35%" class="listhdrr"><?=gettext("Name");?></td>
@@ -524,7 +524,15 @@ function method_change() {
<td width="10%" class="list"></td>
</tr>
</thead>
- <tbody>
+ <tfoot>
+ <tr>
+ <td colspan="5">
+ <p>
+ <?=gettext("Additional Certificate Revocation Lists can be added here.");?>
+ </p>
+ </td>
+ </tr>
+ </tfoot> <tbody>
<?php
$caimg = "/themes/{$g['theme']}/images/icons/icon_frmfld_cert.png";
// Map CRLs to CAs in one pass
@@ -543,9 +551,9 @@ function method_change() {
?>
<tr>
<td class="listlr" colspan="4">
- <table border="0" cellpadding="0" cellspacing="0">
+ <table border="0" cellpadding="0" cellspacing="0" summary="icon">
<tr>
- <td align="left" valign="center">
+ <td align="left" valign="middle">
<img src="<?=$caimg;?>" alt="CA" title="CA" border="0" height="16" width="16" />
</td>
<td align="left" valign="middle">
@@ -556,11 +564,11 @@ function method_change() {
</td>
<td class="list">
<?php if ($cainternal == "YES"): ?>
- <a href="system_crlmanager.php?act=new&caref=<?php echo $ca['refid']; ?>">
+ <a href="system_crlmanager.php?act=new&amp;caref=<?php echo $ca['refid']; ?>">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_plus.gif" title="<?php printf(gettext("Add or Import CRL for %s"),$ca['descr']);?>" alt="<?=gettext("add crl");?>" width="17" height="17" border="0" />
</a>
<?php else: ?>
- <a href="system_crlmanager.php?act=new&caref=<?php echo $ca['refid']; ?>&importonly=yes">
+ <a href="system_crlmanager.php?act=new&amp;caref=<?php echo $ca['refid']; ?>&amp;importonly=yes">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_plus.gif" title="<?php printf(gettext("Import CRL for %s"),$ca['descr']);?>" alt="<?=gettext("add crl");?>" width="17" height="17" border="0" />
</a>
<?php endif; ?>
@@ -579,23 +587,23 @@ function method_change() {
<td class="listr"><?php echo ($internal) ? "YES" : "NO"; ?></td>
<td class="listr"><?php echo ($internal) ? count($tmpcrl['cert']) : "Unknown (imported)"; ?></td>
<td class="listr"><?php echo ($inuse) ? "YES" : "NO"; ?></td>
- <td valign="middle" nowrap class="list">
+ <td valign="middle" class="list nowrap">
<?php if (!$internal || count($tmpcrl['cert'])): ?>
- <a href="system_crlmanager.php?act=exp&id=<?=$tmpcrl['refid'];?>")">
+ <a href="system_crlmanager.php?act=exp&amp;id=<?=$tmpcrl['refid'];?>">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_down.gif" title="<?=gettext("Export CRL") . " " . htmlspecialchars($tmpcrl['descr']);?>" alt="<?=gettext("Export CRL") . " " . htmlspecialchars($tmpcrl['descr']);?>" width="17" height="17" border="0" />
</a>
<?php endif; ?>
<?php if ($internal): ?>
- <a href="system_crlmanager.php?act=edit&id=<?=$tmpcrl['refid'];?>")">
+ <a href="system_crlmanager.php?act=edit&amp;id=<?=$tmpcrl['refid'];?>">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_e.gif" title="<?=gettext("Edit CRL") . " " . htmlspecialchars($tmpcrl['descr']);?>" alt="<?=gettext("Edit CRL") . " " . htmlspecialchars($tmpcrl['descr']);?>" width="17" height="17" border="0" />
</a>
<?php else: ?>
- <a href="system_crlmanager.php?act=editimported&id=<?=$tmpcrl['refid'];?>")">
+ <a href="system_crlmanager.php?act=editimported&id=<?=$tmpcrl['refid'];?>">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_e.gif" title="<?=gettext("Edit CRL") . " " . htmlspecialchars($tmpcrl['descr']);?>" alt="<?=gettext("Edit CRL") . " " . htmlspecialchars($tmpcrl['descr']);?>" width="17" height="17" border="0" />
</a>
<?php endif; ?>
<?php if (!$inuse): ?>
- <a href="system_crlmanager.php?act=del&id=<?=$tmpcrl['refid'];?>" onclick="return confirm('<?=gettext("Do you really want to delete this Certificate Revocation List?") . ' (' . htmlspecialchars($tmpcrl['descr']) . ')';?>')">
+ <a href="system_crlmanager.php?act=del&amp;id=<?=$tmpcrl['refid'];?>" onclick="return confirm('<?=gettext("Do you really want to delete this Certificate Revocation List?") . ' (' . htmlspecialchars($tmpcrl['descr']) . ')';?>')">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_x.gif" title="<?=gettext("Delete CRL") . " " . htmlspecialchars($tmpcrl['descr']);?>" alt="<?=gettext("Delete CRL") . " " . htmlspecialchars($tmpcrl['descr']); ?>" width="17" height="17" border="0" />
</a>
<?php endif; ?>
@@ -612,15 +620,6 @@ function method_change() {
endforeach;
?>
</tbody>
- <tfoot>
- <tr>
- <td colspan="5">
- <p>
- <?=gettext("Additional Certificate Revocation Lists can be added here.");?>
- </p>
- </td>
- </tr>
- </tfoot>
</table>
<?php endif; ?>
@@ -631,11 +630,12 @@ function method_change() {
</table>
<?php include("fend.inc");?>
<script type="text/javascript">
-<!--
+//<![CDATA[
method_change();
-//-->
+//]]>
</script>
</body>
+</html> \ No newline at end of file
diff --git a/usr/local/www/system_firmware.php b/usr/local/www/system_firmware.php
index 1a54d0d..1dbd77b 100755
--- a/usr/local/www/system_firmware.php
+++ b/usr/local/www/system_firmware.php
@@ -31,7 +31,7 @@
POSSIBILITY OF SUCH DAMAGE.
*/
/*
- pfSense_BUILDER_BINARIES: /usr/bin/tar
+ pfSense_BUILDER_BINARIES: /usr/bin/tar
pfSense_MODULE: firmware
*/
@@ -68,38 +68,39 @@ function file_is_for_platform($filename, $ul_name) {
if(stristr($ul_name, "nanobsd"))
return true;
else
- return false;
+ return false;
}
- exec("/usr/bin/tar xzf $filename -C /tmp/ etc/platform");
- if(!file_exists("/tmp/etc/platform"))
+ $_gb = exec("/usr/bin/tar xzf $filename -C /tmp/ etc/platform");
+ unset($_gb);
+ if(!file_exists("/tmp/etc/platform"))
return false;
- $upgrade_is_for_platform = trim(file_get_contents("/tmp/etc/platform"));
- if($g['platform'] == $upgrade_is_for_platform) {
- unlink("/tmp/etc/platform");
+ $upgrade_is_for_platform = trim(file_get_contents("/tmp/etc/platform", " \n\t\r"));
+ if ($g['platform'] == $upgrade_is_for_platform) {
+ @unlink("/tmp/etc/platform");
return true;
}
return false;
}
function file_upload_error_message($error_code) {
- switch ($error_code) {
- case UPLOAD_ERR_INI_SIZE:
- return gettext('The uploaded file exceeds the upload_max_filesize directive in php.ini');
- case UPLOAD_ERR_FORM_SIZE:
- return gettext('The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form');
- case UPLOAD_ERR_PARTIAL:
- return gettext('The uploaded file was only partially uploaded');
- case UPLOAD_ERR_NO_FILE:
- return gettext('No file was uploaded');
- case UPLOAD_ERR_NO_TMP_DIR:
- return gettext('Missing a temporary folder');
- case UPLOAD_ERR_CANT_WRITE:
- return gettext('Failed to write file to disk');
- case UPLOAD_ERR_EXTENSION:
- return gettext('File upload stopped by extension');
- default:
- return gettext('Unknown upload error');
- }
+ switch ($error_code) {
+ case UPLOAD_ERR_INI_SIZE:
+ return gettext('The uploaded file exceeds the upload_max_filesize directive in php.ini');
+ case UPLOAD_ERR_FORM_SIZE:
+ return gettext('The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form');
+ case UPLOAD_ERR_PARTIAL:
+ return gettext('The uploaded file was only partially uploaded');
+ case UPLOAD_ERR_NO_FILE:
+ return gettext('No file was uploaded');
+ case UPLOAD_ERR_NO_TMP_DIR:
+ return gettext('Missing a temporary folder');
+ case UPLOAD_ERR_CANT_WRITE:
+ return gettext('Failed to write file to disk');
+ case UPLOAD_ERR_EXTENSION:
+ return gettext('File upload stopped by extension');
+ default:
+ return gettext('Unknown upload error');
+ }
}
/* if upgrade in progress, alert user */
@@ -109,7 +110,7 @@ if(is_subsystem_dirty('firmwarelock')) {
echo "<body link=\"#0000CC\" vlink=\"#0000CC\" alink=\"#0000CC\">\n";
include("fbegin.inc");
echo "<div>\n";
- print_info_box(gettext("An upgrade is currently in progress.<p>The firewall will reboot when the operation is complete.") . "<p><img src='/themes/{$g['theme']}/images/icons/icon_fw-update.gif'>");
+ print_info_box(gettext("An upgrade is currently in progress.<p>The firewall will reboot when the operation is complete.") . "</p><p><img src='/themes/{$g['theme']}/images/icons/icon_fw-update.gif' alt='update' /></p>");
echo "</div>\n";
include("fend.inc");
echo "</body>";
@@ -117,19 +118,15 @@ if(is_subsystem_dirty('firmwarelock')) {
exit;
}
-if($_POST['backupbeforeupgrade'])
+if($_POST['backupbeforeupgrade'])
touch("/tmp/perform_full_backup.txt");
-if($_POST['kerneltype'] && in_array($_POST['kerneltype'], array_keys($kerneltypes))) {
- if($_POST['kerneltype'] == "single")
- touch("/boot/kernel/pfsense_kernel.txt");
- else
- file_put_contents("/boot/kernel/pfsense_kernel.txt", $_POST['kerneltype']);
-}
+if ($_POST['kerneltype'] && in_array($_POST['kerneltype'], array_keys($kerneltypes)))
+ file_put_contents("/boot/kernel/pfsense_kernel.txt", $_POST['kerneltype']);
/* Handle manual upgrade */
if ($_POST && !is_subsystem_dirty('firmwarelock')) {
-
+
unset($input_errors);
unset($sig_warning);
@@ -152,7 +149,7 @@ if ($_POST && !is_subsystem_dirty('firmwarelock')) {
clear_subsystem_dirty('firmware');
} else if ($mode == "upgrade") {
if ($_FILES['ulfile']['error'])
- $errortext = "(" . file_upload_error_message($_FILES['ulfile']['error']) . ")";
+ $errortext = "(" . file_upload_error_message($_FILES['ulfile']['error']) . ")";
if (is_uploaded_file($_FILES['ulfile']['tmp_name'])) {
/* verify firmware image(s) */
if (file_is_for_platform($_FILES['ulfile']['tmp_name'], $_FILES['ulfile']['name']) == false && !$_POST['sig_override'])
@@ -185,22 +182,27 @@ if ($_POST && !is_subsystem_dirty('firmwarelock')) {
run_plugins("/usr/local/pkg/firmware_upgrade");
- /* Check for input errors, firmware locks, warnings, then check for firmware if sig_override is set */
- if (!$input_errors && !is_subsystem_dirty('firmwarelock') && (!$sig_warning || $_POST['sig_override'])) {
- if (file_exists("{$g['upload_path']}/firmware.tgz")) {
- /* fire up the update script in the background */
- mark_subsystem_dirty('firmwarelock');
- $savemsg = gettext("The firmware is now being updated. The firewall will reboot automatically.");
- if(stristr($_FILES['ulfile']['name'],"nanobsd") or $_POST['isnano'] == "yes")
- mwexec_bg("/etc/rc.firmware pfSenseNanoBSDupgrade {$g['upload_path']}/firmware.tgz");
- else if(stristr($_FILES['ulfile']['name'],"bdiff"))
- mwexec_bg("/etc/rc.firmware delta_update {$g['upload_path']}/firmware.tgz");
- else
- mwexec_bg("/etc/rc.firmware pfSenseupgrade {$g['upload_path']}/firmware.tgz");
- } else {
- $savemsg = sprintf(gettext("Firmware image missing or other error, please try again %s."),$errortext);
- }
- }
+ /* Check for input errors, firmware locks, warnings, then check for firmware if sig_override is set */
+ if (!$input_errors && !is_subsystem_dirty('firmwarelock') && (!$sig_warning || $_POST['sig_override'])) {
+ if (file_exists("{$g['upload_path']}/firmware.tgz")) {
+ /* fire up the update script in the background */
+ mark_subsystem_dirty('firmwarelock');
+ $savemsg = gettext("The firmware is now being updated. The firewall will reboot automatically.");
+ if (stristr($_FILES['ulfile']['name'],"nanobsd") or $_POST['isnano'] == "yes")
+ mwexec_bg("/etc/rc.firmware pfSenseNanoBSDupgrade {$g['upload_path']}/firmware.tgz");
+ else if(stristr($_FILES['ulfile']['name'],"bdiff"))
+ mwexec_bg("/etc/rc.firmware delta_update {$g['upload_path']}/firmware.tgz");
+ else {
+ if($g['platform'] == "nanobsd")
+ $whichone = "pfSenseNanoBSDupgrade";
+ else
+ $whichone = "pfSenseupgrade";
+ mwexec_bg("/etc/rc.firmware {$whichone} {$g['upload_path']}/firmware.tgz");
+ unset($whichone);
+ }
+ } else
+ $savemsg = sprintf(gettext("Firmware image missing or other error, please try again %s."),$errortext);
+ }
}
}
}
@@ -209,33 +211,36 @@ $pgtitle = array(gettext("System"),gettext("Firmware"));
include("head.inc");
?>
-<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
+<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<form action="system_firmware.php" method="post" enctype="multipart/form-data">
<?php
/* Construct an upload_id for this session */
- $upload_id = "up". $_SESSION['Username'];
+ if (!session_id())
+ $upload_id = uniqid();
+ else
+ $upload_id = session_id();
?>
-<input type="hidden" name="UPLOAD_IDENTIFIER" value="<?php echo $upload_id;?>" />
+<input type="hidden" name="UPLOAD_IDENTIFIER" value="<?php echo $upload_id;?>" />
<?php include("fbegin.inc"); ?>
<?php if ($input_errors) print_input_errors($input_errors); ?>
<?php if ($savemsg) print_info_box($savemsg); ?>
<?php if ($fwinfo <> "") print_info_box($fwinfo); ?>
<?php if ($sig_warning && !$input_errors): ?>
<?php
- $sig_warning = "<strong>" . $sig_warning . "</strong><br>" . gettext("This means that the image you uploaded " .
+ $sig_warning = "<strong>" . $sig_warning . "</strong><br/>" . gettext("This means that the image you uploaded " .
"is not an official/supported image and may lead to unexpected behavior or security " .
"compromises. Only install images that come from sources that you trust, and make sure ".
- "that the image has not been tampered with.") . "<br><br>".
+ "that the image has not been tampered with.") . "<br/><br/>".
gettext("Do you want to install this image anyway (on your own risk)?");
print_info_box($sig_warning);
if(stristr($_FILES['ulfile']['name'],"nanobsd"))
- echo "<input type='hidden' name='isnano' id='isnano' value='yes'>\n";
+ echo "<input type='hidden' name='isnano' id='isnano' value='yes' />\n";
?>
-<input name="sig_override" type="submit" class="formbtn" id="sig_override" value=" <?=gettext("Yes");?> ">
-<input name="sig_no" type="submit" class="formbtn" id="sig_no" value=" <?=gettext("No"); ?> ">
+<input name="sig_override" type="submit" class="formbtn" id="sig_override" value=" <?=gettext("Yes");?> " />
+<input name="sig_no" type="submit" class="formbtn" id="sig_no" value=" <?=gettext("No"); ?> " />
<?php else: ?>
<?php if (!is_subsystem_dirty('firmwarelock')): ?>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="firmware">
<tr>
<td>
<?php
@@ -252,86 +257,82 @@ if(stristr($_FILES['ulfile']['name'],"nanobsd"))
<tr>
<td>
<div id="mainarea">
- <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0">
- <tr>
+ <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
+ <tr>
<td colspan="2" class="listtopic"><?=gettext("Invoke") ." ". $g['product_name'] ." ". gettext("Manual Upgrade"); ?></td>
</tr>
<tr>
- <td width="22%" valign="baseline" class="vncell">&nbsp;</td>
- <td width="78%" class="vtable">
+ <td width="22%" valign="baseline" class="vncell">&nbsp;</td>
+ <td width="78%" class="vtable">
<?php if (!is_subsystem_dirty('rebootreq')): ?>
<?php if (!is_subsystem_dirty('firmware')): ?>
- <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Enable firmware upload");?>">
+ <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Enable firmware upload");?>" />
<br/>
<?php printf(gettext('Click "Enable firmware upload" to begin.'),$g['firmware_update_text']);?>
<br/>
<?php else: ?>
- <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Disable firmware upload");?>">
+ <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Disable firmware upload");?>" />
</td>
</tr>
<tr>
- <td width="22%" valign="baseline" class="vncell">&nbsp;</td>
- <td width="78%" class="vtable">
- <?php
- if ($g['platform'] == "nanobsd")
- $type = "*.img.gz";
+ <td width="22%" valign="baseline" class="vncell">&nbsp;</td>
+ <td width="78%" class="vtable">
+ <?php
+ if ($g['platform'] == "nanobsd")
+ $type = "*.img.gz";
else
- $type = "*.tgz";
- ?>
+ $type = "*.tgz";
+ ?>
<strong><?=gettext("Firmware image file ($type):");?> </strong>
- <input name="ulfile" type="file" class="formfld">
- <br>
+ <input name="ulfile" type="file" class="formfld" />
+ <br />
<?php
- if(!file_exists("/boot/kernel/pfsense_kernel.txt")) {
- if($g['platform'] == "pfSense") {
+ if(!file_exists("/boot/kernel/pfsense_kernel.txt")) {
+ if($g['platform'] == "pfSense") {
echo gettext("Please select kernel type") , ": ";
echo "<select name='kerneltype'>";
foreach($kerneltypes as $kerntype => $kerndescr) {
echo "<option value='{$kerntype}'>{$kerndescr}</option>";
}
echo "</select>";
- echo "<br>";
+ echo "<br/>";
}
}
?>
- <?php
- /*
- <input name="Submit" type="submit" class="formbtn" value="Upgrade firmware" onClick="window.open('upload_progress.php?upload_id=<?=$upload_id?>','UploadMeter','width=370,height=115', true); return true;">
- */
- ?>
- <input type="checkbox" name='backupbeforeupgrade' id='backupbeforeupgrade'> <?=gettext("Perform full backup prior to upgrade");?>
- <br>
- <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Upgrade firmware");?>">
+ <?php if ($g['hidebackupbeforeupgrade'] === false): ?>
+ <input type="checkbox" name='backupbeforeupgrade' id='backupbeforeupgrade' /> <?=gettext("Perform full backup prior to upgrade");?>
+ <br/>
+ <?php endif; ?>
+ <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Upgrade firmware");?>" />
<?=gettext('Click "Upgrade firmware" to start the upgrade process.');?>
<?php endif; else: ?>
<strong><?=gettext("You must reboot the system before you can upgrade the firmware.");?></strong>
<?php endif; ?>
- </td>
</td>
</tr>
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
- </span>
<?php if (is_subsystem_dirty('firmware')): ?>
<span class="vexpl">
<span class="red">
<strong>
- <?=gettext("Warning:");?><br>
+ <?=gettext("Warning:");?><br/>
</strong>
</span>
<?=gettext("DO NOT abort the firmware upgrade once it " .
- "has started. The firewall will reboot automatically after " .
- "storing the new firmware. The configuration will be maintained.");?>
+ "has started. The firewall will reboot automatically after " .
+ "storing the new firmware. The configuration will be maintained.");?>
</span>
<?php endif; ?>
- </td>
+ </td></tr>
</table>
</div>
- </tr>
+ </td></tr>
</table>
<?php endif; endif; ?>
<?php include("fend.inc"); ?>
+</form>
</body>
</html>
diff --git a/usr/local/www/system_firmware_auto.php b/usr/local/www/system_firmware_auto.php
index 316c7ae..49764c5 100755
--- a/usr/local/www/system_firmware_auto.php
+++ b/usr/local/www/system_firmware_auto.php
@@ -5,8 +5,8 @@
Copyright (C) 2008 Scott Ullrich <sullrich@gmail.com>
Copyright (C) 2005 Scott Ullrich
- Based originally on system_firmware.php
- (C)2003-2004 Manuel Kasper
+ Based originally on system_firmware.php
+ (C)2003-2004 Manuel Kasper
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -54,16 +54,17 @@ if(isset($curcfg['alturl']['enable']))
else
$updater_url = $g['update_url'];
-if($_POST['backupbeforeupgrade'])
+if($_POST['backupbeforeupgrade'])
touch("/tmp/perform_full_backup.txt");
-
+
+$closehead = false;
$pgtitle = array(gettext("Diagnostics"),gettext("Firmware"),gettext("Auto Update"));
include("head.inc");
?>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<link href="gui.css" rel="stylesheet" type="text/css">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<link href="gui.css" rel="stylesheet" type="text/css" />
</head>
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
@@ -71,62 +72,59 @@ include("head.inc");
<?php include("fbegin.inc"); ?>
<form action="system_firmware_auto.php" method="post">
-<table width="100%" border="0" cellpadding="6" cellspacing="0">
+<table width="100%" border="0" cellpadding="6" cellspacing="0" summary="firmware auto-check">
<tr>
<td>
-<?php
- $tab_array = array();
- $tab_array[] = array(gettext("Manual Update"), false, "system_firmware.php");
- $tab_array[] = array(gettext("Auto Update"), true, "system_firmware_check.php");
- $tab_array[] = array(gettext("Updater Settings"), false, "system_firmware_settings.php");
- if($g['hidedownloadbackup'] == false)
- $tab_array[] = array(gettext("Restore Full Backup"), false, "system_firmware_restorefullbackup.php");
- display_top_tabs($tab_array);
-?>
+ <?php
+ $tab_array = array();
+ $tab_array[] = array(gettext("Manual Update"), false, "system_firmware.php");
+ $tab_array[] = array(gettext("Auto Update"), true, "system_firmware_check.php");
+ $tab_array[] = array(gettext("Updater Settings"), false, "system_firmware_settings.php");
+ if($g['hidedownloadbackup'] == false)
+ $tab_array[] = array(gettext("Restore Full Backup"), false, "system_firmware_restorefullbackup.php");
+ display_top_tabs($tab_array);
+ ?>
</td>
</tr>
<tr>
- <td class="tabcont">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
- <tr>
- <td class="tabcont">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
- <tr>
- <td>
- <center>
- <table height='15' width='420' border='0' colspacing='0' cellpadding='0' cellspacing='0'>
-
- <tr>
- <td background="./themes/the_wall/images/misc/bar_left.gif" height='15' width='5'>
- </td>
- <td>
- <table id="progholder" name="progholder" height='15' width='410' border='0' colspacing='0' cellpadding='0' cellspacing='0'>
- <td background="./themes/the_wall/images/misc/bar_gray.gif" valign="top" align="left">
- <img src='./themes/the_wall/images/misc/bar_blue.gif' width='0' height='15' name='progressbar' id='progressbar'>
- </td>
+ <td class="tabcont">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="outer">
+ <tr>
+ <td class="tabcont">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="inner">
+ <tr>
+ <td align="center">
+ <table style="height:15;colspacing:0" width="420" border="0" cellpadding="0" cellspacing="0" summary="images">
+
+ <tr>
+ <td style="background:url('./themes/the_wall/images/misc/bar_left.gif')" height="15" width="5"> </td>
+ <td>
+ <table id="progholder" style="height:15;colspacing:0" width="410" border="0" cellpadding="0" cellspacing="0" summary="">
+ <tr><td style="background:url('./themes/the_wall/images/misc/bar_gray.gif')" valign="top" align="left">
+ <img src="./themes/the_wall/images/misc/bar_blue.gif" width="0" height="15" name="progressbar" id="progressbar" alt="" />
+ </td></tr>
+ </table>
+ </td>
+ <td style="background:url('./themes/the_wall/images/misc/bar_right.gif')" height="15" width="5"></td>
+ </tr>
</table>
- </td>
- <td background="./themes/the_wall/images/misc/bar_right.gif" height='15' width='5'>
+ <br />
+ <!-- status box -->
+ <textarea cols="90" rows="1" name="status" id="status" wrap="hard"><?=gettext("Beginning firmware upgrade"); ?>.</textarea>
+ <!-- command output box -->
+ <textarea cols="90" rows="25" name="output" id="output" wrap="hard"></textarea>
</td>
</tr>
</table>
- <br>
- <!-- status box -->
- <textarea cols="90" rows="1" name="status" id="status" wrap="hard"><?=gettext("Beginning firmware upgrade"); ?>.</textarea>
- <!-- command output box -->
- <textarea cols="90" rows="25" name="output" id="output" wrap="hard"></textarea>
- </center>
</td>
</tr>
- </table>
- </table>
- </td>
+ </table>
+ </td>
</tr>
</table>
</form>
+
<?php include("fend.inc"); ?>
-</body>
-</html>
<?php
@@ -166,7 +164,7 @@ if(!$latest_version) {
} else {
$update_filename = "latest.tgz";
}
- $status = download_file_with_progress_bar("{$updater_url}/{$update_filename}", "{$g['upload_path']}/latest.tgz", "read_body_firmware");
+ $status = download_file_with_progress_bar("{$updater_url}/{$update_filename}", "{$g['upload_path']}/latest.tgz", "read_body_firmware");
$status = download_file_with_progress_bar("{$updater_url}/{$update_filename}.sha256", "{$g['upload_path']}/latest.tgz.sha256");
conf_mount_ro();
update_output_window("{$g['product_name']} " . gettext("download complete."));
@@ -210,13 +208,13 @@ if ($sigchk == 1) {
}
if ($exitstatus) {
- update_status($sig_warning);
- update_output_window(gettext("Update cannot continue. You can disable this check on the Updater Settings tab."));
- require("fend.inc");
- exit;
+ update_status($sig_warning);
+ update_output_window(gettext("Update cannot continue. You can disable this check on the Updater Settings tab."));
+ require("fend.inc");
+ exit;
} else if ($sigchk == 2) {
- update_status("Upgrade in progress...");
- update_output_window("\n" . gettext("Upgrade Image does not contain a signature but the system has been configured to allow unsigned images. One moment please...") . "\n");
+ update_status("Upgrade in progress...");
+ update_output_window("\n" . gettext("Upgrade Image does not contain a signature but the system has been configured to allow unsigned images. One moment please...") . "\n");
}
if (!verify_gzip_file("{$g['upload_path']}/latest.tgz")) {
@@ -236,8 +234,12 @@ if($downloaded_latest_tgz_sha256 <> $upgrade_latest_tgz_sha256) {
update_output_window(gettext("Auto upgrade aborted.") . " \n\n" . gettext("Downloaded SHA256") . ": " . $downloaded_latest_tgz_sha256 . "\n\n" . gettext("Needed SHA256") . ": " . $upgrade_latest_tgz_sha256);
} else {
update_output_window($g['product_name'] . " " . gettext("is now upgrading.") . "\\n\\n" . gettext("The firewall will reboot once the operation is completed."));
- echo "\n<script language=\"JavaScript\">document.progressbar.style.visibility='hidden';\n</script>";
- mwexec_bg("/usr/bin/nohup {$external_upgrade_helper_text}");
+ echo "\n<script type=\"text/javascript\">";
+ echo "\n//<![CDATA[";
+ echo "\ndocument.progressbar.style.visibility='hidden';";
+ echo "\n//]]>";
+ echo "\n</script>";
+ mwexec_bg($external_upgrade_helper_text);
}
/*
@@ -272,3 +274,6 @@ function read_body_firmware($ch, $string) {
}
?>
+
+</body>
+</html>
diff --git a/usr/local/www/system_firmware_check.php b/usr/local/www/system_firmware_check.php
index 8aaa5a3..8272938 100755
--- a/usr/local/www/system_firmware_check.php
+++ b/usr/local/www/system_firmware_check.php
@@ -51,64 +51,58 @@ include("head.inc");
?>
-</head>
-
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc"); ?>
<form action="system_firmware_auto.php" method="post">
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="firmware check">
<tr>
<td>
-<?php
- $tab_array = array();
- $tab_array[] = array(gettext("Manual Update"), false, "system_firmware.php");
- $tab_array[] = array(gettext("Auto Update"), true, "system_firmware_check.php");
- $tab_array[] = array(gettext("Updater Settings"), false, "system_firmware_settings.php");
- if($g['hidedownloadbackup'] == false)
- $tab_array[] = array(gettext("Restore Full Backup"), false, "system_firmware_restorefullbackup.php");
- display_top_tabs($tab_array);
-?>
+ <?php
+ $tab_array = array();
+ $tab_array[] = array(gettext("Manual Update"), false, "system_firmware.php");
+ $tab_array[] = array(gettext("Auto Update"), true, "system_firmware_check.php");
+ $tab_array[] = array(gettext("Updater Settings"), false, "system_firmware_settings.php");
+ if($g['hidedownloadbackup'] == false)
+ $tab_array[] = array(gettext("Restore Full Backup"), false, "system_firmware_restorefullbackup.php");
+ display_top_tabs($tab_array);
+ ?>
</td>
</tr>
<tr>
- <td class="tabcont">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
- <tr>
- <td>
- <!-- progress bar -->
- <center>
- <table height='15' width='420' border='0' colspacing='0' cellpadding='0' cellspacing='0'>
+ <td class="tabcont">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="">
+ <tr>
+ <td align="center">
+ <!-- progress bar -->
+ <table style="height:15;colspacing:0" width="420" border="0" cellpadding="0" cellspacing="0" summary="images">
<tr>
- <td background="./themes/the_wall/images/misc/bar_left.gif" height='15' width='5'>
- </td>
+ <td style="background:url('./themes/the_wall/images/misc/bar_left.gif')" height="15" width="5"></td>
<td>
- <table id="progholder" name="progholder" height='15' width='410' border='0' colspacing='0' cellpadding='0' cellspacing='0'>
- <td background="./themes/the_wall/images/misc/bar_gray.gif" valign="top" align="left">
- <img src='./themes/the_wall/images/misc/bar_blue.gif' width='0' height='15' name='progressbar' id='progressbar'>
- </td>
- </table>
- </td>
- <td background="./themes/the_wall/images/misc/bar_right.gif" height='15' width='5'>
- </td>
- </tr>
- </table>
- <br>
- <!-- command output box -->
- <textarea border='1' bordercolordark='#000000' bordercolorlight='#000000' cols='90' rows='9' name='output' id='output' wrap='hard'>
- </textarea>
- <div id='backupdiv' name='backupdiv' style='visibility:hidden'>
- <br/><input type="checkbox" name='backupbeforeupgrade' id='backupbeforeupgrade'> <?=gettext("Perform full backup prior to upgrade");?>
- </div>
- </center>
- <p>
- <center><input id='invokeupgrade' style='visibility:hidden' type="submit" value="<?=gettext("Invoke Auto Upgrade"); ?>">
- </td>
- </tr>
- </table>
- </td>
+ <table id="progholder" style="height:15;colspacing:0" width="410" border="0" cellpadding="0" cellspacing="0" summary="">
+ <tr><td style="background:url('./themes/the_wall/images/misc/bar_gray.gif')" valign="top" align="left">
+ <img src="./themes/the_wall/images/misc/bar_blue.gif" width="0" height="15" name="progressbar" id="progressbar" alt="" />
+ </td></tr>
+ </table>
+ </td>
+ <td style="background:url('./themes/the_wall/images/misc/bar_right.gif')" height="15" width="5"></td>
+ </tr>
+ </table>
+ <br />
+ <!-- command output box -->
+ <textarea style="border:1;bordercolordark:#000000;bordercolorlight:#000000" cols="90" rows="9" name="output" id="output" wrap="hard"></textarea>
+ <div id="backupdiv" style="visibility:hidden">
+ <?php if ($g['hidebackupbeforeupgrade'] === false): ?>
+ <br/><input type="checkbox" name="backupbeforeupgrade" id="backupbeforeupgrade" /><?=gettext("Perform full backup prior to upgrade");?>
+ <?php endif; ?>
+ </div>
+ <input id='invokeupgrade' style='visibility:hidden' type="submit" value="<?=gettext("Invoke Auto Upgrade"); ?>" />
+ </td>
+ </tr>
+ </table>
+ </td>
</tr>
</table>
@@ -162,12 +156,24 @@ if (!$remote_version) {
update_output_window($static_text);
if ($needs_system_upgrade == false) {
+ echo "</p>";
+ echo "</form>";
require("fend.inc");
+ echo "</body>";
+ echo "</html>";
exit;
}
-echo "\n<script>jQuery('#invokeupgrade').css('visibility','visible');</script>";
-echo "\n<script>jQuery('#backupdiv').css('visibility','visible');</script>";
+echo "\n<script type=\"text/javascript\">\n";
+echo "//<![CDATA[\n";
+echo "jQuery('#invokeupgrade').css('visibility','visible');\n";
+echo "//]]>\n";
+echo "</script>\n";
+echo "\n<script type=\"text/javascript\">\n";
+echo "//<![CDATA[\n";
+echo "jQuery('#backupdiv').css('visibility','visible');\n";
+echo "//]]>\n";
+echo "</script>\n";
$txt = gettext("A new version is now available") . "\\n\\n";
$txt .= gettext("Current version") .": ". $current_installed_version . "\\n";
@@ -179,6 +185,7 @@ $txt .= " " . gettext("New version") .": ". $remote_version . "\\n\\n";
$txt .= " " . gettext("Update source") .": ". $updater_url . "\\n";
update_output_window($txt);
?>
+</p>
</form>
<?php include("fend.inc"); ?>
</body>
diff --git a/usr/local/www/system_firmware_restorefullbackup.php b/usr/local/www/system_firmware_restorefullbackup.php
index 2c15c9a..d671fc2 100755
--- a/usr/local/www/system_firmware_restorefullbackup.php
+++ b/usr/local/www/system_firmware_restorefullbackup.php
@@ -52,18 +52,18 @@ require("guiconfig.inc");
require_once("filter.inc");
require_once("shaper.inc");
-if($_POST['overwriteconfigxml'])
+if($_POST['overwriteconfigxml'])
touch("/tmp/do_not_restore_config.xml");
-if($_GET['backupnow'])
+if($_GET['backupnow'])
mwexec_bg("/etc/rc.create_full_backup");
if($_GET['downloadbackup']) {
$filename = $_GET['downloadbackup'];
$path = "/root/{$filename}";
if(file_exists("/root/{$filename}")) {
- session_write_close();
- ob_end_clean();
+ session_write_close();
+ ob_end_clean();
session_cache_limiter('public');
//$fd = fopen("/root/{$filename}", "rb");
$filesize = filesize("/root/{$filename}");
@@ -74,11 +74,11 @@ if($_GET['downloadbackup']) {
header('Content-Disposition: attachment; filename="'.$filename.'"');
header("Content-Transfer-Encoding: binary\n");
if($file = fopen("/root/{$filename}", 'rb')){
- while( (!feof($file)) && (connection_status()==0) ){
- print(fread($file, 1024*8));
- flush();
- }
- fclose($file);
+ while( (!feof($file)) && (connection_status()==0) ){
+ print(fread($file, 1024*8));
+ flush();
+ }
+ fclose($file);
}
exit;
@@ -112,12 +112,12 @@ include("head.inc");
<?php if ($savemsg) print_info_box($savemsg); ?>
<?php if (is_subsystem_dirty('restore')): ?><p>
<form action="reboot.php" method="post">
-<input name="Submit" type="hidden" value=" Yes ">
-<?php print_info_box(gettext("The firewall configuration has been changed.") . "<br/>" . gettext("The firewall is now rebooting."));?><br>
+<input name="Submit" type="hidden" value="Yes" />
+<?php print_info_box(gettext("The firewall configuration has been changed.") . "<br/>" . gettext("The firewall is now rebooting."));?><br/>
</form>
<?php endif; ?>
<form action="system_firmware_restorefullbackup.php" method="post">
-<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<table width="100%" border="0" cellspacing="0" cellpadding="0" summary="restore full backup">
<tr>
<td>
<?php
@@ -134,7 +134,7 @@ include("head.inc");
<tr>
<td>
<div id="mainarea">
- <table class="tabcont" align="center" width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table class="tabcont" align="center" width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<tr>
<td colspan="1" class="listtopic"><?=gettext("Filename"); ?></td>
<td colspan="1" class="listtopic"><?=gettext("Date"); ?></td>
@@ -150,7 +150,7 @@ include("head.inc");
$size = exec("gzip -l /root/$arf | grep -v compressed | awk '{ print $2 }'");
echo "<tr>";
echo "<td class='listlr' width='50%' colspan='1'>";
- echo "<input type='radio' name='restorefile' value='$arf'> $arf";
+ echo "<input type='radio' name='restorefile' value='$arf' /> $arf";
echo "</td>";
echo "<td class='listr' width='30%' colspan='1'>";
echo date ("F d Y H:i:s", filemtime($arf));
@@ -158,7 +158,7 @@ include("head.inc");
echo "<td class='listr' width='40%' colspan='1'>";
echo format_bytes($size);
echo "</td>";
- echo "<td class='listr' width='20%' colspan='1'><nobr>";
+ echo "<td class='listr nowrap' width='20%' colspan='1'>";
echo "<a onclick=\"return confirm('" . gettext("Do you really want to delete this backup?") . "')\" href='system_firmware_restorefullbackup.php?deletefile=" . htmlspecialchars($arf) . "'>";
echo gettext("Delete");
echo "</a> | ";
@@ -170,18 +170,18 @@ include("head.inc");
}
if($counter == 0) {
echo "<tr>";
- echo "<td class='listlr' width='100%' colspan='4'>";
- echo gettext("<center>Could not locate any previous backups.</center>");
+ echo "<td class='listlr' width='100%' colspan='4' align='center'>";
+ echo gettext("Could not locate any previous backups.");
echo "</td>";
echo "</tr>";
}
- ?>
+?>
<tr>
<td width="78%" colspan="3">
&nbsp;<br/>
- <input type="checkbox" name="overwriteconfigxml" id="overwriteconfigxml" CHECKED> do not restore config.xml.
- <p/>
- <input name="Restore" type="submit" class="formbtn" id="restore" value="<?=gettext("Restore"); ?>">
+ <input type="checkbox" name="overwriteconfigxml" id="overwriteconfigxml" checked="checked" /> <?=gettext("do not restore config.xml."); ?>
+ <br/>
+ <input name="Restore" type="submit" class="formbtn" id="restore" value="<?=gettext("Restore"); ?>" />
</td>
</tr>
</table>
@@ -191,11 +191,11 @@ include("head.inc");
</table>
</form>
-<script language="JavaScript">
-<!--
+<script type="text/javascript">
+//<![CDATA[
encrypt_change();
decrypt_change();
-//-->
+//]]>
</script>
<?php include("fend.inc"); ?>
diff --git a/usr/local/www/system_firmware_settings.php b/usr/local/www/system_firmware_settings.php
index 34849d1..f127a9d 100755
--- a/usr/local/www/system_firmware_settings.php
+++ b/usr/local/www/system_firmware_settings.php
@@ -77,6 +77,7 @@ $curcfg = $config['system']['firmware'];
$gitcfg = $config['system']['gitsync'];
$pgtitle = array(gettext("System"),gettext("Firmware"),gettext("Settings"));
+$closehead = false;
include("head.inc");
exec("/usr/bin/fetch -q -o /tmp/manifest \"{$g['update_manifest']}\"");
@@ -85,8 +86,8 @@ if(file_exists("/tmp/manifest")) {
}
?>
-<script language="JavaScript">
-<!--
+<script type="text/javascript">
+//<![CDATA[
function enable_altfirmwareurl(enable_over) {
@@ -98,8 +99,9 @@ function enable_altfirmwareurl(enable_over) {
}
}
-// -->
+//]]>
</script>
+</head>
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc");?>
@@ -107,7 +109,7 @@ function enable_altfirmwareurl(enable_over) {
<form action="system_firmware_settings.php" method="post" name="iform" id="iform">
<?php if ($savemsg) print_info_box($savemsg); ?>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="firmware settings">
<tr>
<td>
<?php
@@ -121,8 +123,8 @@ function enable_altfirmwareurl(enable_over) {
?>
</td>
</tr>
- <tr><td><div id=mainarea>
- <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0">
+ <tr><td><div id="mainarea">
+ <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Firmware Branch"); ?></td>
</tr>
@@ -130,29 +132,38 @@ function enable_altfirmwareurl(enable_over) {
<tr>
<td valign="top" class="vncell"><?=gettext("Default Auto Update URLs"); ?></td>
<td class="vtable">
- <select name='preseturls' id='preseturls' onChange="firmwareurl.value = preseturls.value; document.iform.firmwareurl.disabled = 0; alturlenable.checked=true; jQuery('#preseturls').parent().effect('highlight');">
+ <select name='preseturls' id='preseturls' onchange="firmwareurl.value = preseturls.value; document.iform.firmwareurl.disabled = 0; alturlenable.checked=true; jQuery('#preseturls').parent().effect('highlight');">
<option></option>
<?php
foreach($preset_urls_split as $pus) {
$pus_text = explode("\t", $pus);
- if($pus_text[0])
- echo "<option value='{$pus_text[1]}'>{$pus_text[0]}</option>";
+ if (empty($pus_text[0]))
+ continue;
+ if (stristr($pus_text[0], php_uname("m")) !== false) {
+ $style = " style=\"font-weight: bold\"";
+ $yourarch = " (Current architecture)";
+ } else {
+ $style = "";
+ $yourarch = "";
+ }
+ echo "<option value='{$pus_text[1]}'{$style}>{$pus_text[0]}{$yourarch}</option>";
}
?>
</select>
+ <br/><br/><?php echo sprintf(gettext("Entries denoted by \"Current architecture\" match the architecture of your current installation, such as %s. Changing architectures during an upgrade is not recommended, and may require a manual reboot after the update completes."), php_uname("m")); ?>
</td>
</tr>
<?php endif; ?>
<tr>
<td valign="top" class="vncell"><?=gettext("Firmware Auto Update URL"); ?></td>
<td class="vtable">
- <input name="alturlenable" type="checkbox" id="alturlenable" value="yes" onClick="enable_altfirmwareurl()" <?php if(isset($curcfg['alturl']['enable'])) echo "checked"; ?>> <?=gettext("Use a URL server for firmware upgrades other than") . " " . $g['product_website']; ?><br>
- <table>
- <tr><td><?=gettext("Base URL:"); ?></td><td><input name="firmwareurl" type="input" class="formfld url" id="firmwareurl" size="64" value="<?php if($curcfg['alturl']['firmwareurl']) echo $curcfg['alturl']['firmwareurl']; else echo $g['']; ?>"></td></tr>
+ <input name="alturlenable" type="checkbox" id="alturlenable" value="yes" onclick="enable_altfirmwareurl()" <?php if(isset($curcfg['alturl']['enable'])) echo "checked=\"checked\""; ?> /> <?=gettext("Use a URL server for firmware upgrades other than") . " " . $g['product_website']; ?><br />
+ <table summary="alternative Base URL">
+ <tr><td><?=gettext("Base URL:"); ?></td><td><input name="firmwareurl" type="text" class="formfld url" id="firmwareurl" size="64" value="<?php if($curcfg['alturl']['firmwareurl']) echo $curcfg['alturl']['firmwareurl']; else echo $g['']; ?>" /></td></tr>
</table>
<span class="vexpl">
<?=gettext("This is where"); ?> <?php echo $g['product_name'] ?> <?=gettext("will check for newer firmware versions when the"); ?> <a href="system_firmware_check.php"><?=gettext("System: Firmware: Auto Update"); ?></a> <?=gettext("page is viewed."); ?>
- <p/>
+ <br/>
<b><?=gettext("NOTE:"); ?></b> <?php printf(gettext("When a custom URL is enabled, the system will not verify the digital signature from %s."), $g['product_website']); ?>
</span>
</td>
@@ -166,7 +177,7 @@ function enable_altfirmwareurl(enable_over) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Unsigned images"); ?></td>
<td width="78%" class="vtable">
- <input name="allowinvalidsig" type="checkbox" id="allowinvalidsig" value="yes" <?php if (isset($curcfg['allowinvalidsig'])) echo "checked"; ?> />
+ <input name="allowinvalidsig" type="checkbox" id="allowinvalidsig" value="yes" <?php if (isset($curcfg['allowinvalidsig'])) echo "checked=\"checked\""; ?> />
<br />
<?=gettext("Allow auto-update firmware images with a missing or invalid digital signature to be used."); ?>
</td>
@@ -174,7 +185,7 @@ function enable_altfirmwareurl(enable_over) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Dashboard check"); ?></td>
<td width="78%" class="vtable">
- <input name="disablecheck" type="checkbox" id="disablecheck" value="yes" <?php if (isset($curcfg['disablecheck'])) echo "checked"; ?> />
+ <input name="disablecheck" type="checkbox" id="disablecheck" value="yes" <?php if (isset($curcfg['disablecheck'])) echo "checked=\"checked\""; ?> />
<br />
<?=gettext("Disable the automatic dashboard auto-update check."); ?>
</td>
@@ -189,7 +200,7 @@ function enable_altfirmwareurl(enable_over) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Auto sync on update"); ?></td>
<td width="78%" class="vtable">
- <input name="synconupgrade" type="checkbox" id="synconupgrade" value="yes" <?php if (isset($gitcfg['synconupgrade'])) echo "checked"; ?> />
+ <input name="synconupgrade" type="checkbox" id="synconupgrade" value="yes" <?php if (isset($gitcfg['synconupgrade'])) echo "checked=\"checked\""; ?> />
<br />
<?=gettext("After updating, sync with the following repository/branch before reboot."); ?>
</td>
@@ -205,7 +216,7 @@ function enable_altfirmwareurl(enable_over) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Repository URL"); ?></td>
<td width="78%" class="vtable">
- <input name="repositoryurl" type="input" class="formfld url" id="repositoryurl" size="64" value="<?php if ($gitcfg['repositoryurl']) echo $gitcfg['repositoryurl']; ?>">
+ <input name="repositoryurl" type="input" class="formfld url" id="repositoryurl" size="64" value="<?php if ($gitcfg['repositoryurl']) echo $gitcfg['repositoryurl']; ?>" />
<?php if($lastrepositoryurl): ?>
<br />
<?=sprintf(gettext("The most recently used repository was %s"), $lastrepositoryurl); ?>
@@ -231,7 +242,7 @@ function enable_altfirmwareurl(enable_over) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Branch name"); ?></td>
<td width="78%" class="vtable">
- <input name="branch" type="input" class="formfld unknown" id="branch" size="64" value="<?php if ($gitcfg['branch']) echo $gitcfg['branch']; ?>">
+ <input name="branch" type="input" class="formfld unknown" id="branch" size="64" value="<?php if ($gitcfg['branch']) echo $gitcfg['branch']; ?>" />
<?php if($lastbranch): ?>
<br />
<?=sprintf(gettext("The most recently used branch was %s"), $lastbranch); ?>
@@ -244,11 +255,15 @@ function enable_altfirmwareurl(enable_over) {
</td>
</tr>
<?php endif; ?>
- <script>enable_altfirmwareurl();</script>
+ <tr><td><script type="text/javascript">
+ //<![CDATA[
+ enable_altfirmwareurl();
+ //]]>
+ </script></td></tr>
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
- <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>">
+ <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>" />
</td>
</tr>
</table></div></td></tr></table>
diff --git a/usr/local/www/system_gateway_groups.php b/usr/local/www/system_gateway_groups.php
index d59be30..d5b1be2 100755
--- a/usr/local/www/system_gateway_groups.php
+++ b/usr/local/www/system_gateway_groups.php
@@ -43,6 +43,7 @@ require("guiconfig.inc");
require_once("functions.inc");
require_once("filter.inc");
require_once("shaper.inc");
+require_once("openvpn.inc");
if (!is_array($config['gateways']['gateway_group']))
$config['gateways']['gateway_group'] = array();
@@ -68,6 +69,14 @@ if ($_POST) {
$savemsg = get_std_save_message($retval);
if ($retval == 0)
clear_subsystem_dirty('staticroutes');
+
+ foreach ($a_gateway_groups as $gateway_group) {
+ $gw_subsystem = 'gwgroup.' . $gateway_group['name'];
+ if (is_subsystem_dirty($gw_subsystem)) {
+ openvpn_resync_gwgroup($gateway_group['name']);
+ clear_subsystem_dirty($gw_subsystem);
+ }
+ }
}
}
@@ -96,12 +105,12 @@ include("head.inc");
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc"); ?>
<form action="system_gateway_groups.php" method="post">
-<input type="hidden" name="y1" value="1">
+<input type="hidden" name="y1" value="1" />
<?php if ($savemsg) print_info_box($savemsg); ?>
<?php if (is_subsystem_dirty('staticroutes')): ?><p>
-<?php print_info_box_np(sprintf(gettext("The gateway configuration has been changed.%sYou must apply the changes in order for them to take effect."), "<br>"));?><br>
+<?php print_info_box_np(sprintf(gettext("The gateway configuration has been changed.%sYou must apply the changes in order for them to take effect."), "<br/>"));?><br/></p>
<?php endif; ?>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="system groups">
<tr>
<td>
<?php
@@ -115,7 +124,7 @@ include("head.inc");
<tr>
<td>
<div id="mainarea">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="main area">
<thead>
<tr>
<td width="15%" class="listhdrr"><?=gettext("Group Name");?></td>
@@ -123,15 +132,27 @@ include("head.inc");
<td width="20%" class="listhdrr"><?=gettext("Priority");?></td>
<td width="30%" class="listhdr"><?=gettext("Description");?></td>
<td width="10%" class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ <table border="0" cellspacing="0" cellpadding="1" summary="icons">
<tr>
<td width="17"></td>
- <td><a href="system_gateway_groups_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
+ <td><a href="system_gateway_groups_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="edit" /></a></td>
</tr>
</table>
</td>
</tr>
</thead>
+ <tfoot>
+ <tr><td class="list" colspan="4"></td>
+ <td class="list">
+ <table border="0" cellspacing="0" cellpadding="1" summary="edit">
+ <tr>
+ <td width="17"></td>
+ <td><a href="system_gateway_groups_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="edit" /></a></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </tfoot>
<tbody>
<?php $i = 0; foreach ($a_gateway_groups as $gateway_group): ?>
<tr>
@@ -159,38 +180,26 @@ include("head.inc");
<td class="listbg" ondblclick="document.location='system_gateway_groups_edit.php?id=<?=$i;?>';">
<?=htmlspecialchars($gateway_group['descr']);?>&nbsp;
</td>
- <td valign="middle" nowrap class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ <td valign="middle" class="list nowrap">
+ <table border="0" cellspacing="0" cellpadding="1" summary="edit">
<tr>
- <td><a href="system_gateway_groups_edit.php?id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0"></a>
- <td><a href="system_gateway_groups.php?act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this gateway group?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0"></a></td>
+ <td><a href="system_gateway_groups_edit.php?id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0" alt="edit" /></a>
+ <td><a href="system_gateway_groups.php?act=del&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this gateway group?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" alt="delete" /></a></td>
</tr>
<tr>
<td width="17"></td>
- <td><a href="system_gateway_groups_edit.php?dup=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
+ <td><a href="system_gateway_groups_edit.php?dup=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="duplicate" /></a></td>
</tr>
</table>
</tr>
<?php $i++; endforeach; ?>
- <tr>
+ <tr><td>&nbsp;</td></tr>
</tbody>
- <tfoot>
- <td class="list" colspan="4"></td>
- <td class="list">
- <table border="0" cellspacing="0" cellpadding="1">
- <tr>
- <td width="17"></td>
- <td><a href="system_gateway_groups_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
- </tr>
- </table>
- </td>
- </tr>
</table>
</div>
</td>
</tr>
- </tfoot>
</table>
</form>
<p><b><?=gettext("Note:");?></b> <?=gettext("Remember to use these Gateway Groups in firewall rules in order to enable load balancing, failover, or policy-based routing. Without rules directing traffic into the Gateway Groups, they will not be used.");?></p>
diff --git a/usr/local/www/system_gateway_groups_edit.php b/usr/local/www/system_gateway_groups_edit.php
index 78d919c..fadc283 100755
--- a/usr/local/www/system_gateway_groups_edit.php
+++ b/usr/local/www/system_gateway_groups_edit.php
@@ -95,8 +95,11 @@ if ($_POST) {
/* check for overlaps */
if(is_array($a_gateway_groups)) {
foreach ($a_gateway_groups as $gateway_group) {
- if (isset($id) && ($a_gateway_groups[$id]) && ($a_gateway_groups[$id] === $gateway_group))
+ if (isset($id) && ($a_gateway_groups[$id]) && ($a_gateway_groups[$id] === $gateway_group)) {
+ if ($gateway_group['name'] != $_POST['name'])
+ $input_errors[] = gettext("Changing name on a gateway group is not allowed.");
continue;
+ }
if ($gateway_group['name'] == $_POST['name']) {
$input_errors[] = sprintf(gettext('A gateway group with this name "%s" already exists.'), $_POST['name']);
@@ -135,6 +138,7 @@ if ($_POST) {
$a_gateway_groups[] = $gateway_group;
mark_subsystem_dirty('staticroutes');
+ mark_subsystem_dirty('gwgroup.' . $gateway_group['name']);
write_config();
@@ -143,7 +147,7 @@ if ($_POST) {
}
}
-$pgtitle = array(gettext("System"),gettext("Gateways"),gettext("Edit gateway"));
+$pgtitle = array(gettext("System"),gettext("Gateways"),gettext("Edit gateway group"));
$shortcut_section = "gateway-groups";
function build_gateway_protocol_map (&$a_gateways) {
@@ -220,20 +224,20 @@ jQuery(function ($) {
<?php include("fbegin.inc"); ?>
<?php if ($input_errors) print_input_errors($input_errors); ?>
<form action="system_gateway_groups_edit.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="system groups edit">
<tr>
- <td colspan="2" valign="top" class="listtopic"><?=gettext("Edit gateway entry"); ?></td>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("Edit gateway group entry"); ?></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Group Name"); ?></td>
<td width="78%" class="vtable">
- <input name="name" type="text" class="formfld unknown" id="name" size="20" value="<?=htmlspecialchars($pconfig['name']);?>">
- <br> <span class="vexpl"><?=gettext("Group Name"); ?></span></td>
+ <input name="name" type="text" class="formfld unknown" id="name" size="20" value="<?=htmlspecialchars($pconfig['name']);?>" />
+ <br/> <span class="vexpl"><?=gettext("Group Name"); ?></span></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Gateway Priority"); ?></td>
<td width="78%" class="vtable">
- <table border=0 cellpadding="6" cellspacing="0">
+ <table border="0" cellpadding="6" cellspacing="0" summary="gateway priority">
<tr>
<td class="listhdrr">Gateway</td>
<td class="listhdrr">Tier</td>
@@ -253,10 +257,10 @@ jQuery(function ($) {
foreach((array)$pconfig['item'] as $item) {
$itemsplit = explode("|", $item);
if($itemsplit[0] == $gwname) {
- $selected[$itemsplit[1]] = "selected";
+ $selected[$itemsplit[1]] = "selected=\"selected\"";
break;
} else {
- $selected[0] = "selected";
+ $selected[0] = "selected=\"selected\"";
}
}
$tr_id = $gwname . "_row";
@@ -278,10 +282,10 @@ jQuery(function ($) {
foreach((array)$pconfig['item'] as $item) {
$itemsplit = explode("|", $item);
if($itemsplit[0] == $gwname) {
- $selected[$itemsplit[2]] = "selected";
+ $selected[$itemsplit[2]] = "selected=\"selected\"";
break;
} else {
- $selected['address'] = "selected";
+ $selected['address'] = "selected=\"selected\"";
}
}
echo "<td class='listr'>";
@@ -297,8 +301,8 @@ jQuery(function ($) {
continue;
echo "<option value='{$vip}' $selected[$vip] >$vip - $address</option>\n";
}
- echo "</select>";
- echo "<td class='listr'><strong>{$gateway['descr']}</strong>";
+ echo "</select></td>";
+ echo "<td class='listr'><strong>{$gateway['descr']}&nbsp;</strong>";
echo "</td></tr>";
}
?>
@@ -310,12 +314,10 @@ jQuery(function ($) {
"If all links in a priority level are exhausted we will use the next available link(s) in the next priority level.") ?>
<br />
<strong><?=gettext("Virtual IP"); ?></strong> <br />
- <?=gettext("The virtual IP field selects what (virtual) IP should be used when this group applies to a local Dyndns, IPsec or openvpn endpoint") ?>
+ <?=gettext("The virtual IP field selects what (virtual) IP should be used when this group applies to a local Dynamic DNS, IPsec or OpenVPN endpoint") ?>
</span><br />
</td>
</tr>
- </td>
- </tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Trigger Level"); ?></td>
<td width="78%" class="vtable">
@@ -323,26 +325,25 @@ jQuery(function ($) {
<?php
foreach ($categories as $category => $categoryd) {
echo "<option value=\"$category\"";
- if ($category == $pconfig['trigger']) echo " selected";
+ if ($category == $pconfig['trigger']) echo " selected=\"selected\"";
echo ">" . htmlspecialchars($categoryd) . "</option>\n";
}
?>
</select>
- <br> <span class="vexpl"><?=gettext("When to trigger exclusion of a member"); ?></span></td>
+ <br/> <span class="vexpl"><?=gettext("When to trigger exclusion of a member"); ?></span></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Description"); ?></td>
<td width="78%" class="vtable">
- <input name="descr" type="text" class="formfld unknown" id="descr" size="40"
-value="<?=htmlspecialchars($pconfig['descr']);?>">
- <br> <span class="vexpl"><?=gettext("You may enter a description here for your reference (not parsed)."); ?></span></td>
+ <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>" />
+ <br/> <span class="vexpl"><?=gettext("You may enter a description here for your reference (not parsed)."); ?></span></td>
</tr>
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
- <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save");?>"> <input type="button" value="<?=gettext("Cancel"); ?>" class="formbtn" onclick="history.back()">
+ <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save");?>" /> <input type="button" value="<?=gettext("Cancel"); ?>" class="formbtn" onclick="history.back()" />
<?php if (isset($id) && $a_gateway_groups[$id]): ?>
- <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>">
+ <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>" />
<?php endif; ?>
</td>
</tr>
diff --git a/usr/local/www/system_gateways.php b/usr/local/www/system_gateways.php
index e2ac94e..016ed45 100755
--- a/usr/local/www/system_gateways.php
+++ b/usr/local/www/system_gateways.php
@@ -128,12 +128,12 @@ include("head.inc");
<?php include("fbegin.inc"); ?>
<?php if ($input_errors) print_input_errors($input_errors); ?>
<form action="system_gateways.php" method="post">
-<input type="hidden" name="y1" value="1">
+<input type="hidden" name="y1" value="1" />
<?php if ($savemsg) print_info_box($savemsg); ?>
<?php if (is_subsystem_dirty('staticroutes')): ?><p>
-<?php print_info_box_np(gettext("The gateway configuration has been changed.") . "<br>" . gettext("You must apply the changes in order for them to take effect."));?><br>
+<?php print_info_box_np(gettext("The gateway configuration has been changed.") . "<br/>" . gettext("You must apply the changes in order for them to take effect."));?><br/></p>
<?php endif; ?>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="system gatewyas">
<tr>
<td>
<?php
@@ -147,7 +147,7 @@ include("head.inc");
<tr>
<td>
<div id="mainarea">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="main area">
<tr>
<td width="15%" class="listhdrr"><?=gettext("Name"); ?></td>
<td width="15%" class="listhdrr"><?=gettext("Interface"); ?></td>
@@ -155,10 +155,10 @@ include("head.inc");
<td width="20%" class="listhdrr"><?=gettext("Monitor IP"); ?></td>
<td width="30%" class="listhdr"><?=gettext("Description"); ?></td>
<td width="10%" class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ <table border="0" cellspacing="0" cellpadding="1" summary="add">
<tr>
<td width="17"></td>
- <td><a href="system_gateways_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
+ <td><a href="system_gateways_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="add" /></a></td>
</tr>
</table>
</td>
@@ -169,7 +169,7 @@ include("head.inc");
<?php
echo $gateway['name'];
if(isset($gateway['defaultgw']))
- echo " <strong>(default)<strong>";
+ echo " <strong>(default)</strong>";
?>
</td>
<td class="listr" ondblclick="document.location='system_gateways_edit.php?id=<?=$i;?>';">
@@ -195,15 +195,15 @@ include("head.inc");
<?=htmlspecialchars($gateway['descr']);?>&nbsp;
</td>
- <td valign="middle" nowrap class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ <td valign="middle" class="list nowrap">
+ <table border="0" cellspacing="0" cellpadding="1" summary="icons">
<tr>
- <td><a href="system_gateways_edit.php?id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0"></a>
+ <td><a href="system_gateways_edit.php?id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0" alt="edit" /></a></td>
<?php
if (is_numeric($gateway['attribute'])) : ?>
<td>
- <a href="system_gateways.php?act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this gateway?"); ?>')">
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0">
+ <a href="system_gateways.php?act=del&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this gateway?"); ?>')">
+ <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" alt="delete" />
</a>
</td>
<?php else : ?>
@@ -212,19 +212,19 @@ include("head.inc");
</tr>
<tr>
<td width="17"></td>
- <td><a href="system_gateways_edit.php?dup=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
+ <td><a href="system_gateways_edit.php?dup=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="add" /></a></td>
</tr>
</table>
-
+ </td>
</tr>
<?php $i++; endforeach; ?>
<tr>
<td class="list" colspan="5"></td>
<td class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ <table border="0" cellspacing="0" cellpadding="1" summary="edit">
<tr>
<td width="17"></td>
- <td><a href="system_gateways_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
+ <td><a href="system_gateways_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="edit" /></a></td>
</tr>
</table>
</td>
diff --git a/usr/local/www/system_gateways_edit.php b/usr/local/www/system_gateways_edit.php
index 2bfdd5d..93b586a 100755
--- a/usr/local/www/system_gateways_edit.php
+++ b/usr/local/www/system_gateways_edit.php
@@ -1,22 +1,22 @@
-<?php
+<?php
/* $Id$ */
/*
system_gateways_edit.php
part of pfSense (http://pfsense.com)
-
+
Copyright (C) 2010 Seth Mos <seth.mos@dds.nl>.
All rights reserved.
-
+
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
-
+
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
-
+
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
-
+
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
@@ -50,8 +50,8 @@ foreach($a_gateways as $gw) {
$a_gateways = $a_gateways_arr;
if (!is_array($config['gateways']['gateway_item']))
- $config['gateways']['gateway_item'] = array();
-
+ $config['gateways']['gateway_item'] = array();
+
$a_gateway_item = &$config['gateways']['gateway_item'];
$apinger_default = return_apinger_defaults();
@@ -117,20 +117,20 @@ if ($_POST) {
$parent_ip = get_interface_ip($_POST['interface']);
$parent_sn = get_interface_subnet($_POST['interface']);
if(empty($parent_ip) || empty($parent_sn)) {
- $input_errors[] = gettext("You can not use a IPv6 Gateway Address on a IPv4 only interface.");
+ $input_errors[] = gettext("You can not use a IPv4 Gateway Address on a IPv6 only interface.");
} else {
$subnet = gen_subnet($parent_ip, $parent_sn) . "/" . $parent_sn;
if(!ip_in_subnet($_POST['gateway'], $subnet))
$input_errors[] = sprintf(gettext("The gateway address %1\$s does not lie within the chosen interface's subnet '%2\$s'."), $_POST['gateway'],$subnet);
}
}
- if(is_ipaddrv6($_POST['gateway'])) {
+ else if(is_ipaddrv6($_POST['gateway'])) {
/* do not do a subnet match on a link local address, it's valid */
if(! preg_match("/fe80::/", $_POST['gateway'])) {
$parent_ip = get_interface_ipv6($_POST['interface']);
$parent_sn = get_interface_subnetv6($_POST['interface']);
if(empty($parent_ip) || empty($parent_sn)) {
- $input_errors[] = gettext("You can not use a IPv4 Gateway Address on a IPv6 only interface.");
+ $input_errors[] = gettext("You can not use a IPv6 Gateway Address on a IPv4 only interface.");
} else {
$subnet = gen_subnetv6($parent_ip, $parent_sn) . "/" . $parent_sn;
if(!ip_in_subnet($_POST['gateway'], $subnet))
@@ -379,13 +379,13 @@ if ($_POST) {
if ($_POST['latencylow'])
$gateway['latencylow'] = $_POST['latencylow'];
if ($_POST['latencyhigh'])
- $gateway['latencyhigh'] = $_POST['latencyhigh'];
+ $gateway['latencyhigh'] = $_POST['latencyhigh'];
if ($_POST['losslow'])
$gateway['losslow'] = $_POST['losslow'];
if ($_POST['losshigh'])
- $gateway['losshigh'] = $_POST['losshigh'];
+ $gateway['losshigh'] = $_POST['losshigh'];
if ($_POST['down'])
- $gateway['down'] = $_POST['down'];
+ $gateway['down'] = $_POST['down'];
/* when saving the manual gateway we use the attribute which has the corresponding id */
if (isset($id) && $a_gateway_item[$id])
@@ -394,7 +394,7 @@ if ($_POST) {
$a_gateway_item[] = $gateway;
mark_subsystem_dirty('staticroutes');
-
+
write_config();
if($_REQUEST['isAjax']) {
@@ -402,7 +402,7 @@ if ($_POST) {
exit;
} else if (!empty($reloadif))
send_event("interface reconfigure {$reloadif}");
-
+
header("Location: system_gateways.php");
exit;
} else {
@@ -414,7 +414,7 @@ if ($_POST) {
}
exit;
}
-
+
$pconfig = $_POST;
if (empty($_POST['friendlyiface']))
$pconfig['friendlyiface'] = $_POST['interface'];
@@ -431,210 +431,219 @@ include("head.inc");
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc"); ?>
-<script language="JavaScript">
+<script type="text/javascript">
+//<![CDATA[
function show_advanced_gateway() {
- document.getElementById("showadvgatewaybox").innerHTML='';
- aodiv = document.getElementById('showgatewayadv');
- aodiv.style.display = "block";
+ document.getElementById("showadvgatewaybox").innerHTML='';
+ aodiv = document.getElementById('showgatewayadv');
+ aodiv.style.display = "block";
}
function monitor_change() {
- document.iform.monitor.disabled = document.iform.monitor_disable.checked;
+ document.iform.monitor.disabled = document.iform.monitor_disable.checked;
}
+//]]>
</script>
<?php if ($input_errors) print_input_errors($input_errors); ?>
- <form action="system_gateways_edit.php" method="post" name="iform" id="iform">
+ <form action="system_gateways_edit.php" method="post" name="iform" id="iform">
<?php
/* If this is a system gateway we need this var */
if(($pconfig['attribute'] == "system") || is_numeric($pconfig['attribute'])) {
- echo "<input type='hidden' name='attribute' id='attribute' value='" . htmlspecialchars($pconfig['attribute']) . "' >\n";
+ echo "<input type='hidden' name='attribute' id='attribute' value='" . htmlspecialchars($pconfig['attribute']) . "' />\n";
}
- echo "<input type='hidden' name='friendlyiface' id='friendlyiface' value='" . htmlspecialchars($pconfig['friendlyiface']) . "' >\n";
+ echo "<input type='hidden' name='friendlyiface' id='friendlyiface' value='" . htmlspecialchars($pconfig['friendlyiface']) . "' />\n";
?>
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
- <tr>
- <td colspan="2" valign="top" class="listtopic"><?=gettext("Edit gateway"); ?></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Interface"); ?></td>
- <td width="78%" class="vtable">
- <select name='interface' class='formselect' >
-
- <?php
- $interfaces = get_configured_interface_with_descr(false, true);
- foreach ($interfaces as $iface => $ifacename) {
- echo "<option value=\"{$iface}\"";
- if ($iface == $pconfig['friendlyiface'])
- echo " selected";
- echo ">" . htmlspecialchars($ifacename) . "</option>";
- }
- if (is_package_installed("openbgpd") == 1) {
- echo "<option value=\"bgpd\"";
- if ($pconfig['interface'] == "bgpd")
- echo " selected";
- echo ">" . gettext("Use BGPD") . "</option>";
- }
- ?>
- </select> <br>
- <span class="vexpl"><?=gettext("Choose which interface this gateway applies to."); ?></span></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Address Family"); ?></td>
- <td width="78%" class="vtable">
- <select name='ipprotocol' class='formselect' >
- <?php
- $options = array("inet" => "IPv4", "inet6" => "IPv6");
- foreach ($options as $name => $string) {
- echo "<option value=\"{$name}\"";
- if ($name == $pconfig['ipprotocol'])
- echo " selected";
- echo ">" . htmlspecialchars($string) . "</option>\n";
- }
- ?>
- </select> <br>
- <span class="vexpl"><?=gettext("Choose the Internet Protocol this gateway uses."); ?></span></td>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Name"); ?></td>
- <td width="78%" class="vtable">
- <input name="name" type="text" class="formfld unknown" id="name" size="20" value="<?=htmlspecialchars($pconfig['name']);?>">
- <br> <span class="vexpl"><?=gettext("Gateway name"); ?></span></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Gateway"); ?></td>
- <td width="78%" class="vtable">
- <input name="gateway" type="text" class="formfld host" id="gateway" size="28" value="<?php if ($pconfig['dynamic']) echo "dynamic"; else echo htmlspecialchars($pconfig['gateway']); ?>">
- <br> <span class="vexpl"><?=gettext("Gateway IP address"); ?></span></td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Default Gateway"); ?></td>
- <td width="78%" class="vtable">
- <input name="defaultgw" type="checkbox" id="defaultgw" value="yes" <?php if ($pconfig['defaultgw'] == true) echo "checked"; ?> />
- <strong><?=gettext("Default Gateway"); ?></strong><br />
- <?=gettext("This will select the above gateway as the default gateway"); ?>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Disable Gateway Monitoring"); ?></td>
- <td width="78%" class="vtable">
- <input name="monitor_disable" type="checkbox" id="monitor_disable" value="yes" <?php if ($pconfig['monitor_disable'] == true) echo "checked"; ?> onClick="monitor_change()" />
- <strong><?=gettext("Disable Gateway Monitoring"); ?></strong><br />
- <?=gettext("This will consider this gateway as always being up"); ?>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Monitor IP"); ?></td>
- <td width="78%" class="vtable">
- <?php
- if ($pconfig['gateway'] == $pconfig['monitor'])
- $monitor = "";
- else
- $monitor = htmlspecialchars($pconfig['monitor']);
- ?>
- <input name="monitor" type="text" id="monitor" value="<?php echo htmlspecialchars($monitor); ?>" size="28" />
- <strong><?=gettext("Alternative monitor IP"); ?></strong> <br />
- <?=gettext("Enter an alternative address here to be used to monitor the link. This is used for the " .
- "quality RRD graphs as well as the load balancer entries. Use this if the gateway does not respond " .
- "to ICMP echo requests (pings)"); ?>.</strong>
- <br />
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Advanced");?></td>
- <td width="78%" class="vtable">
- <?php $showbutton = (!empty($pconfig['latencylow']) || !empty($pconfig['latencyhigh']) || !empty($pconfig['losslow']) || !empty($pconfig['losshigh']) || (isset($pconfig['weight']) && $pconfig['weight'] > 1) || (isset($pconfig['interval']) && ($pconfig['interval'] > $apinger_default['interval'])) || (isset($pconfig['down']) && !($pconfig['down'] == $apinger_default['down']))); ?>
- <div id="showadvgatewaybox" <? if ($showbutton) echo "style='display:none'"; ?>>
- <input type="button" onClick="show_advanced_gateway()" value="Advanced"></input> - Show advanced option</a>
- </div>
- <div id="showgatewayadv" <? if (!$showbutton) echo "style='display:none'"; ?>>
- <table class="tabcont" width="100%" border="0" cellspacing="0" cellpadding="6">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="system gateways edit">
+ <tr>
+ <td colspan="2" valign="top" class="listtopic"><?=gettext("Edit gateway"); ?></td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Interface"); ?></td>
+ <td width="78%" class="vtable">
+ <select name='interface' class='formselect'>
+ <?php
+ $interfaces = get_configured_interface_with_descr(false, true);
+ foreach ($interfaces as $iface => $ifacename) {
+ echo "<option value=\"{$iface}\"";
+ if ($iface == $pconfig['friendlyiface'])
+ echo " selected='selected'";
+ echo ">" . htmlspecialchars($ifacename) . "</option>";
+ }
+ if (is_package_installed("openbgpd") == 1) {
+ echo "<option value=\"bgpd\"";
+ if ($pconfig['interface'] == "bgpd")
+ echo " selected='selected'";
+ echo ">" . gettext("Use BGPD") . "</option>";
+ }
+ ?>
+ </select><br/>
+ <span class="vexpl"><?=gettext("Choose which interface this gateway applies to."); ?></span>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Address Family"); ?></td>
+ <td width="78%" class="vtable">
+ <select name='ipprotocol' class='formselect' >
+ <?php
+ $options = array("inet" => "IPv4", "inet6" => "IPv6");
+ foreach ($options as $name => $string) {
+ echo "<option value=\"{$name}\"";
+ if ($name == $pconfig['ipprotocol'])
+ echo " selected='selected'";
+ echo ">" . htmlspecialchars($string) . "</option>\n";
+ }
+ ?>
+ </select><br/>
+ <span class="vexpl"><?=gettext("Choose the Internet Protocol this gateway uses."); ?></span>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Name"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="name" type="text" class="formfld unknown" id="name" size="20" value="<?=htmlspecialchars($pconfig['name']);?>" />
+ <br/><span class="vexpl"><?=gettext("Gateway name"); ?></span>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Gateway"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="gateway" type="text" class="formfld host" id="gateway" size="28" value="<?php if ($pconfig['dynamic']) echo "dynamic"; else echo htmlspecialchars($pconfig['gateway']); ?>" />
+ <br/><span class="vexpl"><?=gettext("Gateway IP address"); ?></span>
+ </td>
+ </tr>
<tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Weight");?></td>
- <td width="78%" class="vtable">
- <select name='weight' class='formfldselect' id='weight'>
- <?php
- for ($i = 1; $i < 6; $i++) {
- $selected = "";
- if ($pconfig['weight'] == $i)
- $selected = "selected";
- echo "<option value='{$i}' {$selected} >{$i}</option>";
- }
- ?>
- </select>
- <br /><?=gettext("Weight for this gateway when used in a Gateway Group.");?> <br />
- </td>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Default Gateway"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="defaultgw" type="checkbox" id="defaultgw" value="yes" <?php if ($pconfig['defaultgw'] == true) echo "checked=\"checked\""; ?> />
+ <strong><?=gettext("Default Gateway"); ?></strong><br />
+ <?=gettext("This will select the above gateway as the default gateway"); ?>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Disable Gateway Monitoring"); ?></td>
+ <td width="78%" class="vtable">
+ <input name="monitor_disable" type="checkbox" id="monitor_disable" value="yes" <?php if ($pconfig['monitor_disable'] == true) echo "checked=\"checked\""; ?> onclick="monitor_change()" />
+ <strong><?=gettext("Disable Gateway Monitoring"); ?></strong><br />
+ <?=gettext("This will consider this gateway as always being up"); ?>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Monitor IP"); ?></td>
+ <td width="78%" class="vtable">
+ <?php
+ if ($pconfig['gateway'] == $pconfig['monitor'])
+ $monitor = "";
+ else
+ $monitor = htmlspecialchars($pconfig['monitor']);
+ ?>
+ <input name="monitor" type="text" id="monitor" value="<?php echo htmlspecialchars($monitor); ?>" size="28" />
+ <strong><?=gettext("Alternative monitor IP"); ?></strong> <br />
+ <?=gettext("Enter an alternative address here to be used to monitor the link. This is used for the " .
+ "quality RRD graphs as well as the load balancer entries. Use this if the gateway does not respond " .
+ "to ICMP echo requests (pings)"); ?>.
+ <br />
+ </td>
</tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Latency thresholds");?></td>
- <td width="78%" class="vtable">
- <?=gettext("From");?>
- <input name="latencylow" type="text" class="formfld unknown" id="latencylow" size="2"
- value="<?=htmlspecialchars($pconfig['latencylow']);?>">
- <?=gettext("To");?>
- <input name="latencyhigh" type="text" class="formfld unknown" id="latencyhigh" size="2"
- value="<?=htmlspecialchars($pconfig['latencyhigh']);?>">
- <br> <span class="vexpl"><?=gettext(sprintf("Low and high thresholds for latency in milliseconds. Default is %d/%d.", $apinger_default['latencylow'], $apinger_default['latencyhigh']));?></span></td>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Packet Loss thresholds");?></td>
- <td width="78%" class="vtable">
- <?=gettext("From");?>
- <input name="losslow" type="text" class="formfld unknown" id="losslow" size="2"
- value="<?=htmlspecialchars($pconfig['losslow']);?>">
- <?=gettext("To");?>
- <input name="losshigh" type="text" class="formfld unknown" id="losshigh" size="2"
- value="<?=htmlspecialchars($pconfig['losshigh']);?>">
- <br> <span class="vexpl"><?=gettext(sprintf("Low and high thresholds for packet loss in %%. Default is %d/%d.", $apinger_default['losslow'], $apinger_default['losshigh']));?></span></td>
- </td>
- </tr>
<tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Frequency Probe");?></td>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Advanced");?></td>
<td width="78%" class="vtable">
- <input name="interval" type="text" class="formfld unknown" id="interval" size="2"
- value="<?=htmlspecialchars($pconfig['interval']);?>">
- <br><span class="vexpl">
- <?=gettext(sprintf("How often that an ICMP probe will be sent in seconds. Default is %d.", $apinger_default['interval']));?><br/><br/>
- <?=gettext("NOTE: The quality graph is averaged over seconds, not intervals, so as the frequency probe is increased the accuracy of the quality graph is decreased.");?>
- </span></td>
+ <?php $showbutton = (!empty($pconfig['latencylow']) || !empty($pconfig['latencyhigh']) || !empty($pconfig['losslow']) || !empty($pconfig['losshigh']) || (isset($pconfig['weight']) && $pconfig['weight'] > 1) || (isset($pconfig['interval']) && ($pconfig['interval'] > $apinger_default['interval'])) || (isset($pconfig['down']) && !($pconfig['down'] == $apinger_default['down']))); ?>
+ <div id="showadvgatewaybox" <?php if ($showbutton) echo "style='display:none'"; ?>>
+ <input type="button" onclick="show_advanced_gateway()" value="Advanced" /><?=gettext(" - Show advanced option"); ?>
+ </div>
+ <div id="showgatewayadv" <?php if (!$showbutton) echo "style='display:none'"; ?>>
+ <table class="tabcont" width="100%" border="0" cellspacing="0" cellpadding="6" summary="advanced options">
+ <tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Weight");?></td>
+ <td width="78%" class="vtable">
+ <select name='weight' class='formfldselect' id='weight'>
+ <?php
+ for ($i = 1; $i < 6; $i++) {
+ $selected = "";
+ if ($pconfig['weight'] == $i)
+ $selected = "selected='selected'";
+ echo "<option value='{$i}' {$selected} >{$i}</option>";
+ }
+ ?>
+ </select>
+ <br /><?=gettext("Weight for this gateway when used in a Gateway Group.");?> <br />
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Latency thresholds");?></td>
+ <td width="78%" class="vtable">
+ <?=gettext("From");?>
+ <input name="latencylow" type="text" class="formfld unknown" id="latencylow" size="2"
+ value="<?=htmlspecialchars($pconfig['latencylow']);?>" />
+ <?=gettext("To");?>
+ <input name="latencyhigh" type="text" class="formfld unknown" id="latencyhigh" size="2"
+ value="<?=htmlspecialchars($pconfig['latencyhigh']);?>" />
+ <br/><span class="vexpl"><?=gettext(sprintf("Low and high thresholds for latency in milliseconds. Default is %d/%d.", $apinger_default['latencylow'], $apinger_default['latencyhigh']));?></span>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Packet Loss thresholds");?></td>
+ <td width="78%" class="vtable">
+ <?=gettext("From");?>
+ <input name="losslow" type="text" class="formfld unknown" id="losslow" size="2"
+ value="<?=htmlspecialchars($pconfig['losslow']);?>" />
+ <?=gettext("To");?>
+ <input name="losshigh" type="text" class="formfld unknown" id="losshigh" size="2"
+ value="<?=htmlspecialchars($pconfig['losshigh']);?>" />
+ <br /><span class="vexpl"><?=gettext(sprintf("Low and high thresholds for packet loss in %%. Default is %d/%d.", $apinger_default['losslow'], $apinger_default['losshigh']));?></span>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Frequency Probe");?></td>
+ <td width="78%" class="vtable">
+ <input name="interval" type="text" class="formfld unknown" id="interval" size="2"
+ value="<?=htmlspecialchars($pconfig['interval']);?>" />
+ <br/><span class="vexpl">
+ <?=gettext(sprintf("How often that an ICMP probe will be sent in seconds. Default is %d.", $apinger_default['interval']));?><br/><br/>
+ <?=gettext("NOTE: The quality graph is averaged over seconds, not intervals, so as the frequency probe is increased the accuracy of the quality graph is decreased.");?>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq"><?=gettext("Down");?></td>
+ <td width="78%" class="vtable">
+ <input name="down" type="text" class="formfld unknown" id="down" size="2"
+ value="<?=htmlspecialchars($pconfig['down']);?>" />
+ <br/><span class="vexpl"><?=gettext(sprintf("The number of seconds of failed probes before the alarm will fire. Default is %d.", $apinger_default['down']));?></span>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <?= gettext("NOTE: The Frequency Probe interval must be less than the Down time, otherwise the gateway will seem to go down then come up again at the next probe."); ?><br/>
+ </td>
+ </tr>
+ </table>
+ </div>
</td>
</tr>
<tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Down");?></td>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Description"); ?></td>
<td width="78%" class="vtable">
- <input name="down" type="text" class="formfld unknown" id="down" size="2"
- value="<?=htmlspecialchars($pconfig['down']);?>">
- <br> <span class="vexpl"><?=gettext(sprintf("The number of seconds of failed probes before the alarm will fire. Default is %d.", $apinger_default['down']));?></span></td>
+ <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>" />
+ <br/><span class="vexpl"><?=gettext("You may enter a description here for your reference (not parsed)"); ?>.</span>
</td>
</tr>
<tr>
- <td colspan="2">
- <?= gettext("NOTE: The Frequency Probe interval must be less than the Down time, otherwise the gateway will seem to go down then come up again at the next probe."); ?><br/>
+ <td width="22%" valign="top">&nbsp;</td>
+ <td width="78%">
+ <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save");?>" /> <input type="button" value="<?=gettext("Cancel");?>" class="formbtn" onclick="history.back()" />
+ <?php if (isset($id) && $a_gateways[$id]): ?>
+ <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>" />
+ <?php endif; ?>
</td>
</tr>
- </table>
- </div>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("Description"); ?></td>
- <td width="78%" class="vtable">
- <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>">
- <br> <span class="vexpl"><?=gettext("You may enter a description here for your reference (not parsed)"); ?>.</span></td>
- </tr>
- <tr>
- <td width="22%" valign="top">&nbsp;</td>
- <td width="78%">
- <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save");?>"> <input type="button" value="<?=gettext("Cancel");?>" class="formbtn" onclick="history.back()">
- <?php if (isset($id) && $a_gateways[$id]): ?>
- <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>">
- <?php endif; ?>
- </td>
- </tr>
- </table>
-</form>
+ </table>
+ </form>
<?php include("fend.inc"); ?>
-<script language="JavaScript">
+<script type="text/javascript">
+//<![CDATA[
monitor_change();
+//]]>
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/usr/local/www/system_groupmanager.php b/usr/local/www/system_groupmanager.php
index d6ffe25..ed2cd31 100644
--- a/usr/local/www/system_groupmanager.php
+++ b/usr/local/www/system_groupmanager.php
@@ -175,8 +175,8 @@ include("head.inc");
<body link="#000000" vlink="#000000" alink="#000000" onload="<?= $jsevents["body"]["onload"] ?>">
<?php include("fbegin.inc"); ?>
-<script language="JavaScript">
-<!--
+<script type="text/javascript">
+//<![CDATA[
function setall_selected(id) {
selbox = document.getElementById(id);
@@ -224,7 +224,7 @@ function presubmit() {
setall_selected('members');
}
-//-->
+//]]>
</script>
<?php
if ($input_errors)
@@ -232,7 +232,7 @@ function presubmit() {
if ($savemsg)
print_info_box($savemsg);
?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="group manager">
<tr>
<td>
<?php
@@ -252,11 +252,11 @@ function presubmit() {
<?php if($_GET['act']=="new" || $_GET['act']=="edit"): ?>
<form action="system_groupmanager.php" method="post" name="iform" id="iform" onsubmit="presubmit()">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<?php
$ro = "";
if ($pconfig['gtype'] == "system")
- $ro = "readonly = \"readonly\"";
+ $ro = "readonly=\"readonly\"";
?>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Defined by");?></td>
@@ -268,14 +268,14 @@ function presubmit() {
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Group name");?></td>
<td width="78%" class="vtable">
- <input name="groupname" type="text" class="formfld group" id="groupname" size="20" value="<?=htmlspecialchars($pconfig['name']);?>" <?=$ro;?>>
+ <input name="groupname" type="text" class="formfld group" id="groupname" size="20" value="<?=htmlspecialchars($pconfig['name']);?>" <?=$ro;?> />
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Description");?></td>
<td width="78%" class="vtable">
- <input name="description" type="text" class="formfld unknown" id="description" size="20" value="<?=htmlspecialchars($pconfig['description']);?>">
- <br>
+ <input name="description" type="text" class="formfld unknown" id="description" size="20" value="<?=htmlspecialchars($pconfig['description']);?>" />
+ <br/>
<?=gettext("Group description, for your own information only");?>
</td>
</tr>
@@ -285,12 +285,12 @@ function presubmit() {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Group Memberships");?></td>
<td width="78%" class="vtable" align="center">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="membership">
<tr>
<td align="center" width="50%">
<strong><?=gettext("Not Members");?></strong><br/>
<br/>
- <select size="10" style="width: 75%" name="notmembers[]" class="formselect" id="notmembers" onChange="clear_selected('members')" multiple>
+ <select size="10" style="width: 75%" name="notmembers[]" class="formselect" id="notmembers" onchange="clear_selected('members')" multiple="multiple">
<?php
foreach ($config['system']['user'] as $user):
if (is_array($pconfig['members']) && in_array($user['uid'],$pconfig['members']))
@@ -316,7 +316,7 @@ function presubmit() {
<td align="center" width="50%">
<strong><?=gettext("Members");?></strong><br/>
<br/>
- <select size="10" style="width: 75%" name="members[]" class="formselect" id="members" onChange="clear_selected('notmembers')" multiple>
+ <select size="10" style="width: 75%" name="members[]" class="formselect" id="members" onchange="clear_selected('notmembers')" multiple="multiple">
<?php
foreach ($config['system']['user'] as $user):
if (!(is_array($pconfig['members']) && in_array($user['uid'],$pconfig['members'])))
@@ -341,7 +341,7 @@ function presubmit() {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Assigned Privileges");?></td>
<td width="78%" class="vtable">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="privileges">
<tr>
<td width="40%" class="listhdrr"><?=gettext("Name");?></td>
<td width="60%" class="listhdrr"><?=gettext("Description");?></td>
@@ -359,9 +359,9 @@ function presubmit() {
<td class="listbg">
<?=htmlspecialchars($priv_list[$priv]['descr']);?>
</td>
- <td valign="middle" nowrap class="list">
- <a href="system_groupmanager.php?act=delpriv&id=<?=htmlspecialchars($id)?>&privid=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this privilege?");?>')">
- <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" alt="" />
+ <td valign="middle" class="list nowrap">
+ <a href="system_groupmanager.php?act=delpriv&amp;id=<?=htmlspecialchars($id)?>&amp;privid=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this privilege?");?>')">
+ <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" alt="delete" />
</a>
</td>
</tr>
@@ -374,7 +374,7 @@ function presubmit() {
<td class="list" colspan="2"></td>
<td class="list">
<a href="system_groupmanager_addprivs.php?groupid=<?=htmlspecialchars($id)?>">
- <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="" />
+ <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="add" />
</a>
</td>
@@ -387,10 +387,10 @@ function presubmit() {
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
- <input name="save" type="submit" class="formbtn" value="<?=gettext("Save");?>">
+ <input name="save" type="submit" class="formbtn" value="<?=gettext("Save");?>" />
<?php if (isset($id) && $a_group[$id]): ?>
- <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>">
- <input name="gid" type="hidden" value="<?=htmlspecialchars($pconfig['gid']);?>">
+ <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>" />
+ <input name="gid" type="hidden" value="<?=htmlspecialchars($pconfig['gid']);?>" />
<?php endif; ?>
</td>
</tr>
@@ -399,7 +399,7 @@ function presubmit() {
<?php else: ?>
- <table class="sortable" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="sortable" width="100%" border="0" cellpadding="0" cellspacing="0" summary="">
<thead>
<tr>
<th width="25%" class="listhdrr"><?=gettext("Group name");?></th>
@@ -408,6 +408,25 @@ function presubmit() {
<th width="10%" class="list"></th>
</tr>
</thead>
+ <tfoot>
+ <tr>
+ <td class="list" colspan="3"></td>
+ <td class="list">
+ <a href="system_groupmanager.php?act=new"><img src="./themes/<?=$g['theme'];?>/images/icons/icon_plus.gif" title="<?=gettext("add group");?>" width="17" height="17" border="0" alt="add" />
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <p>
+ <?=gettext("Additional webConfigurator groups can be added here.
+ Group permissions can be assigned which are inherited by users who are members of the group.
+ An icon that appears grey indicates that it is a system defined object.
+ Some system object properties can be modified but they cannot be deleted.");?>
+ </p>
+ </td>
+ </tr>
+ </tfoot>
<tbody>
<?php
$i = 0;
@@ -421,14 +440,13 @@ function presubmit() {
if ($group["name"] == "all")
$groupcount = count($config['system']['user']);
?>
- <tr ondblclick="document.location='system_groupmanager.php?act=edit&id=<?=$i;?>'">
+ <tr ondblclick="document.location='system_groupmanager.php?act=edit&amp;id=<?=$i;?>'">
<td class="listlr">
- <table border="0" cellpadding="0" cellspacing="0">
+ <table border="0" cellpadding="0" cellspacing="0" summary="">
<tr>
- <td align="left" valign="center">
+ <td align="left" valign="middle">
<img src="<?=$grpimg;?>" alt="<?=gettext("User");?>" title="<?=gettext("User");?>" border="0" height="16" width="16" />
</td>
- </td>
<td align="left" valign="middle">
<?=htmlspecialchars($group['name']); ?>&nbsp;
</td>
@@ -441,14 +459,14 @@ function presubmit() {
<td class="listbg">
<?=$groupcount;?>
</td>
- <td valign="middle" nowrap class="list">
- <a href="system_groupmanager.php?act=edit&id=<?=$i;?>">
- <img src="./themes/<?=$g['theme'];?>/images/icons/icon_e.gif" title="<?=gettext("edit group");?>" width="17" height="17" border="0">
+ <td valign="middle" class="list nowrap">
+ <a href="system_groupmanager.php?act=edit&amp;id=<?=$i;?>">
+ <img src="./themes/<?=$g['theme'];?>/images/icons/icon_e.gif" title="<?=gettext("edit group");?>" width="17" height="17" border="0" alt="edit" />
</a>
&nbsp;
<?php if($group['scope'] != "system"): ?>
- <a href="system_groupmanager.php?act=delgroup&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this group?"); ?>')">
- <img src="/themes/<?=$g['theme'];?>/images/icons/icon_x.gif" title="<?=gettext("delete group"); ?>" width="17" height="17" border="0">
+ <a href="system_groupmanager.php?act=delgroup&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this group?"); ?>')">
+ <img src="/themes/<?=$g['theme'];?>/images/icons/icon_x.gif" title="<?=gettext("delete group"); ?>" width="17" height="17" border="0" alt="delete" />
</a>
<?php endif; ?>
</td>
@@ -458,25 +476,6 @@ function presubmit() {
endforeach;
?>
</tbody>
- <tfoot>
- <tr>
- <td class="list" colspan="3"></td>
- <td class="list">
- <a href="system_groupmanager.php?act=new"><img src="./themes/<?=$g['theme'];?>/images/icons/icon_plus.gif" title="<?=gettext("add group");?>" width="17" height="17" border="0">
- </a>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- <p>
- <?=gettext("Additional webConfigurator groups can be added here.
- Group permissions can be assigned which are inherited by users who are members of the group.
- An icon that appears grey indicates that it is a system defined object.
- Some system object properties can be modified but they cannot be deleted.");?>
- </p>
- </td>
- </tr>
- </tfoot>
</table>
<?php endif; ?>
@@ -485,5 +484,6 @@ function presubmit() {
</td>
</tr>
</table>
-</body>
<?php include("fend.inc"); ?>
+</body>
+</html>
diff --git a/usr/local/www/system_groupmanager_addprivs.php b/usr/local/www/system_groupmanager_addprivs.php
index 8ffbe0b..29f0193 100644
--- a/usr/local/www/system_groupmanager_addprivs.php
+++ b/usr/local/www/system_groupmanager_addprivs.php
@@ -124,7 +124,7 @@ include("head.inc");
<body link="#0000CC" vlink="#0000CC" alink="#0000CC" onload="<?= $jsevents["body"]["onload"] ?>">
<?php include("fbegin.inc"); ?>
<script type="text/javascript">
-<!--
+//<![CDATA[
<?php
@@ -150,7 +150,7 @@ function update_description() {
document.getElementById("pdesc").innerHTML = descs[index];
}
-//-->
+//]]>
</script>
<?php
if ($input_errors)
@@ -158,7 +158,7 @@ function update_description() {
if ($savemsg)
print_info_box($savemsg);
?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="group manager add priveleges">
<tr>
<td>
<?php
@@ -175,13 +175,13 @@ function update_description() {
<td id="mainarea">
<div class="tabcont">
<form action="system_groupmanager_addprivs.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("System Privileges");?></td>
<td width="78%" class="vtable">
<table>
<tr><td>
- <select name="sysprivs[]" id="sysprivs" class="formselect" onchange="update_description();" multiple size="35">
+ <select name="sysprivs[]" id="sysprivs" class="formselect" onchange="update_description();" multiple="multiple" size="35">
<?php
foreach($priv_list as $pname => $pdata):
if (in_array($pname, $a_group['priv']))
@@ -195,6 +195,7 @@ function update_description() {
</td><td>
<a href='#'onClick="selectAll();">Select all</a>
<script type="text/javascript">
+ //<![CDATA[
function selectAll() {
var options = jQuery('select#sysprivs option');
var len = options.length;
@@ -203,6 +204,7 @@ function update_description() {
}
}
selectAll();
+ //]]>
</script>
<br/>
</td>
diff --git a/usr/local/www/system_hasync.php b/usr/local/www/system_hasync.php
index b3e3cb8..05a8133 100755
--- a/usr/local/www/system_hasync.php
+++ b/usr/local/www/system_hasync.php
@@ -77,6 +77,7 @@ if ($_POST) {
$a_hasync['username'] = $pconfig['username'];
$a_hasync['password'] = $pconfig['password'];
write_config("Updated High Availability Sync configuration");
+ interfaces_carp_setup();
header("Location: system_hasync.php");
exit();
}
@@ -101,12 +102,12 @@ include("head.inc");
<?php include("fbegin.inc"); ?>
<form action="system_hasync.php" method="post" name="iform" id="iform">
-<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<table width="100%" border="0" cellspacing="0" cellpadding="0" summary="high availability sync">
<tr>
<td id="mainarea">
<div class="tabcont">
- <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<tr>
<td colspan="2" class="listtopic">State Synchronization Settings (pfsync)</td>
</tr>
@@ -115,7 +116,7 @@ include("head.inc");
<td class="vtable">
<input id='pfsyncenabled' type='checkbox' name='pfsyncenabled' value='on' <?php if ($pconfig['pfsyncenabled'] === "on") echo "checked='checked'"; ?> />
<br />
- pfsync transfers state insertion, update, and deletion messages between firewalls. Each firewall sends these messages out via multicast on a specified interface, using the PFSYNC protocol (IP Protocol 240). It also listens on that interface for similar messages from other firewalls, and imports them into the local state table.<p>This setting should be enabled on all members of a failover group.<p>NOTE: Clicking save will force a configuration sync if it is enabled! (see Configuration Synchronization Settings below)
+ pfsync transfers state insertion, update, and deletion messages between firewalls. Each firewall sends these messages out via multicast on a specified interface, using the PFSYNC protocol (IP Protocol 240). It also listens on that interface for similar messages from other firewalls, and imports them into the local state table.<p>This setting should be enabled on all members of a failover group.</p><p>NOTE: Clicking save will force a configuration sync if it is enabled! (see Configuration Synchronization Settings below)</p>
</td>
</tr>
<tr valign="top">
@@ -342,8 +343,6 @@ include("head.inc");
</tr>
</table>
</form>
-
-
<?php include("fend.inc"); ?>
</body>
</html>
diff --git a/usr/local/www/system_routes.php b/usr/local/www/system_routes.php
index 70f251d..c3ec4c4 100755
--- a/usr/local/www/system_routes.php
+++ b/usr/local/www/system_routes.php
@@ -81,13 +81,17 @@ if ($_POST) {
if ($_GET['act'] == "del") {
if ($a_routes[$_GET['id']]) {
$changedesc .= gettext("removed route to") . " " . $a_routes[$_GET['id']['route']];
- if(is_ipaddrv6($a_routes[$_GET['id']]['network']))
- $family = "-inet6";
- mwexec("/sbin/route delete {$family} " . escapeshellarg($a_routes[$_GET['id']]['network']));
- unset($a_routes[$_GET['id']]);
- write_config($changedesc);
- header("Location: system_routes.php");
- exit;
+ list($ip, $mask) = explode("/", $a_routes[$_GET['id']]['network']);
+ if (is_ipaddr($ip)) {
+ $family = "";
+ if(is_ipaddrv6($ip))
+ $family = "-inet6";
+ mwexec("/sbin/route delete {$family} " . escapeshellarg($a_routes[$_GET['id']]['network']));
+ unset($a_routes[$_GET['id']]);
+ write_config($changedesc);
+ header("Location: system_routes.php");
+ exit;
+ }
}
}
@@ -101,13 +105,13 @@ include("head.inc");
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc"); ?>
<form action="system_routes.php" method="post">
-<input type="hidden" name="y1" value="1">
+<input type="hidden" name="y1" value="1" />
<?php if ($savemsg) print_info_box($savemsg); ?>
<?php if (is_subsystem_dirty('staticroutes')): ?><p>
-<?php print_info_box_np(sprintf(gettext("The static route configuration has been changed.%sYou must apply the changes in order for them to take effect."), "<br>"));?><br>
+<?php print_info_box_np(sprintf(gettext("The static route configuration has been changed.%sYou must apply the changes in order for them to take effect."), "<br/>"));?><br/></p>
<?php endif; ?>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="system routes">
<tr>
<td>
<?php
@@ -121,23 +125,23 @@ include("head.inc");
<tr>
<td>
<div id="mainarea">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="main area">
<tr>
<td width="25%" class="listhdrr"><?=gettext("Network");?></td>
<td width="20%" class="listhdrr"><?=gettext("Gateway");?></td>
<td width="15%" class="listhdrr"><?=gettext("Interface");?></td>
<td width="30%" class="listhdr"><?=gettext("Description");?></td>
<td width="10%" class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ <table border="0" cellspacing="0" cellpadding="1" summary="add">
<tr>
<td width="17"></td>
- <td><a href="system_routes_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
+ <td><a href="system_routes_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="add" /></a></td>
</tr>
</table>
</td>
</tr>
+ <?php $i = 0; foreach ($a_routes as $route): ?>
<tr>
- <?php $i = 0; foreach ($a_routes as $route): ?>
<?php
if (isset($route['disabled'])) {
$textss = "<span class=\"gray\">";
@@ -165,15 +169,15 @@ include("head.inc");
<td class="listbg" ondblclick="document.location='system_routes_edit.php?id=<?=$i;?>';">
<?=$textss;?><?=htmlspecialchars($route['descr']);?>&nbsp;<?=$textse;?>
</td>
- <td valign="middle" nowrap class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ <td valign="middle" class="list nowrap">
+ <table border="0" cellspacing="0" cellpadding="1" summary="edit">
<tr>
- <td><a href="system_routes_edit.php?id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0"></a>
- <td><a href="system_routes.php?act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this route?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0"></a></td>
+ <td><a href="system_routes_edit.php?id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0" alt="edit" /></a>
+ <td><a href="system_routes.php?act=del&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this route?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" alt="delete" /></a></td>
</tr>
<tr>
<td width="17"></td>
- <td><a href="system_routes_edit.php?dup=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
+ <td><a href="system_routes_edit.php?dup=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="add" /></a></td>
</tr>
</table>
</td>
@@ -182,10 +186,10 @@ include("head.inc");
<tr>
<td class="list" colspan="4"></td>
<td class="list">
- <table border="0" cellspacing="0" cellpadding="1">
+ <table border="0" cellspacing="0" cellpadding="1" summary="edit">
<tr>
<td width="17"></td>
- <td><a href="system_routes_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
+ <td><a href="system_routes_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="edit" /></a></td>
</tr>
</table>
</td>
diff --git a/usr/local/www/system_routes_edit.php b/usr/local/www/system_routes_edit.php
index 98e264b..28649e0 100755
--- a/usr/local/www/system_routes_edit.php
+++ b/usr/local/www/system_routes_edit.php
@@ -52,7 +52,10 @@ function staticroutes_sort() {
usort($config['staticroutes']['route'], "staticroutecmp");
}
-require("guiconfig.inc");
+require_once("guiconfig.inc");
+require_once("filter.inc");
+require_once("util.inc");
+require_once("gwlb.inc");
if (!is_array($config['staticroutes']['route']))
$config['staticroutes']['route'] = array();
@@ -110,7 +113,7 @@ if ($_POST) {
$current_targets = get_staticroutes(true);
$new_targets = array();
if(is_ipaddrv6($_POST['network'])) {
- $osn = Net_IPv6::compress(gen_subnetv6($_POST['network'], $_POST['network_subnet'])) . "/" . $_POST['network_subnet'];
+ $osn = gen_subnetv6($_POST['network'], $_POST['network_subnet']) . "/" . $_POST['network_subnet'];
$new_targets[] = $osn;
}
if (is_ipaddrv4($_POST['network'])) {
@@ -122,10 +125,18 @@ if ($_POST) {
}
} elseif (is_alias($_POST['network'])) {
$osn = $_POST['network'];
+ $fqdn_found = 0;
foreach (filter_expand_alias_array($_POST['network']) as $tgt) {
- if (is_ipaddr($tgt))
+ if (!is_ipaddr($tgt) && is_hostname($tgt)) {
+ if ($fqdn_found === 0) {
+ $input_errors[] = sprintf(gettext("The alias (%s) has one or more FQDNs configured and cannot be used to configure a static route."), $_POST['network']);
+ $fqdn_found = 1;
+ }
+ continue;
+ }
+ if (is_ipaddrv4($tgt))
$tgt .= "/32";
- if (is_ipaddr($tgt))
+ if (is_ipaddrv6($tgt))
$tgt .= "/128";
if (!is_subnet($tgt))
continue;
@@ -158,6 +169,24 @@ if ($_POST) {
$input_errors[] = gettext("A route to these destination networks already exists") . ": " . implode(", ", $overlaps);
}
+ if (is_array($config['interfaces'])) {
+ foreach ($config['interfaces'] as $if) {
+ if (is_ipaddrv4($_POST['network'])
+ && isset($if['ipaddr']) && isset($if['subnet'])
+ && is_ipaddrv4($if['ipaddr']) && is_numeric($if['subnet'])
+ && ($_POST['network_subnet'] == $if['subnet'])
+ && (gen_subnet($_POST['network'], $_POST['network_subnet']) == gen_subnet($if['ipaddr'], $if['subnet'])))
+ $input_errors[] = sprintf(gettext("This network conflicts with address configured on interface %s."), $if['descr']);
+
+ else if (is_ipaddrv6($_POST['network'])
+ && isset($if['ipaddrv6']) && isset($if['subnetv6'])
+ && is_ipaddrv6($if['ipaddrv6']) && is_numeric($if['subnetv6'])
+ && ($_POST['network_subnet'] == $if['subnetv6'])
+ && (gen_subnetv6($_POST['network'], $_POST['network_subnet']) == gen_subnetv6($if['ipaddrv6'], $if['subnetv6'])))
+ $input_errors[] = sprintf(gettext("This network conflicts with address configured on interface %s."), $if['descr']);
+ }
+ }
+
if (!$input_errors) {
$route = array();
$route['network'] = $osn;
@@ -202,31 +231,29 @@ include("head.inc");
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<script type="text/javascript" src="/javascript/jquery.ipv4v6ify.js"></script>
-<script type="text/javascript" src="/javascript/autosuggest.js">
-</script>
-<script type="text/javascript" src="/javascript/suggestions.js">
-</script>
+<script type="text/javascript" src="/javascript/autosuggest.js"></script>
+<script type="text/javascript" src="/javascript/suggestions.js"></script>
<?php include("fbegin.inc");?>
<?php if ($input_errors) print_input_errors($input_errors); ?>
<form action="system_routes_edit.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="system routes edit">
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Edit route entry"); ?></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Destination network"); ?></td>
<td width="78%" class="vtable">
- <input name="network" type="text" class="formfldalias ipv4v6" id="network" size="20" value="<?=htmlspecialchars($pconfig['network']);?>">
+ <input name="network" type="text" class="formfldalias ipv4v6" id="network" size="20" value="<?=htmlspecialchars($pconfig['network']);?>" />
/
- <select name="network_subnet" class="formselect ipv4v6" id="network_subnet"
+ <select name="network_subnet" class="formselect ipv4v6" id="network_subnet">
<?php
for ($i = 129; $i >= 1; $i--): ?>
- <option value="<?=$i;?>" <?php if ($i == $pconfig['network_subnet']) echo "selected"; ?>>
+ <option value="<?=$i;?>" <?php if ($i == $pconfig['network_subnet']) echo "selected=\"selected\""; ?>>
<?=$i;?>
</option>
<?php endfor; ?>
</select>
- <br> <span class="vexpl"><?=gettext("Destination network for this static route"); ?></span></td>
+ <br/><span class="vexpl"><?=gettext("Destination network for this static route"); ?></span></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Gateway"); ?></td>
@@ -236,32 +263,31 @@ include("head.inc");
foreach ($a_gateways as $gateway) {
echo "<option value='{$gateway['name']}' ";
if ($gateway['name'] == $pconfig['gateway'])
- echo "selected";
+ echo "selected=\"selected\"";
echo ">" . htmlspecialchars($gateway['name']) . " - " . htmlspecialchars($gateway['gateway']) . "</option>\n";
}
?>
</select> <br />
<div id='addgwbox'>
- <?=gettext("Choose which gateway this route applies to or"); ?> <a OnClick="show_add_gateway();" href="#"><?=gettext("add a new one.");?></a>
+ <?=gettext("Choose which gateway this route applies to or"); ?> <a onclick="show_add_gateway();" href="#"><?=gettext("add a new one.");?></a>
</div>
<div id='notebox'>
</div>
- <div style="display:none" name ="status" id="status">
+ <div style="display:none" id="status">
</div>
- <div style="display:none" id="addgateway" name="addgateway">
- <p>
- <table border="1" style="background:#990000; border-style: none none none none; width:225px;"><tr><td>
- <table bgcolor="#990000" cellpadding="1" cellspacing="1">
- <tr><td>&nbsp;</td>
+ <div style="display:none" id="addgateway">
+ <table border="1" style="background:#990000; border-style: none none none none; width:225px;" summary="add gateway"><tr><td>
+ <table bgcolor="#990000" cellpadding="1" cellspacing="1" summary="add">
+ <tr><td>&nbsp;</td></tr>
<tr>
- <td colspan="2"><center><b><font color="white"><?=gettext("Add new gateway:"); ?></b></center></td>
+ <td colspan="2" align="center"><b><font color="white"><?=gettext("Add new gateway:"); ?></font></b></td>
</tr>
- <tr><td>&nbsp;</td>
+ <tr><td>&nbsp;</td></tr>
<tr>
- <td width="45%" align="right"><font color="white"><?=gettext("Default gateway:"); ?></td><td><input type="checkbox" id="defaultgw" name="defaultgw"></td>
+ <td width="45%" align="right"><font color="white"><?=gettext("Default gateway:"); ?></font></td><td><input type="checkbox" id="defaultgw" name="defaultgw" /></td>
</tr>
<tr>
- <td width="45%" align="right"><font color="white"><?=gettext("Interface:"); ?></td>
+ <td width="45%" align="right"><font color="white"><?=gettext("Interface:"); ?></font></td>
<td><select name="addinterfacegw" id="addinterfacegw">
<?php $gwifs = get_configured_interface_with_descr();
foreach($gwifs as $fif => $dif)
@@ -270,36 +296,33 @@ include("head.inc");
</select></td>
</tr>
<tr>
- <td align="right"><font color="white"><?=gettext("Gateway Name:"); ?></td><td><input id="name" name="name" value="GW"></td>
+ <td align="right"><font color="white"><?=gettext("Gateway Name:"); ?></font></td><td><input id="name" name="name" value="GW" /></td>
</tr>
<tr>
- <td align="right"><font color="white"><?=gettext("Gateway IP:"); ?></td><td><input id="gatewayip" name="gatewayip"></td>
+ <td align="right"><font color="white"><?=gettext("Gateway IP:"); ?></font></td><td><input id="gatewayip" name="gatewayip" /></td>
</tr>
<tr>
- <td align="right"><font color="white"><?=gettext("Description:"); ?></td><td><input id="gatewaydescr" name="gatewaydescr"></td>
+ <td align="right"><font color="white"><?=gettext("Description:"); ?></font></td><td><input id="gatewaydescr" name="gatewaydescr" /></td>
</tr>
- <tr><td>&nbsp;</td>
+ <tr><td>&nbsp;</td></tr>
<tr>
- <td colspan="2">
- <center>
+ <td colspan="2" align="center">
<div id='savebuttondiv'>
<input type="hidden" name="addrtype" id="addrtype" value="IPv4" />
- <input id="gwsave" type="Button" value="<?=gettext("Save Gateway"); ?>" onClick='hide_add_gatewaysave();'>
- <input id="gwcancel" type="Button" value="<?=gettext("Cancel"); ?>" onClick='hide_add_gateway();'>
+ <input id="gwsave" type="button" value="<?=gettext("Save Gateway"); ?>" onclick='hide_add_gatewaysave();' />
+ <input id="gwcancel" type="button" value="<?=gettext("Cancel"); ?>" onclick='hide_add_gateway();' />
</div>
- </center>
</td>
</tr>
- <tr><td>&nbsp;</td>
+ <tr><td>&nbsp;</td></tr>
</table>
</td></tr></table>
- <p/>
</div>
- </tr>
+ </td></tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Disabled");?></td>
<td width="78%" class="vtable">
- <input name="disabled" type="checkbox" id="disabled" value="yes" <?php if ($pconfig['disabled']) echo "checked"; ?>>
+ <input name="disabled" type="checkbox" id="disabled" value="yes" <?php if ($pconfig['disabled']) echo "checked=\"checked\""; ?> />
<strong><?=gettext("Disable this static route");?></strong><br />
<span class="vexpl"><?=gettext("Set this option to disable this static route without removing it from the list.");?></span>
</td>
@@ -307,21 +330,22 @@ include("head.inc");
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Description"); ?></td>
<td width="78%" class="vtable">
- <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>">
- <br> <span class="vexpl"><?=gettext("You may enter a description here for your reference (not parsed)."); ?></span></td>
+ <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>" />
+ <br/><span class="vexpl"><?=gettext("You may enter a description here for your reference (not parsed)."); ?></span></td>
</tr>
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
- <input id="save" name="Submit" type="submit" class="formbtn" value="<?=gettext("Save");?>"> <input id="cancel" type="button" value="<?=gettext("Cancel"); ?>" class="formbtn" onclick="history.back()">
+ <input id="save" name="Submit" type="submit" class="formbtn" value="<?=gettext("Save");?>" /> <input id="cancel" type="button" value="<?=gettext("Cancel"); ?>" class="formbtn" onclick="history.back()" />
<?php if (isset($id) && $a_routes[$id]): ?>
- <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>">
+ <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>" />
<?php endif; ?>
</td>
</tr>
</table>
</form>
<script type="text/javascript">
+//<![CDATA[
var gatewayip;
var name;
function show_add_gateway() {
@@ -372,7 +396,7 @@ include("head.inc");
optn.value = value;
selectbox.append(optn);
selectbox.prop('selectedIndex',selectbox.children('option').length-1);
- jQuery('#notebox').html("<p/><strong><?=gettext("NOTE:");?></strong> <?php printf(gettext("You can manage Gateways %shere%s."), "<a target='_new' href='system_gateways.php'>", "</a>");?> </strong>");
+ jQuery('#notebox').html("<p><strong><?=gettext("NOTE:");?><\/strong> <?php printf(gettext("You can manage Gateways %shere%s."), "<a target='_blank' href='system_gateways.php'>", "<\/a>");?> <\/strong><\/p>");
}
function report_failure() {
alert("<?=gettext("Sorry, we could not create your gateway at this time."); ?>");
@@ -391,7 +415,7 @@ include("head.inc");
}
var addressarray = <?= json_encode(get_alias_list(array("host", "network"))) ?>;
var oTextbox1 = new AutoSuggestControl(document.getElementById("network"), new StateSuggestions(addressarray));
-
+//]]>
</script>
<?php include("fend.inc"); ?>
</body>
diff --git a/usr/local/www/system_usermanager.php b/usr/local/www/system_usermanager.php
index 62503ee..786e2f8 100644
--- a/usr/local/www/system_usermanager.php
+++ b/usr/local/www/system_usermanager.php
@@ -353,9 +353,9 @@ include("head.inc");
//Script featured on JavaScript Kit (http://www.javascriptkit.com)
//For this script, visit http://www.javascriptkit.com
// -->
-<script language="javascript" type="text/javascript" src="javascript/datetimepicker.js"></script>
-<script language="JavaScript">
-<!--
+<script type="text/javascript" src="javascript/datetimepicker.js"></script>
+<script type="text/javascript">
+//<![CDATA[
function setall_selected(id) {
selbox = document.getElementById(id);
@@ -422,7 +422,7 @@ function sshkeyClicked(obj) {
document.getElementById("sshkeychck").style.display="";
}
}
-//-->
+//]]>
</script>
<?php
if ($input_errors)
@@ -430,7 +430,7 @@ function sshkeyClicked(obj) {
if ($savemsg)
print_info_box($savemsg);
?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="user manager">
<tr>
<td>
<?php
@@ -450,29 +450,29 @@ function sshkeyClicked(obj) {
<?php if ($_GET['act'] == "new" || $_GET['act'] == "edit" || $input_errors): ?>
<form action="system_usermanager.php" method="post" name="iform" id="iform" onsubmit="presubmit()">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<?php
$ro = "";
if ($pconfig['utype'] == "system")
- $ro = "readonly = \"readonly\"";
+ $ro = "readonly=\"readonly\"";
?>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Defined by");?></td>
<td width="78%" class="vtable">
<strong><?=strtoupper(htmlspecialchars($pconfig['utype']));?></strong>
- <input name="utype" type="hidden" value="<?=htmlspecialchars($pconfig['utype'])?>"/>
+ <input name="utype" type="hidden" value="<?=htmlspecialchars($pconfig['utype'])?>" />
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Disabled");?></td>
<td width="78%" class="vtable">
- <input name="disabled" type="checkbox" id="disabled" <?php if($pconfig['disabled']) echo "CHECKED"; ?>>
+ <input name="disabled" type="checkbox" id="disabled" <?php if($pconfig['disabled']) echo "checked=\"checked\""; ?> />
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Username");?></td>
<td width="78%" class="vtable">
- <input name="usernamefld" type="text" class="formfld user" id="usernamefld" size="20" maxlength="16" value="<?=htmlspecialchars($pconfig['usernamefld']);?>" <?=$ro;?>/>
+ <input name="usernamefld" type="text" class="formfld user" id="usernamefld" size="20" maxlength="16" value="<?=htmlspecialchars($pconfig['usernamefld']);?>" <?=$ro;?> />
<input name="oldusername" type="hidden" id="oldusername" value="<?=htmlspecialchars($pconfig['usernamefld']);?>" />
</td>
</tr>
@@ -490,7 +490,7 @@ function sshkeyClicked(obj) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Full name");?></td>
<td width="78%" class="vtable">
- <input name="descr" type="text" class="formfld unknown" id="descr" size="20" value="<?=htmlspecialchars($pconfig['descr']);?>" <?=$ro;?>/>
+ <input name="descr" type="text" class="formfld unknown" id="descr" size="20" value="<?=htmlspecialchars($pconfig['descr']);?>" <?=$ro;?> />
<br/>
<?=gettext("User's full name, for your own information only");?>
</td>
@@ -498,22 +498,22 @@ function sshkeyClicked(obj) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Expiration date"); ?></td>
<td width="78%" class="vtable">
- <input name="expires" type="text" class="formfld unknown" id="expires" size="10" value="<?=htmlspecialchars($pconfig['expires']);?>">
+ <input name="expires" type="text" class="formfld unknown" id="expires" size="10" value="<?=htmlspecialchars($pconfig['expires']);?>" />
<a href="javascript:NewCal('expires','mmddyyyy')">
- <img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_cal.gif" width="16" height="16" border="0" alt="<?=gettext("Pick a date");?>">
+ <img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_cal.gif" width="16" height="16" border="0" alt="<?=gettext("Pick a date");?>" />
</a>
- <br>
+ <br/>
<span class="vexpl"><?=gettext("Leave blank if the account shouldn't expire, otherwise enter the expiration date in the following format: mm/dd/yyyy"); ?></span></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Group Memberships");?></td>
<td width="78%" class="vtable" align="center">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="group membership">
<tr>
<td align="center" width="50%">
<strong><?=gettext("Not Member Of"); ?></strong><br/>
<br/>
- <select size="10" style="width: 75%" name="notgroups[]" class="formselect" id="notgroups" onChange="clear_selected('groups')" multiple>
+ <select size="10" style="width: 75%" name="notgroups[]" class="formselect" id="notgroups" onchange="clear_selected('groups')" multiple="multiple">
<?php
foreach ($config['system']['group'] as $group):
if ($group['gid'] == 1998) /* all users group */
@@ -541,7 +541,7 @@ function sshkeyClicked(obj) {
<td align="center" width="50%">
<strong><?=gettext("Member Of"); ?></strong><br/>
<br/>
- <select size="10" style="width: 75%" name="groups[]" class="formselect" id="groups" onChange="clear_selected('nogroups')" multiple>
+ <select size="10" style="width: 75%" name="groups[]" class="formselect" id="groups" onchange="clear_selected('nogroups')" multiple="multiple">
<?php
if (is_array($pconfig['groups'])) {
foreach ($config['system']['group'] as $group):
@@ -569,7 +569,7 @@ function sshkeyClicked(obj) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Effective Privileges");?></td>
<td width="78%" class="vtable">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="privileges">
<tr>
<td width="20%" class="listhdrr"><?=gettext("Inherited From");?></td>
<td width="30%" class="listhdrr"><?=gettext("Name");?></td>
@@ -594,10 +594,10 @@ function sshkeyClicked(obj) {
<td class="listbg">
<?=htmlspecialchars($priv['descr']);?>
</td>
- <td valign="middle" nowrap class="list">
+ <td valign="middle" class="list nowrap">
<?php if (!$group): ?>
- <a href="system_usermanager.php?act=delpriv&id=<?=$id?>&privid=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this privilege?");?>')">
- <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" alt="" />
+ <a href="system_usermanager.php?act=delpriv&amp;id=<?=$id?>&privid=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this privilege?");?>')">
+ <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" alt="delete" />
</a>
<?php endif; ?>
</td>
@@ -613,7 +613,7 @@ function sshkeyClicked(obj) {
<td class="list" colspan="3"></td>
<td class="list">
<a href="system_usermanager_addprivs.php?userid=<?=$id?>">
- <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="" />
+ <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="add" />
</a>
</td>
</tr>
@@ -623,7 +623,7 @@ function sshkeyClicked(obj) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("User Certificates");?></td>
<td width="78%" class="vtable">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="certificates">
<tr>
<td width="45%" class="listhdrr"><?=gettext("Name");?></td>
<td width="45%" class="listhdrr"><?=gettext("CA");?></td>
@@ -648,14 +648,14 @@ function sshkeyClicked(obj) {
<td class="listr">
<?=htmlspecialchars($ca['descr']);?>
</td>
- <td valign="middle" nowrap class="list">
- <a href="system_usermanager.php?act=expckey&id=<?=$id;?>&certid=<?=$i;?>">
+ <td valign="middle" class="list nowrap">
+ <a href="system_usermanager.php?act=expckey&id=<?=$id;?>&amp;certid=<?=$i;?>">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_down.gif" title="<?=gettext("export private key"); ?>" alt="<?=gettext("export private key"); ?>" width="17" height="17" border="0" />
</a>
- <a href="system_usermanager.php?act=expcert&id=<?=$id;?>&certid=<?=$i;?>">
+ <a href="system_usermanager.php?act=expcert&id=<?=$id;?>&amp;certid=<?=$i;?>">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_down.gif" title="<?=gettext("export cert"); ?>" alt="<?=gettext("export cert"); ?>" width="17" height="17" border="0" />
</a>
- <a href="system_usermanager.php?act=delcert&id=<?=$id?>&certid=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to remove this certificate association?") .'\n'. gettext("(Certificate will not be deleted)");?>')">
+ <a href="system_usermanager.php?act=delcert&id=<?=$id?>&amp;certid=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to remove this certificate association?") .'\n'. gettext("(Certificate will not be deleted)");?>')">
<img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" alt="<?=gettext("delete cert");?>" />
</a>
</td>
@@ -668,8 +668,8 @@ function sshkeyClicked(obj) {
<tr>
<td class="list" colspan="2"></td>
<td class="list">
- <a href="system_certmanager.php?act=new&userid=<?=$id?>">
- <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="" />
+ <a href="system_certmanager.php?act=new&amp;userid=<?=$id?>">
+ <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="add" />
</a>
</td>
</tr>
@@ -686,10 +686,10 @@ function sshkeyClicked(obj) {
}
?>
- <tr id="usercertchck" name="usercertchck" >
+ <tr id="usercertchck">
<td width="22%" valign="top" class="vncell"><?=gettext("Certificate");?></td>
<td width="78%" class="vtable">
- <input type="checkbox" onClick="javascript:usercertClicked(this)"> <?=gettext("Click to create a user certificate."); ?>
+ <input type="checkbox" onclick="javascript:usercertClicked(this)" /> <?=gettext("Click to create a user certificate."); ?>
</td>
</tr>
@@ -698,17 +698,17 @@ function sshkeyClicked(obj) {
<tr id="usercert" name="usercert" style="display:none">
<td width="22%" valign="top" class="vncell"><?=gettext("Certificate");?></td>
<td width="78%" class="vtable">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="certificate">
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Descriptive name");?></td>
<td width="78%" class="vtable">
- <input name="name" type="text" class="formfld unknown" id="name" size="20" value="<?=htmlspecialchars($pconfig['name']);?>"/>
+ <input name="name" type="text" class="formfld unknown" id="name" size="20" value="<?=htmlspecialchars($pconfig['name']);?>" />
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Certificate authority");?></td>
<td width="78%" class="vtable">
- <select name='caref' id='caref' class="formselect" onChange='internalca_change()'>
+ <select name='caref' id='caref' class="formselect" onchange='internalca_change()'>
<?php
foreach( $config['ca'] as $ca):
if (!$ca['prv'])
@@ -736,7 +736,7 @@ function sshkeyClicked(obj) {
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Lifetime");?></td>
<td width="78%" class="vtable">
- <input name="lifetime" type="text" class="formfld unknown" id="lifetime" size="5" value="<?=htmlspecialchars($pconfig['lifetime']);?>"/>days
+ <input name="lifetime" type="text" class="formfld unknown" id="lifetime" size="5" value="<?=htmlspecialchars($pconfig['lifetime']);?>" />days
</td>
</tr>
</table>
@@ -746,13 +746,13 @@ function sshkeyClicked(obj) {
<?php endif; endif; ?>
<?php endif; ?>
- <tr id="sshkeychck" name="sshkeychck" >
+ <tr id="sshkeychck">
<td width="22%" valign="top" class="vncell"><?=gettext("Authorized keys");?></td>
<td width="78%" class="vtable">
- <input type="checkbox" onClick="javascript:sshkeyClicked(this)"> <?=gettext("Click to paste an authorized key."); ?>
+ <input type="checkbox" onclick="javascript:sshkeyClicked(this)" /> <?=gettext("Click to paste an authorized key."); ?>
</td>
</tr>
- <tr id="sshkey" name="sshkey" style="display:none">
+ <tr id="sshkey" style="display:none">
<td width="22%" valign="top" class="vncell"><?=gettext("Authorized keys");?></td>
<td width="78%" class="vtable">
<textarea name="authorizedkeys" cols="65" rows="7" id="authorizedkeys" class="formfld_cert" wrap="off"><?=htmlspecialchars($pconfig['authorizedkeys']);?></textarea>
@@ -760,10 +760,10 @@ function sshkeyClicked(obj) {
<?=gettext("Paste an authorized keys file here.");?>
</td>
</tr>
- <tr id="ipsecpskrow" name="ipsecpskrow">
+ <tr id="ipsecpskrow">
<td width="22%" valign="top" class="vncell"><?=gettext("IPsec Pre-Shared Key");?></td>
<td width="78%" class="vtable">
- <input name="ipsecpsk" type="text" class="formfld unknown" id="ipsecpsk" size="65" value="<?=htmlspecialchars($pconfig['ipsecpsk']);?>">
+ <input name="ipsecpsk" type="text" class="formfld unknown" id="ipsecpsk" size="65" value="<?=htmlspecialchars($pconfig['ipsecpsk']);?>" />
</td>
</tr>
<tr>
@@ -780,26 +780,49 @@ function sshkeyClicked(obj) {
<?php else: ?>
- <table class="sortable" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="sortable" width="100%" border="0" cellpadding="0" cellspacing="0" summary="">
<thead>
<tr>
<th width="25%" class="listhdrr"><?=gettext("Username"); ?></th>
<th width="25%" class="listhdrr"><?=gettext("Full name"); ?></th>
<th width="5%" class="listhdrr"><?=gettext("Disabled"); ?></th>
<th width="25%" class="listhdrr"><?=gettext("Groups"); ?></th>
- <th width="10%" class="list"></td>
+ <th width="10%" class="list"></th>
</tr>
</thead>
+ <tfoot>
+ <tr>
+ <td class="list" colspan="4"></td>
+ <td class="list">
+ <a href="system_usermanager.php?act=new">
+ <img src="/themes/<?= $g['theme'];?>/images/icons/icon_plus.gif" title="<?=gettext("add user"); ?>" alt="<?=gettext("add user"); ?>" width="17" height="17" border="0" />
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="4">
+ <p>
+ <?=gettext("Additional users can be added here. User permissions for accessing " .
+ "the webConfigurator can be assigned directly or inherited from group memberships. " .
+ "An icon that appears grey indicates that it is a system defined object. " .
+ "Some system object properties can be modified but they cannot be deleted."); ?>
+ <br/><br/>
+ <?=gettext("Accounts created here are also used for other parts of the system " .
+ "such as OpenVPN, IPsec, and Captive Portal.");?>
+ </p>
+ </td>
+ </tr>
+ </tfoot>
<tbody>
<?php
$i = 0;
foreach($a_user as $userent):
?>
- <tr ondblclick="document.location='system_usermanager.php?act=edit&id=<?=$i;?>'">
+ <tr ondblclick="document.location='system_usermanager.php?act=edit&amp;id=<?=$i;?>'">
<td class="listlr">
- <table border="0" cellpadding="0" cellspacing="0">
+ <table border="0" cellpadding="0" cellspacing="0" summary="icons">
<tr>
- <td align="left" valign="center">
+ <td align="left" valign="middle">
<?php
if($userent['scope'] != "user")
$usrimg = "/themes/{$g['theme']}/images/icons/icon_system-user-grey.png";
@@ -820,13 +843,13 @@ function sshkeyClicked(obj) {
<?=implode(",",local_user_get_groups($userent));?>
&nbsp;
</td>
- <td valign="middle" nowrap class="list">
- <a href="system_usermanager.php?act=edit&id=<?=$i;?>">
+ <td valign="middle" class="list nowrap">
+ <a href="system_usermanager.php?act=edit&amp;id=<?=$i;?>">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_e.gif" title="<?=gettext("edit user"); ?>" alt="<?=gettext("edit user"); ?>" width="17" height="17" border="0" />
</a>
<?php if($userent['scope'] != "system"): ?>
&nbsp;
- <a href="system_usermanager.php?act=deluser&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this User?");?>')">
+ <a href="system_usermanager.php?act=deluser&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this User?");?>')">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_x.gif" title="<?=gettext("delete user"); ?>" alt="<?=gettext("delete user"); ?>" width="17" height="17" border="0" />
</a>
<?php endif; ?>
@@ -837,29 +860,6 @@ function sshkeyClicked(obj) {
endforeach;
?>
</tbody>
- <tfoot>
- <tr>
- <td class="list" colspan="4"></td>
- <td class="list">
- <a href="system_usermanager.php?act=new">
- <img src="/themes/<?= $g['theme'];?>/images/icons/icon_plus.gif" title="<?=gettext("add user"); ?>" alt="<?=gettext("add user"); ?>" width="17" height="17" border="0" />
- </a>
- </td>
- </tr>
- <tr>
- <td colspan="4">
- <p>
- <?=gettext("Additional users can be added here. User permissions for accessing " .
- "the webConfigurator can be assigned directly or inherited from group memberships. " .
- "An icon that appears grey indicates that it is a system defined object. " .
- "Some system object properties can be modified but they cannot be deleted."); ?>
- <br/><br/>
- <?=gettext("Accounts created here are also used for other parts of the system " .
- "such as OpenVPN, IPsec, and Captive Portal.");?>
- </p>
- </td>
- </tr>
- </tfoot>
</table>
<?php endif; ?>
@@ -870,4 +870,4 @@ function sshkeyClicked(obj) {
</table>
<?php include("fend.inc");?>
</body>
-</html>
+</html> \ No newline at end of file
diff --git a/usr/local/www/system_usermanager_addprivs.php b/usr/local/www/system_usermanager_addprivs.php
index 29f9bb3..5946db8 100644
--- a/usr/local/www/system_usermanager_addprivs.php
+++ b/usr/local/www/system_usermanager_addprivs.php
@@ -125,7 +125,7 @@ include("head.inc");
<body link="#0000CC" vlink="#0000CC" alink="#0000CC" onload="<?= $jsevents["body"]["onload"] ?>">
<?php include("fbegin.inc"); ?>
<script type="text/javascript">
-<!--
+//<![CDATA[
<?php
@@ -151,7 +151,7 @@ function update_description() {
document.getElementById("pdesc").innerHTML = descs[index];
}
-//-->
+//]]>
</script>
<?php
if ($input_errors)
@@ -159,7 +159,7 @@ function update_description() {
if ($savemsg)
print_info_box($savemsg);
?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="user manager add priveleges">
<tr>
<td>
<?php
@@ -176,11 +176,11 @@ function update_description() {
<td id="mainarea">
<div class="tabcont">
<form action="system_usermanager_addprivs.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("System Privileges");?></td>
<td width="78%" class="vtable">
- <select name="sysprivs[]" id="sysprivs" class="formselect" onchange="update_description();" multiple size="35">
+ <select name="sysprivs[]" id="sysprivs" class="formselect" onchange="update_description();" multiple="multiple" size="35">
<?php
foreach($priv_list as $pname => $pdata):
if (in_array($pname, $a_user['priv']))
diff --git a/usr/local/www/system_usermanager_passwordmg.php b/usr/local/www/system_usermanager_passwordmg.php
index 0d64599..55f8150 100644
--- a/usr/local/www/system_usermanager_passwordmg.php
+++ b/usr/local/www/system_usermanager_passwordmg.php
@@ -64,12 +64,17 @@ if (isset($_POST['save'])) {
}
}
+if (!session_id())
+ session_start();
+
/* determine if user is not local to system */
$islocal = false;
foreach($config['system']['user'] as $user)
if($user['name'] == $_SESSION['Username'])
$islocal = true;
+session_commit();
+
include("head.inc");
?>
@@ -94,7 +99,7 @@ if ($islocal == false) {
<div id="mainarea">
<div class="tabcont">
<form action="system_usermanager_passwordmg.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
<tr>
<td colspan="2" valign="top" class="listtopic"><?=$HTTP_SERVER_VARS['AUTH_USER']?>'s <?=gettext("Password"); ?></td>
</tr>
diff --git a/usr/local/www/system_usermanager_settings.php b/usr/local/www/system_usermanager_settings.php
index f8269ad..33b6b82 100755
--- a/usr/local/www/system_usermanager_settings.php
+++ b/usr/local/www/system_usermanager_settings.php
@@ -36,8 +36,8 @@
##|+PRIV
##|*IDENT=page-system-usermanager-settings
-##|*NAME=System: User manager: settings page
-##|*DESCR=Allow access to the 'System: User manager: settings' page.
+##|*NAME=System: User Manager: settings page
+##|*DESCR=Allow access to the 'System: User Manager: settings' page.
##|*MATCH=system_usermanager_settings.php*
##|-PRIV
@@ -97,15 +97,17 @@ include("head.inc");
<?php
if($save_and_test) {
- echo "<script language='javascript'>\n";
+ echo "<script type=\"text/javascript\">\n";
+ echo "//<![CDATA[\n";
echo "myRef = window.open('system_usermanager_settings_test.php?authserver={$pconfig['authmode']}','mywin', ";
echo "'left=20,top=20,width=700,height=550,toolbar=1,resizable=0');\n";
echo "if (myRef==null || typeof(myRef)=='undefined') alert('" . gettext("Popup blocker detected. Action aborted.") ."');\n";
+ echo "//]]>\n";
echo "</script>\n";
}
?>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="user manager settings">
<tr>
<td class="tabnavtbl">
<?php
@@ -122,11 +124,12 @@ if(!$pconfig['backend'])
?>
</td>
+ </tr>
<tr>
<td>
<div id="mainarea">
<form id="iform" name="iform" action="system_usermanager_settings.php" method="post">
- <table class="tabcont" width="100%" border="0" cellspacing="0" cellpadding="6">
+ <table class="tabcont" width="100%" border="0" cellspacing="0" cellpadding="6" summary="main area">
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Session Timeout"); ?></td>
<td width="78%" class="vtable">
@@ -145,9 +148,9 @@ if(!$pconfig['backend'])
foreach ($auth_servers as $auth_server):
$selected = "";
if ($auth_server['name'] == $pconfig['authmode'])
- $selected = "selected";
+ $selected = "selected=\"selected\"";
if (!isset($pconfig['authmode']) && $auth_server['name'] == "Local Database")
- $selected = "selected";
+ $selected = "selected=\"selected\"";
?>
<option value="<?=$auth_server['name'];?>" <?=$selected;?>><?=$auth_server['name'];?></option>
diff --git a/usr/local/www/themes/_corporate/all.css b/usr/local/www/themes/_corporate/all.css
index 97cec9d..8589e8a 100644
--- a/usr/local/www/themes/_corporate/all.css
+++ b/usr/local/www/themes/_corporate/all.css
@@ -9,6 +9,14 @@ html, body, td, th, input, select {
font-size: 0.9em;
}
+.nowrap { white-space: nowrap; }
+
+.addgatewaybox {
+ background-color: #990000;
+ border-style: none none none none;
+ width: 225px;
+}
+
div.GraphLink {
position: relative;
}
diff --git a/usr/local/www/themes/_corporate/bottom-loader.js b/usr/local/www/themes/_corporate/bottom-loader.js
index 238e0b2..a21f775 100644
--- a/usr/local/www/themes/_corporate/bottom-loader.js
+++ b/usr/local/www/themes/_corporate/bottom-loader.js
@@ -1,4 +1,4 @@
-<!--
+//<![CDATA[
NiftyCheck();
Rounded("div#niftyMenu","top bottom","#FFFFFF","#000000","smooth");
@@ -7,4 +7,4 @@
Rounded("tr#fend","bl br tl tr","#FFF","#990000","smooth");
Rounded("div#topbox","all","#FFF","#990000","smooth");
-//-->
+//]]>
diff --git a/usr/local/www/themes/_corporate/loader.js b/usr/local/www/themes/_corporate/loader.js
index 80fc869..f94be35 100644
--- a/usr/local/www/themes/_corporate/loader.js
+++ b/usr/local/www/themes/_corporate/loader.js
@@ -1,4 +1,4 @@
-<!--
+//<![CDATA[
var browser = '';
var version = '';
var entrance = '';
@@ -26,4 +26,4 @@ if (version < 7) {
document.write('<script type="text/javascript" src="/themes/corporate/javascript/niftyjsCode.js"></scr' + 'ipt>');
-// -->
+//]]>
diff --git a/usr/local/www/themes/code-red/all.css b/usr/local/www/themes/code-red/all.css
index cd8e435..0ec42ed 100755
--- a/usr/local/www/themes/code-red/all.css
+++ b/usr/local/www/themes/code-red/all.css
@@ -5,6 +5,14 @@ html, body, td, th, input, select {
}
+.nowrap { white-space: nowrap; }
+
+.addgatewaybox {
+ background-color: #990000;
+ border-style: none none none none;
+ width: 225px;
+}
+
.infobox {
width:100%;
}
diff --git a/usr/local/www/themes/code-red/bottom-loader.js b/usr/local/www/themes/code-red/bottom-loader.js
index 238e0b2..a21f775 100755
--- a/usr/local/www/themes/code-red/bottom-loader.js
+++ b/usr/local/www/themes/code-red/bottom-loader.js
@@ -1,4 +1,4 @@
-<!--
+//<![CDATA[
NiftyCheck();
Rounded("div#niftyMenu","top bottom","#FFFFFF","#000000","smooth");
@@ -7,4 +7,4 @@
Rounded("tr#fend","bl br tl tr","#FFF","#990000","smooth");
Rounded("div#topbox","all","#FFF","#990000","smooth");
-//-->
+//]]>
diff --git a/usr/local/www/themes/code-red/loader.js b/usr/local/www/themes/code-red/loader.js
index 5eb41e1..bf4b7f4 100755
--- a/usr/local/www/themes/code-red/loader.js
+++ b/usr/local/www/themes/code-red/loader.js
@@ -1,4 +1,4 @@
-<!--
+//<![CDATA[
var browser = '';
var version = '';
var entrance = '';
@@ -21,9 +21,9 @@ if (version == '') {
}
if (browser == 'IE' && version < 7) {
- document.write('<script type="text/javascript" src="/themes/nervecenter/javascript/ie7/ie7-standard-p.js"></scr'+'ipt>');
+ document.write('<script type="text/javascript" src="/themes/code-red/javascript/ie7/ie7-standard-p.js"></scr'+'ipt>');
}
-document.write('<script type="text/javascript" src="/themes/nervecenter/javascript/niftyjsCode.js"></scr'+'ipt>');
+document.write('<script type="text/javascript" src="/themes/code-red/javascript/niftyjsCode.js"></scr'+'ipt>');
-// -->
+//]]>
diff --git a/usr/local/www/themes/code-red/wizard.css b/usr/local/www/themes/code-red/wizard.css
index c0979a8..c0a7546 100755
--- a/usr/local/www/themes/code-red/wizard.css
+++ b/usr/local/www/themes/code-red/wizard.css
@@ -5,6 +5,8 @@ html, body, td, th, input, select {
}
+.nowrap { white-space: nowrap; }
+
/* please adjust the bgcolor to be used together with niftycorners! */
.rtop, .artop {
background-color: #5f0406;
diff --git a/usr/local/www/themes/metallic/all.css b/usr/local/www/themes/metallic/all.css
index 056ae02..a688bf8 100644
--- a/usr/local/www/themes/metallic/all.css
+++ b/usr/local/www/themes/metallic/all.css
@@ -4,10 +4,18 @@ html, body, td, th, input, select {
font-size: 0.9em;
}
+.nowrap { white-space: nowrap; }
+
.infobox {
width:100%;
}
+.addgatewaybox {
+ background-color: #990000;
+ border-style: none none none none;
+ width: 225px;
+}
+
.infoboxsave {
padding-right: 10px;
}
diff --git a/usr/local/www/themes/metallic/bottom-loader.js b/usr/local/www/themes/metallic/bottom-loader.js
index 238e0b2..a21f775 100644
--- a/usr/local/www/themes/metallic/bottom-loader.js
+++ b/usr/local/www/themes/metallic/bottom-loader.js
@@ -1,4 +1,4 @@
-<!--
+//<![CDATA[
NiftyCheck();
Rounded("div#niftyMenu","top bottom","#FFFFFF","#000000","smooth");
@@ -7,4 +7,4 @@
Rounded("tr#fend","bl br tl tr","#FFF","#990000","smooth");
Rounded("div#topbox","all","#FFF","#990000","smooth");
-//-->
+//]]>
diff --git a/usr/local/www/themes/metallic/loader.js b/usr/local/www/themes/metallic/loader.js
index 57a5047..f6d44e7 100644
--- a/usr/local/www/themes/metallic/loader.js
+++ b/usr/local/www/themes/metallic/loader.js
@@ -1,4 +1,4 @@
-<!--
+//<![CDATA[
var browser = '';
var version = '';
var entrance = '';
@@ -26,4 +26,4 @@ if (browser == 'IE' && version < 7) {
document.write('<script type="text/javascript" src="/themes/metallic/javascript/niftyjsCode.js"></scr'+'ipt>');
-// --> \ No newline at end of file
+//]]>
diff --git a/usr/local/www/themes/nervecenter/all.css b/usr/local/www/themes/nervecenter/all.css
index 7a6a75b..c56b7f7 100644
--- a/usr/local/www/themes/nervecenter/all.css
+++ b/usr/local/www/themes/nervecenter/all.css
@@ -5,10 +5,18 @@ html, body, td, th, input, select {
}
+.nowrap { white-space: nowrap; }
+
.infobox {
width:100%;
}
+.addgatewaybox {
+ background-color: #990000;
+ border-style: none none none none;
+ width: 225px;
+}
+
.infoboxsave {
padding-right: 10px;
}
diff --git a/usr/local/www/themes/nervecenter/bottom-loader.js b/usr/local/www/themes/nervecenter/bottom-loader.js
index 238e0b2..a21f775 100644
--- a/usr/local/www/themes/nervecenter/bottom-loader.js
+++ b/usr/local/www/themes/nervecenter/bottom-loader.js
@@ -1,4 +1,4 @@
-<!--
+//<![CDATA[
NiftyCheck();
Rounded("div#niftyMenu","top bottom","#FFFFFF","#000000","smooth");
@@ -7,4 +7,4 @@
Rounded("tr#fend","bl br tl tr","#FFF","#990000","smooth");
Rounded("div#topbox","all","#FFF","#990000","smooth");
-//-->
+//]]>
diff --git a/usr/local/www/themes/nervecenter/loader.js b/usr/local/www/themes/nervecenter/loader.js
index 5eb41e1..2f2624c 100644
--- a/usr/local/www/themes/nervecenter/loader.js
+++ b/usr/local/www/themes/nervecenter/loader.js
@@ -1,4 +1,4 @@
-<!--
+//<![CDATA[
var browser = '';
var version = '';
var entrance = '';
@@ -26,4 +26,4 @@ if (browser == 'IE' && version < 7) {
document.write('<script type="text/javascript" src="/themes/nervecenter/javascript/niftyjsCode.js"></scr'+'ipt>');
-// -->
+//]]>
diff --git a/usr/local/www/themes/nervecenter/wizard.css b/usr/local/www/themes/nervecenter/wizard.css
index 4e0d048..a2d31d5 100644
--- a/usr/local/www/themes/nervecenter/wizard.css
+++ b/usr/local/www/themes/nervecenter/wizard.css
@@ -5,6 +5,8 @@ html, body, td, th, input, select {
}
+.nowrap { white-space: nowrap; }
+
/* please adjust the bgcolor to be used together with niftycorners! */
.rtop, .artop {
background-color: #999999;
diff --git a/usr/local/www/themes/pfsense-dropdown/all.css b/usr/local/www/themes/pfsense-dropdown/all.css
index a4811fc..1b65c6f 100644
--- a/usr/local/www/themes/pfsense-dropdown/all.css
+++ b/usr/local/www/themes/pfsense-dropdown/all.css
@@ -4,6 +4,14 @@ html, body, td, th, input, select {
font-size: 0.9em;
}
+.nowrap { white-space: nowrap; }
+
+.addgatewaybox {
+ background-color: #990000;
+ border-style: none none none none;
+ width: 225px;
+}
+
.infobox {
width:100%;
}
diff --git a/usr/local/www/themes/pfsense-dropdown/bottom-loader.js b/usr/local/www/themes/pfsense-dropdown/bottom-loader.js
index 66f021d..fad206e 100644
--- a/usr/local/www/themes/pfsense-dropdown/bottom-loader.js
+++ b/usr/local/www/themes/pfsense-dropdown/bottom-loader.js
@@ -1,4 +1,4 @@
-<!--
+//<![CDATA[
NiftyCheck();
Rounded("div#niftyMenu","top bottom","#FFFFFF","#000000","smooth");
@@ -8,4 +8,4 @@ Rounded("tr#fend","bl br tl tr","#FFF","#990000","smooth");
Rounded("div#topbox","all","#FFF","#990000","smooth");
Rounded("div#footer","bl br tl tr","#FFF","#990000","smooth");
-//-->
+//]]>
diff --git a/usr/local/www/themes/pfsense-dropdown/loader.js b/usr/local/www/themes/pfsense-dropdown/loader.js
index 2b34db2..6b771e1 100644
--- a/usr/local/www/themes/pfsense-dropdown/loader.js
+++ b/usr/local/www/themes/pfsense-dropdown/loader.js
@@ -1,4 +1,4 @@
-<!--
+//<![CDATA[
var browser = '';
var version = '';
var entrance = '';
@@ -26,4 +26,4 @@ if (browser == 'IE' && version < 7) {
document.write('<script type="text/javascript" src="/themes/pfsense-dropdown/javascript/niftyjsCode.js"></scr'+'ipt>');
-// --> \ No newline at end of file
+//]]>
diff --git a/usr/local/www/themes/pfsense/all.css b/usr/local/www/themes/pfsense/all.css
index 73b3324..3c76fcb 100644
--- a/usr/local/www/themes/pfsense/all.css
+++ b/usr/local/www/themes/pfsense/all.css
@@ -4,6 +4,14 @@ html, body, td, th, input, select {
font-size: 0.9em;
}
+.nowrap { white-space: nowrap; }
+
+.addgatewaybox {
+ background-color: #990000;
+ border-style: none none none none;
+ width: 225px;
+}
+
.infobox {
width:100%;
}
diff --git a/usr/local/www/themes/pfsense/bottom-loader.js b/usr/local/www/themes/pfsense/bottom-loader.js
index 836e8b0..8251766 100644
--- a/usr/local/www/themes/pfsense/bottom-loader.js
+++ b/usr/local/www/themes/pfsense/bottom-loader.js
@@ -1,4 +1,4 @@
-<!--
+//<![CDATA[
NiftyCheck();
Rounded("div#niftyMenu","top bottom","#FFFFFF","#000000","smooth");
@@ -9,4 +9,4 @@ Rounded("div#topbox","all","#FFF","#990000","smooth");
Rounded("div#navigation","top bottom","#FFFFFF","#000000","smooth");
Rounded("div#footer","bl br tl tr]","#FFF","#990000","smooth");
-//-->
+//]]>
diff --git a/usr/local/www/themes/pfsense/loader.js b/usr/local/www/themes/pfsense/loader.js
index cf0fad8..60da999 100644
--- a/usr/local/www/themes/pfsense/loader.js
+++ b/usr/local/www/themes/pfsense/loader.js
@@ -1,4 +1,4 @@
-<!--
+//<![CDATA[
var browser = '';
var version = '';
var entrance = '';
@@ -25,6 +25,6 @@ if (browser == 'IE' && version < 7) {
document.write('<script type="text/javascript" src="/themes/metallic/javascript/ie7/ie7-standard-p.js"></scr'+'ipt>');
}
-document.write('<script type="text/javascript" src="/themes/pfsense-dropdown/javascript/niftyjsCode.js"></scr'+'ipt>');
+document.write('<script type="text/javascript" src="/themes/pfsense/javascript/niftyjsCode.js"></scr'+'ipt>');
-// --> \ No newline at end of file
+//]]>
diff --git a/usr/local/www/themes/pfsense_ng/all.css b/usr/local/www/themes/pfsense_ng/all.css
index 3452c72..5a156f9 100644
--- a/usr/local/www/themes/pfsense_ng/all.css
+++ b/usr/local/www/themes/pfsense_ng/all.css
@@ -5,6 +5,14 @@ html, body, td, th, input, select {
}
+.nowrap { white-space: nowrap; }
+
+.addgatewaybox {
+ background-color: #990000;
+ border-style: none none none none;
+ width: 225px;
+}
+
.infobox {
width:100%;
}
@@ -1353,4 +1361,4 @@ table.sortable thead {
padding-left: 12px;
padding-top: 12px;
padding-bottom: 12px;
-} \ No newline at end of file
+}
diff --git a/usr/local/www/themes/pfsense_ng/bottom-loader.js b/usr/local/www/themes/pfsense_ng/bottom-loader.js
index 238e0b2..a21f775 100644
--- a/usr/local/www/themes/pfsense_ng/bottom-loader.js
+++ b/usr/local/www/themes/pfsense_ng/bottom-loader.js
@@ -1,4 +1,4 @@
-<!--
+//<![CDATA[
NiftyCheck();
Rounded("div#niftyMenu","top bottom","#FFFFFF","#000000","smooth");
@@ -7,4 +7,4 @@
Rounded("tr#fend","bl br tl tr","#FFF","#990000","smooth");
Rounded("div#topbox","all","#FFF","#990000","smooth");
-//-->
+//]]>
diff --git a/usr/local/www/themes/pfsense_ng/loader.js b/usr/local/www/themes/pfsense_ng/loader.js
index 3c46d3c..a028afe 100644
--- a/usr/local/www/themes/pfsense_ng/loader.js
+++ b/usr/local/www/themes/pfsense_ng/loader.js
@@ -1,4 +1,4 @@
-<!--
+//<![CDATA[
var browser = '';
var version = '';
var entrance = '';
@@ -21,10 +21,10 @@ if (version == '') {
}
if (browser == 'IE' && version < 7) {
- document.write('<script type="text/javascript" src="/themes/nervecenter/javascript/ie7/ie7-standard-p.js"></scr'+'ipt>');
+ document.write('<script type="text/javascript" src="/themes/pfsense_ng/javascript/ie7/ie7-standard-p.js"></scr'+'ipt>');
}
-document.write('<script type="text/javascript" src="/themes/nervecenter/javascript/niftyjsCode.js"></scr'+'ipt>');
+document.write('<script type="text/javascript" src="/themes/pfsense_ng/javascript/niftyjsCode.js"></scr'+'ipt>');
// jQuery function to define dropdown menu size
jQuery(document).ready(function () {
@@ -33,4 +33,4 @@ jQuery(document).ready(function () {
// Force the size dropdown menu
jQuery('#navigation ul li ul').css('max-height', hwindow);
});
-// -->
+//]]>
diff --git a/usr/local/www/themes/pfsense_ng/wizard.css b/usr/local/www/themes/pfsense_ng/wizard.css
index ad5b33d..f2c9f3e 100644
--- a/usr/local/www/themes/pfsense_ng/wizard.css
+++ b/usr/local/www/themes/pfsense_ng/wizard.css
@@ -5,6 +5,8 @@ html, body, td, th, input, select {
}
+.nowrap { white-space: nowrap; }
+
/* please adjust the bgcolor to be used together with niftycorners! */
.rtop, .artop {
background-color: #999999;
diff --git a/usr/local/www/themes/the_wall/all.css b/usr/local/www/themes/the_wall/all.css
index c96a99c..123bca5 100644
--- a/usr/local/www/themes/the_wall/all.css
+++ b/usr/local/www/themes/the_wall/all.css
@@ -5,6 +5,14 @@ html, body, td, th, input, select {
}
+.nowrap { white-space: nowrap; }
+
+.addgatewaybox {
+ background-color: #990000;
+ border-style: none none none none;
+ width: 225px;
+}
+
.infobox {
width:100%;
}
diff --git a/usr/local/www/themes/the_wall/bottom-loader.js b/usr/local/www/themes/the_wall/bottom-loader.js
index 238e0b2..a21f775 100644
--- a/usr/local/www/themes/the_wall/bottom-loader.js
+++ b/usr/local/www/themes/the_wall/bottom-loader.js
@@ -1,4 +1,4 @@
-<!--
+//<![CDATA[
NiftyCheck();
Rounded("div#niftyMenu","top bottom","#FFFFFF","#000000","smooth");
@@ -7,4 +7,4 @@
Rounded("tr#fend","bl br tl tr","#FFF","#990000","smooth");
Rounded("div#topbox","all","#FFF","#990000","smooth");
-//-->
+//]]>
diff --git a/usr/local/www/themes/the_wall/loader.js b/usr/local/www/themes/the_wall/loader.js
index d4137f6..0fd7d68 100644
--- a/usr/local/www/themes/the_wall/loader.js
+++ b/usr/local/www/themes/the_wall/loader.js
@@ -1,4 +1,4 @@
-<!--
+//<![CDATA[
var browser = '';
var version = '';
@@ -22,9 +22,9 @@ if (version == '') {
}
if (browser == 'IE' && version < 7) {
- document.write('<script type="text/javascript" src="/themes/nervecenter/javascript/ie7/ie7-standard-p.js"></scr'+'ipt>');
+ document.write('<script type="text/javascript" src="/themes/the_wall/javascript/ie7/ie7-standard-p.js"></scr'+'ipt>');
}
-document.write('<script type="text/javascript" src="/themes/nervecenter/javascript/niftyjsCode.js"></scr'+'ipt>');
+document.write('<script type="text/javascript" src="/themes/the_wall/javascript/niftyjsCode.js"></scr'+'ipt>');
-// -->
+//]]>
diff --git a/usr/local/www/themes/the_wall/wizard.css b/usr/local/www/themes/the_wall/wizard.css
index 4e0d048..a2d31d5 100644
--- a/usr/local/www/themes/the_wall/wizard.css
+++ b/usr/local/www/themes/the_wall/wizard.css
@@ -5,6 +5,8 @@ html, body, td, th, input, select {
}
+.nowrap { white-space: nowrap; }
+
/* please adjust the bgcolor to be used together with niftycorners! */
.rtop, .artop {
background-color: #999999;
diff --git a/usr/local/www/upload_progress.php b/usr/local/www/upload_progress.php
deleted file mode 100644
index 344ae67..0000000
--- a/usr/local/www/upload_progress.php
+++ /dev/null
@@ -1,168 +0,0 @@
-<?php
-/* $Id$ */
-/*
- upload_progress.php
- Copyright (C) 2008 Scott Ullrich <sullrich@gmail.com>
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* DISABLE_PHP_LINT_CHECKING */
-
-##|+PRIV
-##|*IDENT=page-upload_progress
-##|*NAME=System: Firmware: Manual Update page (progress bar)
-##|*DESCR=Allow access to the 'System: Firmware: Manual Update: Progress bar' page.
-##|*MATCH=upload_progress*
-##|-PRIV
-
-include("guiconfig.inc");
-
-// sanitize the ID value
-$id = $_SESSION['uploadid'];
-if (!$id) {
- echo gettext("Sorry, we could not find an uploadid code.");
- exit;
-}
-
-// retrieve the upload data from APC
-$info = uploadprogress_get_info($id);
-
-// false is returned if the data isn't found
-if (!$info) {
- echo <<<EOF
- <html>
- <meta http-equiv="Refresh" CONTENT="1; url=upload_progress.php?uploadid={$id}">
- <body>
- <?php printf(gettext("Could not locate progress %s. Trying again..."),$id);?>
- </body>
- </html>
-EOF;
- exit;
-}
-
-if ($info['bytes_uploaded'] >= $info['bytes_total']) {
- echo <<<EOF1
- <html>
- <body onLoad="window.close();">
- &nbsp;<p>
- &nbsp;<p>
- <center>
- <b>
- <?=gettext("UPLOAD completed!");?>
- </b>
- </center>
- </body>
- </html>
-EOF1;
- exit;
-}
-
-?>
-
-<html>
-<head>
- <meta http-equiv="Refresh" content="1; url=<?=$url?>">
- <title><?=gettext("Uploading Files"); ?>... <?=gettext("Please wait"); ?> ...</title>
- <style type='text/css'>
- td {font-size: 10pt }
- </style>
-</head>
-<body bgcolor="#FFFFFF">
- <table height="100%" width="100%" cellPadding="4" cellSpacing="4" style="border:1px solid #990000;">
- <tr>
- <td>
- <font face="arial"><b><center><?=gettext("Uploading file");?>...</b></center>
- <br>
- <table width="100%" height="15" colspacing="0" cellpadding="0" cellspacing="0" border="0" align="top" nowrap>
- <tr>
- <td width="5" height="15" background="./themes/<?= $g['theme']; ?>/images/misc/bar_left.gif" align="top">
- </td>
- <td>
- <table WIDTH="100%" height="15" colspacing="0" cellpadding="0" cellspacing="0" border="0" align="top" nowrap>
- <tr>
- <td background="./themes/<?= $g['theme']; ?>/images/misc/bar_gray.gif">
- <?php
- $meter = sprintf("%.2f", $info['bytes_uploaded'] / $info['bytes_total'] * 100);
- echo "<img src='./themes/{$g['theme']}/images/misc/bar_blue.gif' height='15' WIDTH='{$meter}%'>";
- ?>
- </td>
- </tr>
- </table>
- </td>
- <td width="5" height="15" background="./themes/<?= $g['theme']; ?>/images/misc/bar_right.gif" align="top">
- </td>
- </tr>
- </table>
- <br>
- <table width="100%">
- <tr>
- <td align="right">
- <font face="arial">
- <b>
- <?=gettext("Uploaded");?>:
- </td>
- <td>
- <font face="arial">
- <b>
- <?=$info['bytes_uploaded']?>
- </td>
- <td align="right">
- <font face="arial">
- <b>
- <?=gettext("File Size");?>:
- </td>
- <td>
- <font face="arial">
- <b>
- <?=$info['bytes_total']?>
- </td>
- </tr>
- <tr>
- <td align="right">
- <font face="arial">
- <b>
- <?=gettext("Completed");?>:
- </td>
- <td>
- <font face="arial">
- <b>
- <?=$info['bytes_total']-$info['bytes_uploaded']?>%
- </td>
- <td align="right">
- <font face="arial">
- <b>
- <?=gettext("Estimated");?>:
- </td>
- <td>
- <font face="arial">
- <b>
- <?=$info['est_sec']?>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
-</body>
-</html>
diff --git a/usr/local/www/vpn_ipsec.php b/usr/local/www/vpn_ipsec.php
index 55b601c..4f154b7 100755
--- a/usr/local/www/vpn_ipsec.php
+++ b/usr/local/www/vpn_ipsec.php
@@ -88,8 +88,13 @@ if ($_GET['act'] == "delph1")
/* remove all phase2 entries that match the ikeid */
$ikeid = $a_phase1[$_GET['p1index']]['ikeid'];
foreach ($a_phase2 as $p2index => $ph2tmp)
- if ($ph2tmp['ikeid'] == $ikeid)
+ if ($ph2tmp['ikeid'] == $ikeid) {
+ remove_tunnel_spd_policy($a_phase1[$_GET['p1index']],$a_phase2[$p2index]);
unset($a_phase2[$p2index]);
+ }
+
+ /* needs to guarantee that SPDs will be removed before phase 1 */
+ vpn_ipsec_refresh_policies();
/* remove the phase1 entry */
unset($a_phase1[$_GET['p1index']]);
@@ -104,7 +109,8 @@ if ($_GET['act'] == "delph1")
if ($_GET['act'] == "delph2")
{
- if ($a_phase2[$_GET['p2index']]) {
+ if ($a_phase1[$_GET['p1index']] && $a_phase2[$_GET['p2index']]) {
+ remove_tunnel_spd_policy($a_phase1[$_GET['p1index']],$a_phase2[$_GET['p2index']]);
/* remove the phase2 entry */
unset($a_phase2[$_GET['p2index']]);
vpn_ipsec_refresh_policies();
@@ -382,7 +388,7 @@ include("head.inc");
<a href="vpn_ipsec_phase2.php?p2index=<?=$j;?>">
<img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit phase2 entry"); ?>" width="17" height="17" border="0">
</a>
- <a href="vpn_ipsec.php?act=delph2&p2index=<?=$j;?>" onclick="return confirm('<?=gettext("Do you really want to delete this phase2 entry?"); ?>')">
+ <a href="vpn_ipsec.php?act=delph2&p1index=<?=$i;?>&p2index=<?=$j;?>" onclick="return confirm('<?=gettext("Do you really want to delete this phase2 entry?"); ?>')">
<img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" title="<?=gettext("delete phase2 entry"); ?>" width="17" height="17" border="0">
</a>
<a href="vpn_ipsec_phase2.php?dup=<?=$j;?>">
diff --git a/usr/local/www/vpn_ipsec_phase1.php b/usr/local/www/vpn_ipsec_phase1.php
index 3940378..90c2c34 100644
--- a/usr/local/www/vpn_ipsec_phase1.php
+++ b/usr/local/www/vpn_ipsec_phase1.php
@@ -93,7 +93,7 @@ if (isset($p1index) && $a_phase1[$p1index]) {
$pconfig['generate_policy'] = $a_phase1[$p1index]['generate_policy'];
$pconfig['proposal_check'] = $a_phase1[$p1index]['proposal_check'];
- if (($pconfig['authentication_method'] == "pre_shared_key") ||
+ if (($pconfig['authentication_method'] == "pre_shared_key") ||
($pconfig['authentication_method'] == "xauth_psk_server")) {
$pconfig['pskey'] = $a_phase1[$p1index]['pre-shared-key'];
} else {
@@ -112,7 +112,7 @@ if (isset($p1index) && $a_phase1[$p1index]) {
} else {
/* defaults */
$pconfig['interface'] = "wan";
- if($config['interfaces']['lan'])
+ if($config['interfaces']['lan'])
$pconfig['localnet'] = "lan";
$pconfig['mode'] = "aggressive";
$pconfig['protocol'] = "inet";
@@ -143,15 +143,15 @@ if ($_POST) {
$method = $pconfig['authentication_method'];
// Unset ca and cert if not required to avaoid storing in config
if ($method == "pre_shared_key" || $method == "xauth_psk_server"){
- unset($pconfig['caref']);
- unset($pconfig['certref']);
+ unset($pconfig['caref']);
+ unset($pconfig['certref']);
}
// Only require PSK here for normal PSK tunnels (not mobile) or xauth.
// For RSA methods, require the CA/Cert.
switch ($method) {
case "pre_shared_key":
- // If this is a mobile PSK tunnel the user PSKs go on
+ // If this is a mobile PSK tunnel the user PSKs go on
// the PSK tab, not here, so skip the check.
if ($pconfig['mobile'])
break;
@@ -176,8 +176,14 @@ if ($_POST) {
if (($pconfig['lifetime'] && !is_numeric($pconfig['lifetime'])))
$input_errors[] = gettext("The P1 lifetime must be an integer.");
- if (($pconfig['remotegw'] && !is_ipaddr($pconfig['remotegw']) && !is_domain($pconfig['remotegw'])))
- $input_errors[] = gettext("A valid remote gateway address or host name must be specified.");
+ if ($pconfig['remotegw']) {
+ if (!is_ipaddr($pconfig['remotegw']) && !is_domain($pconfig['remotegw']))
+ $input_errors[] = gettext("A valid remote gateway address or host name must be specified.");
+ elseif (is_ipaddrv4($pconfig['remotegw']) && ($pconfig['protocol'] != "inet"))
+ $input_errors[] = gettext("A valid remote gateway IPv4 address must be specified or you need to change protocol to IPv6");
+ elseif (is_ipaddrv6($pconfig['remotegw']) && ($pconfig['protocol'] != "inet6"))
+ $input_errors[] = gettext("A valid remote gateway IPv6 address must be specified or you need to change protocol to IPv4");
+ }
if (($pconfig['remotegw'] && is_ipaddr($pconfig['remotegw']) && !isset($pconfig['disabled']) )) {
$t = 0;
@@ -192,6 +198,21 @@ if ($_POST) {
}
}
+ if (is_array($a_phase2) && (count($a_phase2))) {
+ foreach ($a_phase2 as $phase2) {
+ if($phase2['ikeid'] == $pconfig['ikeid']) {
+ if (($pconfig['protocol'] == "inet") && ($phase2['mode'] == "tunnel6")) {
+ $input_errors[] = gettext("There is a Phase 2 using IPv6, you cannot use IPv4.");
+ break;
+ }
+ if (($pconfig['protocol'] == "inet6") && ($phase2['mode'] == "tunnel")) {
+ $input_errors[] = gettext("There is a Phase 2 using IPv4, you cannot use IPv6.");
+ break;
+ }
+ }
+ }
+ }
+
/* My identity */
if ($pconfig['myid_type'] == "myaddress")
@@ -435,29 +456,29 @@ function methodsel_change() {
function ealgosel_change(bits) {
switch (document.iform.ealgo.selectedIndex) {
<?php
- $i = 0;
- foreach ($p1_ealgos as $algo => $algodata) {
- if (is_array($algodata['keysel'])) {
- echo " case {$i}:\n";
- echo " document.iform.ealgo_keylen.style.visibility = 'visible';\n";
- echo " document.iform.ealgo_keylen.options.length = 0;\n";
-// echo " document.iform.ealgo_keylen.options[document.iform.ealgo_keylen.options.length] = new Option( 'auto', 'auto' );\n";
-
- $key_hi = $algodata['keysel']['hi'];
- $key_lo = $algodata['keysel']['lo'];
- $key_step = $algodata['keysel']['step'];
-
- for ($keylen = $key_hi; $keylen >= $key_lo; $keylen -= $key_step)
- echo " document.iform.ealgo_keylen.options[document.iform.ealgo_keylen.options.length] = new Option( '{$keylen} bits', '{$keylen}' );\n";
- echo " break;\n";
- } else {
- echo " case {$i}:\n";
- echo " document.iform.ealgo_keylen.style.visibility = 'hidden';\n";
- echo " document.iform.ealgo_keylen.options.length = 0;\n";
- echo " break;\n";
- }
- $i++;
- }
+$i = 0;
+foreach ($p1_ealgos as $algo => $algodata) {
+ if (is_array($algodata['keysel'])) {
+ echo " case {$i}:\n";
+ echo " document.iform.ealgo_keylen.style.visibility = 'visible';\n";
+ echo " document.iform.ealgo_keylen.options.length = 0;\n";
+ // echo " document.iform.ealgo_keylen.options[document.iform.ealgo_keylen.options.length] = new Option( 'auto', 'auto' );\n";
+
+ $key_hi = $algodata['keysel']['hi'];
+ $key_lo = $algodata['keysel']['lo'];
+ $key_step = $algodata['keysel']['step'];
+
+ for ($keylen = $key_hi; $keylen >= $key_lo; $keylen -= $key_step)
+ echo " document.iform.ealgo_keylen.options[document.iform.ealgo_keylen.options.length] = new Option( '{$keylen} bits', '{$keylen}' );\n";
+ echo " break;\n";
+ } else {
+ echo " case {$i}:\n";
+ echo " document.iform.ealgo_keylen.style.visibility = 'hidden';\n";
+ echo " document.iform.ealgo_keylen.options.length = 0;\n";
+ echo " break;\n";
+ }
+ $i++;
+}
?>
}
@@ -537,7 +558,7 @@ function dpdchkbox_change() {
<td width="22%" valign="top" class="vncellreq"><?=gettext("Interface"); ?></td>
<td width="78%" class="vtable">
<select name="interface" class="formselect">
- <?php
+ <?php
$interfaces = get_configured_interface_with_descr();
$carplist = get_configured_carp_interface_list();
diff --git a/usr/local/www/vpn_ipsec_phase2.php b/usr/local/www/vpn_ipsec_phase2.php
index c1f7403..4e509ee 100644
--- a/usr/local/www/vpn_ipsec_phase2.php
+++ b/usr/local/www/vpn_ipsec_phase2.php
@@ -129,6 +129,10 @@ if ($_POST) {
case "address":
if (!$pconfig['localid_address'] || !is_ipaddr($pconfig['localid_address']))
$input_errors[] = gettext("A valid local network IP address must be specified.");
+ elseif (is_ipaddrv4($pconfig['localid_address']) && ($pconfig['mode'] != "tunnel"))
+ $input_errors[] = gettext("A valid local network IPv4 address must be specified or you need to change Mode to IPv6");
+ elseif (is_ipaddrv6($pconfig['localid_address']) && ($pconfig['mode'] != "tunnel6"))
+ $input_errors[] = gettext("A valid local network IPv6 address must be specified or you need to change Mode to IPv4");
break;
}
/* Check if the localid_type is an interface, to confirm if it has a valid subnet. */
@@ -151,6 +155,10 @@ if ($_POST) {
case "address":
if (!empty($pconfig['natlocalid_address']) && !is_ipaddr($pconfig['natlocalid_address']))
$input_errors[] = gettext("A valid nat local network IP address must be specified.");
+ elseif (is_ipaddrv4($pconfig['natlocalid_address']) && ($pconfig['mode'] != "tunnel"))
+ $input_errors[] = gettext("A valid nat local network IPv4 address must be specified or you need to change Mode to IPv6");
+ elseif (is_ipaddrv6($pconfig['natlocalid_address']) && ($pconfig['mode'] != "tunnel6"))
+ $input_errors[] = gettext("A valid nat local network IPv6 address must be specified or you need to change Mode to IPv4");
break;
}
@@ -171,21 +179,27 @@ if ($_POST) {
case "address":
if (!$pconfig['remoteid_address'] || !is_ipaddr($pconfig['remoteid_address']))
$input_errors[] = gettext("A valid remote network IP address must be specified.");
+ elseif (is_ipaddrv4($pconfig['remoteid_address']) && ($pconfig['mode'] != "tunnel"))
+ $input_errors[] = gettext("A valid remote network IPv4 address must be specified or you need to change Mode to IPv6");
+ elseif (is_ipaddrv6($pconfig['remoteid_address']) && ($pconfig['mode'] != "tunnel6"))
+ $input_errors[] = gettext("A valid remote network IPv6 address must be specified or you need to change Mode to IPv4");
break;
}
}
/* Validate enabled phase2's are not duplicates */
if (isset($pconfig['mobile'])){
+ if (substr($pconfig['mode'], 0, 6) != "tunnel")
+ $input_errors[] = gettext("Mobile IPsec only supports Tunnel mode.");
/* User is adding phase 2 for mobile phase1 */
foreach($a_phase2 as $key => $name){
if (isset($name['mobile'])){
/* check duplicate localids only for mobile clents */
- $localid_data = ipsec_idinfo_to_cidr($name['localid']);
+ $localid_data = ipsec_idinfo_to_cidr($name['localid'], false, $name['mode']);
$entered = array();
$entered['type'] = $pconfig['localid_type'];
if (isset($pconfig['localid_address'])) $entered['address'] = $pconfig['localid_address'];
if (isset($pconfig['localid_netbits'])) $entered['netbits'] = $pconfig['localid_netbits'];
- $entered_localid_data = ipsec_idinfo_to_cidr($entered);
+ $entered_localid_data = ipsec_idinfo_to_cidr($entered, false, $pconfig['mode']);
if ($localid_data == $entered_localid_data){
if (!isset($pconfig['p2index'])){
/* adding new p2 entry */
@@ -205,18 +219,18 @@ if ($_POST) {
foreach($a_phase2 as $key => $name){
if (!isset($name['mobile']) && $pconfig['ikeid'] == $name['ikeid']){
/* check duplicate subnets only for given phase1 */
- $localid_data = ipsec_idinfo_to_cidr($name['localid']);
- $remoteid_data = ipsec_idinfo_to_cidr($name['remoteid']);
+ $localid_data = ipsec_idinfo_to_cidr($name['localid'], false, $name['mode']);
+ $remoteid_data = ipsec_idinfo_to_cidr($name['remoteid'], false, $name['mode']);
$entered_local = array();
$entered_local['type'] = $pconfig['localid_type'];
if (isset($pconfig['localid_address'])) $entered_local['address'] = $pconfig['localid_address'];
if (isset($pconfig['localid_netbits'])) $entered_local['netbits'] = $pconfig['localid_netbits'];
- $entered_localid_data = ipsec_idinfo_to_cidr($entered_local);
+ $entered_localid_data = ipsec_idinfo_to_cidr($entered_local, false, $pconfig['mode']);
$entered_remote = array();
$entered_remote['type'] = $pconfig['remoteid_type'];
if (isset($pconfig['remoteid_address'])) $entered_remote['address'] = $pconfig['remoteid_address'];
if (isset($pconfig['remoteid_netbits'])) $entered_remote['netbits'] = $pconfig['remoteid_netbits'];
- $entered_remoteid_data = ipsec_idinfo_to_cidr($entered_remote);
+ $entered_remoteid_data = ipsec_idinfo_to_cidr($entered_remote, false, $pconfig['mode']);
if ($localid_data == $entered_localid_data && $remoteid_data == $entered_remoteid_data) {
if (!isset($pconfig['p2index'])){
/* adding new p2 entry */
@@ -268,6 +282,14 @@ if ($_POST) {
if (isset($pconfig['mobile']))
$ph2ent['mobile'] = true;
+ ipsec_lookup_phase1($ph2ent, $ph1ent);
+ if (($ph1ent['protocol'] == "inet") && ($ph2ent['mode'] == "tunnel6"))
+ $input_errors[] = gettext("Phase 1 is using IPv4. You cannot use Tunnel IPv6 on Phase 2.");
+ if (($ph1ent['protocol'] == "inet6") && ($ph2ent['mode'] == "tunnel"))
+ $input_errors[] = gettext("Phase 1 is using IPv6. You cannot use Tunnel IPv4 on Phase 2.");
+ }
+
+ if (!$input_errors) {
if (isset($p2index) && $a_phase2[$p2index])
$a_phase2[$p2index] = $ph2ent;
else
@@ -524,7 +546,6 @@ function change_protocol() {
?>
<option value="<?=$ifname; ?>" <?php if ($pconfig['localid_type'] == $ifname ) echo "selected";?>><?=sprintf(gettext("%s subnet"), $ifdescr); ?></option>
<?php endforeach; ?>
- <option value="none" <?php if ($pconfig['localid_type'] == "none" ) echo "selected";?>><?=gettext("None"); ?></option>
</select>
</td>
</tr>
diff --git a/usr/local/www/vpn_l2tp.php b/usr/local/www/vpn_l2tp.php
index a2b5643..cedcef5 100644
--- a/usr/local/www/vpn_l2tp.php
+++ b/usr/local/www/vpn_l2tp.php
@@ -84,6 +84,9 @@ if ($_POST) {
if (($_POST['localip'] && !is_ipaddr($_POST['localip']))) {
$input_errors[] = gettext("A valid server address must be specified.");
}
+ if (is_ipaddr_configured($_POST['localip'])) {
+ $input_errors[] = gettext("'Server address' parameter should NOT be set to any IP address currently in use on this firewall.");
+ }
if (($_POST['l2tp_subnet'] && !is_ipaddr($_POST['remoteip']))) {
$input_errors[] = gettext("A valid remote start address must be specified.");
}
@@ -375,7 +378,7 @@ function enable_change(enable_over) {
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Secret");?></td>
<td width="78%" class="vtable">
- <input type="password" name="secret" id="secret" class="formfld pwd" value="<? echo htmlspecialchars($pconfig['secret']); ?>">
+ <input type="password" name="secret" id="secret" class="formfld pwd" value="<?php echo htmlspecialchars($pconfig['secret']); ?>">
<br />
<?=gettext("Specify optional secret shared between peers. Required on some devices/setups.");?><br />
</td>
diff --git a/usr/local/www/vpn_openvpn_client.php b/usr/local/www/vpn_openvpn_client.php
index 8b269f5..6452895 100644
--- a/usr/local/www/vpn_openvpn_client.php
+++ b/usr/local/www/vpn_openvpn_client.php
@@ -155,6 +155,17 @@ if ($_POST) {
else
$vpnid = 0;
+ list($iv_iface, $iv_ip) = explode ("|",$pconfig['interface']);
+ if (is_ipaddrv4($iv_ip) && (stristr($pconfig['protocol'], "6") !== false)) {
+ $input_errors[] = gettext("Protocol and IP address families do not match. You cannot select an IPv6 protocol and an IPv4 IP address.");
+ } elseif (is_ipaddrv6($iv_ip) && (stristr($pconfig['protocol'], "6") === false)) {
+ $input_errors[] = gettext("Protocol and IP address families do not match. You cannot select an IPv4 protocol and an IPv6 IP address.");
+ } elseif ((stristr($pconfig['protocol'], "6") === false) && !get_interface_ip($iv_iface) && ($pconfig['interface'] != "any")) {
+ $input_errors[] = gettext("An IPv4 protocol was selected, but the selected interface has no IPv4 address.");
+ } elseif ((stristr($pconfig['protocol'], "6") !== false) && !get_interface_ipv6($iv_iface) && ($pconfig['interface'] != "any")) {
+ $input_errors[] = gettext("An IPv6 protocol was selected, but the selected interface has no IPv6 address.");
+ }
+
if ($pconfig['mode'] != "p2p_shared_key")
$tls_mode = true;
else
@@ -166,7 +177,7 @@ if ($_POST) {
if ($result = openvpn_validate_port($pconfig['local_port'], 'Local port'))
$input_errors[] = $result;
- $portused = openvpn_port_used($pconfig['protocol'], $pconfig['local_port']);
+ $portused = openvpn_port_used($pconfig['protocol'], $pconfig['interface'], $pconfig['local_port'], $vpnid);
if (($portused != $vpnid) && ($portused != 0))
$input_errors[] = gettext("The specified 'Local port' is in use. Please select another value");
}
@@ -192,10 +203,17 @@ if ($_POST) {
}
if($pconfig['tunnel_network'])
- if ($result = openvpn_validate_cidr($pconfig['tunnel_network'], 'Tunnel network'))
+ if ($result = openvpn_validate_cidr($pconfig['tunnel_network'], 'IPv4 Tunnel Network', false, "ipv4"))
+ $input_errors[] = $result;
+
+ if($pconfig['tunnel_networkv6'])
+ if ($result = openvpn_validate_cidr($pconfig['tunnel_networkv6'], 'IPv6 Tunnel Network', false, "ipv6"))
$input_errors[] = $result;
- if ($result = openvpn_validate_cidr($pconfig['remote_network'], 'Remote network'))
+ if ($result = openvpn_validate_cidr($pconfig['remote_network'], 'IPv4 Remote Network', true, "ipv4"))
+ $input_errors[] = $result;
+
+ if ($result = openvpn_validate_cidr($pconfig['remote_networkv6'], 'IPv6 Remote Network', true, "ipv6"))
$input_errors[] = $result;
if (!empty($pconfig['use_shaper']) && (!is_numeric($pconfig['use_shaper']) || ($pconfig['use_shaper'] <= 0)))
@@ -482,6 +500,7 @@ if ($savemsg)
$vipif = $group[0]['int'];
$interfaces[$name] = "GW Group {$name}";
}
+ $interfaces['lo0'] = "Localhost";
$interfaces['any'] = "any";
foreach ($interfaces as $iface => $ifacename):
$selected = "";
@@ -796,30 +815,30 @@ if ($savemsg)
</td>
</tr>
<tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("IPv4 Remote Network"); ?></td>
+ <td width="22%" valign="top" class="vncell"><?=gettext("IPv4 Remote Network/s"); ?></td>
<td width="78%" class="vtable">
- <input name="remote_network" type="text" class="formfld unknown" size="20" value="<?=htmlspecialchars($pconfig['remote_network']);?>">
+ <input name="remote_network" type="text" class="formfld unknown" size="40" value="<?=htmlspecialchars($pconfig['remote_network']);?>">
<br>
- <?=gettext("This is a network that will be routed through " .
+ <?=gettext("These are the 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. Expressed as a CIDR range. If " .
- "this is a site-to-site VPN, enter the " .
- "remote LAN here. You may leave this blank to " .
+ "established without manually changing the routing tables. " .
+ "Expressed as a comma-separated list of one or more CIDR ranges. " .
+ "If this is a site-to-site VPN, enter the " .
+ "remote LAN/s here. You may leave this blank to " .
"only communicate with other clients"); ?>.
</td>
</tr>
<tr>
- <td width="22%" valign="top" class="vncell"><?=gettext("IPv6 Remote Network"); ?></td>
+ <td width="22%" valign="top" class="vncell"><?=gettext("IPv6 Remote Network/s"); ?></td>
<td width="78%" class="vtable">
- <input name="remote_networkv6" type="text" class="formfld unknown" size="20" value="<?=htmlspecialchars($pconfig['remote_networkv6']);?>">
+ <input name="remote_networkv6" type="text" class="formfld unknown" size="40" value="<?=htmlspecialchars($pconfig['remote_networkv6']);?>">
<br>
- <?=gettext("This is an IPv6 network that will be routed through " .
+ <?=gettext("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 tables. Expressed as an IP/PREFIX. If " .
- "this is a site-to-site VPN, enter the " .
- "remote LAN here. You may leave this blank to " .
+ "established without manually changing the routing tables. " .
+ "Expressed as a comma-separated list of one or more IP/PREFIX. " .
+ "If this is a site-to-site VPN, enter the " .
+ "remote LAN/s here. You may leave this blank to " .
"only communicate with other clients"); ?>.
</td>
</tr>
@@ -887,7 +906,7 @@ if ($savemsg)
<td>
<textarea rows="6" cols="78" name="custom_options" id="custom_options"><?=htmlspecialchars($pconfig['custom_options']);?></textarea><br/>
<?=gettext("Enter any additional options you would like to add to the OpenVPN client configuration here, separated by a semicolon"); ?><br/>
- <?=gettext("EXAMPLE: route 10.0.0.0 255.255.255.0;"); ?>
+ <?=gettext("EXAMPLE:"); ?> <strong>remote server.mysite.com 1194;</strong> or <strong>remote 1.2.3.4 1194;</strong>
</td>
</tr>
</table>
diff --git a/usr/local/www/vpn_openvpn_server.php b/usr/local/www/vpn_openvpn_server.php
index 004ce56..78f08a2 100644
--- a/usr/local/www/vpn_openvpn_server.php
+++ b/usr/local/www/vpn_openvpn_server.php
@@ -150,6 +150,7 @@ if($_GET['act']=="edit"){
$pconfig['dynamic_ip'] = $a_server[$id]['dynamic_ip'];
$pconfig['pool_enable'] = $a_server[$id]['pool_enable'];
+ $pconfig['topology_subnet'] = $a_server[$id]['topology_subnet'];
$pconfig['serverbridge_dhcp'] = $a_server[$id]['serverbridge_dhcp'];
$pconfig['serverbridge_interface'] = $a_server[$id]['serverbridge_interface'];
@@ -207,6 +208,17 @@ if ($_POST) {
else
$vpnid = 0;
+ list($iv_iface, $iv_ip) = explode ("|",$pconfig['interface']);
+ if (is_ipaddrv4($iv_ip) && (stristr($pconfig['protocol'], "6") !== false)) {
+ $input_errors[] = gettext("Protocol and IP address families do not match. You cannot select an IPv6 protocol and an IPv4 IP address.");
+ } elseif (is_ipaddrv6($iv_ip) && (stristr($pconfig['protocol'], "6") === false)) {
+ $input_errors[] = gettext("Protocol and IP address families do not match. You cannot select an IPv4 protocol and an IPv6 IP address.");
+ } elseif ((stristr($pconfig['protocol'], "6") === false) && !get_interface_ip($iv_iface) && ($pconfig['interface'] != "any")) {
+ $input_errors[] = gettext("An IPv4 protocol was selected, but the selected interface has no IPv4 address.");
+ } elseif ((stristr($pconfig['protocol'], "6") !== false) && !get_interface_ipv6($iv_iface) && ($pconfig['interface'] != "any")) {
+ $input_errors[] = gettext("An IPv6 protocol was selected, but the selected interface has no IPv6 address.");
+ }
+
if ($pconfig['mode'] != "p2p_shared_key")
$tls_mode = true;
else
@@ -219,16 +231,25 @@ if ($_POST) {
if ($result = openvpn_validate_port($pconfig['local_port'], 'Local port'))
$input_errors[] = $result;
- if ($result = openvpn_validate_cidr($pconfig['tunnel_network'], 'Tunnel network'))
+ if ($result = openvpn_validate_cidr($pconfig['tunnel_network'], 'IPv4 Tunnel Network', false, "ipv4"))
+ $input_errors[] = $result;
+
+ if ($result = openvpn_validate_cidr($pconfig['tunnel_networkv6'], 'IPv6 Tunnel Network', false, "ipv6"))
$input_errors[] = $result;
- if ($result = openvpn_validate_cidr($pconfig['remote_network'], 'Remote network'))
+ if ($result = openvpn_validate_cidr($pconfig['remote_network'], 'IPv4 Remote Network', true, "ipv4"))
$input_errors[] = $result;
- if ($result = openvpn_validate_cidr($pconfig['local_network'], 'Local network'))
+ if ($result = openvpn_validate_cidr($pconfig['remote_networkv6'], 'IPv6 Remote Network', true, "ipv6"))
$input_errors[] = $result;
- $portused = openvpn_port_used($pconfig['protocol'], $pconfig['local_port']);
+ if ($result = openvpn_validate_cidr($pconfig['local_network'], 'IPv4 Local Network', true, "ipv4"))
+ $input_errors[] = $result;
+
+ if ($result = openvpn_validate_cidr($pconfig['local_networkv6'], 'IPv6 Local Network', true, "ipv6"))
+ $input_errors[] = $result;
+
+ $portused = openvpn_port_used($pconfig['protocol'], $pconfig['interface'], $pconfig['local_port'], $vpnid);
if (($portused != $vpnid) && ($portused != 0))
$input_errors[] = gettext("The specified 'Local port' is in use. Please select another value");
@@ -367,6 +388,7 @@ if ($_POST) {
$server['dynamic_ip'] = $pconfig['dynamic_ip'];
$server['pool_enable'] = $pconfig['pool_enable'];
+ $server['topology_subnet'] = $pconfig['topology_subnet'];
$server['serverbridge_dhcp'] = $pconfig['serverbridge_dhcp'];
$server['serverbridge_interface'] = $pconfig['serverbridge_interface'];
@@ -518,7 +540,7 @@ function mode_change() {
function autokey_change() {
- if (document.iform.autokey_enable.checked)
+ if ((document.iform.autokey_enable != null) && (document.iform.autokey_enable.checked))
document.getElementById("autokey_opts").style.display="none";
else
document.getElementById("autokey_opts").style.display="";
@@ -628,6 +650,7 @@ function tuntap_change() {
document.getElementById("serverbridge_interface").style.display="none";
document.getElementById("serverbridge_dhcp_start").style.display="none";
document.getElementById("serverbridge_dhcp_end").style.display="none";
+ document.getElementById("topology_subnet_opt").style.display="";
break;
case "tap":
document.getElementById("ipv4_tunnel_network").className="vncell";
@@ -636,6 +659,8 @@ function tuntap_change() {
document.getElementById("serverbridge_interface").style.display="";
document.getElementById("serverbridge_dhcp_start").style.display="";
document.getElementById("serverbridge_dhcp_end").style.display="";
+ document.getElementById("topology_subnet_opt").style.display="none";
+ document.iform.serverbridge_dhcp.disabled = false;
if (document.iform.serverbridge_dhcp.checked) {
document.iform.serverbridge_interface.disabled = false;
document.iform.serverbridge_dhcp_start.disabled = false;
@@ -646,6 +671,7 @@ function tuntap_change() {
document.iform.serverbridge_dhcp_end.disabled = true;
}
} else {
+ document.getElementById("topology_subnet_opt").style.display="none";
document.iform.serverbridge_dhcp.disabled = true;
document.iform.serverbridge_interface.disabled = true;
document.iform.serverbridge_dhcp_start.disabled = true;
@@ -800,6 +826,7 @@ if ($savemsg)
$vipif = $group[0]['int'];
$interfaces[$name] = "GW Group {$name}";
}
+ $interfaces['lo0'] = "Localhost";
$interfaces['any'] = "any";
foreach ($interfaces as $iface => $ifacename):
$selected = "";
@@ -1196,56 +1223,56 @@ if ($savemsg)
</td>
</tr>
<tr id="local_optsv4">
- <td width="22%" valign="top" class="vncell"><?=gettext("IPv4 Local Network"); ?></td>
+ <td width="22%" valign="top" class="vncell"><?=gettext("IPv4 Local Network/s"); ?></td>
<td width="78%" class="vtable">
- <input name="local_network" type="text" class="formfld unknown" size="20" value="<?=htmlspecialchars($pconfig['local_network']);?>">
+ <input name="local_network" type="text" class="formfld unknown" size="40" value="<?=htmlspecialchars($pconfig['local_network']);?>">
<br>
- <?=gettext("This is the network that will be accessible " .
- "from the remote endpoint. Expressed as a CIDR " .
- "range. You may leave this blank if you don't " .
+ <?=gettext("These are the IPv4 networks that will be accessible " .
+ "from the remote endpoint. Expressed as a comma-separated list of one or more CIDR ranges. " .
+ "You may leave this blank if you don't " .
"want to add a route to the local network " .
"through this tunnel on the remote machine. " .
"This is generally set to your LAN network"); ?>.
</td>
</tr>
<tr id="local_optsv6">
- <td width="22%" valign="top" class="vncell"><?=gettext("IPv6 Local Network"); ?></td>
+ <td width="22%" valign="top" class="vncell"><?=gettext("IPv6 Local Network/s"); ?></td>
<td width="78%" class="vtable">
- <input name="local_networkv6" type="text" class="formfld unknown" size="20" value="<?=htmlspecialchars($pconfig['local_networkv6']);?>">
+ <input name="local_networkv6" type="text" class="formfld unknown" size="40" value="<?=htmlspecialchars($pconfig['local_networkv6']);?>">
<br>
- <?=gettext("This is the IPv6 network that will be accessible " .
- "from the remote endpoint. Expressed as a CIDR " .
- "range. You may leave this blank if you don't " .
+ <?=gettext("These are the IPv6 networks that will be accessible " .
+ "from the remote endpoint. Expressed as a comma-separated list of one or more IP/PREFIX. " .
+ "You may leave this blank if you don't " .
"want to add a route to the local network " .
"through this tunnel on the remote machine. " .
"This is generally set to your LAN network"); ?>.
</td>
</tr>
<tr id="remote_optsv4">
- <td width="22%" valign="top" class="vncell"><?=gettext("IPv4 Remote Network"); ?></td>
+ <td width="22%" valign="top" class="vncell"><?=gettext("IPv4 Remote Network/s"); ?></td>
<td width="78%" class="vtable">
- <input name="remote_network" type="text" class="formfld unknown" size="20" value="<?=htmlspecialchars($pconfig['remote_network']);?>">
+ <input name="remote_network" type="text" class="formfld unknown" size="40" value="<?=htmlspecialchars($pconfig['remote_network']);?>">
<br>
- <?=gettext("This is a network that will be routed through " .
+ <?=gettext("These are the 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. Expressed as a CIDR range. If " .
- "this is a site-to-site VPN, enter the " .
- "remote LAN here. You may leave this blank if " .
+ "established without manually changing the routing tables. " .
+ "Expressed as a comma-separated list of one or more CIDR ranges. " .
+ "If this is a site-to-site VPN, enter the " .
+ "remote LAN/s here. You may leave this blank if " .
"you don't want a site-to-site VPN"); ?>.
</td>
</tr>
<tr id="remote_optsv6">
- <td width="22%" valign="top" class="vncell"><?=gettext("IPv6 Remote Network"); ?></td>
+ <td width="22%" valign="top" class="vncell"><?=gettext("IPv6 Remote Network/s"); ?></td>
<td width="78%" class="vtable">
- <input name="remote_networkv6" type="text" class="formfld unknown" size="20" value="<?=htmlspecialchars($pconfig['remote_networkv6']);?>">
+ <input name="remote_networkv6" type="text" class="formfld unknown" size="40" value="<?=htmlspecialchars($pconfig['remote_networkv6']);?>">
<br>
- <?=gettext("This is an IPv6 network that will be routed through " .
+ <?=gettext("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 tables. Expressed as an IP/PREFIX. If " .
- "this is a site-to-site VPN, enter the " .
- "remote LAN here. You may leave this blank if " .
+ "established without manually changing the routing tables. " .
+ "Expressed as a comma-separated list of one or more IP/PREFIX. " .
+ "If this is a site-to-site VPN, enter the " .
+ "remote LAN/s here. You may leave this blank if " .
"you don't want a site-to-site VPN"); ?>.
</td>
</tr>
@@ -1374,6 +1401,31 @@ if ($savemsg)
</table>
</td>
</tr>
+ <tr id="topology_subnet_opt">
+ <td width="22%" valign="top" class="vncell"><?=gettext("Topology"); ?></td>
+ <td width="78%" class="vtable">
+ <table border="0" cellpadding="2" cellspacing="0">
+ <tr>
+ <td>
+ <?php set_checked($pconfig['topology_subnet'],$chk); ?>
+ <input name="topology_subnet" type="checkbox" id="topology_subnet" value="yes" <?=$chk;?>/>
+ </td>
+ <td>
+ <span class="vexpl">
+ <?=gettext("Allocate only one IP per client (topology subnet), rather than an isolated subnet per client (topology net30)."); ?><br/>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <?=gettext("Relevant when supplying a virtual adapter IP address to clients when using tun mode on IPv4."); ?><br/>
+ <?=gettext("Some clients may require this even for IPv6, such as OpenVPN Connect (iOS/Android). Others may break if it is present, such as older versions of OpenVPN or clients such as Yealink phones."); ?><br>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("DNS Default Domain"); ?></td>
<td width="78%" class="vtable">
diff --git a/usr/local/www/vpn_pppoe.php b/usr/local/www/vpn_pppoe.php
index 03547d9..b91e6d2 100755
--- a/usr/local/www/vpn_pppoe.php
+++ b/usr/local/www/vpn_pppoe.php
@@ -1,6 +1,6 @@
<?php
/*
- Copyright (C) 2010 Ermal Luçi
+ Copyright (C) 2010 Ermal Luci
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -75,7 +75,8 @@ if ($_GET['act'] == "del") {
if ($a_pppoes[$_GET['id']]) {
if ("{$g['varrun_path']}/pppoe" . $a_pppoes[$_GET['id']]['pppoeid'] . "-vpn.pid")
killbypid("{$g['varrun_path']}/pppoe" . $a_pppoes[$_GET['id']]['pppoeid'] . "-vpn.pid");
- mwexec("/bin/rm -r {$g['varetc_path']}/pppoe" . $a_pppoes[$_GET['id']]['pppoeid']);
+ if (is_dir("{$g['varetc_path']}/pppoe" . $a_pppoes[$_GET['id']]['pppoeid']))
+ mwexec("/bin/rm -r {$g['varetc_path']}/pppoe" . $a_pppoes[$_GET['id']]['pppoeid']);
unset($a_pppoes[$_GET['id']]);
write_config();
header("Location: vpn_pppoe.php");
diff --git a/usr/local/www/vpn_pppoe_edit.php b/usr/local/www/vpn_pppoe_edit.php
index ce02d12..ad401e2 100755
--- a/usr/local/www/vpn_pppoe_edit.php
+++ b/usr/local/www/vpn_pppoe_edit.php
@@ -30,7 +30,7 @@
*/
##|+PRIV
-##|*IDENT=page-services-pppoeserver-eidt
+##|*IDENT=page-services-pppoeserver-edit
##|*NAME=Services: PPPoE Server: Edit page
##|*DESCR=Allow access to the 'Services: PPPoE Server: Edit' page.
##|*MATCH=vpn_pppoe_edit.php*
@@ -104,7 +104,7 @@ if (isset($id) && $a_pppoes[$id]) {
if ($_POST) {
unset($input_errors);
- //$pconfig = $_POST;
+ $pconfig = $_POST;
/* input validation */
if ($_POST['mode'] == "server") {
@@ -145,6 +145,9 @@ if ($_POST) {
}
}
+ if ($_POST['pppoeid'] && !is_numeric($_POST['pppoeid']))
+ $input_errors[] = gettext("Wrong data submitted");
+
if (!$input_errors) {
$pppoecfg = array();
@@ -442,14 +445,14 @@ function enable_change(enable_over) {
</td>
</tr>
<tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("Description"); ?></td>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Description"); ?></td>
<td width="78%" class="vtable">
<?=$mandfldhtml;?><input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>">
<br/>
</td>
</tr>
<tr>
- <td width="22%" valign="top" class="vncellreq"><?=gettext("DNS servers"); ?></td>
+ <td width="22%" valign="top" class="vncell"><?=gettext("DNS servers"); ?></td>
<td width="78%" class="vtable">
<?=$mandfldhtml;?><input name="pppoe_dns1" type="text" class="formfld unknown" id="pppoe_dns1" size="20" value="<?=htmlspecialchars($pconfig['pppoe_dns1']);?>">
<br>
diff --git a/usr/local/www/vpn_pptp.php b/usr/local/www/vpn_pptp.php
index 59404c1..a5da316 100755
--- a/usr/local/www/vpn_pptp.php
+++ b/usr/local/www/vpn_pptp.php
@@ -92,6 +92,9 @@ if ($_POST) {
if (($_POST['localip'] && !is_ipaddr($_POST['localip']))) {
$input_errors[] = gettext("A valid server address must be specified.");
}
+ if (is_ipaddr_configured($_POST['localip'])) {
+ $input_errors[] = gettext("'Server address' parameter should NOT be set to any IP address currently in use on this firewall.");
+ }
if (!is_ipaddr($_POST['remoteip'])) {
$input_errors[] = gettext("A valid remote start address must be specified.");
}
diff --git a/usr/local/www/widgets/include/dyn_dns_status.inc b/usr/local/www/widgets/include/dyn_dns_status.inc
new file mode 100644
index 0000000..8116fe7
--- /dev/null
+++ b/usr/local/www/widgets/include/dyn_dns_status.inc
@@ -0,0 +1,7 @@
+<?php
+
+//set variable for custom title
+$dyn_dns_status_title = "Dyn DNS Status";
+$dyn_dns_status_title_link = "services_dyndns.php";
+
+?>
diff --git a/usr/local/www/widgets/include/gateways.inc b/usr/local/www/widgets/include/gateways.inc
new file mode 100644
index 0000000..4666689
--- /dev/null
+++ b/usr/local/www/widgets/include/gateways.inc
@@ -0,0 +1,5 @@
+<?php
+//set variable for custom title
+$gateways_title = "Gateways";
+$gateways_title_link = "status_gateways.php";
+?>
diff --git a/usr/local/www/widgets/include/smart_status.inc b/usr/local/www/widgets/include/smart_status.inc
new file mode 100644
index 0000000..bbfa274
--- /dev/null
+++ b/usr/local/www/widgets/include/smart_status.inc
@@ -0,0 +1,5 @@
+<?php
+//set variable for custom title
+$smart_status_title = "SMART Status";
+$smart_status_title_link = "diag_smart.php";
+?>
diff --git a/usr/local/www/widgets/include/thermal_sensors.inc b/usr/local/www/widgets/include/thermal_sensors.inc
new file mode 100644
index 0000000..2ebc31d
--- /dev/null
+++ b/usr/local/www/widgets/include/thermal_sensors.inc
@@ -0,0 +1,27 @@
+<?php
+/*
+ $Id: thermal_sensors.inc
+ File location:
+ \usr\local\www\widgets\include\
+
+ Used by:
+ \usr\local\www\widgets\widgets\thermal_sensors.widget.php
+
+
+*/
+
+//set variable for custom title
+$thermal_sensors_widget_title = "Thermal Sensors";
+//$thermal_sensors_widget_link = "thermal_sensors.php";
+
+
+//returns core temp data (from coretemp.ko or amdtemp.ko driver) as "|"-delimited string.
+//NOTE: depends on proper cofing in System >> Advanced >> Miscellaneous tab >> Thermal Sensors section.
+function getThermalSensorsData() {
+
+ exec("/sbin/sysctl -a | grep temperature", $dfout);
+ $thermalSensorsData = join("|", $dfout);
+ return $thermalSensorsData;
+
+}
+?>
diff --git a/usr/local/www/widgets/javascript/thermal_sensors.js b/usr/local/www/widgets/javascript/thermal_sensors.js
new file mode 100644
index 0000000..17f07d0
--- /dev/null
+++ b/usr/local/www/widgets/javascript/thermal_sensors.js
@@ -0,0 +1,312 @@
+/*
+ $Id: thermal_sensors.js
+ Description:
+ Javascript functions to get and show thermal sensors data in thermal_sensors.widget.php.
+ NOTE: depends on proper cofing in System >> Advanced >> Miscellaneous tab >> Thermal Sensors section.
+ File location:
+ \usr\local\www\widgets\javascript\
+ Used by:
+ \usr\local\www\widgets\widgets\thermal_sensors.widget.php
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+
+//should be called from "thermal_sensors.widget.php"
+function showThermalSensorsData() {
+
+ //get data from thermal_sensors.widget.php
+ url = "/widgets/widgets/thermal_sensors.widget.php?getThermalSensorsData=1"
+ //IE fix to disable cache when using http:// , just append timespan
+ + new Date().getTime();
+
+ jQuery.ajax(url, {
+ type: 'get',
+ success: function(data) {
+ var thermalSensorsData = data || "";
+ buildThermalSensorsData(thermalSensorsData);
+ },
+ error: function(jqXHR, status, error){
+ buildThermalSensorsDataRaw(
+ "Error getting data from [thermal_sensors.widget.php] - |" +
+ "status: [" + (status || "") + "]|" +
+ "error: [" + (error || "") + "]");
+ }
+ });
+
+ //call itself in 11 seconds
+ window.setTimeout(showThermalSensorsData, 11000);
+}
+
+function buildThermalSensorsData(thermalSensorsData) {
+ //NOTE: variable thermal_sensors_widget_showRawOutput is declared/set in "thermal_sensors.widget.php"
+ if (thermal_sensors_widget_showRawOutput) {
+ buildThermalSensorsDataRaw(thermalSensorsData);
+ }
+ else {
+ buildThermalSensorsDataGraph(thermalSensorsData);
+ }
+}
+
+function buildThermalSensorsDataRaw(thermalSensorsData) {
+
+ var thermalSensorsContent = "";
+
+ if (thermalSensorsData && thermalSensorsData != "") {
+ thermalSensorsContent = thermalSensorsData.replace(/\|/g, "<br />");
+ //rawData = thermalSensorsData.split("|").join("<br />");
+ }
+
+ loadThermalSensorsContainer(thermalSensorsContent);
+}
+
+function loadThermalSensorsContainer (thermalSensorsContent) {
+
+ if (thermalSensorsContent && thermalSensorsContent != "") {
+ //load generated graph (or raw data) into thermalSensorsContainer (thermalSensorsContainer DIV defined in "thermal_sensors.widget.php")
+ jQuery('#thermalSensorsContainer').html(thermalSensorsContent);
+ } else {
+ jQuery('#thermalSensorsContainer').html("No Thermal Sensors data available.<br /><br />");
+ jQuery('<div/>').html(
+ "<span>* You can configure a proper Thermal Sensor / Module under <br />" +
+ "&nbsp;&nbsp;&nbsp;<a href='system_advanced_misc.php'>System &gt; Advanced &gt; Miscellaneous : Thermal Sensors section</a>.</span>"
+ ).appendTo('#thermalSensorsContainer');
+ }
+}
+
+function buildThermalSensorsDataGraph(thermalSensorsData) {
+
+ //local constants
+ var normalColor = "LimeGreen";
+ var normalColorShadowTop = "Lime";
+ var normalColorShadowBottom = "Green";
+
+ var warningColor = "Orange";
+ var warningColorShadowBottom = "Chocolate";
+
+ var criticalColor = "Red";
+ var criticalColorShadowBottom = "DarkRed";
+
+ //local variables
+ var barBgColor = normalColor; //green/normal as default
+ var barBgColorShadowTop = normalColorShadowTop; //green/normal as default
+ var barBgColorShadowBottom = normalColorShadowBottom; //green/normal as default
+
+ var thermalSensorsArray = new Array();
+
+ if (thermalSensorsData && thermalSensorsData != ""){
+ thermalSensorsArray = thermalSensorsData.split("|");
+ }
+
+ var thermalSensorsHTMLContent = "";
+ var itemsToPulsate = new Array();
+
+ //generate graph for each temperature sensor and append to thermalSensorsHTMLContent string
+ for (var i = 0; i < thermalSensorsArray.length; i++) {
+
+ var sensorDataArray = thermalSensorsArray[i].split(":");
+ var sensorName = sensorDataArray[0].trim();
+ var thermalSensorValue = getThermalSensorValue(sensorDataArray[1]);
+
+ var pulsateTimes = 0;
+ var pulsateDuration = 0;
+
+ var warningTempThresholdPosition = 0;
+ var criticalTempThresholdPosition = 0;
+
+ //NOTE: the following variables are declared/set in "thermal_sensors.widget.php":
+ // thermal_sensors_widget_coreWarningTempThreshold, thermal_sensors_widget_coreCriticalTempThreshold,
+ // thermal_sensors_widget_zoneWarningTempThreshold, thermal_sensors_widget_zoneCriticalTempThreshold
+ // thermal_sensors_widget_pulsateWarning, thermal_sensors_widget_pulsateCritical
+
+ //set graph color and pulsate parameters
+ if (sensorName.indexOf("cpu") > -1) { //check CPU Threshold config settings
+
+ warningTempThresholdPosition = thermal_sensors_widget_coreWarningTempThreshold;
+ criticalTempThresholdPosition = thermal_sensors_widget_coreCriticalTempThreshold;
+
+ if (thermalSensorValue < thermal_sensors_widget_coreWarningTempThreshold) {
+ barBgColor = normalColor;
+ barBgColorShadowTop = normalColorShadowTop;
+ barBgColorShadowBottom = normalColorShadowBottom;
+ pulsateTimes = 0;
+ pulsateDuration = 0;
+ } else if (thermalSensorValue >= thermal_sensors_widget_coreWarningTempThreshold && thermalSensorValue < thermal_sensors_widget_coreCriticalTempThreshold) {
+ barBgColor = warningColor;
+ barBgColorShadowTop = warningColor;
+ barBgColorShadowBottom = warningColorShadowBottom;
+ pulsateTimes = thermal_sensors_widget_pulsateWarning ? 4 : 0;
+ pulsateDuration = thermal_sensors_widget_pulsateWarning ? 900 : 0;
+ } else { // thermalSensorValue > thermal_sensors_widget_coreCriticalTempThreshold
+ barBgColor = criticalColor;
+ barBgColorShadowTop = criticalColor;
+ barBgColorShadowBottom = criticalColorShadowBottom;
+ pulsateTimes = thermal_sensors_widget_pulsateCritical ? 7 : 0;
+ pulsateDuration = thermal_sensors_widget_pulsateCritical ? 900 : 0;
+ }
+ } else { //assuming sensor is for a zone, check Zone Threshold config settings
+
+ warningTempThresholdPosition = thermal_sensors_widget_zoneWarningTempThreshold;
+ criticalTempThresholdPosition = thermal_sensors_widget_zoneCriticalTempThreshold;
+
+ if (thermalSensorValue < thermal_sensors_widget_zoneWarningTempThreshold) {
+
+ barBgColor = normalColor;
+ barBgColorShadowTop = normalColorShadowTop;
+ barBgColorShadowBottom = normalColorShadowBottom;
+ pulsateTimes = 0;
+ pulsateDuration = 0;
+
+ } else if (thermalSensorValue >= thermal_sensors_widget_zoneWarningTempThreshold
+ && thermalSensorValue < thermal_sensors_widget_zoneCriticalTempThreshold) {
+
+ barBgColor = warningColor;
+ barBgColorShadowTop = warningColor;
+ barBgColorShadowBottom = warningColorShadowBottom;
+ pulsateTimes = thermal_sensors_widget_pulsateWarning ? 4 : 0;
+ pulsateDuration = thermal_sensors_widget_pulsateWarning ? 900 : 0;
+
+ } else { // thermalSensorValue > thermal_sensors_widget_zoneCriticalTempThreshold
+
+ barBgColor = criticalColor;
+ barBgColorShadowTop = criticalColor;
+ barBgColorShadowBottom = criticalColorShadowBottom;
+ pulsateTimes = thermal_sensors_widget_pulsateCritical ? 7 : 0;
+ pulsateDuration = thermal_sensors_widget_pulsateCritical ? 900 : 0;
+ }
+ }
+
+ //NOTE: variable thermal_sensors_widget_showFullSensorName is declared/set in "thermal_sensors.widget.php"
+ if (!thermal_sensors_widget_showFullSensorName) {
+ sensorName = getSensorFriendlyName(sensorName);
+ }
+
+ //build temperature item/row for a sensor
+ //NOTE: additional styles are set in 'thermal_sensors.widget.php'
+ var thermalSensorRow = "<div class='thermalSensorRow' id='thermalSensorRow" + i + "' >" +
+ //sensor name and temperature value
+ " <div class='thermalSensorTextShell'><div class='thermalSensorText' id='thermalSensorText" + i + "'>" + sensorName + ": </div><div class='thermalSensorValue' id='thermalSensorValue" + i + "'>" + thermalSensorValue + " &deg;C</div></div>" +
+ //temperature bar
+ " <div class='thermalSensorBarShell' id='thermalSensorBarShell" + i + "' >" +
+ " <div class='thermalSensorBar' id='thermalSensorBar" + i + "' style='background-color: " + barBgColor + "; border-top-color: " + barBgColorShadowTop + "; border-bottom-color: " + barBgColorShadowBottom + "; width:" + thermalSensorValue + "%;' ></div>" +
+ //threshold targets (warning and critical)
+ " <div class='thermalSensorWarnThresh' id='thermalSensorWarnThresh" + i + "' style='left:" + warningTempThresholdPosition + "%;' ></div>" +
+ " <div class='thermalSensorCritThresh' id='thermalSensorCritThresh" + i + "' style='left:" + criticalTempThresholdPosition + "%;' ></div>" +
+ //temperature scale (max 100 C)
+ " <div class='thermal_sensors_widget_scale000'></div>" +
+ " <div class='thermal_sensors_widget_scale010'></div>" +
+ " <div class='thermal_sensors_widget_scale020'></div>" +
+ " <div class='thermal_sensors_widget_scale030'></div>" +
+ " <div class='thermal_sensors_widget_scale040'></div>" +
+ " <div class='thermal_sensors_widget_scale050'></div>" +
+ " <div class='thermal_sensors_widget_scale060'></div>" +
+ " <div class='thermal_sensors_widget_scale070'></div>" +
+ " <div class='thermal_sensors_widget_scale080'></div>" +
+ " <div class='thermal_sensors_widget_scale090'></div>" +
+ " <div class='thermal_sensors_widget_scale100'></div>" +
+ " <div class='thermal_sensors_widget_mark100'>100&deg;</div>" +
+ " </div>" +
+ "</div>";
+
+ //collect parameters for warning/critical items we need to pulsate
+ if (pulsateTimes > 0) {
+ var params = i + "|" + barBgColor + "|" + pulsateTimes + "|" + pulsateDuration;
+ itemsToPulsate.push(params);
+ }
+
+ //append HTML item
+ thermalSensorsHTMLContent = thermalSensorsHTMLContent + thermalSensorRow;
+ }
+
+ //load generated graph into thermalSensorsContainer (DIV defined in "thermal_sensors.widget.php")
+ loadThermalSensorsContainer(thermalSensorsHTMLContent);
+
+ if (itemsToPulsate.length > 0) {
+ //pulsate/flash warning/critical items we collected
+ pulsateThermalSensorsItems(itemsToPulsate);
+ }
+}
+
+function pulsateThermalSensorsItems(itemsToPulsate) {
+
+ //pulsate/flash warning/critical items we collected
+ for (var i = 0; i < itemsToPulsate.length; i++) {
+
+ var pulsateParams = itemsToPulsate[i].split("|");
+ var rowNum = parseInt(pulsateParams[0]);
+ //var textColor = pulsateParams[1];
+ var pulsateTimes = parseInt(pulsateParams[2]);
+ var pulsateDuration = parseInt(pulsateParams[3]);
+
+ //pulsate temp Value
+ var divThermalSensorValue = jQuery("#thermalSensorValue" + rowNum); //get temp value by id
+ divThermalSensorValue.effect("pulsate", {
+ times: pulsateTimes
+ ,easing: 'linear' //'easeInExpo'
+ }, pulsateDuration);
+ ////set Temp Value color
+ //divThermalSensorValue.css( { color: textColor } );
+
+ //pulsate temp Bar
+ var divThermalSensorBar = jQuery("#thermalSensorBar" + rowNum); //get temp bar by id
+ divThermalSensorBar.effect("pulsate", {
+ times: pulsateTimes
+ ,easing: 'linear' //'easeInExpo'
+ }, pulsateDuration);
+
+ }
+}
+
+function getSensorFriendlyName(sensorFullName){
+
+ var friendlyName = "";
+
+ switch (sensorFullName) {
+ case "hw.acpi.thermal.tz0.temperature":
+ friendlyName = "Zone 0";
+ break;
+ case "hw.acpi.thermal.tz1.temperature":
+ friendlyName = "Zone 1";
+ break;
+ case "dev.cpu.0.temperature":
+ friendlyName = "Core 0";
+ break;
+ case "dev.cpu.1.temperature":
+ friendlyName = "Core 1";
+ break;
+ case "dev.cpu.2.temperature":
+ friendlyName = "Core 2";
+ break;
+ case "dev.cpu.3.temperature":
+ friendlyName = "Core 3";
+ break;
+ default:
+ friendlyName = sensorFullName;
+ }
+
+ return friendlyName;
+}
+
+function getThermalSensorValue(stringValue){
+ return (+parseFloat(stringValue) || 0).toFixed(1);
+}
diff --git a/usr/local/www/widgets/widgets/captive_portal_status.widget.php b/usr/local/www/widgets/widgets/captive_portal_status.widget.php
index 67e5f20..245b65b 100644
--- a/usr/local/www/widgets/widgets/captive_portal_status.widget.php
+++ b/usr/local/www/widgets/widgets/captive_portal_status.widget.php
@@ -44,7 +44,8 @@ require_once("captiveportal.inc");
<?php
-if ($_GET['act'] == "del") {
+if (($_GET['act'] == "del") && (!empty($_GET['zone']))) {
+ $cpzone = $_GET['zone'];
captiveportal_disconnect_client($_GET['id']);
}
@@ -59,20 +60,15 @@ if (!is_array($config['captiveportal']))
$config['captiveportal'] = array();
$a_cp =& $config['captiveportal'];
-$cpdb = array();
+$cpdb_all = array();
foreach ($a_cp as $cpzone => $cp) {
- if (file_exists("{$g['vardb_path']}/captiveportal_{$cpzone}.db")) {
- $captiveportallck = lock('captiveportaldb');
- $cpcontents = file("{$g['vardb_path']}/captiveportal_{$cpzone}.db", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
- unlock($captiveportallck);
- foreach ($cpcontents as $cpcontent) {
- $cpent = explode(",", $cpcontent);
- $sessionid = $cpent[5];
- if ($_GET['showact'])
- $cpent[5] = captiveportal_get_last_activity($cpent[2]);
- $cpdb[$sessionid] = $cpent;
- }
+ $cpdb = captiveportal_read_db();
+ foreach ($cpdb as $cpent) {
+ $cpent[10] = $cpzone;
+ if ($_GET['showact'])
+ $cpent[11] = captiveportal_get_last_activity($cpent[2]);
+ $cpdb_all[] = $cpent;
}
}
@@ -85,32 +81,34 @@ if ($_GET['order']) {
$order = 4;
else if ($_GET['order'] == "lastact")
$order = 5;
+ else if ($_GET['order'] == "zone")
+ $order = 10;
else
$order = 0;
- usort($cpdb, "clientcmp");
+ usort($cpdb_all, "clientcmp");
}
?>
-<table class="sortable" name="sortabletable" id="sortabletable" width="100%" border="0" cellpadding="0" cellspacing="0">
+<table class="sortable" name="sortabletable" id="sortabletable" width="100%" border="0" cellpadding="0" cellspacing="0" summary="captive portal status">
<tr>
- <td class="listhdrr"><a href="?order=ip&showact=<?=$_GET['showact'];?>">IP address</a></td>
- <td class="listhdrr"><a href="?order=mac&showact=<?=$_GET['showact'];?>">MAC address</a></td>
- <td class="listhdrr"><a href="?order=user&showact=<?=$_GET['showact'];?>"><?=gettext("Username");?></a></td>
+ <td class="listhdrr"><a href="?order=ip&amp;showact=<?=$_GET['showact'];?>">IP address</a></td>
+ <td class="listhdrr"><a href="?order=mac&amp;showact=<?=$_GET['showact'];?>">MAC address</a></td>
+ <td class="listhdrr"><a href="?order=user&amp;showact=<?=$_GET['showact'];?>"><?=gettext("Username");?></a></td>
<?php if ($_GET['showact']): ?>
- <td class="listhdrr"><a href="?order=start&showact=<?=$_GET['showact'];?>"><?=gettext("Session start");?></a></td>
- <td class="listhdrr"><a href="?order=start&showact=<?=$_GET['showact'];?>"><?=gettext("Last activity");?></a></td>
+ <td class="listhdrr"><a href="?order=start&amp;showact=<?=$_GET['showact'];?>"><?=gettext("Session start");?></a></td>
+ <td class="listhdrr"><a href="?order=start&amp;showact=<?=$_GET['showact'];?>"><?=gettext("Last activity");?></a></td>
<?php endif; ?>
</tr>
-<?php foreach ($cpdb as $sid => $cpent): ?>
+<?php foreach ($cpdb_all as $cpent): ?>
<tr>
<td class="listlr"><?=$cpent[2];?></td>
<td class="listr"><?=$cpent[3];?>&nbsp;</td>
<td class="listr"><?=$cpent[4];?>&nbsp;</td>
<?php if ($_GET['showact']): ?>
<td class="listr"><?=htmlspecialchars(date("m/d/Y H:i:s", $cpent[0]));?></td>
- <td class="listr"><?php if ($cpent[5]) echo htmlspecialchars(date("m/d/Y H:i:s", $cpent[5]));?></td>
+ <td class="listr"><?php if ($cpent[11] && ($cpent[11] > 0)) echo htmlspecialchars(date("m/d/Y H:i:s", $cpent[11]));?></td>
<?php endif; ?>
- <td valign="middle" class="list" nowrap>
- <a href="?order=<?=$_GET['order'];?>&showact=<?=$_GET['showact'];?>&act=del&id=<?=$sid;?>" onclick="return confirm('Do you really want to disconnect this client?')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0"></a></td>
+ <td valign="middle" class="list nowrap">
+ <a href="?order=<?=$_GET['order'];?>&amp;showact=<?=$_GET['showact'];?>&amp;act=del&amp;zone=<?=$cpent[10];?>&amp;id=<?=$cpent[5];?>" onclick="return confirm('Do you really want to disconnect this client?')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" alt="x" /></a></td>
</tr>
<?php endforeach; ?>
-</table>
+</table> \ No newline at end of file
diff --git a/usr/local/www/widgets/widgets/carp_status.widget.php b/usr/local/www/widgets/widgets/carp_status.widget.php
index bc048ba..1710d1b 100644
--- a/usr/local/www/widgets/widgets/carp_status.widget.php
+++ b/usr/local/www/widgets/widgets/carp_status.widget.php
@@ -37,7 +37,7 @@ require_once("/usr/local/www/widgets/include/carp_status.inc");
$carp_enabled = get_carp_status();
?>
-<table bgcolor="#990000" width="100%" border="0" cellspacing="0" cellpadding="0">
+<table bgcolor="#990000" width="100%" border="0" cellspacing="0" cellpadding="0" summary="carp status">
<?php
if(is_array($config['virtualip']['vip'])) {
$carpint=0;
@@ -54,7 +54,7 @@ $carp_enabled = get_carp_status();
?>
<tr>
<td class="vncellt" width="35%">
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_cablenic.gif"/> &nbsp;
+ <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_cablenic.gif" alt="cablenic" />&nbsp;
<strong><a href="/system_hasync.php">
<span style="color:#000000"><?=htmlspecialchars($carp_int);?></span></a></strong>
</td>
@@ -62,14 +62,14 @@ $carp_enabled = get_carp_status();
<?php
if($carp_enabled == false) {
$status = "DISABLED";
- echo "<img src='/themes/".$g['theme']."/images/icons/icon_block.gif' title=\"$status\">";
+ echo "<img src='/themes/".$g['theme']."/images/icons/icon_block.gif' title=\"$status\" alt=\"$status\" />";
} else {
if($status == "MASTER") {
- echo "<img src='/themes/".$g['theme']."/images/icons/icon_pass.gif' title=\"$status\">";
+ echo "<img src='/themes/".$g['theme']."/images/icons/icon_pass.gif' title=\"$status\" alt=\"$status\" />";
} else if($status == "BACKUP") {
- echo "<img src='/themes/".$g['theme']."/images/icons/icon_pass_d.gif' title=\"$status\">";
+ echo "<img src='/themes/".$g['theme']."/images/icons/icon_pass_d.gif' title=\"$status\" alt=\"$status\" />";
} else if($status == "INIT") {
- echo "<img src='/themes/".$g['theme']."/images/icons/icon_log.gif' title=\"$status\">";
+ echo "<img src='/themes/".$g['theme']."/images/icons/icon_log.gif' title=\"$status\" alt=\"$status\" />";
}
}
if ($ipaddress){ ?> &nbsp;
@@ -79,4 +79,4 @@ $carp_enabled = get_carp_status();
} else { ?>
<tr><td class="listr">No CARP Interfaces Defined. Click <a href="carp_status.php">here</a> to configure CARP.</td></tr>
<?php } ?>
-</table>
+</table> \ No newline at end of file
diff --git a/usr/local/www/widgets/widgets/dyn_dns_status.widget.php b/usr/local/www/widgets/widgets/dyn_dns_status.widget.php
new file mode 100644
index 0000000..2ae268b
--- /dev/null
+++ b/usr/local/www/widgets/widgets/dyn_dns_status.widget.php
@@ -0,0 +1,164 @@
+<?php
+/*
+ Original status page code from: services_dyndns.php
+ Copyright (C) 2008 Ermal Luci
+ Edits to convert it to a widget: dyn_dns_status.widget.php
+ Copyright (C) 2013 Stanley P. Miller \ stan-qaz
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INClUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+*/
+/*
+ pfSense_BUILDER_BINARIES: /usr/bin/host
+ pfSense_MODULE: dyndns
+*/
+
+$nocsrf = true;
+
+require_once("guiconfig.inc");
+require_once("pfsense-utils.inc");
+require_once("functions.inc");
+require_once("/usr/local/www/widgets/include/dyn_dns_status.inc");
+
+if (!is_array($config['dyndnses']['dyndns']))
+ $config['dyndnses']['dyndns'] = array();
+
+$a_dyndns = &$config['dyndnses']['dyndns'];
+
+if($_REQUEST['getdyndnsstatus']) {
+ $first_entry = true;
+ foreach ($a_dyndns as $dyndns) {
+ if ($first_entry)
+ $first_entry = false;
+ else
+ // Put a vertical bar delimiter between the echoed HTML for each entry processed.
+ echo "|";
+
+ $filename = "{$g['conf_path']}/dyndns_{$dyndns['interface']}{$dyndns['type']}" . escapeshellarg($dyndns['host']) . "{$dyndns['id']}.cache";
+ if (file_exists($filename)) {
+ $ipaddr = dyndnsCheckIP($dyndns['interface']);
+ $cached_ip_s = split(":", file_get_contents($filename));
+ $cached_ip = $cached_ip_s[0];
+ if ($ipaddr <> $cached_ip)
+ echo "<font color='red'>";
+ else
+ echo "<font color='green'>";
+ echo htmlspecialchars($cached_ip);
+ echo "</font>";
+ } else {
+ echo "N/A " . date("H:i:s");
+ }
+ }
+ exit;
+}
+
+?>
+
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td width="5%" class="listhdrr"><?=gettext("Int.");?></td>
+ <td width="15%" class="listhdrr"><?=gettext("Service");?></td>
+ <td width="20%" class="listhdrr"><?=gettext("Hostname");?></td>
+ <td width="20%" class="listhdrr"><?=gettext("Cached IP");?></td>
+ </tr>
+ <?php $i = 0; foreach ($a_dyndns as $dyndns): ?>
+ <tr ondblclick="document.location='services_dyndns_edit.php?id=<?=$i;?>'">
+ <td class="listlr">
+ <?php $iflist = get_configured_interface_with_descr();
+ foreach ($iflist as $if => $ifdesc) {
+ if ($dyndns['interface'] == $if) {
+ if (!isset($dyndns['enable']))
+ echo "<span class=\"gray\">{$ifdesc}</span>";
+ else
+ echo "{$ifdesc}";
+ break;
+ }
+ }
+ $groupslist = return_gateway_groups_array();
+ foreach ($groupslist as $if => $group) {
+ if ($dyndns['interface'] == $if) {
+ if (!isset($dyndns['enable']))
+ echo "<span class=\"gray\">{$if}</span>";
+ else
+ echo "{$if}";
+ break;
+ }
+ }
+ ?>
+ </td>
+ <td class="listlr">
+ <?php
+ $types = explode(",", DYNDNS_PROVIDER_DESCRIPTIONS);
+ $vals = explode(" ", DYNDNS_PROVIDER_VALUES);
+ for ($j = 0; $j < count($vals); $j++)
+ if ($vals[$j] == $dyndns['type']) {
+ if (!isset($dyndns['enable']))
+ echo "<span class=\"gray\">".htmlspecialchars($types[$j])."</span>";
+ else
+ echo htmlspecialchars($types[$j]);
+ break;
+ }
+ ?>
+ </td>
+ <td class="listr">
+ <?php
+ if (!isset($dyndns['enable']))
+ echo "<span class=\"gray\">".htmlspecialchars($dyndns['host'])."</span>";
+ else
+ echo htmlspecialchars($dyndns['host']);
+ ?>
+ </td>
+ <td class="listlr">
+ <div id='dyndnsstatus<?php echo $i; ?>'><?php echo gettext("Checking ..."); ?></div>
+ </td>
+ </tr>
+ <?php $i++; endforeach; ?>
+</table>
+<script type="text/javascript">
+//<![CDATA[
+ function dyndns_getstatus() {
+ scroll(0,0);
+ var url = "/widgets/widgets/dyn_dns_status.widget.php";
+ var pars = 'getdyndnsstatus=yes';
+ jQuery.ajax(
+ url,
+ {
+ type: 'get',
+ data: pars,
+ complete: dyndnscallback
+ });
+ // Refresh the status every 5 minutes
+ setTimeout('dyndns_getstatus()', 5*60*1000);
+ }
+ function dyndnscallback(transport) {
+ // The server returns a string of statuses separated by vertical bars
+ var responseStrings = transport.responseText.split("|");
+ for (var count=0; count<responseStrings.length; count++)
+ {
+ var divlabel = '#dyndnsstatus' + count;
+ jQuery(divlabel).prop('innerHTML',responseStrings[count]);
+ }
+ }
+ // Do the first status check 2 seconds after the dashboard opens
+ setTimeout('dyndns_getstatus()', 2000);
+//]]>
+</script>
diff --git a/usr/local/www/widgets/widgets/gateways.widget.php b/usr/local/www/widgets/widgets/gateways.widget.php
index 0bc695c..1b7bd81 100644
--- a/usr/local/www/widgets/widgets/gateways.widget.php
+++ b/usr/local/www/widgets/widgets/gateways.widget.php
@@ -32,6 +32,7 @@ $nocsrf = true;
require_once("guiconfig.inc");
require_once("pfsense-utils.inc");
require_once("functions.inc");
+require_once("/usr/local/www/widgets/include/gateways.inc");
$a_gateways = return_gateways_array();
$gateways_status = array();
@@ -40,78 +41,102 @@ $gateways_status = return_gateways_status(true);
$counter = 1;
?>
- <table bgcolor="#990000" width="100%" border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td width="10%" class="listhdrr">Name</td>
- <td width="10%" class="listhdrr">Gateway</td>
- <td width="10%" class="listhdrr">RTT</td>
- <td width="10%" class="listhdrr">Loss</td>
- <td width="30%" class="listhdrr">Status</td>
- </tr>
- <?php foreach ($a_gateways as $gname => $gateway) { ?>
- <tr>
- <td class="listlr" id="gateway<?= $counter; ?>">
- <?=$gateway['name'];?>
- <?php $counter++; ?>
- </td>
- <td class="listr" align="center" id="gateway<?= $counter; ?>">
- <?php if (is_ipaddr($gateway['gateway']))
- echo $gateway['gateway'];
- else {
- if($gateway['ipprotocol'] == "inet")
- echo get_interface_gateway($gateway['friendlyiface']);
- if($gateway['ipprotocol'] == "inet6")
- echo get_interface_gateway_v6($gateway['friendlyiface']);
- }
- ?>
- <?php $counter++; ?>
- </td>
- <td class="listr" align="center" id="gateway<?= $counter; ?>">
- <?php if ($gateways_status[$gname])
- echo $gateways_status[$gname]['delay'];
- else
- echo gettext("Pending");
- ?>
- <?php $counter++; ?>
- </td>
- <td class="listr" align="center" id="gateway<?= $counter; ?>">
- <?php if ($gateways_status[$gname])
- echo $gateways_status[$gname]['loss'];
- else
- echo gettext("Pending");
- ?>
- <?php $counter++; ?>
- </td>
- <td class="listr" id="gateway<?=$counter?>" >
- <table border="0" cellpadding="0" cellspacing="2">
- <?php if ($gateways_status[$gname]) {
- if (stristr($gateways_status[$gname]['status'], "down")) {
- $online = "Offline";
- $bgcolor = "lightcoral";
- } elseif (stristr($gateways_status[$gname]['status'], "loss")) {
- $online = "Packetloss";
- $bgcolor = "khaki";
- } elseif (stristr($gateways_status[$gname]['status'], "delay")) {
- $online = "Latency";
- $bgcolor = "khaki";
- } elseif ($gateways_status[$gname]['status'] == "none") {
- $online = "Online";
- $bgcolor = "lightgreen";
- } elseif ($gateways_status[$gname]['status'] == "") {
- $online = "Pending";
- $bgcolor = "lightgray";
+
+<table bgcolor="#990000" width="100%" border="0" cellspacing="0" cellpadding="0" summary="gateway status">
+ <tr>
+ <td class="vncellt" width="30%" id="gatewayname">
+ Name
+ </td>
+ <td width="70%" class="listr">
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" summary="heading">
+ <tr>
+ <td width="25%" class="listhdrr">RTT</td>
+ <td width="25%" class="listhdrr">Loss</td>
+ <td width="50%" class="listhdrr">Status</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <?php foreach ($a_gateways as $gname => $gateway) { ?>
+ <tr>
+ <td class="vncellt" width="30%" id="gateway<?php echo $counter; ?>">
+ <strong>
+ <?php echo htmlspecialchars($gateway['name']); ?>
+ </strong>
+ <?php $counter++; ?>
+ </td>
+ <td width="70%" class="listr">
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" summary="address">
+ <tr>
+ <td class="vncellt" width="100%">
+ <div id="gateway<?php echo $counter; ?>" style="display:inline">
+ <?php
+ if (is_ipaddr($gateway['gateway']))
+ echo htmlspecialchars($gateway['gateway']);
+ else {
+ if($gateway['ipprotocol'] == "inet")
+ echo htmlspecialchars(get_interface_gateway($gateway['friendlyiface']));
+ if($gateway['ipprotocol'] == "inet6")
+ echo htmlspecialchars(get_interface_gateway_v6($gateway['friendlyiface']));
+ }
+ $counter++;
+ ?>
+ </div>
+ </td>
+ </tr>
+ </table>
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" summary="statistics">
+ <tr>
+ <td width="25%" class="listlr" align="center" id="gateway<?php echo $counter; ?>">
+ <?php
+ if ($gateways_status[$gname])
+ echo htmlspecialchars($gateways_status[$gname]['delay']);
+ else
+ echo gettext("Pending");
+ ?>
+ <?php $counter++; ?>
+ </td>
+ <td width="25%" class="listr" align="center" id="gateway<?php echo $counter; ?>">
+ <?php
+ if ($gateways_status[$gname])
+ echo htmlspecialchars($gateways_status[$gname]['loss']);
+ else
+ echo gettext("Pending");
+ ?>
+ <?php $counter++; ?>
+ </td>
+ <td width="50%" class="listr" id="gateway<?php echo $counter ?>" >
+ <table border="0" cellpadding="0" cellspacing="2" summary="status">
+ <?php
+ if ($gateways_status[$gname]) {
+ if (stristr($gateways_status[$gname]['status'], "down")) {
+ $online = "Offline";
+ $bgcolor = "#F08080"; // lightcoral
+ } elseif (stristr($gateways_status[$gname]['status'], "loss")) {
+ $online = "Packetloss";
+ $bgcolor = "#F0E68C"; // khaki
+ } elseif (stristr($gateways_status[$gname]['status'], "delay")) {
+ $online = "Latency";
+ $bgcolor = "#F0E68C"; // khaki
+ } elseif ($gateways_status[$gname]['status'] == "none") {
+ $online = "Online";
+ $bgcolor = "#90EE90"; // lightgreen
+ } elseif ($gateways_status[$gname]['status'] == "") {
+ $online = "Pending";
+ $bgcolor = "#D3D3D3"; // lightgray
+ }
+ } else {
+ $online = gettext("Unknown");
+ $bgcolor = "#ADD8E6"; // lightblue
}
- } else {
- $online = gettext("Unknown");
- $bgcolor = "lightblue";
- }
- echo "<tr><td bgcolor=\"$bgcolor\">$online</td></tr>\n";
- $counter++;
- ?>
- </table>
- </td>
- </tr>
- <?php
- }
- ?>
- </table>
+ echo "<tr><td bgcolor=\"$bgcolor\">&nbsp;$online&nbsp;</td></tr>\n";
+ $counter++;
+ ?>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <?php } // foreach ?>
+</table>
diff --git a/usr/local/www/widgets/widgets/gmirror_status.widget.php b/usr/local/www/widgets/widgets/gmirror_status.widget.php
index cbbead2..858d862 100644
--- a/usr/local/www/widgets/widgets/gmirror_status.widget.php
+++ b/usr/local/www/widgets/widgets/gmirror_status.widget.php
@@ -35,15 +35,15 @@ if ($_GET['textonly'] == "true") {
exit;
}
?>
-<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<table width="100%" border="0" cellspacing="0" cellpadding="0" summary="gmirror status">
<tbody id="gmirror_status_table">
<?php echo gmirror_html_status(); ?>
</tbody>
</table>
-<script type="text/javascript" language="javascript">
- // <![CDATA[
+<script type="text/javascript">
+//<![CDATA[
var gmirrorupdater = new Ajax.PeriodicalUpdater('gmirror_status_table', '/widgets/widgets/gmirror_status.widget.php?textonly=true',
{ method: 'get', frequency: 5 } );
- // ]]>
+//]]>
</script>
diff --git a/usr/local/www/widgets/widgets/installed_packages.widget.php b/usr/local/www/widgets/widgets/installed_packages.widget.php
index 53f8f79..800bb58 100644
--- a/usr/local/www/widgets/widgets/installed_packages.widget.php
+++ b/usr/local/www/widgets/widgets/installed_packages.widget.php
@@ -49,7 +49,7 @@ if(is_array($config['installedpackages']['package'])) {
$updateavailable = false;
?>
-<table width="100%" border="0" cellpadding="6" cellspacing="0">
+<table width="100%" border="0" cellpadding="6" cellspacing="0" summary="installed packages">
<tr>
<td width="15%" class="listhdrr">Package Name</td>
<td width="15%" class="listhdrr">Category</td>
@@ -78,11 +78,11 @@ $updateavailable = false;
$latest_package = $currentvers[$pkg['name']]['version'];
if($latest_package == false) {
// We can't determine this package's version status.
- echo "Current: Unknown.<br>Installed: " . $pkg['version'];
+ echo "Current: Unknown.<br/>Installed: " . $pkg['version'];
} elseif(strcmp($pkg['version'], $latest_package) > 0) {
/* we're running a newer version of the package */
echo "Current: {$latest_package}";
- echo "<br>Installed: {$pkg['version']}";
+ echo "<br/>Installed: {$pkg['version']}";
} elseif(strcmp($pkg['version'], $latest_package) < 0) {
/* our package is out of date */
$updateavailable = true;
@@ -91,7 +91,7 @@ $updateavailable = false;
<b>Update Available!</b></div><div style="float:left">
Current: <?php echo $latest_package; ?><br/>
Installed: <?php echo $pkg['version']; ?></div><div style="float:right">
- <a href="pkg_mgr_install.php?mode=reinstallpkg&pkg=<?= $pkg['name']; ?>"><img title="Update this package." src="./themes/<?= $g['theme']; ?>/images/icons/icon_reinstall_pkg.gif" width="17" height="17" border="0"/></a>
+ <a href="pkg_mgr_install.php?mode=reinstallpkg&amp;pkg=<?= $pkg['name']; ?>"><img title="Update this package." src="./themes/<?= $g['theme']; ?>/images/icons/icon_reinstall_pkg.gif" width="17" height="17" border="0" alt="reinstall" /></a>
</div>
<?php
$y++;
@@ -103,13 +103,14 @@ $updateavailable = false;
<?php }
}
} else {
- echo "<tr><td colspan=\"5\"><center>There are no packages currently installed.</td></tr>";
+ echo "<tr><td colspan=\"5\" align=\"center\">There are no packages currently installed.</td></tr>";
}
?>
</table>
<?php if ($updateavailable): ?>
-<script language="javascript" type="text/javascript">
+<script type="text/javascript">
+//<![CDATA[
window.onload = function(in_event)
{
for (y=1; y<=<?php echo $y;?>; y++){
@@ -117,5 +118,6 @@ $updateavailable = false;
jQuery(textID).effect('pulsate');
}
}
+//]]>
</script>
<?php endif; ?>
diff --git a/usr/local/www/widgets/widgets/interface_statistics.widget.php b/usr/local/www/widgets/widgets/interface_statistics.widget.php
index 7dca538..ff14a2e 100644
--- a/usr/local/www/widgets/widgets/interface_statistics.widget.php
+++ b/usr/local/www/widgets/widgets/interface_statistics.widget.php
@@ -82,7 +82,7 @@ require_once("/usr/local/www/widgets/include/interface_statistics.inc");
?>
<div style="padding: 5px">
<div id="int_labels" style="float:left;width:32%">
- <table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" summary="interfaces statistics">
<tr><td class="widgetsubheader" style="height:25px">&nbsp;&nbsp;&nbsp;</td></tr>
<tr>
<td class="vncellt" style="height:25px">Packets In</td>
@@ -109,15 +109,14 @@ require_once("/usr/local/www/widgets/include/interface_statistics.inc");
</div>
<div id="interfacestats" style="float:right;overflow: auto; width:68%">
- <table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" summary="the stats">
<tr>
- <tr>
<?php
$interface_names = array();
foreach ($ifdescrs as $ifdescr => $ifname):
$ifinfo = get_interface_info($ifdescr);
if ($ifinfo['status'] != "down"){ ?>
- <td class="widgetsubheader" nowrap style="height:25px">
+ <td class="widgetsubheader nowrap" style="height:25px">
<?=htmlspecialchars($ifname);?>
</td>
<?php
@@ -131,7 +130,7 @@ require_once("/usr/local/www/widgets/include/interface_statistics.inc");
<?php
$counter = 1;
foreach ($array_in_packets as $data): ?>
- <td class="listr" id="stat<?php echo $counter?>" nowrap style="height:25px">
+ <td class="listr nowrap" id="stat<?php echo $counter?>" style="height:25px">
<?=htmlspecialchars($data);?>
</td>
<?php
@@ -143,7 +142,7 @@ require_once("/usr/local/www/widgets/include/interface_statistics.inc");
<?php
$counter = 2;
foreach ($array_out_packets as $data): ?>
- <td class="listr" id="stat<?php echo $counter;?>" nowrap style="height:25px">
+ <td class="listr nowrap" id="stat<?php echo $counter;?>" style="height:25px">
<?=htmlspecialchars($data);?>
</td>
<?php
@@ -155,7 +154,7 @@ require_once("/usr/local/www/widgets/include/interface_statistics.inc");
<?php
$counter = 3;
foreach ($array_in_bytes as $data): ?>
- <td class="listr" id="stat<?php echo $counter;?>" nowrap style="height:25px">
+ <td class="listr nowrap" id="stat<?php echo $counter;?>" style="height:25px">
<?=htmlspecialchars($data);?>
</td>
<?php
@@ -167,7 +166,7 @@ require_once("/usr/local/www/widgets/include/interface_statistics.inc");
<?php
$counter = 4;
foreach ($array_out_bytes as $data): ?>
- <td class="listr" id="stat<?php echo $counter;?>" nowrap style="height:25px">
+ <td class="listr nowrap" id="stat<?php echo $counter;?>" style="height:25px">
<?=htmlspecialchars($data);?>
</td>
<?php
@@ -179,7 +178,7 @@ require_once("/usr/local/www/widgets/include/interface_statistics.inc");
<?php
$counter = 5;
foreach ($array_in_errors as $data): ?>
- <td class="listr" id="stat<?php echo $counter;?>" nowrap style="height:25px">
+ <td class="listr nowrap" id="stat<?php echo $counter;?>" style="height:25px">
<?=htmlspecialchars($data);?>
</td>
<?php
@@ -191,7 +190,7 @@ require_once("/usr/local/www/widgets/include/interface_statistics.inc");
<?php
$counter = 6;
foreach ($array_out_errors as $data): ?>
- <td class="listr" id="stat<?php echo $counter;?>" nowrap style="height:25px">
+ <td class="listr nowrap" id="stat<?php echo $counter;?>" style="height:25px">
<?=htmlspecialchars($data);?>
</td>
<?php
@@ -203,7 +202,7 @@ require_once("/usr/local/www/widgets/include/interface_statistics.inc");
<?php
$counter = 7;
foreach ($array_collisions as $data): ?>
- <td class="listr" id="stat<?php echo $counter;?>" nowrap style="height:25px">
+ <td class="listr nowrap" id="stat<?php echo $counter;?>" style="height:25px">
<?=htmlspecialchars($data);?>
</td>
<?php
@@ -212,4 +211,4 @@ require_once("/usr/local/www/widgets/include/interface_statistics.inc");
</tr>
</table>
</div>
- </div>
+ </div> \ No newline at end of file
diff --git a/usr/local/www/widgets/widgets/interfaces.widget.php b/usr/local/www/widgets/widgets/interfaces.widget.php
index a0393d5..1a9398b 100644
--- a/usr/local/www/widgets/widgets/interfaces.widget.php
+++ b/usr/local/www/widgets/widgets/interfaces.widget.php
@@ -42,7 +42,7 @@ require_once("/usr/local/www/widgets/include/interfaces.inc");
$ifdescrs = get_configured_interface_with_descr();
?>
- <table bgcolor="#990000" width="100%" border="0" cellspacing="0" cellpadding="0">
+ <table bgcolor="#990000" width="100%" border="0" cellspacing="0" cellpadding="0" summary="interfaces">
<?php
foreach ($ifdescrs as $ifdescr => $ifname) {
$ifinfo = get_interface_info($ifdescr);
@@ -52,18 +52,18 @@ require_once("/usr/local/www/widgets/include/interfaces.inc");
<td class="vncellt" width="40%">
<?php
if($ifinfo['ppplink']) {
- echo "<img src='./themes/{$g['theme']}/images/icons/icon_3g.gif' />";
+ echo "<img src='./themes/{$g['theme']}/images/icons/icon_3g.gif' alt='3g' />";
} else if($iswireless) {
if($ifinfo['status'] == "associated") { ?>
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_wlan.gif" />
- <? } else { ?>
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_wlan_d.gif" />
- <? } ?>
- <? } else { ?>
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_cablenic.gif"/>
- <? } ?>&nbsp;
+ <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_wlan.gif" alt="wlan" />
+ <?php } else { ?>
+ <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_wlan_d.gif" alt="wlan_d" />
+ <?php } ?>
+ <?php } else { ?>
+ <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_cablenic.gif" alt="cablenic" />
+ <?php } ?>&nbsp;
<strong><u>
- <span onClick="location.href='/interfaces.php?if=<?=$ifdescr; ?>'" style="cursor:pointer">
+ <span onclick="location.href='/interfaces.php?if=<?=$ifdescr; ?>'" style="cursor:pointer">
<?=htmlspecialchars($ifname);?></span></u></strong>
<?php
if ($ifinfo['dhcplink'])
@@ -71,45 +71,45 @@ require_once("/usr/local/www/widgets/include/interfaces.inc");
?>
</td>
<td width="60%" class="listr">
- <table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" summary="status">
<tr>
<?php if($ifinfo['status'] == "up" || $ifinfo['status'] == "associated") { ?>
<td>
- <div id="<?php echo $ifname;?>-up" style="display:inline" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_interface_up.gif" title="<?=$ifname;?> is up" /></div>
+ <div id="<?php echo $ifname;?>-up" style="display:inline" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_interface_up.gif" title="<?=$ifname;?> is up" alt="up" /></div>
</td>
<td>
- <div id="<?php echo $ifname;?>-down" style="display:none" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_interface_down.gif" title="<?=$ifname;?> is down" /></div>
+ <div id="<?php echo $ifname;?>-down" style="display:none" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_interface_down.gif" title="<?=$ifname;?> is down" alt="down" /></div>
</td>
<td>
- <div id="<?php echo $ifname;?>-block" style="display:none" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block.gif" title="<?=$ifname;?> is disabled" /></div>
+ <div id="<?php echo $ifname;?>-block" style="display:none" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block.gif" title="<?=$ifname;?> is disabled" alt="disabled" /></div>
</td>
- <? } else if ($ifinfo['status'] == "no carrier") { ?>
+ <?php } else if ($ifinfo['status'] == "no carrier") { ?>
<td>
- <div id="<?php echo $ifname;?>-down" style="display:inline" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_interface_down.gif" title="<?=$ifname;?> is down" /></div>
+ <div id="<?php echo $ifname;?>-down" style="display:inline" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_interface_down.gif" title="<?=$ifname;?> is down" alt="down" /></div>
</td>
<td>
- <div id="<?php echo $ifname;?>-block" style="display:none" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block.gif" title="<?=$ifname;?> is disabled" /></div>
+ <div id="<?php echo $ifname;?>-block" style="display:none" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block.gif" title="<?=$ifname;?> is disabled" alt="disabled" /></div>
</td>
<td>
- <div id="<?php echo $ifname;?>-up" style="display:none" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_interface_up.gif" title="<?=$ifname;?> is up" /></div>
+ <div id="<?php echo $ifname;?>-up" style="display:none" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_interface_up.gif" title="<?=$ifname;?> is up" alt="up" /></div>
</td>
- <? } else if ($ifinfo['status'] == "down") { ?>
+ <?php } else if ($ifinfo['status'] == "down") { ?>
<td>
- <div id="<?php echo $ifname;?>-block" style="display:inline" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block.gif" title="<?=$ifname;?> is disabled" /></div>
+ <div id="<?php echo $ifname;?>-block" style="display:inline" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block.gif" title="<?=$ifname;?> is disabled" alt="disabled" /></div>
</td>
<td>
- <div id="<?php echo $ifname;?>-up" style="display:none" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_interface_up.gif" title="<?=$ifname;?> is up" /></div>
+ <div id="<?php echo $ifname;?>-up" style="display:none" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_interface_up.gif" title="<?=$ifname;?> is up" alt="up" /></div>
</td>
<td>
- <div id="<?php echo $ifname;?>-down" style="display:none" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_interface_down.gif" title="<?=$ifname;?> is down" /></div>
+ <div id="<?php echo $ifname;?>-down" style="display:none" ><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_interface_down.gif" title="<?=$ifname;?> is down" alt="down" /></div>
</td>
- <? } else { ?><?=htmlspecialchars($ifinfo['status']); }?>
+ <?php } else { ?><?=htmlspecialchars($ifinfo['status']); }?>
<td>
<div id="<?php echo $ifname;?>-media" style="display:inline"><?=htmlspecialchars($ifinfo['media']);?></div>
</td>
</tr>
</table>
- <table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" summary="summary">
<tr>
<td class="vncellt" width="100%">
<div id="<?php echo $ifname;?>-ip" style="display:inline"><?=htmlspecialchars($ifinfo['ipaddr']);?> </div>
@@ -118,6 +118,6 @@ require_once("/usr/local/www/widgets/include/interfaces.inc");
</td>
</tr>
</table>
- <?php }//end for each ?>
</td></tr>
+ <?php }//end for each ?>
</table>
diff --git a/usr/local/www/widgets/widgets/ipsec.widget.php b/usr/local/www/widgets/widgets/ipsec.widget.php
index 836144b..b46445f 100644
--- a/usr/local/www/widgets/widgets/ipsec.widget.php
+++ b/usr/local/www/widgets/widgets/ipsec.widget.php
@@ -92,11 +92,11 @@ if (isset($config['ipsec']['phase1'])){?>
<div id="ipsec-Overview" style="display:block;background-color:#EEEEEE;">
<div>
- <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0" summary="heading">
<tr>
- <td nowrap class="listhdrr">Active Tunnels</td>
- <td nowrap class="listhdrr">Inactive Tunnels</td>
- <td nowrap class="listhdrr">Mobile Users</td>
+ <td class="listhdrr nowrap">Active Tunnels</td>
+ <td class="listhdrr nowrap">Inactive Tunnels</td>
+ <td class="listhdrr nowrap">Mobile Users</td>
</tr>
<tr>
<td class="listlr"><?php echo $activecounter; ?></td>
@@ -141,7 +141,7 @@ if (isset($config['ipsec']['phase1'])){?>
(<?php echo htmlspecialchars($ipsec['dest']);?>)<?php echo $spane;?>
</div>
<div class="listr" style="display:table-cell;width:90px"><?php echo $spans;?><?php echo htmlspecialchars($ipsec['descr']);?><?php echo $spane;?></div>
- <div class="listr" style="display:table-cell;width:37px"><?php echo $spans;?><center>
+ <div class="listr" style="display:table-cell;width:37px" align="center"><?php echo $spans;?>
<?php
if($ipsec['status'] == "true") {
@@ -152,9 +152,9 @@ if (isset($config['ipsec']['phase1'])){?>
$iconfn = "interface_down";
}
- echo "<img src ='/themes/{$g['theme']}/images/icons/icon_{$iconfn}.gif'>";
+ echo "<img src ='/themes/{$g['theme']}/images/icons/icon_{$iconfn}.gif' alt='Tunnel status' width='11' height='11' />";
- ?></center><?php echo $spane;?></div>
+ ?><?php echo $spane;?></div>
</div>
<?php endforeach; ?>
</div>
@@ -178,8 +178,8 @@ if (isset($config['ipsec']['phase1'])){?>
<?php echo htmlspecialchars($muser['local']);?><br/>
<?php echo htmlspecialchars($muser['remote']);?>
</div>
- <div class="listr" style="display:table-cell;width:30px">
- <center><a href="diag_ipsec.php?act=disconnect&user=<?php echo $muser['username']; ?>"><img src='/themes/<?php echo $g['theme']; ?>/images/icons/icon_x.gif' height='17' width='17' border='0'/></a></center>
+ <div class="listr" style="display:table-cell;width:30px" align="center">
+ <a href="diag_ipsec.php?act=disconnect&amp;user=<?php echo $muser['username']; ?>"><img src='/themes/<?php echo $g['theme']; ?>/images/icons/icon_x.gif' height='17' width='17' border='0' alt='x' /></a>
</div>
</div>
<?php endforeach; ?>
@@ -190,10 +190,9 @@ if (isset($config['ipsec']['phase1'])){?>
}//end if tunnels are configured, else show code below
else { ?>
<div style="display:block">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="note">
<tr>
<td colspan="4">
- <p>
<span class="vexpl">
<span class="red">
<strong>
@@ -203,9 +202,8 @@ else { ?>
You can configure your IPsec
<a href="vpn_ipsec.php">here</a>.
</span>
- </p>
</td>
</tr>
</table>
</div>
-<? } ?> \ No newline at end of file
+<?php } ?>
diff --git a/usr/local/www/widgets/widgets/load_balancer_status.widget.php b/usr/local/www/widgets/widgets/load_balancer_status.widget.php
index 63f8bc4..3ec5ba6 100644
--- a/usr/local/www/widgets/widgets/load_balancer_status.widget.php
+++ b/usr/local/www/widgets/widgets/load_balancer_status.widget.php
@@ -62,7 +62,7 @@ if (!$nentries)
?>
-<table bgcolor="#990000" width="100%" border="0" cellspacing="0" cellpadding="0">
+<table bgcolor="#990000" width="100%" border="0" cellspacing="0" cellpadding="0" summary="load balancer">
<tr>
<td width="10%" class="listhdrr">Server</td>
<td width="10%" class="listhdrr">Pool</td>
@@ -73,15 +73,15 @@ if (!$nentries)
<?php
switch (trim($rdr_a[$vsent['name']]['status'])) {
case 'active':
- $bgcolor = "lightgreen";
+ $bgcolor = "#90EE90"; // lightgreen
$rdr_a[$vsent['name']]['status'] = "Active";
break;
case 'down':
- $bgcolor = "lightcoral";
+ $bgcolor = "#F08080"; // lightcoral
$rdr_a[$vsent['name']]['status'] = "Down";
break;
default:
- $bgcolor = "lightgray";
+ $bgcolor = "#D3D3D3"; // lightgray
$rdr_a[$vsent['name']]['status'] = 'Unknown - relayd not running?';
}
?>
@@ -91,7 +91,7 @@ if (!$nentries)
<?=$vsent['ipaddr'].":".$vsent['port'];?><br/>
</td>
<td class="listr" align="center" >
- <table border="0" cellpadding="0" cellspacing="2">
+ <table border="0" cellpadding="0" cellspacing="2" summary="status">
<?php
foreach ($a_pool as $pool) {
if ($pool['name'] == $vsent['pool']) {
@@ -113,22 +113,22 @@ if (!$nentries)
if($server['ip']['addr']!="") {
switch ($server['ip']['state']) {
case 'up':
- $bgcolor = "lightgreen";
+ $bgcolor = "#90EE90"; // lightgreen
$checked = "checked";
break;
case 'disabled':
- $bgcolor = "white";
+ $bgcolor = "#FFFFFF"; // white
$checked = "";
break;
default:
- $bgcolor = "lightcoral";
+ $bgcolor = "#F08080"; // lightcoral
$checked = "checked";
}
echo "<tr>";
- echo "<td bgcolor={$bgcolor}> {$server['ip']['addr']}:{$pool['port']} </td><td bgcolor={$bgcolor}>";
+ echo "<td bgcolor={$bgcolor}>&nbsp;{$server['ip']['addr']}:{$pool['port']}&nbsp;</td><td bgcolor={$bgcolor}>&nbsp;";
if($server['ip']['avail'])
echo " ({$server['ip']['avail']}) ";
- echo "</td></tr>";
+ echo "&nbsp;</td></tr>";
}
}
}
diff --git a/usr/local/www/widgets/widgets/log.widget.php b/usr/local/www/widgets/widgets/log.widget.php
index 3d5e26d..bb38d8d 100644
--- a/usr/local/www/widgets/widgets/log.widget.php
+++ b/usr/local/www/widgets/widgets/log.widget.php
@@ -41,12 +41,26 @@ require_once("functions.inc");
require_once("filter_log.inc");
if($_POST['filterlogentries']) {
- $config['widgets']['filterlogentries'] = $_POST['filterlogentries'];
+ unset($config['widgets']['filterlogentries']);
+ if( ($_POST['filterlogentries']) and ($_POST['filterlogentries'] != ' ') ) $config['widgets']['filterlogentries'] = $_POST['filterlogentries'];
+
+ unset($config['widgets']['filterlogentriesacts']);
+ if($_POST['actpass']) $config['widgets']['filterlogentriesacts'] .= $_POST['actpass'] . " ";
+ if($_POST['actblock']) $config['widgets']['filterlogentriesacts'] .= $_POST['actblock'] . " ";
+ if($_POST['actreject']) $config['widgets']['filterlogentriesacts'] .= $_POST['actreject'] . " ";
+ if (isset($config['widgets']['filterlogentriesacts'])) $config['widgets']['filterlogentriesacts'] = trim($config['widgets']['filterlogentriesacts']);
+
+ unset($config['widgets']['filterlogentriesinterfaces']);
+ if( ($_POST['filterlogentriesinterfaces']) and ($_POST['filterlogentriesinterfaces'] != "All") ) $config['widgets']['filterlogentriesinterfaces'] = $_POST['filterlogentriesinterfaces'];
+ if (isset($config['widgets']['filterlogentriesinterfaces'])) $config['widgets']['filterlogentriesinterfaces'] = trim($config['widgets']['filterlogentriesinterfaces']);
+
write_config("Saved Filter Log Entries via Dashboard");
$filename = $_SERVER['HTTP_REFERER'];
if(headers_sent($file, $line)){
echo '<script type="text/javascript">';
+ echo '//<![CDATA[';
echo 'window.location.href="'.$filename.'";';
+ echo '//]]>';
echo '</script>';
echo '<noscript>';
echo '<meta http-equiv="refresh" content="0;url='.$filename.'" />';
@@ -58,15 +72,24 @@ if($_POST['filterlogentries']) {
$nentries = isset($config['widgets']['filterlogentries']) ? $config['widgets']['filterlogentries'] : 5;
//set variables for log
+
+$nentriesacts = isset($config['widgets']['filterlogentriesacts']) ? $config['widgets']['filterlogentriesacts'] : 'All';
+$nentriesinterfaces = isset($config['widgets']['filterlogentriesinterfaces']) ? $config['widgets']['filterlogentriesinterfaces'] : 'All';
+
+$filterfieldsarray = array("act", "interface");
+$filterfieldsarray['act'] = $nentriesacts;
+$filterfieldsarray['interface'] = $nentriesinterfaces;
+
$filter_logfile = "{$g['varlog_path']}/filter.log";
-$filterlog = conv_log_filter($filter_logfile, $nentries);
+$filterlog = conv_log_filter($filter_logfile, $nentries, 50, $filterfieldsarray); //Get log entries
/* AJAX related routines */
handle_ajax($nentries, $nentries + 20);
?>
-<script language="javascript">
+<script type="text/javascript">
+//<![CDATA[
lastsawtime = '<?php echo time(); ?>';
var lines = Array();
var timer;
@@ -84,55 +107,105 @@ else
/* Called by the AJAX updater */
function format_log_line(row) {
- var line = '';
- line = ' <span class="log-action-mini" nowrap>&nbsp;' + row[0] + '&nbsp;</span>';
- line += ' <span class="log-interface-mini" nowrap>' + row[2] + '</span>';
- line += ' <span class="log-source-mini" nowrap>' + row[3] + '</span>';
- line += ' <span class="log-destination-mini" nowrap>' + row[4] + '</span>';
- line += ' <span class="log-protocol-mini" nowrap>' + row[5] + '</span>';
+ var line = '<td class="listMRlr" align="center">' + row[0] + '<\/td>' +
+ '<td class="listMRr ellipsis" title="' + row[2] + '">' + row[2] + '<\/td>' +
+ '<td class="listMRr ellipsis" title="' + row[3] + '">' + row[3] + '<\/td>' +
+ '<td class="listMRr ellipsis" title="' + row[4] + '">' + row[4] + '<\/td>' +
+ '<td class="listMRr ellipsis" title="' + row[5] + '">' + row[5] + '<\/td>';
+
+ var nentriesacts = "<?php echo $nentriesacts; ?>";
+ var nentriesinterfaces = "<?php echo $nentriesinterfaces; ?>";
+
+ var Action = row[0].match(/alt=.*?(pass|block|reject)/i).join("").match(/pass|block|reject/i).join("");
+ var Interface = row[2];
+
+ if ( !(in_arrayi(Action, nentriesacts.replace (/\s+/g, ',').split(',') ) ) && (nentriesacts != 'All') ) return false;
+ if ( !(in_arrayi(Interface, nentriesinterfaces.replace(/\s+/g, ',').split(',') ) ) && (nentriesinterfaces != 'All') ) return false;
+
return line;
}
+//]]>
</script>
<script src="/javascript/filter_log.js" type="text/javascript"></script>
-<input type="hidden" id="log-config" name="log-config" value="">
+<input type="hidden" id="log-config" name="log-config" value="" />
-<div id="log-settings" name="log-settings" class="widgetconfigdiv" style="display:none;">
+<div id="log-settings" class="widgetconfigdiv" style="display:none;">
<form action="/widgets/widgets/log.widget.php" method="post" name="iforma">
Number of lines to display:
<select name="filterlogentries" class="formfld unknown" id="filterlogentries">
- <?php for ($i = 1; $i <= 20; $i++) { ?>
- <option value="<?php echo $i;?>" <?php if ($nentries == $i) echo "SELECTED";?>><?php echo $i;?></option>
+ <?php for ($i = 0; $i <= 20; $i++) { ?>
+ <option value="<?php if ($i > 0) echo $i; else echo ' ';?>" <?php if ($nentries == $i) echo "selected=\"selected\"";?>><?php if ($i > 0) echo ' ' . $i; else echo ' ';?></option>
<?php } ?>
- </select><br/>
- <input id="submita" name="submita" type="submit" class="formbtn" value="Save" />
+ </select>
+
+<?php
+ $Include_Act = explode(",", str_replace(" ", ",", $nentriesacts));
+ if ($nentriesinterfaces == "All") $nentriesinterfaces = "";
+?>
+ <input id="actpass" name="actpass" type="checkbox" value="Pass" <?php if (in_arrayi('Pass', $Include_Act)) echo "checked=\"checked\""; ?> /> Pass
+ <input id="actblock" name="actblock" type="checkbox" value="Block" <?php if (in_arrayi('Block', $Include_Act)) echo "checked=\"checked\""; ?> /> Block
+ <input id="actreject" name="actreject" type="checkbox" value="Reject" <?php if (in_arrayi('Reject', $Include_Act)) echo "checked=\"checked\""; ?> /> Reject
+ <br/>
+ Interfaces:
+ <input id="filterlogentriesinterfaces" name="filterlogentriesinterfaces" class="formfld unknown" type="text" size="20" value="<?= $nentriesinterfaces ?>" />
+ &nbsp; &nbsp; &nbsp;
+
+ <input id="submita" name="submita" type="submit" class="formbtn" value="Save" />
</form>
</div>
-<div class="log-header">
- <span class="log-action-mini-header">Act</span>
- <span class="log-interface-mini-header">IF</span>
- <span class="log-source-mini-header">Source</span>
- <span class="log-destination-mini-header">Destination</span>
- <span class="log-protocol-mini-header">Prot</span>
-</div>
-<?php $counter=0; foreach ($filterlog as $filterent): ?>
-<div class="log-entry-mini" <?php echo is_first_row($counter, count($filterlog)); ?> style="clear:both;">
- <span class="log-action-mini" nowrap>
- &nbsp;<a href="#" onClick="javascript:getURL('diag_logs_filter.php?getrulenum=<?php echo "{$filterent['rulenum']},{$filterent['act']}"; ?>', outputrule);"><img border="0" src="<?php echo find_action_image($filterent['act']);?>" alt="<?php echo $filterent['act'];?>" title="<?php echo $filterent['act'];?>" /></a>&nbsp;</span>
- <span class="log-interface-mini"><?php echo htmlspecialchars($filterent['interface']);?>&nbsp;</span>
- <span class="log-source-mini"><?php echo htmlspecialchars($filterent['src']);?>&nbsp;</span>
- <span class="log-destination-mini"><?php echo (strlen($filterent['dst']) < 19 ? htmlspecialchars($filterent['dst']) : htmlspecialchars(substr($filterent['dst'],0,18))."..."); ?>&nbsp;</span>
+<table width="100%" border="0" cellpadding="0" cellspacing="0" style="table-layout: fixed;" summary="logs">
+ <colgroup>
+ <col style='width: 8%;' />
+ <col style='width: 10%;' />
+ <col style='width: 35%;' />
+ <col style='width: 35%;' />
+ <col style='width: 12%;' />
+ </colgroup>
+ <thead>
+ <tr>
+ <td class="listhdrr"><?=gettext("Act");?></td>
+ <td class="listhdrr"><?=gettext("IF");?></td>
+ <td class="listhdrr"><?=gettext("Source");?></td>
+ <td class="listhdrr"><?=gettext("Destination");?></td>
+ <td class="listhdrr"><?=gettext("Prot");?></td>
+ </tr>
+ </thead>
+ <tbody id='filter-log-entries'>
<?php
- if ($filterent['proto'] == "TCP")
- $filterent['proto'] .= ":{$filterent['tcpflags']}";
+ $rowIndex = 0;
+ foreach ($filterlog as $filterent):
+ $evenRowClass = $rowIndex % 2 ? " listMReven" : " listMRodd";
+ $rowIndex++;
?>
- <span class="log-protocol-mini"><?php echo htmlspecialchars($filterent['proto']);?>&nbsp;</span>
-</div>
-<?php $counter++; endforeach; ?>
+ <tr class="<?=$evenRowClass?>">
+ <td class="listMRlr" nowrap="nowrap" align="center">
+ <a href="#" onclick="javascript:getURL('diag_logs_filter.php?getrulenum=<?php echo "{$filterent['rulenum']},{$filterent['act']}"; ?>', outputrule);">
+ <img border="0" src="<?php echo find_action_image($filterent['act']);?>" width="11" height="11" alt="<?php echo $filterent['act'];?>" title="<?php echo $filterent['act'];?>" />
+ </a>
+ </td>
+ <td class="listMRr ellipsis nowrap" title="<?php echo htmlspecialchars($filterent['interface']);?>"><?php echo htmlspecialchars($filterent['interface']);?></td>
+ <td class="listMRr ellipsis nowrap" title="<?php echo htmlspecialchars($filterent['src']);?>">
+ <a href="#" onclick="javascript:getURL('diag_dns.php?host=<?php echo "{$filterent['srcip']}"; ?>&dialog_output=true', outputrule);" title="<?=gettext("Reverse Resolve with DNS");?>">
+ <?php echo htmlspecialchars($filterent['srcip']);?></a><?php echo ":" . htmlspecialchars($filterent['srcport']);?></td>
+ <td class="listMRr ellipsis nowrap" title="<?php echo htmlspecialchars($filterent['dst']);?>">
+ <a href="#" onclick="javascript:getURL('diag_dns.php?host=<?php echo "{$filterent['dstip']}"; ?>&dialog_output=true', outputrule);" title="<?=gettext("Reverse Resolve with DNS");?>">
+ <?php echo htmlspecialchars($filterent['dstip']);?></a><?php echo ":" . htmlspecialchars($filterent['dstport']);?></td>
+ <?php
+ if ($filterent['proto'] == "TCP")
+ $filterent['proto'] .= ":{$filterent['tcpflags']}";
+ ?>
+ <td class="listMRr ellipsis nowrap" title="<?php echo htmlspecialchars($filterent['proto']);?>"><?php echo htmlspecialchars($filterent['proto']);?></td>
+ </tr>
+ <?php endforeach; ?>
+ </tbody>
+</table>
<!-- needed to display the widget settings menu -->
-<script language="javascript" type="text/javascript">
+<script type="text/javascript">
+//<![CDATA[
selectIntLink = "log-configure";
textlink = document.getElementById(selectIntLink);
textlink.style.display = "inline";
+//]]>
</script>
diff --git a/usr/local/www/widgets/widgets/picture.widget.php b/usr/local/www/widgets/widgets/picture.widget.php
index 27b9df2..145768c 100644
--- a/usr/local/www/widgets/widgets/picture.widget.php
+++ b/usr/local/www/widgets/widgets/picture.widget.php
@@ -69,26 +69,27 @@ if($_POST) {
?>
-<input type="hidden" id="picture-config" name="picture-config" value="">
+<input type="hidden" id="picture-config" name="picture-config" value="" />
-<div id="picture-settings" name="picture-settings" class="widgetconfigdiv" style="display:none;">
- </form>
+<div id="picture-settings" class="widgetconfigdiv" style="display:none;">
<form action="/widgets/widgets/picture.widget.php" method="post" name="iforma" enctype="multipart/form-data">
- <input name="pictfile" type="file" class="formfld unknown" id="pictfile" size="20"></p>
+ <input name="pictfile" type="file" class="formfld unknown" id="pictfile" size="20" />
<input id="submita" name="submita" type="submit" class="formbtn" value="Upload" /><br/>
<b>NOTE:</b> Best image size is 350x350 or smaller.
</form>
</div>
<div id="picture-widgets" style="padding: 5px">
- <a href='/widgets/widgets/picture.widget.php?getpic=true' target='_new'>
- <img border=0 width="350" height="350" src="/widgets/widgets/picture.widget.php?getpic=true">
+ <a href='/widgets/widgets/picture.widget.php?getpic=true' target='_blank'>
+ <img border="0" width="350" height="350" src="/widgets/widgets/picture.widget.php?getpic=true" alt="picture" />
</a>
</div>
<!-- needed to show the settings widget icon -->
-<script language="javascript" type="text/javascript">
+<script type="text/javascript">
+//<![CDATA[
selectIntLink = "picture-configure";
textlink = document.getElementById(selectIntLink);
textlink.style.display = "inline";
+//]]>
</script>
diff --git a/usr/local/www/widgets/widgets/rss.widget.php b/usr/local/www/widgets/widgets/rss.widget.php
index d7bbcbd..f955fcd 100644
--- a/usr/local/www/widgets/widgets/rss.widget.php
+++ b/usr/local/www/widgets/widgets/rss.widget.php
@@ -76,14 +76,13 @@ else
?>
-<input type="hidden" id="rss-config" name="rss-config" value="">
+<input type="hidden" id="rss-config" name="rss-config" value="" />
-<div id="rss-settings" name="rss-settings" class="widgetconfigdiv" style="display:none;">
- </form>
- <form action="/widgets/widgets/rss.widget.php" method="post" name="iforma">
- <textarea name=rssfeed class="formfld unknown" id="rssfeed" cols="40" rows="3"><?=$textarea_txt;?></textarea>
+<div id="rss-settings" class="widgetconfigdiv" style="display:none;">
+ <form action="/widgets/widgets/rss.widget.php" method="post" name="iformc">
+ <textarea name="rssfeed" class="formfld unknown" id="rssfeed" cols="40" rows="3"><?=$textarea_txt;?></textarea>
<br/>
- <table>
+ <table summary="rss widget">
<tr>
<td align="right">
Display number of items:
@@ -131,7 +130,7 @@ else
&nbsp;
</td>
<td>
- <input id="submita" name="submita" type="submit" class="formbtn" value="Save" />
+ <input id="submitc" name="submitc" type="submit" class="formbtn" value="Save" />
</td>
</tr>
</table>
@@ -162,11 +161,11 @@ else
foreach($feed->get_items() as $item) {
$feed = $item->get_feed();
$feed->strip_htmltags();
- echo "<a target='_new' href='" . $item->get_permalink() . "'>" . $item->get_title() . "</a><br/>";
+ echo "<a target='blank' href='" . $item->get_permalink() . "'>" . $item->get_title() . "</a><br/>";
$content = $item->get_content();
$content = strip_tags($content);
echo textLimit($content, $rsswidgettextlength) . "<br/>";
- echo "Source: <a target='_new' href='" . $item->get_permalink() . "'><img src='" . $feed->get_favicon() . "' alt='" . $feed->get_title() . "' title='" . $feed->get_title() . "' border='0' width='16' height='16'></a><br/>";
+ echo "Source: <a target='_blank' href='" . $item->get_permalink() . "'><img src='" . $feed->get_favicon() . "' alt='" . $feed->get_title() . "' title='" . $feed->get_title() . "' border='0' width='16' height='16' /></a><br/>";
$counter++;
if($counter > $max_items)
break;
@@ -176,8 +175,10 @@ else
</div>
<!-- needed to display the widget settings menu -->
-<script language="javascript" type="text/javascript">
+<script type="text/javascript">
+//<![CDATA[
selectIntLink = "rss-configure";
textlink = document.getElementById(selectIntLink);
textlink.style.display = "inline";
+//]]>
</script>
diff --git a/usr/local/www/widgets/widgets/services_status.widget.php b/usr/local/www/widgets/widgets/services_status.widget.php
index 371766d..9ae8696 100644
--- a/usr/local/www/widgets/widgets/services_status.widget.php
+++ b/usr/local/www/widgets/widgets/services_status.widget.php
@@ -1,6 +1,6 @@
<?php
/*
- services_status.php
+ services_status.widget.php
Copyright (C) 2004, 2005 Scott Ullrich
All rights reserved.
@@ -46,21 +46,21 @@ if(isset($_POST['servicestatusfilter'])) {
header("Location: ../../index.php");
}
?>
-<input type="hidden" id="services_status-config" name="services_status-config" value="">
-<div id="services_status-settings" name="services_status-settings" class="widgetconfigdiv" style="display:none;">
- <form action="/widgets/widgets/services_status.widget.php" method="post" name="iforma">
+<input type="hidden" id="services_status-config" name="services_status-config" value="" />
+<div id="services_status-settings" class="widgetconfigdiv" style="display:none;">
+ <form action="/widgets/widgets/services_status.widget.php" method="post" name="iformd">
Comma separated list of services to NOT display in the widget<br />
- <input type="text" length="30" name="servicestatusfilter" class="formfld unknown" id="servicestatusfilter" value="<?= $config['widgets']['servicestatusfilter'] ?>">
- <input id="submita" name="submita" type="submit" class="formbtn" value="Save" />
+ <input type="text" size="30" name="servicestatusfilter" class="formfld unknown" id="servicestatusfilter" value="<?= $config['widgets']['servicestatusfilter'] ?>" />
+ <input id="submitd" name="submitd" type="submit" class="formbtn" value="Save" />
</form>
</div>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="services">
<tr>
- <td class="widgetsubheader"><b><center>Service</center></b></td>
- <td class="widgetsubheader"><b><center>Description</center></b></td>
- <td class="widgetsubheader"><b><center>Status</center></b></td>
- <td class="widgetsubheader">&nbsp;</td>
+ <td class="widgetsubheader" align="center"><b>Service</b></td>
+ <td class="widgetsubheader" align="center"><b>Description</b></td>
+ <td class="widgetsubheader" align="center"><b>Status</b></td>
+ <td class="widgetsubheader">&nbsp;</td>
</tr>
<?php
$skipservices = explode(",", $config['widgets']['servicestatusfilter']);
@@ -68,26 +68,29 @@ $skipservices = explode(",", $config['widgets']['servicestatusfilter']);
if (count($services) > 0) {
uasort($services, "service_name_compare");
foreach($services as $service) {
- if((!$service['name']) || (in_array($service['name'], $skipservices)))
+ if((!$service['name']) || (in_array($service['name'], $skipservices)) || (!is_service_enabled($service['name'])))
continue;
if (empty($service['description']))
$service['description'] = get_pkg_descr($service['name']);
+ $service_desc = explode(".",$service['description']);
echo '<tr><td class="listlr">' . $service['name'] . '</td>' . "\n";
- echo '<td class="listr">' . $service['description'] . '</td>' . "\n";
+ echo '<td class="listr">' . $service_desc[0] . '</td>' . "\n";
echo get_service_status_icon($service, false, true);
- echo '<td valign="middle" class="list" nowrap>';
+ echo '<td valign="middle" class="list nowrap">';
echo get_service_control_links($service);
echo "</td></tr>\n";
}
} else {
- echo "<tr><td colspan=\"3\"><center>" . gettext("No services found") . ".</td></tr>\n";
+ echo "<tr><td colspan=\"3\" align=\"center\">" . gettext("No services found") . ".</td></tr>\n";
}
?>
</table>
<!-- needed to display the widget settings menu -->
-<script language="javascript" type="text/javascript">
+<script type="text/javascript">
+//<![CDATA[
selectIntLink = "services_status-configure";
textlink = document.getElementById(selectIntLink);
textlink.style.display = "inline";
+//]]>
</script>
diff --git a/usr/local/www/widgets/widgets/smart_status.widget.php b/usr/local/www/widgets/widgets/smart_status.widget.php
index 31bc56a..647b1d4 100644
--- a/usr/local/www/widgets/widgets/smart_status.widget.php
+++ b/usr/local/www/widgets/widgets/smart_status.widget.php
@@ -29,13 +29,14 @@
require_once("guiconfig.inc");
require_once("pfsense-utils.inc");
require_once("functions.inc");
+require_once("/usr/local/www/widgets/include/smart_status.inc");
?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="smart status">
<tr>
- <td class="widgetsubheader"><b><center><?php echo gettext("Drive") ?></center></b></td>
- <td class="widgetsubheader"><b><center><?php echo gettext("Ident") ?></center></b></td>
- <td class="widgetsubheader"><b><center><?php echo gettext("SMART Status") ?></center></b></td>
+ <td class="widgetsubheader" align="center"><b><?php echo gettext("Drive") ?></b></td>
+ <td class="widgetsubheader" align="center"><b><?php echo gettext("Ident") ?></b></td>
+ <td class="widgetsubheader" align="center"><b><?php echo gettext("SMART Status") ?></b></td>
</tr>
<?php
@@ -53,10 +54,9 @@ if(count($devs) > 0) {
<tr>
<td class="listlr"><?php echo $dev; ?></td>
<td class="listr" align="center"><?php echo $dev_ident; ?></td>
- <td class="listr" align="center"><span style="background-color:<?php echo $color; ?>"><?php echo $dev_state; ?></span></td>
+ <td class="listr" align="center"><span style="background-color:<?php echo $color; ?>">&nbsp;<?php echo $dev_state; ?>&nbsp;</span></td>
</tr>
<?php }
}
?>
</table>
-<center><a href="diag_smart.php" class="navlink">SMART Status</a></center> \ No newline at end of file
diff --git a/usr/local/www/widgets/widgets/system_information.widget.php b/usr/local/www/widgets/widgets/system_information.widget.php
index 82f3415..8d17df7 100644
--- a/usr/local/www/widgets/widgets/system_information.widget.php
+++ b/usr/local/www/widgets/widgets/system_information.widget.php
@@ -31,11 +31,10 @@
POSSIBILITY OF SUCH DAMAGE.
*/
-$nocsrf = true;
-
require_once("functions.inc");
require_once("guiconfig.inc");
require_once('notices.inc');
+include_once("includes/functions.inc.php");
if($_REQUEST['getupdatestatus']) {
if(isset($config['system']['firmware']['disablecheck'])) {
@@ -82,8 +81,8 @@ if($_REQUEST['getupdatestatus']) {
$curcfg = $config['system']['firmware'];
?>
-</script>
-<table width="100%" border="0" cellspacing="0" cellpadding="0">
+
+<table width="100%" border="0" cellspacing="0" cellpadding="0" summary="system information">
<tbody>
<tr>
<td width="25%" class="vncellt">Name</td>
@@ -97,7 +96,7 @@ $curcfg = $config['system']['firmware'];
<br />
built on <?php readfile("/etc/version.buildtime"); ?>
<br />
- <div name="uname" id="uname"><a href="#" onClick='swapuname(); return false;'><?php echo php_uname("s") . " " . php_uname("r"); ?></a></div>
+ <div id="uname"><a href="#" onclick='swapuname(); return false;'><?php echo php_uname("s") . " " . php_uname("r"); ?></a></div>
<?php if(!isset($config['system']['firmware']['disablecheck'])): ?>
<div id='updatestatus'><br/><?php echo gettext("Obtaining update status"); ?> ...</div>
<?php endif; ?>
@@ -167,7 +166,7 @@ $curcfg = $config['system']['firmware'];
<?php
$dns_servers = get_dns_servers();
foreach($dns_servers as $dns) {
- echo "{$dns}<br>";
+ echo "{$dns}<br/>";
}
?>
</td>
@@ -201,7 +200,7 @@ $curcfg = $config['system']['firmware'];
<td width="25%" class="vncellt">Temperature</td>
<td width="75%" class="listr">
<?php $TempMeter = $temp = get_temp(); ?>
- <img src="./themes/<?= $g['theme']; ?>/images/misc/bar_left.gif" height="15" width="4" border="0" align="middle" alt="left bar" /><img src="./themes/<?= $g['theme']; ?>/images/misc/bar_blue.gif" height="15" name="tempwidtha" id="tempwidtha" width="<?= $TempMeter; ?>" border="0" align="middle" alt="red bar" /><img src="./themes/<?= $g['theme']; ?>/images/misc/bar_gray.gif" height="15" name="tempwidthb" id="tempwidthb" width="<?= (100 - $TempMeter); ?>" border="0" align="middle" alt="gray bar" /><img src="./themes/<?= $g['theme']; ?>/images/misc/bar_right.gif" height="15" width="5" border="0" align="middle" alt="right bar" />
+ <img src="./themes/<?= $g['theme']; ?>/images/misc/bar_left.gif" height="15" width="4" border="0" align="middle" alt="left bar" /><img src="./themes/<?= $g['theme']; ?>/images/misc/bar_blue.gif" height="15" name="tempwidtha" id="tempwidtha" width="<?= round($TempMeter); ?>" border="0" align="middle" alt="red bar" /><img src="./themes/<?= $g['theme']; ?>/images/misc/bar_gray.gif" height="15" name="tempwidthb" id="tempwidthb" width="<?= (100 - $TempMeter); ?>" border="0" align="middle" alt="gray bar" /><img src="./themes/<?= $g['theme']; ?>/images/misc/bar_right.gif" height="15" width="5" border="0" align="middle" alt="right bar" />
&nbsp;
<span id="tempmeter"><?= $temp."&#176;C"; ?></span>
</td>
@@ -254,6 +253,7 @@ $curcfg = $config['system']['firmware'];
</tbody>
</table>
<script type="text/javascript">
+//<![CDATA[
function swapuname() {
jQuery('#uname').html("<?php echo php_uname("a"); ?>");
}
@@ -277,4 +277,5 @@ $curcfg = $config['system']['firmware'];
}
setTimeout('getstatus()', 4000);
<?php endif; ?>
+//]]>
</script>
diff --git a/usr/local/www/widgets/widgets/thermal_sensors.widget.php b/usr/local/www/widgets/widgets/thermal_sensors.widget.php
new file mode 100644
index 0000000..12c5a2f
--- /dev/null
+++ b/usr/local/www/widgets/widgets/thermal_sensors.widget.php
@@ -0,0 +1,314 @@
+<?php
+/*
+ $Id: thermal_sensors.widget.php
+ Description: Thermal Sensors Widget.
+ NOTE: depends on proper cofing in System >> Advanced >> Miscellaneous tab >> Thermal Sensors section.
+
+ File location:
+ \usr\local\www\widgets\widgets\
+ Depends on:
+ \usr\local\www\widgets\javascript\thermal_sensors.js
+ \usr\local\www\widgets\include\thermal_sensors.inc
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+require_once("guiconfig.inc");
+require_once("/usr/local/www/widgets/include/thermal_sensors.inc");
+
+//=========================================================================
+//called by showThermalSensorsData() (jQuery Ajax call) in thermal_sensors.js
+if (isset($_GET["getThermalSensorsData"])) {
+ //get Thermal Sensors data and return
+ echo getThermalSensorsData();
+ return;
+}
+//=========================================================================
+
+
+const WIDGETS_CONFIG_SECTION_KEY = "widgets";
+const THERMAL_SENSORS_WIDGET_SUBSECTION_KEY = "thermal_sensors_widget";
+
+//default constants
+const DEFAULT_WARNING_THRESHOLD = 60; //60 C
+const DEFAULT_CRITICAL_THRESHOLD = 70; //70 C
+const MIN_THRESHOLD_VALUE = 1; //deg C
+const MAX_THRESHOLD_VALUE = 100; //deg C
+
+//NOTE: keys used in $_POST and $config should match text and checkbox inputs' IDs/names in HTML code section
+//=========================================================================
+//save widget config settings on POST
+if ($_POST) {
+ saveThresholdSettings($config, $_POST, "thermal_sensors_widget_zone_warning_threshold", "thermal_sensors_widget_zone_critical_threshold");
+ saveThresholdSettings($config, $_POST, "thermal_sensors_widget_core_warning_threshold", "thermal_sensors_widget_core_critical_threshold");
+
+ //handle checkboxes separately
+ saveGraphDisplaySettings($config, $_POST, "thermal_sensors_widget_show_raw_output");
+ saveGraphDisplaySettings($config, $_POST, "thermal_sensors_widget_show_full_sensor_name");
+ saveGraphDisplaySettings($config, $_POST, "thermal_sensors_widget_pulsate_warning");
+ saveGraphDisplaySettings($config, $_POST, "thermal_sensors_widget_pulsate_critical");
+
+ //write settings to config file
+ write_config("Saved thermal_sensors_widget settings via Dashboard.");
+ header("Location: ../../index.php");
+}
+
+function saveThresholdSettings(&$configArray, &$postArray, $warningValueKey, $criticalValueKey) {
+ $warningValue = 0;
+ $criticalValue = 0;
+
+ if (isset($postArray[$warningValueKey])) {
+ $warningValue = (int) $postArray[$warningValueKey];
+ }
+
+ if (isset($postArray[$criticalValueKey])) {
+ $criticalValue = (int) $postArray[$criticalValueKey];
+ }
+
+ if (
+ ($warningValue >= MIN_THRESHOLD_VALUE && $warningValue <= MAX_THRESHOLD_VALUE) &&
+ ($criticalValue >= MIN_THRESHOLD_VALUE && $criticalValue <= MAX_THRESHOLD_VALUE) &&
+ ($warningValue < $criticalValue)
+ ) {
+ //all validated ok, save to config array
+ $configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$warningValueKey] = $warningValue;
+ $configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$criticalValueKey] = $criticalValue;
+ }
+}
+
+function saveGraphDisplaySettings(&$configArray, &$postArray, $valueKey) {
+ $configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$valueKey] = isset($postArray[$valueKey]) ? 1 : 0;
+}
+
+//=========================================================================
+//get Threshold settings from config (apply defaults if missing)
+$thermal_sensors_widget_zoneWarningTempThreshold = getThresholdValueFromConfig($config, "thermal_sensors_widget_zone_warning_threshold", DEFAULT_WARNING_THRESHOLD);
+$thermal_sensors_widget_zoneCriticalTempThreshold = getThresholdValueFromConfig($config, "thermal_sensors_widget_zone_critical_threshold", DEFAULT_CRITICAL_THRESHOLD);
+$thermal_sensors_widget_coreWarningTempThreshold = getThresholdValueFromConfig($config, "thermal_sensors_widget_core_warning_threshold", DEFAULT_WARNING_THRESHOLD);
+$thermal_sensors_widget_coreCriticalTempThreshold = getThresholdValueFromConfig($config, "thermal_sensors_widget_core_critical_threshold", DEFAULT_CRITICAL_THRESHOLD);
+
+//get display settings from config (apply defaults if missing)
+$thermal_sensors_widget_showRawOutput = getBoolValueFromConfig($config, "thermal_sensors_widget_show_raw_output", false);
+$thermal_sensors_widget_showFullSensorName = getBoolValueFromConfig($config, "thermal_sensors_widget_show_full_sensor_name", false);
+$thermal_sensors_widget_pulsateWarning = getBoolValueFromConfig($config, "thermal_sensors_widget_pulsate_warning", true);
+$thermal_sensors_widget_pulsateCritical = getBoolValueFromConfig($config, "thermal_sensors_widget_pulsate_critical", true);
+
+function getThresholdValueFromConfig(&$configArray, $valueKey, $defaultValue) {
+
+ $thresholdValue = $defaultValue;
+
+ if (isset($configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$valueKey])) {
+ $thresholdValue = (int) $configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$valueKey];
+ }
+
+ if ($thresholdValue < MIN_THRESHOLD_VALUE || $thresholdValue > MAX_THRESHOLD_VALUE) {
+ //set to default if not in allowed range
+ $thresholdValue = $defaultValue;
+ }
+ return $thresholdValue;
+}
+
+function getBoolValueFromConfig(&$configArray, $valueKey, $defaultValue) {
+
+ $boolValue = false;
+
+ if (isset($configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$valueKey])) {
+ $boolValue = (bool) $configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$valueKey];
+ } else {
+ //set to default if not in allowed range
+ $boolValue = $defaultValue;
+ }
+ return $boolValue;
+}
+
+//=========================================================================
+?>
+
+<script language="javascript" type="text/javascript">
+ //set Thresholds, to be used in thermal_sensors.js
+ var thermal_sensors_widget_zoneWarningTempThreshold = <?= $thermal_sensors_widget_zoneWarningTempThreshold; ?>;
+ var thermal_sensors_widget_zoneCriticalTempThreshold = <?= $thermal_sensors_widget_zoneCriticalTempThreshold; ?>;
+ var thermal_sensors_widget_coreWarningTempThreshold = <?= $thermal_sensors_widget_coreWarningTempThreshold; ?>;
+ var thermal_sensors_widget_coreCriticalTempThreshold = <?= $thermal_sensors_widget_coreCriticalTempThreshold; ?>;
+
+ //set Graph display settings, to be used in thermal_sensors.js
+ var thermal_sensors_widget_showRawOutput = <?= $thermal_sensors_widget_showRawOutput ? "true" : "false"; ?>;
+ var thermal_sensors_widget_showFullSensorName = <?= $thermal_sensors_widget_showFullSensorName ? "true" : "false"; ?>;
+ var thermal_sensors_widget_pulsateWarning = <?= $thermal_sensors_widget_pulsateWarning ? "true" : "false"; ?>;
+ var thermal_sensors_widget_pulsateCritical = <?= $thermal_sensors_widget_pulsateCritical ? "true" : "false"; ?>;
+
+ //start showing temp data
+ //NOTE: the refresh interval will be reset to a proper value in showThermalSensorsData() (thermal_sensors.js).
+ jQuery(document).ready(function() {
+ showThermalSensorsData();
+ });
+
+</script>
+
+<style type="text/css">
+ /*thermal_sensors widget styles*/
+
+ .thermalSensorRow { width: 100%; border: 0px solid #ddd; padding: 1px; border-radius: 3px; }
+ .thermalSensorBarShell { position: relative; width: 100%; height: 5px; border: 1px solid lightgray; border-radius: 3px; }
+ .thermalSensorBar { position: absolute; width: 0%; height: 1px; z-index: 1; border-style: solid; border-radius: 3px;
+ background-color: LimeGreen;
+ border-top-width: 2px; border-top-color: Lime;
+ border-left-width: 0px;
+ border-right-width: 0px;
+ border-bottom-width: 2px; border-bottom-color: Green;
+ }
+ .thermalSensorTextShell { height: 20px; width: 100%; top: 3px; }
+ .thermalSensorText { float: left; height: 20px; top: 3px; }
+ .thermalSensorValue { float: left; height: 20px; top: 3px; font-weight: bold; margin-left: 10px;}
+
+ .thermalSensorWarnThresh { position: absolute; background-color: orange; height: 16px; width: 2px; z-index: 2; margin-top: -8px; }
+ .thermalSensorCritThresh { position: absolute; background-color: red; height: 16px; width: 2px; z-index: 2; margin-top: -8px; }
+
+ .thermal_sensors_widget_scale000 { position: absolute; height: 5px; width: 1px; left: -1px; margin-top: -4px; background-color: lightgray; z-index: 0; font-size: 0; }
+ .thermal_sensors_widget_scale020 { position: absolute; height: 3px; width: 1px; left: 10%; margin-top: -4px; background-color: lightgray; z-index: 0; font-size: 0; }
+ .thermal_sensors_widget_scale010 { position: absolute; height: 3px; width: 1px; left: 20%; margin-top: -4px; background-color: lightgray; z-index: 0; font-size: 0; }
+ .thermal_sensors_widget_scale030 { position: absolute; height: 3px; width: 1px; left: 30%; margin-top: -4px; background-color: lightgray; z-index: 0; font-size: 0; }
+ .thermal_sensors_widget_scale040 { position: absolute; height: 3px; width: 1px; left: 40%; margin-top: -4px; background-color: lightgray; z-index: 0; font-size: 0; }
+ .thermal_sensors_widget_scale050 { position: absolute; height: 3px; width: 1px; left: 50%; margin-top: -4px; background-color: lightgray; z-index: 0; font-size: 0; }
+ .thermal_sensors_widget_scale060 { position: absolute; height: 3px; width: 1px; left: 60%; margin-top: -4px; background-color: lightgray; z-index: 0; font-size: 0; }
+ .thermal_sensors_widget_scale070 { position: absolute; height: 3px; width: 1px; left: 70%; margin-top: -4px; background-color: lightgray; z-index: 0; font-size: 0; }
+ .thermal_sensors_widget_scale080 { position: absolute; height: 3px; width: 1px; left: 80%; margin-top: -4px; background-color: lightgray; z-index: 0; font-size: 0; }
+ .thermal_sensors_widget_scale090 { position: absolute; height: 3px; width: 1px; left: 90%; margin-top: -4px; background-color: lightgray; z-index: 0; font-size: 0; }
+ .thermal_sensors_widget_scale100 { position: absolute; height: 9px; width: 1px; left: 100%; margin-top: -6px; background-color: lightgray; z-index: 0; font-size: 0; }
+
+ .thermal_sensors_widget_mark100 { position: absolute; width: 15px; left: 96%; margin-top: -12px; font: 6pt Arial, sans-serif; text-align: left; color: #575757; }
+
+</style>
+
+
+<input type="hidden" id="thermal_sensors-config" name="thermal_sensors-config" value="">
+<div id="thermal_sensors-settings" name="thermal_sensors-settings" class="widgetconfigdiv" style="display:none;">
+ <form action="/widgets/widgets/thermal_sensors.widget.php" method="post" id="iform_thermal_sensors_settings" name="iform_thermal_sensors_settings">
+ <table width="100%" border="0">
+ <tr>
+ <td align="left" colspan="2">
+ <span style="font-weight: bold" >Thresholds in &deg;C (1 to 100):</span>
+ </td>
+ <td align="right" colspan="1">
+ <span style="font-weight: bold" >Display settings:</span>
+ </td>
+ </tr>
+ <tr>
+ <td align="right">
+ Zone Warning:
+ </td>
+ <td>
+ <input type="text" maxlength="3" size="3" class="formfld unknown"
+ name="thermal_sensors_widget_zone_warning_threshold"
+ id="thermal_sensors_widget_zone_warning_threshold"
+ value="<?= $thermal_sensors_widget_zoneWarningTempThreshold; ?>" />
+ </td>
+ <td align="right">
+ <label for="thermal_sensors_widget_show_raw_output">Show raw output (no graph): </label>
+ <input type="checkbox"
+ id="thermal_sensors_widget_show_raw_output"
+ name="thermal_sensors_widget_show_raw_output"
+ value="<?= $thermal_sensors_widget_showRawOutput; ?>" <?= ($thermal_sensors_widget_showRawOutput) ? " checked='checked'" : ""; ?> />
+ </td>
+ </tr>
+ <tr>
+ <td align="right">
+ Zone Critical:
+ </td>
+ <td>
+ <input type="text" maxlength="3" size="3" class="formfld unknown"
+ name="thermal_sensors_widget_zone_critical_threshold"
+ id="thermal_sensors_widget_zone_critical_threshold"
+ value="<?= $thermal_sensors_widget_zoneCriticalTempThreshold; ?>" />
+ </td>
+ <td align="right">
+ <label for="thermal_sensors_widget_show_full_sensor_name">Show full sensor name: </label>
+ <input type="checkbox"
+ id="thermal_sensors_widget_show_full_sensor_name"
+ name="thermal_sensors_widget_show_full_sensor_name"
+ value="<?= $thermal_sensors_widget_showFullSensorName; ?>" <?= ($thermal_sensors_widget_showFullSensorName) ? " checked='checked'" : ""; ?> />
+ </td>
+ </tr>
+ <tr>
+ <td align="right">
+ Core Warning:
+ </td>
+ <td>
+ <input type="text" maxlength="3" size="3" class="formfld unknown"
+ name="thermal_sensors_widget_core_warning_threshold"
+ id="thermal_sensors_widget_core_warning_threshold"
+ value="<?= $thermal_sensors_widget_coreWarningTempThreshold ?>" />
+ </td>
+ <td align="right">
+ <label for="thermal_sensors_widget_pulsate_warning">Pulsate Warning: </label>
+ <input type="checkbox"
+ id="thermal_sensors_widget_pulsate_warning"
+ name="thermal_sensors_widget_pulsate_warning"
+ value="<?= $thermal_sensors_widget_pulsateWarning; ?>" <?= ($thermal_sensors_widget_pulsateWarning) ? " checked='checked'" : ""; ?> />
+ </td>
+ </tr>
+ <tr>
+ <td align="right">
+ Core Critical:
+ </td>
+ <td>
+ <input type="text" maxlength="3" size="3" class="formfld unknown"
+ name="thermal_sensors_widget_core_critical_threshold"
+ id="thermal_sensors_widget_core_critical_threshold"
+ value="<?= $thermal_sensors_widget_coreCriticalTempThreshold ?>" />
+ </td>
+ <td align="right">
+ <label for="thermal_sensors_widget_pulsate_critical">Pulsate Critical: </label>
+ <input type="checkbox"
+ id="thermal_sensors_widget_pulsate_critical"
+ name="thermal_sensors_widget_pulsate_critical"
+ value="<?= $thermal_sensors_widget_pulsateCritical; ?>" <?= ($thermal_sensors_widget_pulsateCritical) ? " checked='checked'" : ""; ?> />
+ </td>
+ </tr>
+ <tr>
+ <td align="right" colspan="3">
+ <input type="submit" id="thermal_sensors_widget_submit" name="thermal_sensors_widget_submit" class="formbtn" value="Save" />
+ </td>
+ </tr>
+ <tr>
+ <td align="left" colspan="3">
+ <span>* You can configure a proper Thermal Sensor / Module under <br />
+ &nbsp;&nbsp;&nbsp;<a href="system_advanced_misc.php">System &gt; Advanced &gt; Miscellaneous : Thermal Sensors section</a>.</span>
+ </td>
+ </tr>
+ </table>
+ </form>
+</div>
+
+<div style="padding: 5px">
+ <div id="thermalSensorsContainer" class="listr">
+ (Updating...)<br /><br />
+ </div>
+</div>
+
+<!-- needed to display the widget settings menu -->
+<script language="javascript" type="text/javascript">
+
+ textlink = jQuery("#thermal_sensors-configure");
+ textlink.css({display: "inline"});
+
+</script>
diff --git a/usr/local/www/widgets/widgets/traffic_graphs.widget.php b/usr/local/www/widgets/widgets/traffic_graphs.widget.php
index 4ca730b..a9e4e47 100644
--- a/usr/local/www/widgets/widgets/traffic_graphs.widget.php
+++ b/usr/local/www/widgets/widgets/traffic_graphs.widget.php
@@ -146,9 +146,9 @@ foreach ($ifdescrs as $ifname => $ifdescr) {
<div style="clear:both;"></div>
</div>
<div id="<?=$ifname;?>graphdiv" style="display:<?php echo $graphdisplay;?>">
- <embed id="graph" src="graph.php?ifnum=<?=$ifname;?>&ifname=<?=rawurlencode($ifname);?>&timeint=<?=$refreshinterval;?>&initdelay=<?=($graphcounter+1) * 2;?>" type="image/svg+xml" width="<? echo $width; ?>" height="<? echo $height; ?>" pluginspage="http://www.adobe.com/svg/viewer/install/auto" />
+ <embed id="graph" src="graph.php?ifnum=<?=$ifname;?>&ifname=<?=rawurlencode($ifname);?>&timeint=<?=$refreshinterval;?>&initdelay=<?=($graphcounter+1) * 2;?>" type="image/svg+xml" width="<?php echo $width; ?>" height="<?php echo $height; ?>" pluginspage="http://www.adobe.com/svg/viewer/install/auto" />
</div>
</div>
- <? }
+ <?php }
}
?>
diff --git a/usr/local/www/widgets/widgets/wake_on_lan.widget.php b/usr/local/www/widgets/widgets/wake_on_lan.widget.php
index 598dc1f..6deb74b 100644
--- a/usr/local/www/widgets/widgets/wake_on_lan.widget.php
+++ b/usr/local/www/widgets/widgets/wake_on_lan.widget.php
@@ -35,12 +35,12 @@ else
$wolcomputers = array();
?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="wol status">
<tr>
- <?
- echo '<td class="widgetsubheader"><b><center>' . gettext("Computer / Device") . '</center></b></td>';
- echo '<td class="widgetsubheader"><b><center>' . gettext("Interface") . '</center></b></td>';
- echo '<td class="widgetsubheader"><b><center>' . gettext("Status") . '</center></b></td>';
+ <?php
+ echo '<td class="widgetsubheader" align="center"><b>' . gettext("Computer / Device") . '</b></td>';
+ echo '<td class="widgetsubheader" align="center"><b>' . gettext("Interface") . '</b></td>';
+ echo '<td class="widgetsubheader" align="center"><b>' . gettext("Status") . '</b></td>';
?>
<td class="widgetsubheader">&nbsp;</td>
</tr>
@@ -53,23 +53,23 @@ if (count($wolcomputers) > 0) {
$is_active = exec("/usr/sbin/arp -an |/usr/bin/grep {$wolent['mac']}| /usr/bin/wc -l|/usr/bin/awk '{print $1;}'");
if($is_active == 1) {
- echo '<td class="listr"><center>' . "\n";
- echo "<img src=\"/themes/" . $g["theme"] . "/images/icons/icon_pass.gif\"> " . gettext("Online") . "</td>\n";
+ echo '<td class="listr" align="center">' . "\n";
+ echo "<img src=\"/themes/" . $g["theme"] . "/images/icons/icon_pass.gif\" alt=\"pass\" /> " . gettext("Online") . "</td>\n";
} else {
- echo '<td class="listbg"><center>' . "\n";
- echo "<img src=\"/themes/" . $g["theme"] . "/images/icons/icon_block.gif\"> <font color=\"white\">" . gettext("Offline") . "</td>\n";
+ echo '<td class="listbg" align="center">' . "\n";
+ echo "<img src=\"/themes/" . $g["theme"] . "/images/icons/icon_block.gif\" alt=\"block\" />&nbsp;<font color=\"white\">" . gettext("Offline") . "</font></td>\n";
}
- echo '<td valign="middle" class="list" nowrap>';
+ echo '<td valign="middle" class="list nowrap">';
/*if($is_active) { */
/* Will always show wake-up button even if pfsense thinks it is awake */
/* } else { */
- echo "<a href='services_wol.php?mac={$wolent['mac']}&if={$wolent['interface']}'> ";
- echo "<img title='" . gettext("Wake Up") . "' border='0' src='./themes/".$g['theme']."/images/icons/icon_wol_all.gif'></a>\n";
+ echo "<a href='services_wol.php?mac={$wolent['mac']}&amp;if={$wolent['interface']}'> ";
+ echo "<img title='" . gettext("Wake Up") . "' border='0' src='./themes/".$g['theme']."/images/icons/icon_wol_all.gif' alt='wol' /></a>\n";
/* } */
echo "</td></tr>\n";
}
} else {
- echo "<tr><td colspan=\"3\"><center>" . gettext("No saved WoL addresses") . ".</td></tr>\n";
+ echo "<tr><td colspan=\"3\" align=\"center\">" . gettext("No saved WoL addresses") . ".</td></tr>\n";
}
?>
</table>
diff --git a/usr/local/www/wizard.php b/usr/local/www/wizard.php
index 90f7af2..29612a3 100755
--- a/usr/local/www/wizard.php
+++ b/usr/local/www/wizard.php
@@ -169,22 +169,21 @@ do {
eval($pkg['step'][$stepid]['stepbeforeformdisplay']);
} while ($oldstepid != $stepid);
+$closehead = false;
$pgtitle = array($title);
include("head.inc");
+if(file_exists("/usr/local/www/themes/{$g['theme']}/wizard.css"))
+ echo "<link type=\"text/css\" rel=\"stylesheet\" href=\"/themes/{$g['theme']}/wizard.css\" media=\"all\" />\n";
+else
+ echo "<link type=\"text/css\" rel=\"stylesheet\" href=\"/themes/{$g['theme']}/all.css\" media=\"all\" />";
?>
+</head>
<body link="#0000CC" vlink="#0000CC" alink="#0000CC" >
-<?php
-
- if(file_exists("/usr/local/www/themes/{$g['theme']}/wizard.css"))
- echo "<link rel=\"stylesheet\" href=\"/themes/{$g['theme']}/wizard.css\" media=\"all\" />\n";
- else
- echo "<link rel=\"stylesheet\" href=\"/themes/{$g['theme']}/all.css\" media=\"all\" />";
-?>
<?php if($pkg['step'][$stepid]['fields']['field'] <> "") { ?>
<script type="text/javascript">
-<!--
+//<![CDATA[
function FieldValidate(userinput, regexp, message)
{
@@ -299,17 +298,17 @@ function showchange() {
}
?>
}
-//-->
+//]]>
</script>
<?php } ?>
<form action="wizard.php" method="post" name="iform" id="iform">
-<input type="hidden" name="xml" value="<?= htmlspecialchars($xml) ?>">
-<input type="hidden" name="stepid" value="<?= htmlspecialchars($stepid) ?>">
+<input type="hidden" name="xml" value="<?= htmlspecialchars($xml) ?>" />
+<input type="hidden" name="stepid" value="<?= htmlspecialchars($stepid) ?>" />
<center>
-&nbsp;<br>
+&nbsp;<br/>
<?php
if($title == "Reload in progress") {
@@ -319,8 +318,8 @@ function showchange() {
}
echo "<a href='$ip'>";
?>
-<img border="0" src="./themes/<?= $g['theme']; ?>/images/logo.gif"></a>
-<p>
+<img border="0" src="./themes/<?= $g['theme']; ?>/images/logo.gif" alt="logo" /></a>
+<p>&nbsp;</p>
<div style="width:800px;background-color:#ffffff" id="roundme">
<?php
if ($input_errors)
@@ -332,14 +331,14 @@ function showchange() {
if ($_POST['message'] != "")
print_info_box(htmlspecialchars($_POST['message']));
?>
-<table bgcolor="#ffffff" width="95%" border="0" cellspacing="0" cellpadding="2">
+<table bgcolor="#ffffff" width="95%" border="0" cellspacing="0" cellpadding="2" summary="wizard">
<!-- wizard goes here -->
<tr><td>&nbsp;</td></tr>
<tr>
<td class="tabcont">
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
- <tr><td colspan='2'><center><font size="2"><b><?= fixup_string($description) ?></b></font></center></td></tr><tr><td>&nbsp;</td></tr>
+ <tr><td colspan="2" align="center"><font size="2"><b><?= fixup_string($description) ?></b></font></td></tr><tr><td>&nbsp;</td></tr>
<?php
if(!$pkg['step'][$stepid]['disableheader'])
echo "<tr><td colspan=\"2\" class=\"listtopic\">" . fixup_string($title) . "</td></tr>";
@@ -394,8 +393,8 @@ function showchange() {
if($field['size'])
echo " size='" . $field['size'] . "' ";
if($field['validate'])
- echo " onChange='FieldValidate(this.value, \"{$field['validate']}\", \"{$field['message']}\");'";
- echo ">\n";
+ echo " onchange='FieldValidate(this.value, \"{$field['validate']}\", \"{$field['message']}\");'";
+ echo " />\n";
if($field['description'] <> "") {
echo "<br /> " . $field['description'];
@@ -421,12 +420,12 @@ function showchange() {
echo "<td class=\"vtable\">\n";
$inputaliases[] = $name;
- echo "<input class='formfldalias' autocomplete='off' class='formfldalias' id='" . $name . "' name='" . $name . "' value='" . htmlspecialchars($value) . "'";
+ echo "<input class='formfldalias' autocomplete='off' id='" . $name . "' name='" . $name . "' value='" . htmlspecialchars($value) . "'";
if($field['size'])
echo " size='" . $field['size'] . "' ";
if($field['validate'])
- echo " onChange='FieldValidate(this.value, \"{$field['validate']}\", \"{$field['message']}\");'";
- echo ">\n";
+ echo " onchange='FieldValidate(this.value, \"{$field['validate']}\", \"{$field['message']}\");'";
+ echo " />\n";
if($field['description'] <> "") {
echo "<br /> " . $field['description'];
@@ -449,7 +448,7 @@ function showchange() {
echo "<select class='formselect' id='{$name}' name='{$name}' {$size} {$multiple}>\n";
if($field['add_to_interfaces_selection'] <> "") {
$SELECTED = "";
- if($field['add_to_interfaces_selection'] == $value) $SELECTED = " SELECTED";
+ if($field['add_to_interfaces_selection'] == $value) $SELECTED = " selected=\"selected\"";
echo "<option value='" . $field['add_to_interfaces_selection'] . "'" . $SELECTED . ">" . $field['add_to_interfaces_selection'] . "</option>\n";
}
if($field['type'] == "interface_select")
@@ -463,7 +462,7 @@ function showchange() {
$iface .= " ({$iface['mac']})";
}
$SELECTED = "";
- if ($value == $ifname) $SELECTED = " SELECTED";
+ if ($value == $ifname) $SELECTED = " selected=\"selected\"";
$to_echo = "<option value='" . $ifname . "'" . $SELECTED . ">" . $iface . "</option>\n";
$to_echo .= "<!-- {$value} -->";
$canecho = 0;
@@ -497,7 +496,7 @@ function showchange() {
echo "<input class='formfld pwd' id='" . $name . "' name='" . $name . "' value='" . htmlspecialchars($value) . "' type='password' ";
if($field['size'])
echo " size='" . $field['size'] . "' ";
- echo ">\n";
+ echo " />\n";
if($field['description'] <> "") {
echo "<br /> " . $field['description'];
@@ -516,13 +515,13 @@ function showchange() {
echo "<select id='{$name}' name='{$name}' {$size}>\n";
if($field['add_to_certca_selection'] <> "") {
$SELECTED = "";
- if($field['add_to_certca_selection'] == $value) $SELECTED = " SELECTED";
+ if($field['add_to_certca_selection'] == $value) $SELECTED = " selected=\"selected\"";
echo "<option value='" . $field['add_to_certca_selection'] . "'" . $SELECTED . ">" . $field['add_to_certca_selection'] . "</option>\n";
}
foreach($config['ca'] as $ca) {
$name = htmlspecialchars($ca['descr']);
$SELECTED = "";
- if ($value == $name) $SELECTED = " SELECTED";
+ if ($value == $name) $SELECTED = " selected=\"selected\"";
$to_echo = "<option value='" . $ca['refid'] . "'" . $SELECTED . ">" . $name . "</option>\n";
$to_echo .= "<!-- {$value} -->";
$canecho = 0;
@@ -554,7 +553,7 @@ function showchange() {
echo "<select id='{$name}' name='{$name}' {$size}>\n";
if($field['add_to_cert_selection'] <> "") {
$SELECTED = "";
- if($field['add_to_cert_selection'] == $value) $SELECTED = " SELECTED";
+ if($field['add_to_cert_selection'] == $value) $SELECTED = " selected=\"selected\"";
echo "<option value='" . $field['add_to_cert_selection'] . "'" . $SELECTED . ">" . $field['add_to_cert_selection'] . "</option>\n";
}
foreach($config['cert'] as $ca) {
@@ -562,7 +561,7 @@ function showchange() {
continue;
$name = htmlspecialchars($ca['descr']);
$SELECTED = "";
- if ($value == $name) $SELECTED = " SELECTED";
+ if ($value == $name) $SELECTED = " selected=\"selected\"";
$to_echo = "<option value='" . $ca['refid'] . "'" . $SELECTED . ">" . $name . "</option>\n";
$to_echo .= "<!-- {$value} -->";
$canecho = 0;
@@ -606,8 +605,8 @@ function showchange() {
foreach ($field['options']['option'] as $opt) {
$selected = "";
if($value == $opt['value'])
- $selected = " SELECTED";
- echo "\t<option name='" . $opt['name'] . "' value='" . $opt['value'] . "'" . $selected . ">";
+ $selected = " selected=\"selected\"";
+ echo "\t<option value='" . $opt['value'] . "'" . $selected . ">";
if ($opt['displayname'])
echo $opt['displayname'];
else
@@ -648,9 +647,9 @@ function showchange() {
break;
case "submit":
- echo "<td>&nbsp;<br></td></tr>";
- echo "<tr><td colspan='2'><center>";
- echo "<input type='submit' name='" . $name . "' value='" . htmlspecialchars($field['name']) . "'>\n";
+ echo "<td>&nbsp;<br/></td></tr>";
+ echo "<tr><td colspan=\"2\" align=\"center\">";
+ echo "<input type='submit' name='" . $name . "' value='" . htmlspecialchars($field['name']) . "' />\n";
if($field['description'] <> "") {
echo "<br /> " . $field['description'];
@@ -659,7 +658,7 @@ function showchange() {
break;
case "listtopic":
echo "<td>&nbsp;</td></tr>";
- echo "<tr><td colspan=\"2\" class=\"listtopic\">" . $field['name'] . "<br ></td>\n";
+ echo "<tr><td colspan=\"2\" class=\"listtopic\">" . $field['name'] . "<br /></td>\n";
break;
case "subnet_select":
@@ -677,7 +676,7 @@ function showchange() {
echo "<select class='formselect' name='{$name}'>\n";
for($x=1; $x<33; $x++) {
$CHECKED = "";
- if($value == $x) $CHECKED = " SELECTED";
+ if($value == $x) $CHECKED = " selected=\"selected\"";
if($x <> 31)
echo "<option value='{$x}' {$CHECKED}>{$x}</option>\n";
}
@@ -713,7 +712,7 @@ function showchange() {
if(strstr($tz, "GMT"))
continue;
$SELECTED = "";
- if ($value == $tz) $SELECTED = " SELECTED";
+ if ($value == $tz) $SELECTED = " selected=\"selected\"";
echo "<option value='" . htmlspecialchars($tz) . "' {$SELECTED}>";
echo htmlspecialchars($tz);
echo "</option>\n";
@@ -737,13 +736,13 @@ function showchange() {
}
$checked = "";
if($value <> "")
- $checked = " CHECKED";
+ $checked = " checked=\"checked\"";
echo "<td class=\"vtable\"><input value=\"on\" type='checkbox' id='" . $name . "' name='" . $name . "' " . $checked;
if(isset($field['enablefields']) or isset($field['checkenablefields']))
- echo " onClick=\"enablechange()\"";
+ echo " onclick=\"enablechange()\"";
else if(isset($field['disablefields']) or isset($field['checkdisablefields']))
- echo " onClick=\"disablechange()\"";
- echo ">\n";
+ echo " onclick=\"disablechange()\"";
+ echo " />\n";
if($field['description'] <> "") {
echo $field['description'];
@@ -756,7 +755,7 @@ function showchange() {
echo $field['typehint'];
}
if($field['warning'] <> "") {
- echo "<br ><b><font color=\"red\">" . $field['warning'] . "</font></b>";
+ echo "<br /><b><font color=\"red\">" . $field['warning'] . "</font></b>";
}
if(!$field['combinefieldsbegin']) {
@@ -772,11 +771,12 @@ function showchange() {
</table>
</td></tr>
</table>
-<br>&nbsp;
+<br/>&nbsp;
</div>
+</center>
</form>
<script type="text/javascript">
-<!--
+//<![CDATA[
if (typeof ext_change != 'undefined') {
ext_change();
}
@@ -815,15 +815,17 @@ function showchange() {
}
-//-->
+//]]>
</script>
<script type="text/javascript">
+//<![CDATA[
NiftyCheck();
var bgcolor = document.getElementsByTagName("body")[0].style.backgroundColor;
Rounded("div#roundme","all",bgcolor,"#FFFFFF","smooth");
enablechange();
disablechange();
showchange();
+//]]>
</script>
<?php
@@ -833,6 +835,7 @@ if($pkg['step'][$stepid]['disableallfieldsbydefault'] <> "") {
// create a fieldname loop that can be used with javascript
// hide and enable features.
echo "\n<script type=\"text/javascript\">\n";
+ echo "//<![CDATA[\n";
echo "function disableall() {\n";
foreach ($pkg['step'][$stepid]['fields']['field'] as $field) {
if($field['type'] <> "submit" and $field['type'] <> "listtopic") {
@@ -873,6 +876,7 @@ if($pkg['step'][$stepid]['disableallfieldsbydefault'] <> "") {
echo "\t}\n";
}
echo "}\n";
+ echo "//]]>\n";
echo "</script>\n\n";
}
@@ -962,4 +966,4 @@ function is_timezone($elt) {
?>
</body>
-</html>
+</html> \ No newline at end of file
diff --git a/usr/local/www/wizards/openvpn_wizard.inc b/usr/local/www/wizards/openvpn_wizard.inc
index 8f6fbc9..0637639 100644
--- a/usr/local/www/wizards/openvpn_wizard.inc
+++ b/usr/local/www/wizards/openvpn_wizard.inc
@@ -360,13 +360,13 @@ function step10_submitphpaction() {
if ($result = openvpn_validate_port($_POST['localport'], 'Local port'))
$input_errors[] = $result;
- if ($result = openvpn_validate_cidr($_POST['tunnelnet'], 'Tunnel network'))
+ if ($result = openvpn_validate_cidr($_POST['tunnelnet'], 'Tunnel Network', false, "ipv4"))
$input_errors[] = $result;
- if ($result = openvpn_validate_cidr($_POST['localnet'], 'Local network'))
+ if ($result = openvpn_validate_cidr($_POST['localnet'], 'Local Network', true, "ipv4"))
$input_errors[] = $result;
- $portused = openvpn_port_used($_POST['protocol'], $_POST['localport']);
+ $portused = openvpn_port_used($_POST['protocol'], $_POST['interface'], $_POST['localport']);
if ($portused != 0)
$input_errors[] = "The specified 'Local port' is in use. Please select another value";
@@ -475,7 +475,7 @@ function step12_submitphpaction() {
'emailAddress' => $pconfig['step6']['email'],
'commonName' => $pconfig['step6']['certca']);
- ca_create($ca, $pconfig['step6']['keylength'], $pconfig['step6']['lifetime'], $dn);
+ ca_create($ca, $pconfig['step6']['keylength'], $pconfig['step6']['lifetime'], $dn, "sha256");
if (!is_array($config['ca']))
$config['ca'] = array();
@@ -502,7 +502,7 @@ function step12_submitphpaction() {
'emailAddress' => $pconfig['step9']['email'],
'commonName' => $pconfig['step9']['certname']);
- cert_create($cert, $ca['refid'], $pconfig['step9']['keylength'], $pconfig['step9']['lifetime'], $dn, 'server');
+ cert_create($cert, $ca['refid'], $pconfig['step9']['keylength'], $pconfig['step9']['lifetime'], $dn, 'server', "sha256");
if (!is_array($config['cert']))
$config['cert'] = array();
@@ -611,6 +611,7 @@ function step12_submitphpaction() {
$rule['protocol'] = strtolower($server['protocol']);
$rule['type'] = "pass";
$rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("OpenVPN Wizard"));
$config['filter']['rule'][] = $rule;
}
if (isset($pconfig['step11']['ovpnallow'])) {
@@ -625,6 +626,7 @@ function step12_submitphpaction() {
//$rule['protocol'] = $server['protocol'];
$rule['type'] = "pass";
$rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("OpenVPN Wizard"));
$config['filter']['rule'][] = $rule;
}
diff --git a/usr/local/www/wizards/setup_wizard.xml b/usr/local/www/wizards/setup_wizard.xml
index 70b54f6..513a286 100644
--- a/usr/local/www/wizards/setup_wizard.xml
+++ b/usr/local/www/wizards/setup_wizard.xml
@@ -36,7 +36,7 @@
<id>1</id>
<title>pfSense Setup Wizard</title>
<disableheader>true</disableheader>
- <description>This wizard will guide you through the initial configuration of pfSense.</description>
+ <description>This wizard will guide you through the initial configuration of pfSense.&lt;br/&gt;&lt;br/&gt; The wizard may be stopped at any time by clicking the logo image at the top of the screen.</description>
<fields>
<field>
<name>Next</name>
diff --git a/usr/local/www/wizards/traffic_shaper_wizard.inc b/usr/local/www/wizards/traffic_shaper_wizard.inc
index a77ba09..71bcea0 100644
--- a/usr/local/www/wizards/traffic_shaper_wizard.inc
+++ b/usr/local/www/wizards/traffic_shaper_wizard.inc
@@ -332,10 +332,10 @@ function step3_stepbeforeformdisplay() {
$voipfields[] = $field;
$field = array();
- $field['name'] = "Address";
- $enablefields[] = "Address";
+ $field['name'] = "Upstream SIP Server";
+ $enablefields[] = "Upstream SIP Server";
$field['type'] = "inputalias";
- $field['description'] = "(Optional) If this is chosen, the provider field will be overridden. This allows you to just provide the IP address of the VOIP adaptor to prioritize. NOTE: You can also use a Firewall Alias in this location.";
+ $field['description'] = "(Optional) If this is chosen, the provider field will be overridden. This allows you to provide the IP address of the <strong>remote</strong> PBX or SIP Trunk to prioritize. <br />NOTE: You can also use a Firewall Alias in this location.";
$field['message'] = "IP Address field is non-blank and doesn't look like an IP address.";
$field['bindstofield'] = "ezshaper->step3->address";
$voipfields[] = $field;
@@ -1349,6 +1349,7 @@ function apply_all_choosen_items() {
$rule['floating'] = "yes";
$rule['wizard'] = "yes";
$rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
}
@@ -1359,9 +1360,9 @@ function apply_all_choosen_items() {
if( is_ipaddr($config['ezshaper']['step3']['address']) || is_alias($config['ezshaper']['step3']['address'])) {
/* create VOIP rules */
$rule = array();
- $rule['type'] = "match";
+ $rule['type'] = "match";
//$rule['interface'] = $interfacelist;
- $rule['descr'] = gettext("VOIP Adapter");
+ $rule['descr'] = gettext("Connections From Upstream SIP Server");
$rule['protocol'] = "udp";
$rule['defaultqueue'] = "qVoIP";
$rule['source']['address'] = $config['ezshaper']['step3']['address'];
@@ -1369,8 +1370,22 @@ function apply_all_choosen_items() {
$rule['floating'] = "yes";
$rule['wizard'] = "yes";
$rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
+ $config['filter']['rule'][] = $rule;
+
+ $rule = array();
+ $rule['type'] = "match";
+ //$rule['interface'] = $interfacelist;
+ $rule['descr'] = gettext("Connections To Upstream SIP Server");
+ $rule['protocol'] = "udp";
+ $rule['defaultqueue'] = "qVoIP";
+ $rule['source']['any'] = TRUE;
+ $rule['destination']['address'] = $config['ezshaper']['step3']['address'];
+ $rule['floating'] = "yes";
+ $rule['wizard'] = "yes";
+ $rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
-
} elseif( $config['ezshaper']['step3']['provider'] == "Generic" ) {
/* create VOIP rules */
$rule = array();
@@ -1385,6 +1400,7 @@ function apply_all_choosen_items() {
$rule['floating'] = "yes";
$rule['wizard'] = "yes";
$rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
} else {
@@ -1403,6 +1419,7 @@ function apply_all_choosen_items() {
$rule['destination']['port'] = $voip[2]."-".$voip[3];
if($voip[1] != '')
$rule['protocol'] = $voip[1];
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
}
}
@@ -1426,6 +1443,7 @@ function apply_all_choosen_items() {
$rule['destination']['port'] = $p2pclient[2]."-".$p2pclient[3];
if($p2pclient[1] != '')
$rule['protocol'] = $p2pclient[1];
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
}
}
@@ -1452,6 +1470,7 @@ function apply_all_choosen_items() {
$rule['destination']['port'] = $Gameclient[2]."-".$Gameclient[3];
if($Gameclient[1] != '')
$rule['protocol'] = $Gameclient[1];
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
}
}
@@ -1504,8 +1523,8 @@ function apply_all_choosen_items() {
}
if($otherclient[1] != '')
$rule['protocol'] = $otherclient[1];
-
- $config['filter']['rule'][] = $rule;
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
+ $config['filter']['rule'][] = $rule;
}
}
}
diff --git a/usr/local/www/wizards/traffic_shaper_wizard.xml b/usr/local/www/wizards/traffic_shaper_wizard.xml
index 4c2f2a3..60c9986 100644
--- a/usr/local/www/wizards/traffic_shaper_wizard.xml
+++ b/usr/local/www/wizards/traffic_shaper_wizard.xml
@@ -115,9 +115,9 @@
</options>
</field>
<field>
- <name>Address</name>
+ <name>Upstream SIP Server</name>
<type>inputalias</type>
- <description>(Optional) If this is chosen, the provider field will be overridden. This allows you to just provide the IP address of the VOIP adaptor to prioritize. NOTE: You can also use a Firewall Alias in this location.</description>
+ <description>(Optional) If this is chosen, the provider field will be overridden. This allows you to provide the IP address of the &lt;strong&gt;remote&lt;/strong&gt; PBX or SIP Trunk to prioritize. &lt;br /&gt;NOTE: You can also use a Firewall Alias in this location.</description>
<bindstofield>ezshaper-&gt;step3-&gt;address</bindstofield>
<message>IP Address field is non-blank and doesn't look like an IP address.</message>
</field>
@@ -433,7 +433,7 @@
<type>checkbox</type>
<typehint>Prioritize network gaming traffic</typehint>
<description>This will raise the priority of gaming traffic to higher than most traffic.</description>
- <enablefields>BattleNET,Battlefield2,CallOfDuty,Counterstrike,DeltaForce,DOOM3,EmpireEarth,Everquest,Everquest2,FarCry,GunZOnline,HalfLife,HalfLife2,Halo2,Lineage2,PlanetSide,QuakeIII,TigerWoods2004PS2,UnrealTournament,WolfensteinEnemyTerritory,WorldOfWarcraft,XBox360</enablefields>
+ <enablefields>ARMA2,BattleNET,Battlefield2,Battlefield3,BattlefieldBC2,Borderlands,CallOfDuty,Counterstrike,Crysis2,DeltaForce,Dirt3,DOOM3,EmpireEarth,EveOnline,Everquest,Everquest2,FarCry,FarCry2,FarCry3,GunZOnline,HalfLife,Halo2,LeagueofLegends,Lineage2,MechwarriorOnline,Minecraft,OperationFlashpointDR,PlanetSide,PlanetSide2,PlayStation3,QuakeIII,QuakeIV,Steam,StarWarsTOR,TigerWoods2004PS2,TribesAscend,UnrealTournament,WolfensteinEnemyTerritory,WorldOfWarcraft,XBox360</enablefields>
<donotdisable>true</donotdisable>
<bindstofield>ezshaper-&gt;step6-&gt;enable</bindstofield>
</field>
@@ -446,6 +446,12 @@
<type>listtopic</type>
</field>
<field>
+ <name>ARMA2</name>
+ <type>checkbox</type>
+ <typehint>ARMA 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;arma2</bindstofield>
+ </field>
+ <field>
<name>BattleNET</name>
<type>checkbox</type>
<typehint>Battle.net - Virtually every game from Blizzard publishing should match this. This includes the following game series: Starcraft, Diablo, Warcraft. Guild Wars also uses this port.</typehint>
@@ -458,6 +464,24 @@
<bindstofield>ezshaper-&gt;step6-&gt;battlefield2</bindstofield>
</field>
<field>
+ <name>Battlefield3</name>
+ <type>checkbox</type>
+ <typehint>Battlefield 3 - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;battlefield3</bindstofield>
+ </field>
+ <field>
+ <name>BattlefieldBC2</name>
+ <type>checkbox</type>
+ <typehint>Battlefield: Bad Company 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;battlefieldbc2</bindstofield>
+ </field>
+ <field>
+ <name>Borderlands</name>
+ <type>checkbox</type>
+ <typehint>Borderlands</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;borderlands</bindstofield>
+ </field>
+ <field>
<name>CallOfDuty</name>
<type>checkbox</type>
<typehint>Call Of Duty (United Offensive)</typehint>
@@ -470,12 +494,24 @@
<bindstofield>ezshaper-&gt;step6-&gt;counterstrike</bindstofield>
</field>
<field>
+ <name>Crysis2</name>
+ <type>checkbox</type>
+ <typehint>Crysis 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;crysis2</bindstofield>
+ </field>
+ <field>
<name>DeltaForce</name>
<type>checkbox</type>
<typehint>Delta Force</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;deltaforce</bindstofield>
</field>
<field>
+ <name>Dirt3</name>
+ <type>checkbox</type>
+ <typehint>Dirt 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;dirt3</bindstofield>
+ </field>
+ <field>
<name>DOOM3</name>
<type>checkbox</type>
<typehint>DOOM3</typehint>
@@ -488,6 +524,12 @@
<bindstofield>ezshaper-&gt;step6-&gt;empireearth</bindstofield>
</field>
<field>
+ <name>EveOnline</name>
+ <type>checkbox</type>
+ <typehint>EVE Online</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;eveonline</bindstofield>
+ </field>
+ <field>
<name>Everquest</name>
<type>checkbox</type>
<typehint>Everquest - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
@@ -500,28 +542,34 @@
<bindstofield>ezshaper-&gt;step6-&gt;everquest2</bindstofield>
</field>
<field>
- <name>GunZOnline</name>
- <type>checkbox</type>
- <typehint>GunZ Online</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;gunzonline</bindstofield>
- </field>
- <field>
<name>FarCry</name>
<type>checkbox</type>
<typehint>Far Cry</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;farcry</bindstofield>
</field>
<field>
- <name>HalfLife</name>
+ <name>FarCry2</name>
<type>checkbox</type>
- <typehint>HalfLife</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;halflife</bindstofield>
+ <typehint>Far Cry 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;farcry2</bindstofield>
</field>
<field>
- <name>HalfLife2</name>
+ <name>FarCry3</name>
<type>checkbox</type>
- <typehint>HalfLife 2</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;halflife2</bindstofield>
+ <typehint>Far Cry 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;farcry3</bindstofield>
+ </field>
+ <field>
+ <name>GunZOnline</name>
+ <type>checkbox</type>
+ <typehint>GunZ Online</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;gunzonline</bindstofield>
+ </field>
+ <field>
+ <name>HalfLife</name>
+ <type>checkbox</type>
+ <typehint>Half-Life</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;halflife</bindstofield>
</field>
<field>
<name>Halo2</name>
@@ -530,33 +578,93 @@
<bindstofield>ezshaper-&gt;step6-&gt;halo2xbox</bindstofield>
</field>
<field>
+ <name>LeagueofLegends</name>
+ <type>checkbox</type>
+ <typehint>League of Legends - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;leagueoflegends</bindstofield>
+ </field>
+ <field>
<name>Lineage2</name>
<type>checkbox</type>
<typehint>Lineage II</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;lineage2</bindstofield>
</field>
<field>
+ <name>MechwarriorOnline</name>
+ <type>checkbox</type>
+ <typehint>MechWarrior: Online - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;mechwarrioronline</bindstofield>
+ </field>
+ <field>
+ <name>Minecraft</name>
+ <type>checkbox</type>
+ <typehint>Minecraft</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;minecraft</bindstofield>
+ </field>
+ <field>
+ <name>OperationFlashpointDR</name>
+ <type>checkbox</type>
+ <typehint>Operation Flashpoint: Dragon Rising</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;operationflashpoint-dr</bindstofield>
+ </field>
+ <field>
<name>PlanetSide</name>
<type>checkbox</type>
<typehint>PlanetSide</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;planetside</bindstofield>
</field>
<field>
+ <name>PlanetSide2</name>
+ <type>checkbox</type>
+ <typehint>PlanetSide 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;planetside2</bindstofield>
+ </field>
+ <field>
+ <name>PlayStation3</name>
+ <type>checkbox</type>
+ <typehint>PlayStation 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;playstation3</bindstofield>
+ </field>
+ <field>
<name>QuakeIII</name>
<type>checkbox</type>
<typehint>Quake III</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;quakeiii</bindstofield>
</field>
<field>
+ <name>QuakeIV</name>
+ <type>checkbox</type>
+ <typehint>Quake IV</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;quakeiv</bindstofield>
+ </field>
+ <field>
+ <name>StarWarsTOR</name>
+ <type>checkbox</type>
+ <typehint>StarWars: The Old Republic - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;starwarstor</bindstofield>
+ </field>
+ <field>
+ <name>Steam</name>
+ <type>checkbox</type>
+ <typehint>Steam (Includes: America's Army 3, Counter-Strike: Source, Counter-Strike: Global Offensive, Half-Life 2, COD: Black Ops Series, Borderlands 2, Natural Selection 2, Left 4 Dead Series, Portal 2)</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;steam</bindstofield>
+ </field>
+ <field>
<name>TigerWoods2004PS2</name>
<type>checkbox</type>
<typehint>Tiger Woods 2004 for PS2</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;tigerwoods2004ps2</bindstofield>
</field>
<field>
+ <name>TribesAscend</name>
+ <type>checkbox</type>
+ <typehint>Tribes Ascend</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;tribesascend</bindstofield>
+ </field>
+ <field>
<name>UnrealTournament</name>
<type>checkbox</type>
- <typehint>Unreal Tournament</typehint>
+ <typehint>Unreal Tournament Series</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;unrealtournament</bindstofield>
</field>
<field>
@@ -574,7 +682,7 @@
<field>
<name>Xbox360</name>
<type>checkbox</type>
- <typehint>XBox 360</typehint>
+ <typehint>XBox 360 and Games for Windows Live</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;xbox360</bindstofield>
</field>
<field>
diff --git a/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc b/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc
index c721b02..a5a73e1 100755
--- a/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc
+++ b/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc
@@ -357,10 +357,10 @@ function step3_stepbeforeformdisplay() {
$voipfields[] = $field;
$field = array();
- $field['name'] = "Address";
- $enablefields[] = "Address";
+ $field['name'] = "Upstream SIP Server";
+ $enablefields[] = "Upstream SIP Server";
$field['type'] = "inputalias";
- $field['description'] = "(Optional) If this is chosen, the provider field will be overridden. This allows you to just provide the IP address of the VOIP adaptor to prioritize. NOTE: You can also use a Firewall Alias in this location.";
+ $field['description'] = "(Optional) If this is chosen, the provider field will be overridden. This allows you to provide the IP address of the <strong>remote</strong> PBX or SIP Trunk to prioritize. <br />NOTE: You can also use a Firewall Alias in this location.";
$field['message'] = "IP Address field is non-blank and doesn't look like an IP address.";
$field['bindstofield'] = "ezshaper->step3->address";
$voipfields[] = $field;
@@ -1413,6 +1413,7 @@ function apply_all_choosen_items() {
$rule['floating'] = "yes";
$rule['wizard'] = "yes";
$rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
}
}
@@ -1423,8 +1424,8 @@ function apply_all_choosen_items() {
/* create VOIP rules */
$rule = array();
$rule['type'] = "match";
- //$rule['interface'] = $interfacelist;
- $rule['descr'] = gettext("VOIP Adapter");
+ //$rule['interface'] = $interfacelist;
+ $rule['descr'] = gettext("Connections From Upstream SIP Server");
$rule['protocol'] = "udp";
$rule['defaultqueue'] = "qVoIP";
$rule['source']['address'] = $config['ezshaper']['step3']['address'];
@@ -1432,6 +1433,21 @@ function apply_all_choosen_items() {
$rule['floating'] = "yes";
$rule['wizard'] = "yes";
$rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
+ $config['filter']['rule'][] = $rule;
+
+ $rule = array();
+ $rule['type'] = "match";
+ //$rule['interface'] = $interfacelist;
+ $rule['descr'] = gettext("Connections To Upstream SIP Server");
+ $rule['protocol'] = "udp";
+ $rule['defaultqueue'] = "qVoIP";
+ $rule['source']['any'] = TRUE;
+ $rule['destination']['address'] = $config['ezshaper']['step3']['address'];
+ $rule['floating'] = "yes";
+ $rule['wizard'] = "yes";
+ $rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
} elseif( $config['ezshaper']['step3']['provider'] == "Generic" ) {
@@ -1448,6 +1464,7 @@ function apply_all_choosen_items() {
$rule['floating'] = "yes";
$rule['wizard'] = "yes";
$rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
} else {
@@ -1466,6 +1483,7 @@ function apply_all_choosen_items() {
$rule['destination']['port'] = $voip[2]."-".$voip[3];
if($voip[1] != '')
$rule['protocol'] = $voip[1];
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
}
}
@@ -1489,6 +1507,7 @@ function apply_all_choosen_items() {
$rule['destination']['port'] = $p2pclient[2]."-".$p2pclient[3];
if($p2pclient[1] != '')
$rule['protocol'] = $p2pclient[1];
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
}
}
@@ -1567,7 +1586,7 @@ function apply_all_choosen_items() {
}
if($otherclient[1] != '')
$rule['protocol'] = $otherclient[1];
-
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
}
}
diff --git a/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml b/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml
index ecdb508..1c3aa40 100755
--- a/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml
+++ b/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml
@@ -120,9 +120,9 @@
</options>
</field>
<field>
- <name>Address</name>
+ <name>Upstream SIP Server</name>
<type>inputalias</type>
- <description>(Optional) If this is chosen, the provider field will be overridden. This allows you to just provide the IP address of the VOIP adaptor to prioritize. NOTE: You can also use a Firewall Alias in this location.</description>
+ <description>(Optional) If this is chosen, the provider field will be overridden. This allows you to provide the IP address of the &lt;strong&gt;remote&lt;/strong&gt; PBX or SIP Trunk to prioritize. &lt;br /&gt;NOTE: You can also use a Firewall Alias in this location.</description>
<bindstofield>ezshaper-&gt;step3-&gt;address</bindstofield>
<message>IP Address field is non-blank and doesn't look like an IP address.</message>
</field>
@@ -438,7 +438,7 @@
<type>checkbox</type>
<typehint>Prioritize network gaming traffic</typehint>
<description>This will raise the priority of gaming traffic to higher than most traffic.</description>
- <enablefields>BattleNET,Battlefield2,CallOfDuty,Counterstrike,DeltaForce,DOOM3,EmpireEarth,Everquest,Everquest2,FarCry,GunZOnline,HalfLife,HalfLife2,Halo2,Lineage2,PlanetSide,QuakeIII,TigerWoods2004PS2,UnrealTournament,WolfensteinEnemyTerritory,WorldOfWarcraft,XBox360</enablefields>
+ <enablefields>ARMA2,BattleNET,Battlefield2,Battlefield3,BattlefieldBC2,Borderlands,CallOfDuty,Counterstrike,Crysis2,DeltaForce,Dirt3,DOOM3,EmpireEarth,EveOnline,Everquest,Everquest2,FarCry,FarCry2,FarCry3,GunZOnline,HalfLife,Halo2,LeagueofLegends,Lineage2,MechwarriorOnline,Minecraft,OperationFlashpointDR,PlanetSide,PlanetSide2,PlayStation3,QuakeIII,QuakeIV,Steam,StarWarsTOR,TigerWoods2004PS2,TribesAscend,UnrealTournament,WolfensteinEnemyTerritory,WorldOfWarcraft,XBox360</enablefields>
<donotdisable>true</donotdisable>
<bindstofield>ezshaper-&gt;step6-&gt;enable</bindstofield>
</field>
@@ -451,6 +451,12 @@
<type>listtopic</type>
</field>
<field>
+ <name>ARMA2</name>
+ <type>checkbox</type>
+ <typehint>ARMA 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;arma2</bindstofield>
+ </field>
+ <field>
<name>BattleNET</name>
<type>checkbox</type>
<typehint>Battle.net - Virtually every game from Blizzard publishing should match this. This includes the following game series: Starcraft, Diablo, Warcraft. Guild Wars also uses this port.</typehint>
@@ -463,6 +469,24 @@
<bindstofield>ezshaper-&gt;step6-&gt;battlefield2</bindstofield>
</field>
<field>
+ <name>Battlefield3</name>
+ <type>checkbox</type>
+ <typehint>Battlefield 3 - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;battlefield3</bindstofield>
+ </field>
+ <field>
+ <name>BattlefieldBC2</name>
+ <type>checkbox</type>
+ <typehint>Battlefield: Bad Company 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;battlefieldbc2</bindstofield>
+ </field>
+ <field>
+ <name>Borderlands</name>
+ <type>checkbox</type>
+ <typehint>Borderlands</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;borderlands</bindstofield>
+ </field>
+ <field>
<name>CallOfDuty</name>
<type>checkbox</type>
<typehint>Call Of Duty (United Offensive)</typehint>
@@ -475,12 +499,24 @@
<bindstofield>ezshaper-&gt;step6-&gt;counterstrike</bindstofield>
</field>
<field>
+ <name>Crysis2</name>
+ <type>checkbox</type>
+ <typehint>Crysis 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;crysis2</bindstofield>
+ </field>
+ <field>
<name>DeltaForce</name>
<type>checkbox</type>
<typehint>Delta Force</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;deltaforce</bindstofield>
</field>
<field>
+ <name>Dirt3</name>
+ <type>checkbox</type>
+ <typehint>Dirt 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;dirt3</bindstofield>
+ </field>
+ <field>
<name>DOOM3</name>
<type>checkbox</type>
<typehint>DOOM3</typehint>
@@ -493,6 +529,12 @@
<bindstofield>ezshaper-&gt;step6-&gt;empireearth</bindstofield>
</field>
<field>
+ <name>EveOnline</name>
+ <type>checkbox</type>
+ <typehint>EVE Online</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;eveonline</bindstofield>
+ </field>
+ <field>
<name>Everquest</name>
<type>checkbox</type>
<typehint>Everquest - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
@@ -505,28 +547,34 @@
<bindstofield>ezshaper-&gt;step6-&gt;everquest2</bindstofield>
</field>
<field>
- <name>GunZOnline</name>
- <type>checkbox</type>
- <typehint>GunZ Online</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;gunzonline</bindstofield>
- </field>
- <field>
<name>FarCry</name>
<type>checkbox</type>
<typehint>Far Cry</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;farcry</bindstofield>
</field>
<field>
- <name>HalfLife</name>
+ <name>FarCry2</name>
<type>checkbox</type>
- <typehint>HalfLife</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;halflife</bindstofield>
+ <typehint>Far Cry 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;farcry2</bindstofield>
</field>
<field>
- <name>HalfLife2</name>
+ <name>FarCry3</name>
<type>checkbox</type>
- <typehint>HalfLife 2</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;halflife2</bindstofield>
+ <typehint>Far Cry 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;farcry3</bindstofield>
+ </field>
+ <field>
+ <name>GunZOnline</name>
+ <type>checkbox</type>
+ <typehint>GunZ Online</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;gunzonline</bindstofield>
+ </field>
+ <field>
+ <name>HalfLife</name>
+ <type>checkbox</type>
+ <typehint>Half-Life</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;halflife</bindstofield>
</field>
<field>
<name>Halo2</name>
@@ -535,33 +583,93 @@
<bindstofield>ezshaper-&gt;step6-&gt;halo2xbox</bindstofield>
</field>
<field>
+ <name>LeagueofLegends</name>
+ <type>checkbox</type>
+ <typehint>League of Legends - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;leagueoflegends</bindstofield>
+ </field>
+ <field>
<name>Lineage2</name>
<type>checkbox</type>
<typehint>Lineage II</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;lineage2</bindstofield>
</field>
<field>
+ <name>MechwarriorOnline</name>
+ <type>checkbox</type>
+ <typehint>MechWarrior: Online - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;mechwarrioronline</bindstofield>
+ </field>
+ <field>
+ <name>Minecraft</name>
+ <type>checkbox</type>
+ <typehint>Minecraft</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;minecraft</bindstofield>
+ </field>
+ <field>
<name>PlanetSide</name>
<type>checkbox</type>
<typehint>PlanetSide</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;planetside</bindstofield>
</field>
<field>
+ <name>PlanetSide2</name>
+ <type>checkbox</type>
+ <typehint>PlanetSide 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;planetside2</bindstofield>
+ </field>
+ <field>
+ <name>PlayStation3</name>
+ <type>checkbox</type>
+ <typehint>PlayStation 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;playstation3</bindstofield>
+ </field>
+ <field>
+ <name>OperationFlashpointDR</name>
+ <type>checkbox</type>
+ <typehint>Operation Flashpoint: Dragon Rising</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;operationflashpoint-dr</bindstofield>
+ </field>
+ <field>
<name>QuakeIII</name>
<type>checkbox</type>
<typehint>Quake III</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;quakeiii</bindstofield>
</field>
<field>
+ <name>QuakeIV</name>
+ <type>checkbox</type>
+ <typehint>Quake IV</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;quakeiv</bindstofield>
+ </field>
+ <field>
+ <name>StarWarsTOR</name>
+ <type>checkbox</type>
+ <typehint>StarWars: The Old Republic - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;starwarstor</bindstofield>
+ </field>
+ <field>
+ <name>Steam</name>
+ <type>checkbox</type>
+ <typehint>Steam (Includes: America's Army 3, Counter-Strike: Source, Counter-Strike: Global Offensive, Half-Life 2, COD: Black Ops Series, Borderlands 2, Natural Selection 2, Left 4 Dead Series, Portal 2)</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;steam</bindstofield>
+ </field>
+ <field>
<name>TigerWoods2004PS2</name>
<type>checkbox</type>
<typehint>Tiger Woods 2004 for PS2</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;tigerwoods2004ps2</bindstofield>
</field>
<field>
+ <name>TribesAscend</name>
+ <type>checkbox</type>
+ <typehint>Tribes Ascend</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;tribesascend</bindstofield>
+ </field>
+ <field>
<name>UnrealTournament</name>
<type>checkbox</type>
- <typehint>Unreal Tournament</typehint>
+ <typehint>Unreal Tournament Series</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;unrealtournament</bindstofield>
</field>
<field>
@@ -579,7 +687,7 @@
<field>
<name>Xbox360</name>
<type>checkbox</type>
- <typehint>XBox 360</typehint>
+ <typehint>XBox 360 and Games for Windows Live</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;xbox360</bindstofield>
</field>
<field>
diff --git a/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc b/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc
index 42f6ddb..8a1c8c6 100755
--- a/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc
+++ b/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc
@@ -379,10 +379,10 @@ function step3_stepbeforeformdisplay() {
$voipfields[] = $field;
$field = array();
- $field['name'] = "Address";
- $enablefields[] = "Address";
+ $field['name'] = "Upstream SIP Server";
+ $enablefields[] = "Upstream SIP Server";
$field['type'] = "inputalias";
- $field['description'] = "(Optional) If this is chosen, the provider field will be overridden. This allows you to just provide the IP address of the VOIP adaptor to prioritize. NOTE: You can also use a Firewall Alias in this location.";
+ $field['description'] = "(Optional) If this is chosen, the provider field will be overridden. This allows you to provide the IP address of the <strong>remote</strong> PBX or SIP Trunk to prioritize. <br />NOTE: You can also use a Firewall Alias in this location.";
$field['message'] = "IP Address field is non-blank and doesn't look like an IP address.";
$field['bindstofield'] = "ezshaper->step3->address";
$voipfields[] = $field;
@@ -1469,6 +1469,7 @@ function apply_all_choosen_items() {
$rule['floating'] = "yes";
$rule['wizard'] = "yes";
$rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
}
@@ -1480,8 +1481,8 @@ function apply_all_choosen_items() {
/* create VOIP rules */
$rule = array();
$rule['type'] = "match";
- //$rule['interface'] = $interfacelist;
- $rule['descr'] = gettext("VOIP Adapter");
+ //$rule['interface'] = $interfacelist;
+ $rule['descr'] = gettext("Connections From Upstream SIP Server");
$rule['protocol'] = "udp";
$rule['defaultqueue'] = "qVoIP";
$rule['source']['address'] = $config['ezshaper']['step3']['address'];
@@ -1489,6 +1490,21 @@ function apply_all_choosen_items() {
$rule['floating'] = "yes";
$rule['wizard'] = "yes";
$rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
+ $config['filter']['rule'][] = $rule;
+
+ $rule = array();
+ $rule['type'] = "match";
+ //$rule['interface'] = $interfacelist;
+ $rule['descr'] = gettext("Connections To Upstream SIP Server");
+ $rule['protocol'] = "udp";
+ $rule['defaultqueue'] = "qVoIP";
+ $rule['source']['any'] = TRUE;
+ $rule['destination']['address'] = $config['ezshaper']['step3']['address'];
+ $rule['floating'] = "yes";
+ $rule['wizard'] = "yes";
+ $rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
} elseif( $config['ezshaper']['step3']['provider'] == "Generic" ) {
@@ -1505,6 +1521,7 @@ function apply_all_choosen_items() {
$rule['floating'] = "yes";
$rule['wizard'] = "yes";
$rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
} else {
@@ -1523,6 +1540,7 @@ function apply_all_choosen_items() {
$rule['destination']['port'] = $voip[2]."-".$voip[3];
if($voip[1] != '')
$rule['protocol'] = $voip[1];
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
}
}
@@ -1546,6 +1564,7 @@ function apply_all_choosen_items() {
$rule['destination']['port'] = $p2pclient[2]."-".$p2pclient[3];
if($p2pclient[1] != '')
$rule['protocol'] = $p2pclient[1];
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
}
}
@@ -1572,6 +1591,7 @@ function apply_all_choosen_items() {
$rule['destination']['port'] = $Gameclient[2]."-".$Gameclient[3];
if($Gameclient[1] != '')
$rule['protocol'] = $Gameclient[1];
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
}
}
@@ -1624,7 +1644,7 @@ function apply_all_choosen_items() {
}
if($otherclient[1] != '')
$rule['protocol'] = $otherclient[1];
-
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
}
}
diff --git a/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml b/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml
index 050f493..8ea3d0f 100755
--- a/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml
+++ b/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml
@@ -128,9 +128,9 @@
</options>
</field>
<field>
- <name>Address</name>
+ <name>Upstream SIP Server</name>
<type>inputalias</type>
- <description>(Optional) If this is chosen, the provider field will be overridden. This allows you to just provide the IP address of the VOIP adaptor to prioritize. NOTE: You can also use a Firewall Alias in this location.</description>
+ <description>(Optional) If this is chosen, the provider field will be overridden. This allows you to provide the IP address of the &lt;strong&gt;remote&lt;/strong&gt; PBX or SIP Trunk to prioritize. &lt;br /&gt;NOTE: You can also use a Firewall Alias in this location.</description>
<bindstofield>ezshaper-&gt;step3-&gt;address</bindstofield>
<message>IP Address field is non-blank and doesn't look like an IP address.</message>
</field>
@@ -446,7 +446,7 @@
<type>checkbox</type>
<typehint>Prioritize network gaming traffic</typehint>
<description>This will raise the priority of gaming traffic to higher than most traffic.</description>
- <enablefields>BattleNET,Battlefield2,CallOfDuty,Counterstrike,DeltaForce,DOOM3,EmpireEarth,Everquest,Everquest2,FarCry,GunZOnline,HalfLife,HalfLife2,Halo2,Lineage2,PlanetSide,QuakeIII,TigerWoods2004PS2,UnrealTournament,WolfensteinEnemyTerritory,WorldOfWarcraft,XBox360</enablefields>
+ <enablefields>ARMA2,BattleNET,Battlefield2,Battlefield3,BattlefieldBC2,Borderlands,CallOfDuty,Counterstrike,Crysis2,DeltaForce,Dirt3,DOOM3,EmpireEarth,EveOnline,Everquest,Everquest2,FarCry,FarCry2,FarCry3,GunZOnline,HalfLife,Halo2,LeagueofLegends,Lineage2,MechwarriorOnline,Minecraft,OperationFlashpointDR,PlanetSide,PlanetSide2,PlayStation3,QuakeIII,QuakeIV,Steam,StarWarsTOR,TigerWoods2004PS2,TribesAscend,UnrealTournament,WolfensteinEnemyTerritory,WorldOfWarcraft,XBox360</enablefields>
<donotdisable>true</donotdisable>
<bindstofield>ezshaper-&gt;step6-&gt;enable</bindstofield>
</field>
@@ -459,6 +459,12 @@
<type>listtopic</type>
</field>
<field>
+ <name>ARMA2</name>
+ <type>checkbox</type>
+ <typehint>ARMA 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;arma2</bindstofield>
+ </field>
+ <field>
<name>BattleNET</name>
<type>checkbox</type>
<typehint>Battle.net - Virtually every game from Blizzard publishing should match this. This includes the following game series: Starcraft, Diablo, Warcraft. Guild Wars also uses this port.</typehint>
@@ -471,6 +477,24 @@
<bindstofield>ezshaper-&gt;step6-&gt;battlefield2</bindstofield>
</field>
<field>
+ <name>Battlefield3</name>
+ <type>checkbox</type>
+ <typehint>Battlefield 3 - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;battlefield3</bindstofield>
+ </field>
+ <field>
+ <name>BattlefieldBC2</name>
+ <type>checkbox</type>
+ <typehint>Battlefield: Bad Company 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;battlefieldbc2</bindstofield>
+ </field>
+ <field>
+ <name>Borderlands</name>
+ <type>checkbox</type>
+ <typehint>Borderlands</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;borderlands</bindstofield>
+ </field>
+ <field>
<name>CallOfDuty</name>
<type>checkbox</type>
<typehint>Call Of Duty (United Offensive)</typehint>
@@ -483,12 +507,24 @@
<bindstofield>ezshaper-&gt;step6-&gt;counterstrike</bindstofield>
</field>
<field>
+ <name>Crysis2</name>
+ <type>checkbox</type>
+ <typehint>Crysis 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;crysis2</bindstofield>
+ </field>
+ <field>
<name>DeltaForce</name>
<type>checkbox</type>
<typehint>Delta Force</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;deltaforce</bindstofield>
</field>
<field>
+ <name>Dirt3</name>
+ <type>checkbox</type>
+ <typehint>Dirt 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;dirt3</bindstofield>
+ </field>
+ <field>
<name>DOOM3</name>
<type>checkbox</type>
<typehint>DOOM3</typehint>
@@ -501,6 +537,12 @@
<bindstofield>ezshaper-&gt;step6-&gt;empireearth</bindstofield>
</field>
<field>
+ <name>EveOnline</name>
+ <type>checkbox</type>
+ <typehint>EVE Online</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;eveonline</bindstofield>
+ </field>
+ <field>
<name>Everquest</name>
<type>checkbox</type>
<typehint>Everquest - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
@@ -513,28 +555,34 @@
<bindstofield>ezshaper-&gt;step6-&gt;everquest2</bindstofield>
</field>
<field>
- <name>GunZOnline</name>
- <type>checkbox</type>
- <typehint>GunZ Online</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;gunzonline</bindstofield>
- </field>
- <field>
<name>FarCry</name>
<type>checkbox</type>
<typehint>Far Cry</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;farcry</bindstofield>
</field>
<field>
- <name>HalfLife</name>
+ <name>FarCry2</name>
<type>checkbox</type>
- <typehint>HalfLife</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;halflife</bindstofield>
+ <typehint>Far Cry 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;farcry2</bindstofield>
</field>
<field>
- <name>HalfLife2</name>
+ <name>FarCry3</name>
<type>checkbox</type>
- <typehint>HalfLife 2</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;halflife2</bindstofield>
+ <typehint>Far Cry 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;farcry3</bindstofield>
+ </field>
+ <field>
+ <name>GunZOnline</name>
+ <type>checkbox</type>
+ <typehint>GunZ Online</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;gunzonline</bindstofield>
+ </field>
+ <field>
+ <name>HalfLife</name>
+ <type>checkbox</type>
+ <typehint>Half-Life</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;halflife</bindstofield>
</field>
<field>
<name>Halo2</name>
@@ -543,33 +591,93 @@
<bindstofield>ezshaper-&gt;step6-&gt;halo2xbox</bindstofield>
</field>
<field>
+ <name>LeagueofLegends</name>
+ <type>checkbox</type>
+ <typehint>League of Legends - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;leagueoflegends</bindstofield>
+ </field>
+ <field>
<name>Lineage2</name>
<type>checkbox</type>
<typehint>Lineage II</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;lineage2</bindstofield>
</field>
<field>
+ <name>MechwarriorOnline</name>
+ <type>checkbox</type>
+ <typehint>MechWarrior: Online - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;mechwarrioronline</bindstofield>
+ </field>
+ <field>
+ <name>Minecraft</name>
+ <type>checkbox</type>
+ <typehint>Minecraft</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;minecraft</bindstofield>
+ </field>
+ <field>
<name>PlanetSide</name>
<type>checkbox</type>
<typehint>PlanetSide</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;planetside</bindstofield>
</field>
<field>
+ <name>PlanetSide2</name>
+ <type>checkbox</type>
+ <typehint>PlanetSide 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;planetside2</bindstofield>
+ </field>
+ <field>
+ <name>PlayStation3</name>
+ <type>checkbox</type>
+ <typehint>PlayStation 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;playstation3</bindstofield>
+ </field>
+ <field>
+ <name>OperationFlashpointDR</name>
+ <type>checkbox</type>
+ <typehint>Operation Flashpoint: Dragon Rising</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;operationflashpoint-dr</bindstofield>
+ </field>
+ <field>
<name>QuakeIII</name>
<type>checkbox</type>
<typehint>Quake III</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;quakeiii</bindstofield>
</field>
<field>
+ <name>QuakeIV</name>
+ <type>checkbox</type>
+ <typehint>Quake IV</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;quakeiv</bindstofield>
+ </field>
+ <field>
+ <name>StarWarsTOR</name>
+ <type>checkbox</type>
+ <typehint>StarWars: The Old Republic - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;starwarstor</bindstofield>
+ </field>
+ <field>
+ <name>Steam</name>
+ <type>checkbox</type>
+ <typehint>Steam (Includes: America's Army 3, Counter-Strike: Source, Counter-Strike: Global Offensive, Half-Life 2, COD: Black Ops Series, Borderlands 2, Natural Selection 2, Left 4 Dead Series, Portal 2)</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;steam</bindstofield>
+ </field>
+ <field>
<name>TigerWoods2004PS2</name>
<type>checkbox</type>
<typehint>Tiger Woods 2004 for PS2</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;tigerwoods2004ps2</bindstofield>
</field>
<field>
+ <name>TribesAscend</name>
+ <type>checkbox</type>
+ <typehint>Tribes Ascend</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;tribesascend</bindstofield>
+ </field>
+ <field>
<name>UnrealTournament</name>
<type>checkbox</type>
- <typehint>Unreal Tournament</typehint>
+ <typehint>Unreal Tournament Series</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;unrealtournament</bindstofield>
</field>
<field>
@@ -587,7 +695,7 @@
<field>
<name>Xbox360</name>
<type>checkbox</type>
- <typehint>XBox 360</typehint>
+ <typehint>XBox 360 and Games for Windows Live</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;xbox360</bindstofield>
</field>
<field>
diff --git a/usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc b/usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc
index bde56bb..8f53d60 100644
--- a/usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc
+++ b/usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc
@@ -1210,6 +1210,7 @@ function apply_all_choosen_items() {
$rule['floating'] = "yes";
$rule['wizard'] = "yes";
$rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
}
@@ -1221,8 +1222,8 @@ function apply_all_choosen_items() {
/* create VOIP rules */
$rule = array();
$rule['type'] = "match";
- //$rule['interface'] = "wan";
- $rule['descr'] = gettext("VOIP Adapter");
+ //$rule['interface'] = "wan";
+ $rule['descr'] = gettext("Connections From Upstream SIP Server");
$rule['protocol'] = "udp";
$rule['defaultqueue'] = "qVoIP";
$rule['source']['address'] = $config['ezshaper']['step3']['address'];
@@ -1230,6 +1231,21 @@ function apply_all_choosen_items() {
$rule['floating'] = "yes";
$rule['wizard'] = "yes";
$rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
+ $config['filter']['rule'][] = $rule;
+
+ $rule = array();
+ $rule['type'] = "match";
+ //$rule['interface'] = "wan";
+ $rule['descr'] = gettext("Connections To Upstream SIP Server");
+ $rule['protocol'] = "udp";
+ $rule['defaultqueue'] = "qVoIP";
+ $rule['source']['any'] = TRUE;
+ $rule['destination']['address'] = $config['ezshaper']['step3']['address'];
+ $rule['floating'] = "yes";
+ $rule['wizard'] = "yes";
+ $rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
} elseif( $config['ezshaper']['step3']['provider'] == "Generic" ) {
@@ -1246,6 +1262,7 @@ function apply_all_choosen_items() {
$rule['floating'] = "yes";
$rule['wizard'] = "yes";
$rule['enabled'] = "on";
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
} else {
@@ -1264,6 +1281,7 @@ function apply_all_choosen_items() {
$rule['destination']['port'] = $voip[2]."-".$voip[3];
if($voip[1] != '')
$rule['protocol'] = $voip[1];
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
}
}
@@ -1287,6 +1305,7 @@ function apply_all_choosen_items() {
$rule['destination']['port'] = $p2pclient[2]."-".$p2pclient[3];
if($p2pclient[1] != '')
$rule['protocol'] = $p2pclient[1];
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
}
}
@@ -1313,6 +1332,7 @@ function apply_all_choosen_items() {
$rule['destination']['port'] = $Gameclient[2]."-".$Gameclient[3];
if($Gameclient[1] != '')
$rule['protocol'] = $Gameclient[1];
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
$config['filter']['rule'][] = $rule;
}
}
@@ -1365,8 +1385,8 @@ function apply_all_choosen_items() {
}
if($otherclient[1] != '')
$rule['protocol'] = $otherclient[1];
-
- $config['filter']['rule'][] = $rule;
+ $rule['created'] = make_config_revision_entry(null, gettext("Traffic Shaper Wizard"));
+ $config['filter']['rule'][] = $rule;
}
}
}
diff --git a/usr/local/www/wizards/traffic_shaper_wizard_multi_lan.xml b/usr/local/www/wizards/traffic_shaper_wizard_multi_lan.xml
index 30bc566..e28d210 100644
--- a/usr/local/www/wizards/traffic_shaper_wizard_multi_lan.xml
+++ b/usr/local/www/wizards/traffic_shaper_wizard_multi_lan.xml
@@ -117,9 +117,9 @@
</options>
</field>
<field>
- <name>Address</name>
+ <name>Upstream SIP Server</name>
<type>inputalias</type>
- <description>(Optional) If this is chosen, the provider field will be overridden. This allows you to just provide the IP address of the VOIP adaptor to prioritize. NOTE: You can also use a Firewall Alias in this location.</description>
+ <description>(Optional) If this is chosen, the provider field will be overridden. This allows you to provide the IP address of the &lt;strong&gt;remote&lt;/strong&gt; PBX or SIP Trunk to prioritize. &lt;br /&gt;NOTE: You can also use a Firewall Alias in this location.</description>
<bindstofield>ezshaper-&gt;step3-&gt;address</bindstofield>
<message>IP Address field is non-blank and doesn't look like an IP address.</message>
</field>
@@ -497,7 +497,7 @@
<type>checkbox</type>
<typehint>Prioritize network gaming traffic</typehint>
<description>This will raise the priority of gaming traffic to higher than most traffic.</description>
- <enablefields>BattleNET,Battlefield2,CallOfDuty,Counterstrike,DeltaForce,DOOM3,EmpireEarth,Everquest,Everquest2,FarCry,GunZOnline,HalfLife,HalfLife2,Halo2,Lineage2,PlanetSide,QuakeIII,TigerWoods2004PS2,UnrealTournament,WolfensteinEnemyTerritory,WorldOfWarcraft,XBox360</enablefields>
+ <enablefields>ARMA2,BattleNET,Battlefield2,Battlefield3,BattlefieldBC2,Borderlands,CallOfDuty,Counterstrike,Crysis2,DeltaForce,Dirt3,DOOM3,EmpireEarth,EveOnline,Everquest,Everquest2,FarCry,FarCry2,FarCry3,GunZOnline,HalfLife,Halo2,LeagueofLegends,Lineage2,MechwarriorOnline,Minecraft,OperationFlashpointDR,PlanetSide,PlanetSide2,PlayStation3,QuakeIII,QuakeIV,Steam,StarWarsTOR,TigerWoods2004PS2,TribesAscend,UnrealTournament,WolfensteinEnemyTerritory,WorldOfWarcraft,XBox360</enablefields>
<donotdisable>true</donotdisable>
<bindstofield>ezshaper-&gt;step6-&gt;enable</bindstofield>
</field>
@@ -510,6 +510,12 @@
<type>listtopic</type>
</field>
<field>
+ <name>ARMA2</name>
+ <type>checkbox</type>
+ <typehint>ARMA 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;arma2</bindstofield>
+ </field>
+ <field>
<name>BattleNET</name>
<type>checkbox</type>
<typehint>Battle.net - Virtually every game from Blizzard publishing should match this. This includes the following game series: Starcraft, Diablo, Warcraft. Guild Wars also uses this port.</typehint>
@@ -522,6 +528,24 @@
<bindstofield>ezshaper-&gt;step6-&gt;battlefield2</bindstofield>
</field>
<field>
+ <name>Battlefield3</name>
+ <type>checkbox</type>
+ <typehint>Battlefield 3 - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;battlefield3</bindstofield>
+ </field>
+ <field>
+ <name>BattlefieldBC2</name>
+ <type>checkbox</type>
+ <typehint>Battlefield: Bad Company 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;battlefieldbc2</bindstofield>
+ </field>
+ <field>
+ <name>Borderlands</name>
+ <type>checkbox</type>
+ <typehint>Borderlands</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;borderlands</bindstofield>
+ </field>
+ <field>
<name>CallOfDuty</name>
<type>checkbox</type>
<typehint>Call Of Duty (United Offensive)</typehint>
@@ -534,12 +558,24 @@
<bindstofield>ezshaper-&gt;step6-&gt;counterstrike</bindstofield>
</field>
<field>
+ <name>Crysis2</name>
+ <type>checkbox</type>
+ <typehint>Crysis 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;crysis2</bindstofield>
+ </field>
+ <field>
<name>DeltaForce</name>
<type>checkbox</type>
<typehint>Delta Force</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;deltaforce</bindstofield>
</field>
<field>
+ <name>Dirt3</name>
+ <type>checkbox</type>
+ <typehint>Dirt 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;dirt3</bindstofield>
+ </field>
+ <field>
<name>DOOM3</name>
<type>checkbox</type>
<typehint>DOOM3</typehint>
@@ -552,6 +588,12 @@
<bindstofield>ezshaper-&gt;step6-&gt;empireearth</bindstofield>
</field>
<field>
+ <name>EveOnline</name>
+ <type>checkbox</type>
+ <typehint>EVE Online</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;eveonline</bindstofield>
+ </field>
+ <field>
<name>Everquest</name>
<type>checkbox</type>
<typehint>Everquest - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
@@ -564,28 +606,34 @@
<bindstofield>ezshaper-&gt;step6-&gt;everquest2</bindstofield>
</field>
<field>
- <name>GunZOnline</name>
- <type>checkbox</type>
- <typehint>GunZ Online</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;gunzonline</bindstofield>
- </field>
- <field>
<name>FarCry</name>
<type>checkbox</type>
<typehint>Far Cry</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;farcry</bindstofield>
</field>
<field>
- <name>HalfLife</name>
+ <name>FarCry2</name>
<type>checkbox</type>
- <typehint>HalfLife</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;halflife</bindstofield>
+ <typehint>Far Cry 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;farcry2</bindstofield>
</field>
<field>
- <name>HalfLife2</name>
+ <name>FarCry3</name>
<type>checkbox</type>
- <typehint>HalfLife 2</typehint>
- <bindstofield>ezshaper-&gt;step6-&gt;halflife2</bindstofield>
+ <typehint>Far Cry 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;farcry3</bindstofield>
+ </field>
+ <field>
+ <name>GunZOnline</name>
+ <type>checkbox</type>
+ <typehint>GunZ Online</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;gunzonline</bindstofield>
+ </field>
+ <field>
+ <name>HalfLife</name>
+ <type>checkbox</type>
+ <typehint>Half-Life</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;halflife</bindstofield>
</field>
<field>
<name>Halo2</name>
@@ -594,33 +642,93 @@
<bindstofield>ezshaper-&gt;step6-&gt;halo2xbox</bindstofield>
</field>
<field>
+ <name>LeagueofLegends</name>
+ <type>checkbox</type>
+ <typehint>League of Legends - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;leagueoflegends</bindstofield>
+ </field>
+ <field>
<name>Lineage2</name>
<type>checkbox</type>
<typehint>Lineage II</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;lineage2</bindstofield>
</field>
<field>
+ <name>MechwarriorOnline</name>
+ <type>checkbox</type>
+ <typehint>MechWarrior: Online - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;mechwarrioronline</bindstofield>
+ </field>
+ <field>
+ <name>Minecraft</name>
+ <type>checkbox</type>
+ <typehint>Minecraft</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;minecraft</bindstofield>
+ </field>
+ <field>
<name>PlanetSide</name>
<type>checkbox</type>
<typehint>PlanetSide</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;planetside</bindstofield>
</field>
<field>
+ <name>PlanetSide2</name>
+ <type>checkbox</type>
+ <typehint>PlanetSide 2</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;planetside2</bindstofield>
+ </field>
+ <field>
+ <name>PlayStation3</name>
+ <type>checkbox</type>
+ <typehint>PlayStation 3</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;playstation3</bindstofield>
+ </field>
+ <field>
+ <name>OperationFlashpointDR</name>
+ <type>checkbox</type>
+ <typehint>Operation Flashpoint: Dragon Rising</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;operationflashpoint-dr</bindstofield>
+ </field>
+ <field>
<name>QuakeIII</name>
<type>checkbox</type>
<typehint>Quake III</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;quakeiii</bindstofield>
</field>
<field>
+ <name>QuakeIV</name>
+ <type>checkbox</type>
+ <typehint>Quake IV</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;quakeiv</bindstofield>
+ </field>
+ <field>
+ <name>StarWarsTOR</name>
+ <type>checkbox</type>
+ <typehint>StarWars: The Old Republic - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;starwarstor</bindstofield>
+ </field>
+ <field>
+ <name>Steam</name>
+ <type>checkbox</type>
+ <typehint>Steam (Includes: America's Army 3, Counter-Strike: Source, Counter-Strike: Global Offensive, Half-Life 2, COD: Black Ops Series, Borderlands 2, Natural Selection 2, Left 4 Dead Series, Portal 2)</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;steam</bindstofield>
+ </field>
+ <field>
<name>TigerWoods2004PS2</name>
<type>checkbox</type>
<typehint>Tiger Woods 2004 for PS2</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;tigerwoods2004ps2</bindstofield>
</field>
<field>
+ <name>TribesAscend</name>
+ <type>checkbox</type>
+ <typehint>Tribes Ascend</typehint>
+ <bindstofield>ezshaper-&gt;step6-&gt;tribesascend</bindstofield>
+ </field>
+ <field>
<name>UnrealTournament</name>
<type>checkbox</type>
- <typehint>Unreal Tournament</typehint>
+ <typehint>Unreal Tournament Series</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;unrealtournament</bindstofield>
</field>
<field>
@@ -638,7 +746,7 @@
<field>
<name>Xbox360</name>
<type>checkbox</type>
- <typehint>XBox 360</typehint>
+ <typehint>XBox 360 and Games for Windows Live</typehint>
<bindstofield>ezshaper-&gt;step6-&gt;xbox360</bindstofield>
</field>
<field>
diff --git a/usr/local/www/xmlrpc.php b/usr/local/www/xmlrpc.php
index d657f03..535f6ee 100755
--- a/usr/local/www/xmlrpc.php
+++ b/usr/local/www/xmlrpc.php
@@ -39,21 +39,25 @@
require("config.inc");
require("functions.inc");
require("filter.inc");
+require("ipsec.inc");
+require("vpn.inc");
require("shaper.inc");
require("xmlrpc_server.inc");
require("xmlrpc.inc");
require("array_intersect_key.inc");
-/* grab sync to ip if enabled */
-if ($config['hasync']) {
- $synchronizetoip = $hasync['synchronizetoip'];
-}
+function xmlrpc_loop_detect() {
+ global $config;
-if($synchronizetoip) {
- if($synchronizetoip == $_SERVER['REMOTE_ADDR']) {
- log_error(gettext("Disallowing CARP sync loop."));
- die;
+ /* grab sync to ip if enabled */
+ if ($config['hasync'])
+ $synchronizetoip = $config['hasync']['synchronizetoip'];
+ if($synchronizetoip) {
+ if($synchronizetoip == $_SERVER['REMOTE_ADDR'])
+ return true;
}
+
+ return false;
}
$xmlrpc_g = array(
@@ -138,6 +142,9 @@ $backup_config_section_sig = array(
function backup_config_section_xmlrpc($raw_params) {
global $config, $xmlrpc_g;
+ if (xmlrpc_loop_detect())
+ log_error("Disallowing CARP sync loop");
+
$params = xmlrpc_params_to_php($raw_params);
if(!xmlrpc_auth($params)) {
xmlrpc_authfail();
@@ -161,6 +168,11 @@ $restore_config_section_sig = array(
function restore_config_section_xmlrpc($raw_params) {
global $config, $xmlrpc_g;
+ $old_config = $config;
+
+ if (xmlrpc_loop_detect())
+ log_error("Disallowing CARP sync loop");
+
$params = xmlrpc_params_to_php($raw_params);
if(!xmlrpc_auth($params)) {
xmlrpc_authfail();
@@ -169,7 +181,7 @@ function restore_config_section_xmlrpc($raw_params) {
// Some sections should just be copied and not merged or we end
// up unable to sync the deletion of the last item in a section
- $sync_full = array('ipsec', 'aliases', 'wol', 'load_balancer', 'openvpn', 'cert', 'ca', 'crl', 'schedules');
+ $sync_full = array('ipsec', 'aliases', 'wol', 'load_balancer', 'openvpn', 'cert', 'ca', 'crl', 'schedules', 'filter', 'nat', 'dhcpd');
$sync_full_done = array();
foreach ($sync_full as $syncfull) {
if (isset($params[0][$syncfull])) {
@@ -242,7 +254,7 @@ function restore_config_section_xmlrpc($raw_params) {
$anyproxyarp = true;
break;
case "ipalias":
- interface_ipalias_configure(&$vip);
+ interface_ipalias_configure($vip);
break;
case "carp":
if ($carp_setuped == false)
@@ -262,6 +274,11 @@ function restore_config_section_xmlrpc($raw_params) {
interface_proxyarp_configure();
}
+ if (isset($old_config['ipsec']['enable']) !== isset($config['ipsec']['enable']))
+ vpn_ipsec_configure();
+
+ unset($old_config);
+
return $xmlrpc_g['return']['true'];
}
@@ -278,6 +295,9 @@ $merge_config_section_sig = array(
function merge_installedpackages_section_xmlrpc($raw_params) {
global $config, $xmlrpc_g;
+ if (xmlrpc_loop_detect())
+ log_error("Disallowing CARP sync loop");
+
$params = xmlrpc_params_to_php($raw_params);
if(!xmlrpc_auth($params)) {
xmlrpc_authfail();
@@ -302,6 +322,10 @@ $merge_config_section_sig = array(
function merge_config_section_xmlrpc($raw_params) {
global $config, $xmlrpc_g;
+
+ if (xmlrpc_loop_detect())
+ log_error("Disallowing CARP sync loop");
+
$params = xmlrpc_params_to_php($raw_params);
if(!xmlrpc_auth($params)) {
xmlrpc_authfail();
@@ -356,6 +380,9 @@ $carp_configure_sig = array(
function interfaces_carp_configure_xmlrpc($raw_params) {
global $xmlrpc_g;
+ if (xmlrpc_loop_detect())
+ log_error("Disallowing CARP sync loop");
+
$params = xmlrpc_params_to_php($raw_params);
if(!xmlrpc_auth($params)) {
xmlrpc_authfail();
diff --git a/usr/share/zoneinfo.tgz b/usr/share/zoneinfo.tgz
index 16ba29b..8464e39 100644
--- a/usr/share/zoneinfo.tgz
+++ b/usr/share/zoneinfo.tgz
Binary files differ
OpenPOWER on IntegriCloud